- new vfs-widget to encapsulate common vfs/file related stuff
+ path with clickable components + human readable size, mode, ... + mime icon with integrated thumbnail creation - link widget uses now vfs-mime for it's icons - thumbnail creation is now switched on with size 32px by default, it can be switched of by the admin or user, in doing so explicitly - mime-icons are moved from filemanager to etemplate, as not everyone installs filemanager - filemanager has now 3 display modi: + Current directory (with subdirs always on top) + Subdirs sorted in + Files from subdirs (shows recursive all files and you can click on the path components thanks to new vfs widget)
@ -61,7 +61,7 @@ class historylog_widget
|
|||||||
$status_widgets = is_array($value) && isset($value['status-widgets']) ? $value['status-widgets'] : null;
|
$status_widgets = is_array($value) && isset($value['status-widgets']) ? $value['status-widgets'] : null;
|
||||||
$id = is_array($value) ? $value['id'] : $value;
|
$id = is_array($value) ? $value['id'] : $value;
|
||||||
|
|
||||||
$historylog =& CreateObject('phpgwapi.historylog',$app);
|
$historylog =& new historylog($app);
|
||||||
if (!$id || method_exists($historylog,'search'))
|
if (!$id || method_exists($historylog,'search'))
|
||||||
{
|
{
|
||||||
$value = $id ? $historylog->search($id) : false;
|
$value = $id ? $historylog->search($id) : false;
|
||||||
|
@ -284,7 +284,6 @@ class link_widget
|
|||||||
for($row=$tpl->rows-1; list(,$link) = each($links); ++$row)
|
for($row=$tpl->rows-1; list(,$link) = each($links); ++$row)
|
||||||
{
|
{
|
||||||
$value[$row] = $link;
|
$value[$row] = $link;
|
||||||
$value[$row]['class'] = 'mimeIcon'; // limit height to 16px
|
|
||||||
$value[$row]['title'] = egw_link::title($link['app'],$link['id'],$link);
|
$value[$row]['title'] = egw_link::title($link['app'],$link['id'],$link);
|
||||||
if (!is_array($link['id']))
|
if (!is_array($link['id']))
|
||||||
{
|
{
|
||||||
@ -304,27 +303,11 @@ class link_widget
|
|||||||
{
|
{
|
||||||
$value[$row]['title'] = preg_replace('/: ([^ ]+) /',': ',$value[$row]['title']); // remove mime-type, it's alread in the icon
|
$value[$row]['title'] = preg_replace('/: ([^ ]+) /',': ',$value[$row]['title']); // remove mime-type, it's alread in the icon
|
||||||
}
|
}
|
||||||
// Get mimetype and thumbnail
|
$value[$row]['icon'] = egw_link::vfs_path($link['app2'],$link['id2'],$link['id'],true);
|
||||||
$value[$row]['mime_icon'] = egw_vfs::mime_icon($link['type']);
|
|
||||||
$value[$row]['mime_title'] = lang('File').': '.lang($value[$row]['type']);
|
|
||||||
if($GLOBALS['egw_info']['user']['preferences']['common']['link_list_thumbnail'] && $GLOBALS['egw_info']['server']['link_list_thumbnail'] > 0)
|
|
||||||
{
|
|
||||||
list($image) = explode('/', $value[$row]['type']);
|
|
||||||
if($image == 'image')
|
|
||||||
{
|
|
||||||
$value[$row]['mime_icon'] = $GLOBALS['egw']->link('/etemplate/inc/thumbnail.inc.php',array(
|
|
||||||
'app' => $link['app2'],
|
|
||||||
'id' => $link['id2'],
|
|
||||||
'file' => $link['id'],
|
|
||||||
));
|
|
||||||
unset($value[$row]['class']); // use height of thumbnail
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$value[$row]['mime_icon'] = $value[$row]['app'].'/'.'navbar';
|
$value[$row]['icon'] = 'egw/'.$value[$row]['app'];
|
||||||
$value[$row]['mime_title'] = lang($value[$row]['app']);
|
|
||||||
$value[$row]['label'] = 'Unlink';
|
$value[$row]['label'] = 'Unlink';
|
||||||
$value[$row]['help'] = lang('Remove this link (not the entry itself)');
|
$value[$row]['help'] = lang('Remove this link (not the entry itself)');
|
||||||
}
|
}
|
||||||
|
203
etemplate/inc/class.vfs_widget.inc.php
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* eGroupWare eTemplate Extension - VFS Widgets
|
||||||
|
*
|
||||||
|
* @link http://www.egroupware.org
|
||||||
|
* @author Ralf Becker <RalfBecker@outdoor-training.de>
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
|
* @copyright 2008 by RalfBecker@outdoor-training.de
|
||||||
|
* @package etemplate
|
||||||
|
* @subpackage extensions
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* eTemplate extension to display stuff from the VFS system
|
||||||
|
*
|
||||||
|
* Contains the following widgets:
|
||||||
|
* - vfs aka File name+link: clickable filename, with evtl. clickable path-components
|
||||||
|
* - vfs-size aka File size: human readable filesize, eg. 1.4k
|
||||||
|
* - vfs-mode aka File mode: posix mode as string eg. drwxr-x---
|
||||||
|
* - vfs-mime aka File icon: mime type icon or thumbnail (if configured AND enabled in the user-prefs)
|
||||||
|
* - vfs-uid aka File owner: Owner of file, or 'root' if none
|
||||||
|
* - vfs-gid aka File group: Group of file, or 'root' if none
|
||||||
|
*
|
||||||
|
* All widgets accept as value a full path.
|
||||||
|
* vfs-mime and vfs itself also allow an array with values like stat (incl. 'path'!) as value.
|
||||||
|
* vfs-mime also allows just the mime type as value.
|
||||||
|
* All other widgets allow additionally the nummeric value from the stat call (to not call it again).
|
||||||
|
*/
|
||||||
|
class vfs_widget
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* exported methods of this class
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $public_functions = array(
|
||||||
|
'pre_process' => True,
|
||||||
|
);
|
||||||
|
/**
|
||||||
|
* availible extensions and there names for the editor
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $human_name = array(
|
||||||
|
'vfs' => 'File name+link', // clickable filename, with evtl. clickable path-components
|
||||||
|
'vfs-size' => 'File size', // human readable filesize
|
||||||
|
'vfs-mode' => 'File mode', // posix mode as string eg. drwxr-x---
|
||||||
|
'vfs-mime' => 'File icon', // mime type icon or thumbnail
|
||||||
|
'vfs-uid' => 'File owner', // Owner of file, or 'root' if none
|
||||||
|
'vfs-gid' => 'File group', // Group of file, or 'root' if none
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pre-processing of the extension
|
||||||
|
*
|
||||||
|
* This function is called before the extension gets rendered
|
||||||
|
*
|
||||||
|
* @param string $form_name form-name of the control
|
||||||
|
* @param mixed &$value value / existing content, can be modified
|
||||||
|
* @param array &$cell array with the widget, can be modified for ui-independent widgets
|
||||||
|
* @param array &$readonlys names of widgets as key, to be made readonly
|
||||||
|
* @param mixed &$extension_data data the extension can store persisten between pre- and post-process
|
||||||
|
* @param object &$tmpl reference to the template we belong too
|
||||||
|
* @return boolean true if extra label is allowed, false otherwise
|
||||||
|
*/
|
||||||
|
function pre_process($form_name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
|
||||||
|
{
|
||||||
|
$type = $cell['type'];
|
||||||
|
$readonly = $cell['readonly'] || $readonlys;
|
||||||
|
|
||||||
|
// check if we have a path and not the raw value, in that case we have to do a stat first
|
||||||
|
if (in_array($type,array('vfs-size','vfs-mode','vfs-uid','vfs-gid')) && !is_numeric($value))
|
||||||
|
{
|
||||||
|
if (!$value || !($stat = egw_vfs::stat($value)))
|
||||||
|
{
|
||||||
|
if ($value) $value = lang("File '%1' not found!",$value);
|
||||||
|
$cell = etemplate::empty_cell();
|
||||||
|
return true; // allow extra value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$cell['type'] = 'label';
|
||||||
|
|
||||||
|
switch($type)
|
||||||
|
{
|
||||||
|
case 'vfs-size': // option: add size in bytes in brackets
|
||||||
|
$value = egw_vfs::hsize($size = is_numeric($value) ? $value : $stat['size']);
|
||||||
|
if ($cell['size']) $value .= ' ('.$size.')';
|
||||||
|
$cell['type'] = 'label';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'vfs-mode':
|
||||||
|
$value = egw_vfs::int2mode(is_numeric($value) ? $value : $stat['mode']);
|
||||||
|
list($span,$class) = explode(',',$cell['span'],2);
|
||||||
|
$class .= ($class ? ' ' : '') . 'vfsMode';
|
||||||
|
$cell['span'] = $span.','.$class;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'vfs-uid':
|
||||||
|
case 'vfs-gid':
|
||||||
|
$uid = !is_numeric($value) ? $stat[$type=='vfs-uid'?'uid':'gid'] : $value;
|
||||||
|
$value = !$uid ? 'root' : $GLOBALS['egw']->accounts->id2name($type=='vfs-uid'?$uid:-$uid); // our internal gid's are negative!
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'vfs':
|
||||||
|
if (is_array($value))
|
||||||
|
{
|
||||||
|
$name = $value['name'];
|
||||||
|
$path = substr($value['path'],0,-strlen($name)-1);
|
||||||
|
$mime = $value['mime'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$name = $value;
|
||||||
|
$path = '';
|
||||||
|
$mime = egw_vfs::mime_content_type($value);
|
||||||
|
$value = array();
|
||||||
|
}
|
||||||
|
if (($cell_name = $cell['name']) == '$row')
|
||||||
|
{
|
||||||
|
$cell_name = array_pop($arr=explode('][',substr($form_name,0,-1)));
|
||||||
|
}
|
||||||
|
$cell['name'] = '';
|
||||||
|
$cell['type'] = 'hbox';
|
||||||
|
$cell['size'] = '0,,0,0';
|
||||||
|
foreach($comps=explode('/',$name) as $n => $component)
|
||||||
|
{
|
||||||
|
if ($n)
|
||||||
|
{
|
||||||
|
$sep = soetemplate::empty_cell('label','',array('label' => '/'));
|
||||||
|
soetemplate::add_child($cell,$sep);
|
||||||
|
unset($sep);
|
||||||
|
}
|
||||||
|
$value['c'.$n] = $component;
|
||||||
|
$path .= '/'.$component;
|
||||||
|
if (egw_vfs::check_access($path,egw_vfs::READABLE)) // show link only if we have access to the file or dir
|
||||||
|
{
|
||||||
|
if ($n < count($comps)-1 || $mime == egw_vfs::DIR_MIME_TYPE)
|
||||||
|
{
|
||||||
|
$value['l'.$n] = '/index.php?menuaction=filemanager.filemanager_ui.index&path='.$path;
|
||||||
|
$target = '';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$value['l'.$n] = egw_vfs::download_url($path);
|
||||||
|
$target = ',,,_blank';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$comp = etemplate::empty_cell('label',$cell_name.'[c'.$n.']',array('size' => ',@'.$cell_name.'[l'.$n.']'.$target));
|
||||||
|
etemplate::add_child($cell,$comp);
|
||||||
|
unset($comp);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'vfs-mime':
|
||||||
|
if (!is_array($value))
|
||||||
|
{
|
||||||
|
if ($value[0] == '/' || count(explode('/',$value)) != 2)
|
||||||
|
{
|
||||||
|
$mime = egw_vfs::mime_content_type($path=$value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mime = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$path = $value['path'];
|
||||||
|
$mime = $value['mime'];
|
||||||
|
}
|
||||||
|
//error_log(__METHOD__."() type=vfs-mime: value=".array2string($value).": mime=$mime, path=$path");
|
||||||
|
$cell['type'] = 'image';
|
||||||
|
$cell['label'] = $mime;
|
||||||
|
list($mime_main,$mime_sub) = explode('/',$mime);
|
||||||
|
if ($mime_main == 'egw')
|
||||||
|
{
|
||||||
|
$value = $mime_sub.'/navbar'; // egw-applications for link-widget
|
||||||
|
$cell['label'] = lang($mime_sub);
|
||||||
|
list($span,$class) = explode(',',$cell['span'],2);
|
||||||
|
$class .= ($class ? ' ' : '') . 'vfsMimeIcon';
|
||||||
|
$cell['span'] = $span.','.$class;
|
||||||
|
}
|
||||||
|
elseif($path && $mime_main == 'image' && (string)$GLOBALS['egw_info']['server']['link_list_thumbnail'] != '0' &&
|
||||||
|
(string)$GLOBALS['egw_info']['user']['preferences']['common']['link_list_thumbnail'] != '0' &&
|
||||||
|
// check the size of the image, as too big images get no icon, but a PHP Fatal error: Allowed memory size exhausted
|
||||||
|
(!is_array($value) && ($stat = egw_vfs::stat($path)) ? $stat['size'] : $value['size']) < 600000)
|
||||||
|
{
|
||||||
|
$value = $GLOBALS['egw']->link('/etemplate/thumbnail.php',array('path' => $path));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$value = egw_vfs::mime_icon($mime);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$value = 'Not yet implemented';
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,170 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* eGroupWare - eTemplates
|
|
||||||
*
|
|
||||||
* @link http://www.egroupware.org
|
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
||||||
* @author Nathan Gray
|
|
||||||
* @package etemplate
|
|
||||||
* @version $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!preg_match('/^[a-z0-9_-]+$/i',$_GET['app'])) die('Stop'); // just to prevent someone doing nasty things
|
|
||||||
|
|
||||||
$GLOBALS['egw_info']['flags'] = array(
|
|
||||||
'currentapp' => $_GET['app'],
|
|
||||||
'noheader' => true,
|
|
||||||
'nonavbar' => true
|
|
||||||
);
|
|
||||||
include ('../../header.inc.php');
|
|
||||||
|
|
||||||
$g_srcfile = egw_link::vfs_path($_GET['app'],$_GET['id'],$_GET['file']);
|
|
||||||
$g_dstfile = $GLOBALS['egw_info']['server']['temp_dir'] . '/egw-thumbs/'.$_GET['app'].'/'.$_GET['id'].'/'.$_GET['file'];
|
|
||||||
|
|
||||||
// Check for existing thumbnail
|
|
||||||
if(file_exists($g_dstfile) && filemtime($g_dstfile) >= filemtime($g_srcfile)) {
|
|
||||||
header('Content-Type: image/png');
|
|
||||||
readfile($g_dstfile);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$thumbnail = get_thumbnail($file, true);
|
|
||||||
|
|
||||||
if($thumbnail) {
|
|
||||||
header('Content-Type: image/png');
|
|
||||||
imagepng( $thumbnail );
|
|
||||||
imagedestroy($thumbnail);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Private function to get a thumbnail image for a linked image file.
|
|
||||||
*
|
|
||||||
* This function creates a thumbnail of the given image, if possible, and stores it in $GLOBALS['egw_info']['server']['temp_dir'].
|
|
||||||
* Returns the image, or false if the file could not be thumbnailed. Thumbnails are PNGs.
|
|
||||||
*
|
|
||||||
* @param array $file VFS File array to thumbnail
|
|
||||||
* @return image or false
|
|
||||||
*
|
|
||||||
* @author Nathan Gray
|
|
||||||
*/
|
|
||||||
function get_thumbnail($file, $return_data = true)
|
|
||||||
{
|
|
||||||
global $g_srcfile,$g_dstfile;
|
|
||||||
|
|
||||||
$max_width = $max_height = $GLOBALS['egw_info']['server']['link_list_thumbnail'];
|
|
||||||
|
|
||||||
if($max_width == 0) {
|
|
||||||
// thumbnailing disabled
|
|
||||||
return false;
|
|
||||||
} elseif( !gdVersion() ) {
|
|
||||||
// GD disabled or not installed
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Quality
|
|
||||||
$g_imgcomp=55;
|
|
||||||
|
|
||||||
$dst_dir = dirname($g_dstfile);
|
|
||||||
// files dont exist, if you have no access permission
|
|
||||||
if((file_exists($dst_dir) || mkdir($dst_dir, 0700, true)) && file_exists($g_srcfile)) {
|
|
||||||
$g_is=getimagesize($g_srcfile);
|
|
||||||
if($g_is[0] < $max_width && $g_is[1] < $max_height) {
|
|
||||||
$g_iw = $g_is[0];
|
|
||||||
$g_ih = $g_is[1];
|
|
||||||
} elseif(($g_is[0]-$max_width)>=($g_is[1]-$max_height)) {
|
|
||||||
$g_iw=$max_width;
|
|
||||||
$g_ih=($max_width/$g_is[0])*$g_is[1];
|
|
||||||
} else {
|
|
||||||
$g_ih=$max_height;
|
|
||||||
$g_iw=($g_ih/$g_is[1])*$g_is[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get mime type
|
|
||||||
list($type, $image_type) = explode('/',egw_vfs::mime_content_type($g_srcfile));
|
|
||||||
if($type != 'image') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($image_type) {
|
|
||||||
case 'png':
|
|
||||||
$img_src = imagecreatefrompng($g_srcfile);
|
|
||||||
break;
|
|
||||||
case 'jpg':
|
|
||||||
case 'jpeg':
|
|
||||||
$img_src = imagecreatefromjpeg($g_srcfile);
|
|
||||||
break;
|
|
||||||
case 'gif':
|
|
||||||
$img_src = imagecreatefromgif($g_srcfile);
|
|
||||||
break;
|
|
||||||
case 'bmp':
|
|
||||||
$img_src = imagecreatefromwbmp($g_srcfile);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!($gdVersion = gdVersion())) {
|
|
||||||
return false;
|
|
||||||
} elseif ($gdVersion >= 2) {
|
|
||||||
$img_dst=imagecreatetruecolor($g_iw,$g_ih);
|
|
||||||
imageSaveAlpha($img_dst, true);
|
|
||||||
$trans_color = imagecolorallocatealpha($img_dst, 0, 0, 0, 127);
|
|
||||||
imagefill($img_dst, 0, 0, $trans_color);
|
|
||||||
} else {
|
|
||||||
$img_dst = imagecreate($g_iw, $g_ih);
|
|
||||||
}
|
|
||||||
|
|
||||||
imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $g_iw, $g_ih, $g_is[0], $g_is[1]);
|
|
||||||
imagepng($img_dst, $g_dstfile);
|
|
||||||
return $return_data ? $img_dst : $g_dstfile;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get which version of GD is installed, if any.
|
|
||||||
*
|
|
||||||
* Returns the version (1 or 2) of the GD extension.
|
|
||||||
* Off the php manual page, thanks Hagan Fox
|
|
||||||
*/
|
|
||||||
function gdVersion($user_ver = 0)
|
|
||||||
{
|
|
||||||
if (! extension_loaded('gd')) { return; }
|
|
||||||
static $gd_ver = 0;
|
|
||||||
|
|
||||||
// Just accept the specified setting if it's 1.
|
|
||||||
if ($user_ver == 1) { $gd_ver = 1; return 1; }
|
|
||||||
|
|
||||||
// Use the static variable if function was called previously.
|
|
||||||
if ($user_ver !=2 && $gd_ver > 0 ) { return $gd_ver; }
|
|
||||||
|
|
||||||
// Use the gd_info() function if possible.
|
|
||||||
if (function_exists('gd_info')) {
|
|
||||||
$ver_info = gd_info();
|
|
||||||
preg_match('/\d/', $ver_info['GD Version'], $match);
|
|
||||||
$gd_ver = $match[0];
|
|
||||||
return $match[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
// If phpinfo() is disabled use a specified / fail-safe choice...
|
|
||||||
if (preg_match('/phpinfo/', ini_get('disable_functions'))) {
|
|
||||||
if ($user_ver == 2) {
|
|
||||||
$gd_ver = 2;
|
|
||||||
return 2;
|
|
||||||
} else {
|
|
||||||
$gd_ver = 1;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ...otherwise use phpinfo().
|
|
||||||
ob_start();
|
|
||||||
phpinfo(8);
|
|
||||||
$info = ob_get_contents();
|
|
||||||
ob_end_clean();
|
|
||||||
$info = stristr($info, 'gd version');
|
|
||||||
preg_match('/\d/', $info, $match);
|
|
||||||
$gd_ver = $match[0];
|
|
||||||
return $match[0];
|
|
||||||
}
|
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* eGroupWare - eTemplates for Application etemplate
|
* eGroupWare - eTemplates for Application etemplate
|
||||||
* http://www.egroupware.org
|
* http://www.egroupware.org
|
||||||
* generated by soetemplate::dump4setup() 2008-10-04 10:27
|
* generated by soetemplate::dump4setup() 2008-10-06 19:41
|
||||||
*
|
*
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
* @package etemplate
|
* @package etemplate
|
||||||
@ -195,9 +195,9 @@ $templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','l
|
|||||||
$templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:1:"D";s:10:",!@primary";s:2:"c1";s:3:"nmr";}i:1;a:4:{s:1:"A";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:17:"${row}[mime_icon]";}i:2;a:2:{s:4:"name";s:11:"${row}[app]";s:4:"type";s:5:"label";}}s:1:"B";a:4:{s:4:"size";s:6:"2,,0,0";s:4:"type";s:4:"hbox";i:1;a:5:{s:7:"no_lang";s:1:"1";s:4:"size";s:1:"2";s:4:"type";s:3:"box";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:17:"${row}[thumbnail]";}i:2;a:5:{s:7:"no_lang";s:1:"1";s:4:"name";s:13:"${row}[title]";s:4:"size";s:34:",@${row}[view],,,$row_cont[target]";s:4:"type";s:5:"label";s:4:"help";s:41:"view this linked entry in its application";}}i:2;a:4:{s:7:"no_lang";s:1:"1";s:4:"name";s:14:"${row}[remark]";s:4:"type";s:5:"label";s:4:"span";s:15:",note_following";}}s:1:"C";a:5:{s:5:"label";s:6:"Unlink";s:4:"name";s:26:"unlink[$row_cont[link_id]]";s:4:"type";s:6:"button";s:4:"size";s:10:"delete.png";s:4:"help";s:39:"Remove this link (not the entry itself)";}s:1:"D";a:4:{s:4:"name";s:7:"primary";s:4:"size";s:18:"$row_cont[link_id]";s:4:"type";s:5:"radio";s:4:"help";s:45:"Select a primary contact, to show in the list";}}}s:4:"cols";i:4;s:4:"rows";i:1;s:4:"size";s:12:",,,whiteback";}}','size' => ',,,whiteback','style' => '.whiteback { background: white; }
|
$templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:1:"D";s:10:",!@primary";s:2:"c1";s:3:"nmr";}i:1;a:4:{s:1:"A";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:17:"${row}[mime_icon]";}i:2;a:2:{s:4:"name";s:11:"${row}[app]";s:4:"type";s:5:"label";}}s:1:"B";a:4:{s:4:"size";s:6:"2,,0,0";s:4:"type";s:4:"hbox";i:1;a:5:{s:7:"no_lang";s:1:"1";s:4:"size";s:1:"2";s:4:"type";s:3:"box";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:17:"${row}[thumbnail]";}i:2;a:5:{s:7:"no_lang";s:1:"1";s:4:"name";s:13:"${row}[title]";s:4:"size";s:34:",@${row}[view],,,$row_cont[target]";s:4:"type";s:5:"label";s:4:"help";s:41:"view this linked entry in its application";}}i:2;a:4:{s:7:"no_lang";s:1:"1";s:4:"name";s:14:"${row}[remark]";s:4:"type";s:5:"label";s:4:"span";s:15:",note_following";}}s:1:"C";a:5:{s:5:"label";s:6:"Unlink";s:4:"name";s:26:"unlink[$row_cont[link_id]]";s:4:"type";s:6:"button";s:4:"size";s:10:"delete.png";s:4:"help";s:39:"Remove this link (not the entry itself)";}s:1:"D";a:4:{s:4:"name";s:7:"primary";s:4:"size";s:18:"$row_cont[link_id]";s:4:"type";s:5:"radio";s:4:"help";s:45:"Select a primary contact, to show in the list";}}}s:4:"cols";i:4;s:4:"rows";i:1;s:4:"size";s:12:",,,whiteback";}}','size' => ',,,whiteback','style' => '.whiteback { background: white; }
|
||||||
.note_following { font-style: italic; padding-left: 5px; }','modified' => '1192470162',);
|
.note_following { font-style: italic; padding-left: 5px; }','modified' => '1192470162',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','lang' => '','group' => '0','version' => '1.5.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:4:{s:2:"c1";s:3:"nmr";s:1:"E";s:10:",!@primary";s:1:"A";s:25:"20,@link_list_format=text";s:1:"B";s:24:",@link_list_format=icons";}i:1;a:5:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:4:"name";s:17:"${row}[mime_icon]";s:4:"span";s:17:",$row_cont[class]";s:5:"label";s:21:"$row_cont[mime_title]";}s:1:"B";a:2:{s:4:"name";s:11:"${row}[app]";s:4:"type";s:5:"label";}s:1:"C";a:4:{s:4:"size";s:6:"2,,0,0";s:4:"type";s:4:"hbox";i:1;a:5:{s:7:"no_lang";s:1:"1";s:4:"size";s:1:"2";s:4:"type";s:3:"box";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:17:"${row}[thumbnail]";}i:2;a:5:{s:7:"no_lang";s:1:"1";s:4:"name";s:13:"${row}[title]";s:4:"size";s:34:",@${row}[view],,,$row_cont[target]";s:4:"type";s:5:"label";s:4:"help";s:41:"view this linked entry in its application";}}i:2;a:4:{s:7:"no_lang";s:1:"1";s:4:"name";s:14:"${row}[remark]";s:4:"type";s:5:"label";s:4:"span";s:15:",note_following";}}s:1:"D";a:5:{s:5:"label";s:6:"Unlink";s:4:"name";s:26:"unlink[$row_cont[link_id]]";s:4:"type";s:6:"button";s:4:"size";s:10:"delete.png";s:4:"help";s:39:"Remove this link (not the entry itself)";}s:1:"E";a:4:{s:4:"name";s:7:"primary";s:4:"size";s:18:"$row_cont[link_id]";s:4:"type";s:5:"radio";s:4:"help";s:45:"Select a primary contact, to show in the list";}}}s:4:"cols";i:5;s:4:"rows";i:1;s:4:"size";s:12:",,,whiteback";}}','size' => ',,,whiteback','style' => '.whiteback { background: white; }
|
$templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','lang' => '','group' => '0','version' => '1.5.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:4:{s:2:"c1";s:3:"row";s:1:"A";s:25:"20,@link_list_format=text";s:1:"B";s:24:",@link_list_format=icons";s:1:"E";s:10:",!@primary";}i:1;a:5:{s:1:"A";a:2:{s:4:"type";s:8:"vfs-mime";s:4:"name";s:12:"${row}[icon]";}s:1:"B";a:2:{s:4:"name";s:11:"${row}[app]";s:4:"type";s:5:"label";}s:1:"C";a:4:{s:4:"size";s:6:"2,,0,0";s:4:"type";s:4:"hbox";i:1;a:5:{s:7:"no_lang";s:1:"1";s:4:"name";s:13:"${row}[title]";s:4:"size";s:34:",@${row}[view],,,$row_cont[target]";s:4:"type";s:5:"label";s:4:"help";s:41:"view this linked entry in its application";}i:2;a:4:{s:7:"no_lang";s:1:"1";s:4:"name";s:14:"${row}[remark]";s:4:"type";s:5:"label";s:4:"span";s:15:",note_following";}}s:1:"D";a:5:{s:5:"label";s:6:"Unlink";s:4:"name";s:26:"unlink[$row_cont[link_id]]";s:4:"type";s:6:"button";s:4:"size";s:10:"delete.png";s:4:"help";s:39:"Remove this link (not the entry itself)";}s:1:"E";a:4:{s:4:"name";s:7:"primary";s:4:"size";s:18:"$row_cont[link_id]";s:4:"type";s:5:"radio";s:4:"help";s:45:"Select a primary contact, to show in the list";}}}s:4:"cols";i:5;s:4:"rows";i:1;s:4:"size";s:12:",,,whiteback";}}','size' => ',,,whiteback','style' => '.whiteback { background: white; }
|
||||||
.note_following { font-style: italic; padding-left: 5px; }
|
.note_following { font-style: italic; padding-left: 5px; }
|
||||||
.mimeIcon img { height: 16px; }','modified' => '1192470162',);
|
','modified' => '1192470162',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'etemplate.link_widget.search','template' => '','lang' => '','group' => '0','version' => '1.0.0.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:5:{s:2:"c1";s:6:"row_on";s:2:"c3";s:7:"row_off";s:2:"h3";s:10:",@no_files";s:2:"c2";s:6:"row_on";s:2:"h2";s:6:",!@msg";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:5:"label";s:6:"Search";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"app";s:4:"help";s:26:"Select an App to search in";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"25";s:4:"name";s:5:"query";s:4:"help";s:22:"Enter a search pattern";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:6:"search";s:4:"help";s:30:"Click here to start the search";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"attach file";}s:1:"B";a:3:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Upload";s:4:"name";s:6:"upload";s:4:"help";s:29:"Click here to upload the file";}}}s:4:"rows";i:3;s:4:"cols";i:3;}}','size' => '','style' => '.error_msg { font-style: italic; color: red; }','modified' => '1113223869',);
|
$templ_data[] = array('name' => 'etemplate.link_widget.search','template' => '','lang' => '','group' => '0','version' => '1.0.0.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:5:{s:2:"c1";s:6:"row_on";s:2:"c3";s:7:"row_off";s:2:"h3";s:10:",@no_files";s:2:"c2";s:6:"row_on";s:2:"h2";s:6:",!@msg";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:5:"label";s:6:"Search";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"app";s:4:"help";s:26:"Select an App to search in";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"25";s:4:"name";s:5:"query";s:4:"help";s:22:"Enter a search pattern";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:6:"search";s:4:"help";s:30:"Click here to start the search";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"attach file";}s:1:"B";a:3:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Upload";s:4:"name";s:6:"upload";s:4:"help";s:29:"Click here to upload the file";}}}s:4:"rows";i:3;s:4:"cols";i:3;}}','size' => '','style' => '.error_msg { font-style: italic; color: red; }','modified' => '1113223869',);
|
||||||
|
|
||||||
|
@ -111,3 +111,10 @@
|
|||||||
.nm_num_rows select {
|
.nm_num_rows select {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vfsMode {
|
||||||
|
font-family: monospace; font-weight: bold;
|
||||||
|
}
|
||||||
|
.vfsMimeIcon img {
|
||||||
|
height: 16px;
|
||||||
|
}
|
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 140 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 230 B |
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1018 B After Width: | Height: | Size: 1018 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 909 B |
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 121 B |
Before Width: | Height: | Size: 695 B After Width: | Height: | Size: 695 B |
Before Width: | Height: | Size: 760 B After Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 805 B After Width: | Height: | Size: 805 B |
Before Width: | Height: | Size: 847 B After Width: | Height: | Size: 847 B |
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 544 B |
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 363 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
193
etemplate/thumbnail.php
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* eGroupWare - eTemplates
|
||||||
|
*
|
||||||
|
* @link http://www.egroupware.org
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
|
* @author Nathan Gray
|
||||||
|
* @package etemplate
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (isset($_GET['app']))
|
||||||
|
{
|
||||||
|
$app = $_GET['app'];
|
||||||
|
}
|
||||||
|
elseif(isset($_GET['path']))
|
||||||
|
{
|
||||||
|
list(,$apps,$app) = explode('/',$_GET['path']);
|
||||||
|
if ($apps !== 'apps') $app = 'filemanager';
|
||||||
|
}
|
||||||
|
if (!preg_match('/^[a-z0-9_-]+$/i',$app)) die('Stop'); // just to prevent someone doing nasty things
|
||||||
|
|
||||||
|
$GLOBALS['egw_info']['flags'] = array(
|
||||||
|
'currentapp' => $app,
|
||||||
|
'noheader' => true,
|
||||||
|
'nonavbar' => true
|
||||||
|
);
|
||||||
|
include ('../header.inc.php');
|
||||||
|
|
||||||
|
// strip slashes from _GET parameters, if someone still has magic_quotes_gpc on
|
||||||
|
if (get_magic_quotes_gpc() && $_GET)
|
||||||
|
{
|
||||||
|
$_GET = etemplate::array_stripslashes($_GET);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_GET['path']))
|
||||||
|
{
|
||||||
|
$g_srcfile = egw_vfs::PREFIX.$_GET['path'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$g_srcfile = egw_link::vfs_path($_GET['app'],$_GET['id'],$_GET['file']);
|
||||||
|
}
|
||||||
|
$g_dstfile = $GLOBALS['egw_info']['server']['temp_dir'] . '/egw-thumbs'.parse_url($g_srcfile,PHP_URL_PATH);
|
||||||
|
|
||||||
|
// Check for existing thumbnail
|
||||||
|
if(file_exists($g_dstfile) && filemtime($g_dstfile) >= filemtime($g_srcfile)) {
|
||||||
|
header('Content-Type: image/png');
|
||||||
|
readfile($g_dstfile);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$thumbnail = get_thumbnail($file, true);
|
||||||
|
|
||||||
|
if($thumbnail) {
|
||||||
|
header('Content-Type: image/png');
|
||||||
|
imagepng( $thumbnail );
|
||||||
|
imagedestroy($thumbnail);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Private function to get a thumbnail image for a linked image file.
|
||||||
|
*
|
||||||
|
* This function creates a thumbnail of the given image, if possible, and stores it in $GLOBALS['egw_info']['server']['temp_dir'].
|
||||||
|
* Returns the image, or false if the file could not be thumbnailed. Thumbnails are PNGs.
|
||||||
|
*
|
||||||
|
* @param array $file VFS File array to thumbnail
|
||||||
|
* @return image or false
|
||||||
|
*
|
||||||
|
* @author Nathan Gray
|
||||||
|
*/
|
||||||
|
function get_thumbnail($file, $return_data = true)
|
||||||
|
{
|
||||||
|
global $g_srcfile,$g_dstfile;
|
||||||
|
|
||||||
|
$max_width = $max_height = (string)$GLOBALS['egw_info']['server']['link_list_thumbnail'] == '' ? 32 :
|
||||||
|
$GLOBALS['egw_info']['server']['link_list_thumbnail'];
|
||||||
|
|
||||||
|
//error_log(__METHOD__."() src=$g_srcfile, dst=$g_dstfile, size=$max_width");
|
||||||
|
|
||||||
|
if($max_width == 0) {
|
||||||
|
// thumbnailing disabled
|
||||||
|
return false;
|
||||||
|
} elseif( !gdVersion() ) {
|
||||||
|
// GD disabled or not installed
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quality
|
||||||
|
$g_imgcomp=55;
|
||||||
|
|
||||||
|
$dst_dir = dirname($g_dstfile);
|
||||||
|
// files dont exist, if you have no access permission
|
||||||
|
if((file_exists($dst_dir) || mkdir($dst_dir, 0700, true)) && file_exists($g_srcfile)) {
|
||||||
|
$g_is=getimagesize($g_srcfile);
|
||||||
|
if($g_is[0] < $max_width && $g_is[1] < $max_height) {
|
||||||
|
$g_iw = $g_is[0];
|
||||||
|
$g_ih = $g_is[1];
|
||||||
|
} elseif(($g_is[0]-$max_width)>=($g_is[1]-$max_height)) {
|
||||||
|
$g_iw=$max_width;
|
||||||
|
$g_ih=($max_width/$g_is[0])*$g_is[1];
|
||||||
|
} else {
|
||||||
|
$g_ih=$max_height;
|
||||||
|
$g_iw=($g_ih/$g_is[1])*$g_is[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get mime type
|
||||||
|
list($type, $image_type) = explode('/',egw_vfs::mime_content_type($g_srcfile));
|
||||||
|
if($type != 'image') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($image_type) {
|
||||||
|
case 'png':
|
||||||
|
$img_src = imagecreatefrompng($g_srcfile);
|
||||||
|
break;
|
||||||
|
case 'jpg':
|
||||||
|
case 'jpeg':
|
||||||
|
$img_src = imagecreatefromjpeg($g_srcfile);
|
||||||
|
break;
|
||||||
|
case 'gif':
|
||||||
|
$img_src = imagecreatefromgif($g_srcfile);
|
||||||
|
break;
|
||||||
|
case 'bmp':
|
||||||
|
$img_src = imagecreatefromwbmp($g_srcfile);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!($gdVersion = gdVersion())) {
|
||||||
|
return false;
|
||||||
|
} elseif ($gdVersion >= 2) {
|
||||||
|
$img_dst=imagecreatetruecolor($g_iw,$g_ih);
|
||||||
|
imageSaveAlpha($img_dst, true);
|
||||||
|
$trans_color = imagecolorallocatealpha($img_dst, 0, 0, 0, 127);
|
||||||
|
imagefill($img_dst, 0, 0, $trans_color);
|
||||||
|
} else {
|
||||||
|
$img_dst = imagecreate($g_iw, $g_ih);
|
||||||
|
}
|
||||||
|
|
||||||
|
imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $g_iw, $g_ih, $g_is[0], $g_is[1]);
|
||||||
|
imagepng($img_dst, $g_dstfile);
|
||||||
|
return $return_data ? $img_dst : $g_dstfile;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get which version of GD is installed, if any.
|
||||||
|
*
|
||||||
|
* Returns the version (1 or 2) of the GD extension.
|
||||||
|
* Off the php manual page, thanks Hagan Fox
|
||||||
|
*/
|
||||||
|
function gdVersion($user_ver = 0)
|
||||||
|
{
|
||||||
|
if (! extension_loaded('gd')) { return; }
|
||||||
|
static $gd_ver = 0;
|
||||||
|
|
||||||
|
// Just accept the specified setting if it's 1.
|
||||||
|
if ($user_ver == 1) { $gd_ver = 1; return 1; }
|
||||||
|
|
||||||
|
// Use the static variable if function was called previously.
|
||||||
|
if ($user_ver !=2 && $gd_ver > 0 ) { return $gd_ver; }
|
||||||
|
|
||||||
|
// Use the gd_info() function if possible.
|
||||||
|
if (function_exists('gd_info')) {
|
||||||
|
$ver_info = gd_info();
|
||||||
|
preg_match('/\d/', $ver_info['GD Version'], $match);
|
||||||
|
$gd_ver = $match[0];
|
||||||
|
return $match[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// If phpinfo() is disabled use a specified / fail-safe choice...
|
||||||
|
if (preg_match('/phpinfo/', ini_get('disable_functions'))) {
|
||||||
|
if ($user_ver == 2) {
|
||||||
|
$gd_ver = 2;
|
||||||
|
return 2;
|
||||||
|
} else {
|
||||||
|
$gd_ver = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ...otherwise use phpinfo().
|
||||||
|
ob_start();
|
||||||
|
phpinfo(8);
|
||||||
|
$info = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
$info = stristr($info, 'gd version');
|
||||||
|
preg_match('/\d/', $info, $match);
|
||||||
|
$gd_ver = $match[0];
|
||||||
|
return $match[0];
|
||||||
|
}
|
@ -37,7 +37,7 @@ class filemanager_hooks
|
|||||||
$title = $GLOBALS['egw_info']['apps'][self::$appname]['title'] . ' '. lang('Menu');
|
$title = $GLOBALS['egw_info']['apps'][self::$appname]['title'] . ' '. lang('Menu');
|
||||||
$file = array(
|
$file = array(
|
||||||
'Your home directory' => $GLOBALS['egw']->link('/index.php',array('menuaction'=>self::$appname.'.filemanager_ui.index','path'=>$homepath)),
|
'Your home directory' => $GLOBALS['egw']->link('/index.php',array('menuaction'=>self::$appname.'.filemanager_ui.index','path'=>$homepath)),
|
||||||
'Home directories' => $GLOBALS['egw']->link('/index.php',array('menuaction'=>self::$appname.'.filemanager_ui.index','path'=>$basepath)),
|
'User and groups' => $GLOBALS['egw']->link('/index.php',array('menuaction'=>self::$appname.'.filemanager_ui.index','path'=>$basepath)),
|
||||||
);
|
);
|
||||||
if (!empty($file_prefs['showbase']) && $file_prefs['showbase']=='yes')
|
if (!empty($file_prefs['showbase']) && $file_prefs['showbase']=='yes')
|
||||||
{
|
{
|
||||||
@ -71,9 +71,12 @@ class filemanager_hooks
|
|||||||
'Site Configuration' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiconfig.index&appname='.self::$appname),
|
'Site Configuration' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiconfig.index&appname='.self::$appname),
|
||||||
'Custom fields' => $GLOBALS['egw']->link('/index.php','menuaction=admin.customfields.edit&appname='.self::$appname),
|
'Custom fields' => $GLOBALS['egw']->link('/index.php','menuaction=admin.customfields.edit&appname='.self::$appname),
|
||||||
);
|
);
|
||||||
if ($location == 'admin') {
|
if ($location == 'admin')
|
||||||
|
{
|
||||||
display_section(self::$appname,$file);
|
display_section(self::$appname,$file);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
display_sidebox(self::$appname,lang('Admin'),$file);
|
display_sidebox(self::$appname,lang('Admin'),$file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -86,7 +89,9 @@ class filemanager_hooks
|
|||||||
if ($location == 'preferences')
|
if ($location == 'preferences')
|
||||||
{
|
{
|
||||||
display_section(self::$appname,$file);
|
display_section(self::$appname,$file);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
display_sidebox(self::$appname,lang('Preferences'),$file);
|
display_sidebox(self::$appname,lang('Preferences'),$file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,29 +119,17 @@ class filemanager_hooks
|
|||||||
'name' => 'showbase',
|
'name' => 'showbase',
|
||||||
'values' => $yes_no,
|
'values' => $yes_no,
|
||||||
'label' => lang('Show link to filemanagers basedirectory (/) in side box menu?'),
|
'label' => lang('Show link to filemanagers basedirectory (/) in side box menu?'),
|
||||||
'help' => lang('Default behavior is NO. The link will not be shown, but you are still able to navigate to this location,
|
'help' => lang('Default behavior is NO. The link will not be shown, but you are still able to navigate to this location, or configure this paricular location as startfolder or folderlink.'),
|
||||||
or configure this paricular location as startfolder or folderlink.'),
|
|
||||||
'xmlrpc' => True,
|
|
||||||
'amin' => False
|
|
||||||
),
|
|
||||||
'alwayssortfolderstotop' => array(
|
|
||||||
'type' => 'select',
|
|
||||||
'name' => 'alwayssortfolderstotop',
|
|
||||||
'values' => $yes_no,
|
|
||||||
'label' => lang('Sort folders always to the top?'),
|
|
||||||
'help' => lang('Default behavior is NO. If you set this to YES, folders will always appear at the top of the list,
|
|
||||||
no matter what you sort by. It will slow your mustang down as well.'),
|
|
||||||
'xmlrpc' => True,
|
'xmlrpc' => True,
|
||||||
'amin' => False
|
'amin' => False
|
||||||
),
|
),
|
||||||
'startfolder' => array(
|
'startfolder' => array(
|
||||||
'type' => 'input',
|
'type' => 'input',
|
||||||
'name' => 'startfolder',
|
'name' => 'startfolder',
|
||||||
'size' => 80,
|
'size' => 60,
|
||||||
'default' => '',
|
'default' => '',
|
||||||
'label' => lang('Enter the complete VFS path to specify your desired start folder.'),
|
'label' => lang('Enter the complete VFS path to specify your desired start folder.'),
|
||||||
'help' => lang('If you leave this empty, the path does not exist or the user does not have permission to access the specified folder,
|
'help' => lang('The default start folder is your personal Folder. The default is used, if you leave this empty, the path does not exist or you lack the neccessary access permissions.'),
|
||||||
the users startfolder will default to the users home folder.'),
|
|
||||||
'xmlrpc' => True,
|
'xmlrpc' => True,
|
||||||
'amin' => False
|
'amin' => False
|
||||||
),
|
),
|
||||||
@ -150,21 +143,18 @@ class filemanager_hooks
|
|||||||
# 'admin' => False
|
# 'admin' => False
|
||||||
# ),
|
# ),
|
||||||
);
|
);
|
||||||
for ($i=1;$i<=self::$foldercount;$i++) {
|
for ($i=1; $i <= self::$foldercount; $i++)
|
||||||
|
{
|
||||||
$GLOBALS['settings']['folderlink'.$i] = array(
|
$GLOBALS['settings']['folderlink'.$i] = array(
|
||||||
'type' => 'input',
|
'type' => 'input',
|
||||||
'name' => 'folderlink'.$i,
|
'name' => 'folderlink'.$i,
|
||||||
'size' => 80,
|
'size' => 60,
|
||||||
'default' => '',
|
'default' => '',
|
||||||
'label' => lang('Enter the complete VFS path to specify a fast access link to a folder').' ('.$i.').',
|
'label' => lang('Enter the complete VFS path to specify a fast access link to a folder').' ('.$i.').',
|
||||||
'help' => lang('If you leave this empty, the path does not exist or the user does not have permission to access the specified folder,
|
|
||||||
the link will lead the user to the start folder or users home folder (if the startfolder is either not configured, or
|
|
||||||
not available to the user).'),
|
|
||||||
'xmlrpc' => True,
|
'xmlrpc' => True,
|
||||||
'amin' => False
|
'amin' => False
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,8 @@ class filemanager_ui
|
|||||||
|
|
||||||
$sel_options['filter'] = array(
|
$sel_options['filter'] = array(
|
||||||
'1' => 'Current directory',
|
'1' => 'Current directory',
|
||||||
'' => 'All subdirectories',
|
'2' => 'Directories sorted in',
|
||||||
|
'' => 'Files from subdirectories',
|
||||||
);
|
);
|
||||||
$tpl->exec('filemanager.filemanager_ui.index',$content,$sel_options,$readonlys,array('nm' => $content['nm']));
|
$tpl->exec('filemanager.filemanager_ui.index',$content,$sel_options,$readonlys,array('nm' => $content['nm']));
|
||||||
}
|
}
|
||||||
@ -402,118 +403,31 @@ class filemanager_ui
|
|||||||
{
|
{
|
||||||
$namefilter = '/'.str_replace(array('\\?','\\*'),array('.{1}','.*'),preg_quote($query['search'])).'/i';
|
$namefilter = '/'.str_replace(array('\\?','\\*'),array('.{1}','.*'),preg_quote($query['search'])).'/i';
|
||||||
}
|
}
|
||||||
// if you want to have the folders on top, we must search for them first
|
foreach(egw_vfs::find($query['path'],array(
|
||||||
if ($GLOBALS['egw_info']['user']['preferences']['filemanager']['alwayssortfolderstotop']=='yes') {
|
'mindepth' => 1,
|
||||||
$dirs = array();
|
'maxdepth' => $query['filter'] ? (int)(boolean)$query['filter'] : null,
|
||||||
$files = array();
|
'dirsontop' => $query['filter'] <= 1,
|
||||||
foreach(egw_vfs::find($query['path'],array(
|
'type' => $query['filter'] ? null : 'f',
|
||||||
'type'=>'d',
|
'order' => $query['order'], 'sort' => $query['sort'],
|
||||||
'mindepth' => 1,
|
'limit' => (int)$query['num_rows'].','.(int)$query['start'],
|
||||||
'maxdepth' => $query['filter'] ? $query['filter'] : null,
|
'need_mime' => true,
|
||||||
'order' => $query['order'], 'sort' => $query['sort'],
|
'name_preg' => $namefilter,
|
||||||
'limit' => (int)$query['num_rows'].','.(int)$query['start'],
|
),true) as $path => $row)
|
||||||
'need_mime' => true,
|
|
||||||
'name_preg' => $namefilter,
|
|
||||||
),true) as $path => $row)
|
|
||||||
{
|
|
||||||
$row['icon'] = egw_vfs::mime_icon($row['mime']);
|
|
||||||
$row['perms'] = egw_vfs::int2mode($row['mode']);
|
|
||||||
// only show link if we have access to the file or dir
|
|
||||||
if (egw_vfs::check_access($path,egw_vfs::READABLE)) $row['link'] = '/index.php?menuaction=filemanager.filemanager_ui.index&path='.$path;
|
|
||||||
$row['user'] = $row['uid'] ? $GLOBALS['egw']->accounts->id2name($row['uid']) : 'root';
|
|
||||||
$row['group'] = $row['gid'] ? $GLOBALS['egw']->accounts->id2name(-$row['gid']) : 'root';
|
|
||||||
$row['hsize'] = egw_vfs::hsize($row['size']);
|
|
||||||
|
|
||||||
$dirs[] = $row;
|
|
||||||
|
|
||||||
$dir = dirname($path);
|
|
||||||
if (!isset($dir_is_writable[$dir])) $dir_is_writable[$dir] = egw_vfs::is_writable($dir);
|
|
||||||
if (!$dir_is_writable[$dir]) $readonlys["delete[$path]"] = true; // no rights to delete the file
|
|
||||||
|
|
||||||
}
|
|
||||||
$numofdirs = egw_vfs::$find_total;
|
|
||||||
$dirsretrieved = count($dirs);
|
|
||||||
#echo "Dirs found:$numofdirs<br>"."Rows to query:".(int)$query['num_rows']." Start at:".(int)$query['start']."<br>";
|
|
||||||
$filesdontshowjet = 0;
|
|
||||||
if ($dirsretrieved >= (int)$query['num_rows']) {
|
|
||||||
$filesdontshowjet =1;
|
|
||||||
}
|
|
||||||
// retrieve the files as well, since we need the total number of the search/listing
|
|
||||||
$numofrows = (int)$query['num_rows'] - $dirsretrieved;
|
|
||||||
$startatrow = 0;
|
|
||||||
if ($filesdontshowjet == 0 && (int)$query['start'] > $numofdirs) $startatrow = (int)$query['start']-$numofdirs;
|
|
||||||
#echo "Filessection:Dirs retrieved:$dirsretrieved<br>"."Rows to query:".$numofrows." Start at:".$startatrow."<br>";
|
|
||||||
foreach(egw_vfs::find($query['path'],array(
|
|
||||||
'type'=>'f',
|
|
||||||
'mindepth' => 1,
|
|
||||||
'maxdepth' => $query['filter'] ? $query['filter'] : null,
|
|
||||||
'order' => $query['order'], 'sort' => $query['sort'],
|
|
||||||
'limit' => $numofrows.','.$startatrow,
|
|
||||||
'need_mime' => true,
|
|
||||||
'name_preg' => $namefilter,
|
|
||||||
),true) as $path => $row)
|
|
||||||
{
|
|
||||||
$row['icon'] = egw_vfs::mime_icon($row['mime']);
|
|
||||||
$row['perms'] = egw_vfs::int2mode($row['mode']);
|
|
||||||
// only show link if we have access to the file or dir
|
|
||||||
if (egw_vfs::check_access($path,egw_vfs::READABLE)) $row['link'] = egw_vfs::download_url($path);
|
|
||||||
$row['user'] = $row['uid'] ? $GLOBALS['egw']->accounts->id2name($row['uid']) : 'root';
|
|
||||||
$row['group'] = $row['gid'] ? $GLOBALS['egw']->accounts->id2name(-$row['gid']) : 'root';
|
|
||||||
$row['hsize'] = egw_vfs::hsize($row['size']);
|
|
||||||
|
|
||||||
if ($filesdontshowjet == 0) $files[] = $row;
|
|
||||||
|
|
||||||
$dir = dirname($path);
|
|
||||||
if (!isset($dir_is_writable[$dir])) $dir_is_writable[$dir] = egw_vfs::is_writable($dir);
|
|
||||||
if (!$dir_is_writable[$dir]) $readonlys["delete[$path]"] = true; // no rights to delete the file
|
|
||||||
}
|
|
||||||
$numoffiles = egw_vfs::$find_total;
|
|
||||||
$rows = array_merge($dirs,$files);
|
|
||||||
//_debug_array($readonlys);
|
|
||||||
return egw_vfs::$find_total = $numofdirs + $numoffiles;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
foreach(egw_vfs::find($query['path'],array(
|
$row['icon'] = egw_vfs::mime_icon($row['mime']);
|
||||||
'mindepth' => 1,
|
|
||||||
'maxdepth' => $query['filter'] ? $query['filter'] : null,
|
//echo $path; _debug_array($row);
|
||||||
'order' => $query['order'], 'sort' => $query['sort'],
|
$rows[++$n] = $row;
|
||||||
'limit' => (int)$query['num_rows'].','.(int)$query['start'],
|
$path2n[$path] = $n;
|
||||||
'need_mime' => true,
|
|
||||||
'name_preg' => $namefilter,
|
$dir = dirname($path);
|
||||||
),true) as $path => $row)
|
if (!isset($dir_is_writable[$dir]))
|
||||||
{
|
{
|
||||||
$row['icon'] = egw_vfs::mime_icon($row['mime']);
|
$dir_is_writable[$dir] = egw_vfs::is_writable($dir);
|
||||||
$row['perms'] = egw_vfs::int2mode($row['mode']);
|
}
|
||||||
// only show link if we have access to the file or dir
|
if (!$dir_is_writable[$dir])
|
||||||
if (egw_vfs::check_access($path,egw_vfs::READABLE))
|
{
|
||||||
{
|
$readonlys["delete[$path]"] = true; // no rights to delete the file
|
||||||
if ($row['mime'] == egw_vfs::DIR_MIME_TYPE)
|
|
||||||
{
|
|
||||||
$row['link'] = '/index.php?menuaction=filemanager.filemanager_ui.index&path='.$path;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$row['link'] = egw_vfs::download_url($path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$row['user'] = $row['uid'] ? $GLOBALS['egw']->accounts->id2name($row['uid']) : 'root';
|
|
||||||
$row['group'] = $row['gid'] ? $GLOBALS['egw']->accounts->id2name(-$row['gid']) : 'root';
|
|
||||||
$row['hsize'] = egw_vfs::hsize($row['size']);
|
|
||||||
|
|
||||||
//echo $path; _debug_array($row);
|
|
||||||
$rows[++$n] = $row;
|
|
||||||
$path2n[$path] = $n;
|
|
||||||
|
|
||||||
$dir = dirname($path);
|
|
||||||
if (!isset($dir_is_writable[$dir]))
|
|
||||||
{
|
|
||||||
$dir_is_writable[$dir] = egw_vfs::is_writable($dir);
|
|
||||||
}
|
|
||||||
if (!$dir_is_writable[$dir])
|
|
||||||
{
|
|
||||||
$readonlys["delete[$path]"] = true; // no rights to delete the file
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// query comments and cf's for the displayed rows
|
// query comments and cf's for the displayed rows
|
||||||
|
@ -14,8 +14,7 @@ accessrights filemanager de Zugangsberechtigungen
|
|||||||
acl added. filemanager de Zugrifsrecht hinzugefügt.
|
acl added. filemanager de Zugrifsrecht hinzugefügt.
|
||||||
acl deleted. filemanager de Zugrifsrecht gelöscht.
|
acl deleted. filemanager de Zugrifsrecht gelöscht.
|
||||||
actions filemanager de Befehle
|
actions filemanager de Befehle
|
||||||
all subdirectories filemanager de Alle Unterverzeichnisse
|
allow a maximum of the above configured folderlinks to be configured in settings admin de erlaube das oben eingestellte Maximum an Einstellunge für Verzeichnisverweise
|
||||||
allow a maximum of the above configured folderlinks to be configured in settings admin de erlaube das oben eingestellte Maximum an Konfigurationsoptionen im Setting für Links zu Verzeichnissen
|
|
||||||
and all it's childeren filemanager de und alle seine Kinder
|
and all it's childeren filemanager de und alle seine Kinder
|
||||||
basedirectory filemanager de Basisverzeichnis
|
basedirectory filemanager de Basisverzeichnis
|
||||||
cancel editing %1 without saving filemanager de Beende das Bearbeiten von %1 ohne zu Speichern
|
cancel editing %1 without saving filemanager de Beende das Bearbeiten von %1 ohne zu Speichern
|
||||||
@ -46,8 +45,10 @@ created directory %1 filemanager de Verzeichis %1 erstellt
|
|||||||
current directory filemanager de Aktuelles Verzeichnis
|
current directory filemanager de Aktuelles Verzeichnis
|
||||||
cut filemanager de Ausschneiden
|
cut filemanager de Ausschneiden
|
||||||
cut to clipboard filemanager de Ausschneiden in die Zwischenablage
|
cut to clipboard filemanager de Ausschneiden in die Zwischenablage
|
||||||
|
default behavior is no. the link will not be shown, but you are still able to navigate to this location, or configure this paricular location as startfolder or folderlink. filemanager de Vorgabe is NEIN. Der Verweis wird nicht angezeit, Sie können aber immer zu diesem Verzeichnis navigieren, oder Sie konfigurieren das Verzeichnis als Startverzeichnis oder als Verzeichnisverweis.
|
||||||
delete this file or directory filemanager de Datei oder Verzeichnis löschen
|
delete this file or directory filemanager de Datei oder Verzeichnis löschen
|
||||||
deleted %1 filemanager de %1 gelöscht
|
deleted %1 filemanager de %1 gelöscht
|
||||||
|
directories sorted in filemanager de Verzeichnisse einsortiert
|
||||||
directory filemanager de Verzeichnis
|
directory filemanager de Verzeichnis
|
||||||
directory %1 already exists filemanager de Verzeichnis %1 existiert bereits
|
directory %1 already exists filemanager de Verzeichnis %1 existiert bereits
|
||||||
directory %1 does not exist filemanager de Verzeichnis %1 existiert nicht
|
directory %1 does not exist filemanager de Verzeichnis %1 existiert nicht
|
||||||
@ -58,8 +59,8 @@ display of content filemanager de Anzeigen des Inhaltes
|
|||||||
download filemanager de Herunterladen
|
download filemanager de Herunterladen
|
||||||
edit comments filemanager de Kommentare bearbeiten
|
edit comments filemanager de Kommentare bearbeiten
|
||||||
edit settings filemanager de Einstellungen bearbeiten
|
edit settings filemanager de Einstellungen bearbeiten
|
||||||
enter the complete vfs path to specify a fast access link to a folder filemanager de Geben Sie den kompletten VFS Pfad ein, um einen Link zu diesem Ordner im Seitenmenu zu erzeugen
|
enter the complete vfs path to specify a fast access link to a folder filemanager de Geben Sie den kompletten VFS Pfad ein, um einen Verweis zu diesem Ordner im Seitenmenu zu erzeugen
|
||||||
enter the complete vfs path to specify your desired start folder. filemanager de Geben Sie den kompletten VFS Pfad zu Ihrem gewünschten Anfangs/Startverzeichnis ein
|
enter the complete vfs path to specify your desired start folder. filemanager de Geben Sie den kompletten VFS Pfad zu Ihrem gewünschten Anfangsverzeichnis ein
|
||||||
error adding the acl! filemanager de Fehler beim Hinzufügen des Zugriffsrechts!
|
error adding the acl! filemanager de Fehler beim Hinzufügen des Zugriffsrechts!
|
||||||
error deleting the acl entry! filemanager de Fehler beim Löschen des Zugriffsrechts!
|
error deleting the acl entry! filemanager de Fehler beim Löschen des Zugriffsrechts!
|
||||||
error uploading file! filemanager de Fehler beim Hochladen der Datei!
|
error uploading file! filemanager de Fehler beim Hochladen der Datei!
|
||||||
@ -77,6 +78,7 @@ file or directory not found! filemanager de Datei oder Verzeichnis nicht gefunde
|
|||||||
file successful uploaded. filemanager de Datei erfolgreich hochgeladen.
|
file successful uploaded. filemanager de Datei erfolgreich hochgeladen.
|
||||||
filemanager common de Dateimanager
|
filemanager common de Dateimanager
|
||||||
filemanager configuration admin de Dateimanager Konfiguration
|
filemanager configuration admin de Dateimanager Konfiguration
|
||||||
|
files from subdirectories filemanager de Dateien von Unterverzeichnissen
|
||||||
files in this directory filemanager de Dateien in diesem Verzeichnis
|
files in this directory filemanager de Dateien in diesem Verzeichnis
|
||||||
folder up filemanager de darüberliegendes Verzeichnis
|
folder up filemanager de darüberliegendes Verzeichnis
|
||||||
general filemanager de Allgemein
|
general filemanager de Allgemein
|
||||||
@ -84,7 +86,6 @@ go home filemanager de Heimatverzeichnis
|
|||||||
go to filemanager de Gehe zu
|
go to filemanager de Gehe zu
|
||||||
go to your home directory filemanager de Zu Ihrem Heimverzeichnis wechseln
|
go to your home directory filemanager de Zu Ihrem Heimverzeichnis wechseln
|
||||||
go up filemanager de in das darüber liegende Verzeichnis wechseln
|
go up filemanager de in das darüber liegende Verzeichnis wechseln
|
||||||
home directories filemanager de Persönliche Verzeichnisse
|
|
||||||
id filemanager de Id
|
id filemanager de Id
|
||||||
inherited filemanager de Geerbt
|
inherited filemanager de Geerbt
|
||||||
link %1: %2 filemanager de %1. Verknüpfung: %2
|
link %1: %2 filemanager de %1. Verknüpfung: %2
|
||||||
@ -134,18 +135,19 @@ select file to upload in current directory filemanager de Datei zum hochladen in
|
|||||||
show filemanager de Zeige
|
show filemanager de Zeige
|
||||||
show link to filemanagers basedirectory (/) in side box menu? filemanager de Zeige die Verknüpfung zum Basisverzeichnis (/) des Dateimanagers im Seitenmenu?
|
show link to filemanagers basedirectory (/) in side box menu? filemanager de Zeige die Verknüpfung zum Basisverzeichnis (/) des Dateimanagers im Seitenmenu?
|
||||||
size filemanager de Größe
|
size filemanager de Größe
|
||||||
sort folders always to the top? filemanager de Sortiere Verzeichnisse immer an den Anfang der Verzeichnisansicht
|
|
||||||
start search filemanager de Suche starten
|
start search filemanager de Suche starten
|
||||||
|
the default start folder is your personal folder. the default is used, if you leave this empty, the path does not exist or you lack the neccessary access permissions. filemanager de Die Vorgabe für das Anfangsverzeichnis ist Ihr perönlicher Ordner. Die Vorgabe wird benutzt, wenn Sie hier nichts eintragen, der Pfad nicht existiert oder Ihnen die notwending Zugriffsrechte fehlen.
|
||||||
the requested path %1 is not available. filemanager de Der angeforderte Verzeichnispfad %1 steht nicht zur Verfügung.
|
the requested path %1 is not available. filemanager de Der angeforderte Verzeichnispfad %1 steht nicht zur Verfügung.
|
||||||
total files filemanager de Gesamtanzahl Dateien
|
total files filemanager de Gesamtanzahl Dateien
|
||||||
unused space filemanager de Nicht benutzter Platz
|
unused space filemanager de Nicht benutzter Platz
|
||||||
up filemanager de Nach oben
|
up filemanager de Nach oben
|
||||||
updated comment for %1 filemanager de Kommentar für %1 aktualisiert
|
updated comment for %1 filemanager de Kommentar für %1 aktualisiert
|
||||||
used space filemanager de Benutzter Platz
|
used space filemanager de Benutzter Platz
|
||||||
|
users and groups filemanager de Benutzer und Gruppen
|
||||||
you do not have access to %1 filemanager de Sie besitzen keine Zugriffsrechte für %1
|
you do not have access to %1 filemanager de Sie besitzen keine Zugriffsrechte für %1
|
||||||
you need to select an owner! filemanager de Sie müssen einen Eigentümer auswählen!
|
you need to select an owner! filemanager de Sie müssen einen Eigentümer auswählen!
|
||||||
you need to select some files first! filemanager de Sie müssen zuerst die Dateien auswählen!
|
you need to select some files first! filemanager de Sie müssen zuerst die Dateien auswählen!
|
||||||
you will be redirected to your home directory. filemanager de Sie werden zu Ihrem Heimatverzeichnis geleitet
|
you will be redirected to your home directory. filemanager de Sie werden zu Ihrem Heimatverzeichnis geleitet
|
||||||
you will be redirected to your start folder. filemanager de Sie werden zu Ihrem Anfangs/Startverzeichnis geleitet
|
you will be redirected to your start folder. filemanager de Sie werden zu Ihrem Anfangs/Startverzeichnis geleitet
|
||||||
your home dir did not exist, egroupware created a new one. filemanager de Ihr Heimatverzeichnis hat nicht existiert. eGroupware hat ein neues für Sie angelegt
|
your home dir did not exist, egroupware created a new one. filemanager de Ihr Heimatverzeichnis hat nicht existiert. eGroupware hat ein neues für Sie angelegt.
|
||||||
your home directory filemanager de Ihr persönliches Verzeichnis
|
your home directory filemanager de Ihr persönliches Verzeichnis
|
||||||
|
@ -14,7 +14,6 @@ accessrights filemanager en Accessrights
|
|||||||
acl added. filemanager en ACL added.
|
acl added. filemanager en ACL added.
|
||||||
acl deleted. filemanager en ACL deleted.
|
acl deleted. filemanager en ACL deleted.
|
||||||
actions filemanager en Actions
|
actions filemanager en Actions
|
||||||
all subdirectories filemanager en All subdirectories
|
|
||||||
allow a maximum of the above configured folderlinks to be configured in settings admin en allow a maximum of the above configured folderlinks to be configured in settings
|
allow a maximum of the above configured folderlinks to be configured in settings admin en allow a maximum of the above configured folderlinks to be configured in settings
|
||||||
and all it's childeren filemanager en and all it's childeren
|
and all it's childeren filemanager en and all it's childeren
|
||||||
basedirectory filemanager en Basedirectory
|
basedirectory filemanager en Basedirectory
|
||||||
@ -46,8 +45,10 @@ created directory %1 filemanager en Created directory %1
|
|||||||
current directory filemanager en Current directory
|
current directory filemanager en Current directory
|
||||||
cut filemanager en cut
|
cut filemanager en cut
|
||||||
cut to clipboard filemanager en Cut to clipboard
|
cut to clipboard filemanager en Cut to clipboard
|
||||||
|
default behavior is no. the link will not be shown, but you are still able to navigate to this location, or configure this paricular location as startfolder or folderlink. filemanager en Default behavior is NO. The link will not be shown, but you are still able to navigate to this location, or configure this paricular location as startfolder or folderlink.
|
||||||
delete this file or directory filemanager en Delete this file or directory
|
delete this file or directory filemanager en Delete this file or directory
|
||||||
deleted %1 filemanager en Deleted %1
|
deleted %1 filemanager en Deleted %1
|
||||||
|
directories sorted in filemanager en Directories sorted in
|
||||||
directory filemanager en Directory
|
directory filemanager en Directory
|
||||||
directory %1 already exists filemanager en Directory %1 already exists
|
directory %1 already exists filemanager en Directory %1 already exists
|
||||||
directory %1 does not exist filemanager en Directory %1 does not exist
|
directory %1 does not exist filemanager en Directory %1 does not exist
|
||||||
@ -77,6 +78,7 @@ file or directory not found! filemanager en File or directory not found!
|
|||||||
file successful uploaded. filemanager en File successful uploaded.
|
file successful uploaded. filemanager en File successful uploaded.
|
||||||
filemanager common en Filemanager
|
filemanager common en Filemanager
|
||||||
filemanager configuration admin en filemanager configuration
|
filemanager configuration admin en filemanager configuration
|
||||||
|
files from subdirectories filemanager en Files from subdirectories
|
||||||
files in this directory filemanager en Files in this directory
|
files in this directory filemanager en Files in this directory
|
||||||
folder up filemanager en Folder Up
|
folder up filemanager en Folder Up
|
||||||
general filemanager en General
|
general filemanager en General
|
||||||
@ -84,7 +86,6 @@ go home filemanager en go home
|
|||||||
go to filemanager en Go to
|
go to filemanager en Go to
|
||||||
go to your home directory filemanager en Go to your home directory
|
go to your home directory filemanager en Go to your home directory
|
||||||
go up filemanager en go up
|
go up filemanager en go up
|
||||||
home directories filemanager en Home directories
|
|
||||||
id filemanager en Id
|
id filemanager en Id
|
||||||
inherited filemanager en Inherited
|
inherited filemanager en Inherited
|
||||||
link %1: %2 filemanager en Link %1: %2
|
link %1: %2 filemanager en Link %1: %2
|
||||||
@ -134,14 +135,15 @@ select file to upload in current directory filemanager en Select file to upload
|
|||||||
show filemanager en Show
|
show filemanager en Show
|
||||||
show link to filemanagers basedirectory (/) in side box menu? filemanager en Show link to filemanagers basedirectory (/) in side box menu?
|
show link to filemanagers basedirectory (/) in side box menu? filemanager en Show link to filemanagers basedirectory (/) in side box menu?
|
||||||
size filemanager en Size
|
size filemanager en Size
|
||||||
sort folders always to the top? filemanager en Sort folders always to the top?
|
|
||||||
start search filemanager en start search
|
start search filemanager en start search
|
||||||
|
the default start folder is your personal folder. the default is used, if you leave this empty, the path does not exist or you lack the neccessary access permissions. filemanager en The default start folder is your personal Folder. The default is used, if you leave this empty, the path does not exist or you lack the neccessary access permissions.
|
||||||
the requested path %1 is not available. filemanager en The requested path %1 is not available.
|
the requested path %1 is not available. filemanager en The requested path %1 is not available.
|
||||||
total files filemanager en Total Files
|
total files filemanager en Total Files
|
||||||
unused space filemanager en Unused space
|
unused space filemanager en Unused space
|
||||||
up filemanager en Up
|
up filemanager en Up
|
||||||
updated comment for %1 filemanager en Updated comment for %1
|
updated comment for %1 filemanager en Updated comment for %1
|
||||||
used space filemanager en Used space
|
used space filemanager en Used space
|
||||||
|
users and groups filemanager en Users and groups
|
||||||
you do not have access to %1 filemanager en You do not have access to %1
|
you do not have access to %1 filemanager en You do not have access to %1
|
||||||
you need to select an owner! filemanager en You need to select an owner!
|
you need to select an owner! filemanager en You need to select an owner!
|
||||||
you need to select some files first! filemanager en You need to select some files first!
|
you need to select some files first! filemanager en You need to select some files first!
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* eGroupWare - eTemplates for Application filemanager
|
* eGroupWare - eTemplates for Application filemanager
|
||||||
* http://www.egroupware.org
|
* http://www.egroupware.org
|
||||||
* generated by soetemplate::dump4setup() 2008-10-05 19:27
|
* generated by soetemplate::dump4setup() 2008-10-06 19:59
|
||||||
*
|
*
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
* @package filemanager
|
* @package filemanager
|
||||||
@ -26,7 +26,7 @@ $templ_data[] = array('name' => 'filemanager.file.general','template' => '','lan
|
|||||||
|
|
||||||
$templ_data[] = array('name' => 'filemanager.file.general','template' => '','lang' => '','group' => '0','version' => '1.5.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:8:{i:0;a:2:{s:1:"A";s:2:"80";s:2:"h1";s:2:"60";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:4:"name";s:4:"icon";s:4:"span";s:9:",mimeHuge";s:5:"align";s:6:"center";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:6:"needed";s:1:"1";s:4:"span";s:9:",fileName";s:8:"onchange";s:94:"xajax_doXMLHTTP(\'filemanager_ui::ajax_check_rename_target\',document.location.href,this.value);";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"hrule";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:4:"mime";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Directory";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:3:"dir";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Size";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:5:"hsize";s:5:"label";s:17:"%s ($cont[size]b)";}}i:6;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Created";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"ctime";s:8:"readonly";s:1:"1";}}i:7;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Modified";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"mtime";s:8:"readonly";s:1:"1";}}}s:4:"rows";i:7;s:4:"cols";i:2;s:4:"size";s:12:"450,300,,,10";s:7:"options";a:3:{i:0;s:3:"450";i:1;s:3:"300";i:4;s:2:"10";}}}','size' => '450,300,,,10','style' => '','modified' => '1204554817',);
|
$templ_data[] = array('name' => 'filemanager.file.general','template' => '','lang' => '','group' => '0','version' => '1.5.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:8:{i:0;a:2:{s:1:"A";s:2:"80";s:2:"h1";s:2:"60";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:4:"name";s:4:"icon";s:4:"span";s:9:",mimeHuge";s:5:"align";s:6:"center";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:6:"needed";s:1:"1";s:4:"span";s:9:",fileName";s:8:"onchange";s:94:"xajax_doXMLHTTP(\'filemanager_ui::ajax_check_rename_target\',document.location.href,this.value);";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"hrule";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:4:"mime";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Directory";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:3:"dir";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Size";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:5:"hsize";s:5:"label";s:17:"%s ($cont[size]b)";}}i:6;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Created";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"ctime";s:8:"readonly";s:1:"1";}}i:7;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Modified";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"mtime";s:8:"readonly";s:1:"1";}}}s:4:"rows";i:7;s:4:"cols";i:2;s:4:"size";s:12:"450,300,,,10";s:7:"options";a:3:{i:0;s:3:"450";i:1;s:3:"300";i:4;s:2:"10";}}}','size' => '450,300,,,10','style' => '','modified' => '1204554817',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'filemanager.file.general','template' => '','lang' => '','group' => '0','version' => '1.5.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:9:{i:0;a:2:{s:1:"A";s:2:"80";s:2:"h1";s:2:"60";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:4:"name";s:4:"icon";s:4:"span";s:9:",mimeHuge";s:5:"align";s:6:"center";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:6:"needed";s:1:"1";s:4:"span";s:9:",fileName";s:8:"onchange";s:94:"xajax_doXMLHTTP(\'filemanager_ui::ajax_check_rename_target\',document.location.href,this.value);";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"hrule";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:4:"mime";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Directory";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:3:"dir";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Size";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:5:"hsize";s:5:"label";s:17:"%s ($cont[size]b)";}}i:6;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Created";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"ctime";s:8:"readonly";s:1:"1";}}i:7;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Modified";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"mtime";s:8:"readonly";s:1:"1";}}i:8;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:10:",,,comment";s:5:"label";s:7:"Comment";}s:1:"B";a:3:{s:4:"type";s:8:"textarea";s:4:"name";s:7:"comment";s:4:"span";s:8:",comment";}}}s:4:"rows";i:8;s:4:"cols";i:2;s:4:"size";s:12:"450,300,,,10";s:7:"options";a:3:{i:0;s:3:"450";i:1;s:3:"300";i:4;s:2:"10";}}}','size' => '450,300,,,10','style' => '','modified' => '1204554817',);
|
$templ_data[] = array('name' => 'filemanager.file.general','template' => '','lang' => '','group' => '0','version' => '1.5.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:9:{i:0;a:2:{s:1:"A";s:2:"80";s:2:"h1";s:2:"60";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:4:"name";s:4:"icon";s:4:"span";s:9:",mimeHuge";s:5:"align";s:6:"center";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:6:"needed";s:1:"1";s:4:"span";s:9:",fileName";s:8:"onchange";s:94:"xajax_doXMLHTTP(\'filemanager_ui::ajax_check_rename_target\',document.location.href,this.value);";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"hrule";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:4:"mime";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Directory";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:3:"dir";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Size";}s:1:"B";a:3:{s:4:"type";s:8:"vfs-size";s:4:"name";s:4:"size";s:4:"size";s:1:"1";}}i:6;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Created";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"ctime";s:8:"readonly";s:1:"1";}}i:7;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Modified";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"mtime";s:8:"readonly";s:1:"1";}}i:8;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:10:",,,comment";s:5:"label";s:7:"Comment";}s:1:"B";a:3:{s:4:"type";s:8:"textarea";s:4:"name";s:7:"comment";s:4:"span";s:8:",comment";}}}s:4:"rows";i:8;s:4:"cols";i:2;s:4:"size";s:12:"450,300,,,10";s:7:"options";a:3:{i:0;s:3:"450";i:1;s:3:"300";i:4;s:2:"10";}}}','size' => '450,300,,,10','style' => '','modified' => '1204554817',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'filemanager.file.perms','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:1:{s:2:"h3";s:9:",!@is_dir";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:8:"groupbox";s:4:"size";s:1:"1";s:5:"label";s:12:"Accessrights";i:1;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:3:{s:1:"A";s:2:"80";s:2:"h5";s:2:",1";s:2:"h4";s:8:",@is_dir";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:12:"perms[owner]";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Group";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:12:"perms[group]";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Other";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:12:"perms[other]";}}i:4;a:2:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:10:"Executable";s:4:"name";s:17:"perms[executable]";}}i:5;a:2:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:43:"Only owner can rename or delete the content";s:4:"name";s:13:"perms[sticky]";}}}s:4:"rows";i:5;s:4:"cols";i:2;s:7:"options";a:0:{}}}}i:2;a:1:{s:1:"A";a:4:{s:4:"type";s:8:"groupbox";s:4:"size";s:1:"1";s:5:"label";s:5:"Owner";i:1;a:5:{s:4:"type";s:4:"grid";s:7:"options";a:0:{}s:4:"data";a:3:{i:0;a:1:{s:1:"A";s:2:"80";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"User";}s:1:"B";a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:13:"root,accounts";s:4:"name";s:3:"uid";s:5:"label";s:12:"@ro_uid_root";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Group";}s:1:"B";a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:11:"root,groups";s:4:"name";s:3:"gid";s:5:"label";s:12:"@ro_gid_root";}}}s:4:"rows";i:2;s:4:"cols";i:2;}}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:43:"Modify all Subdirectories and their content";s:4:"name";s:11:"modify_subs";}}}s:4:"rows";i:3;s:4:"cols";i:1;s:4:"size";s:12:"450,300,,,10";s:7:"options";a:3:{i:0;s:3:"450";i:1;s:3:"300";i:4;s:2:"10";}}}','size' => '450,300,,,10','style' => '','modified' => '1204567746',);
|
$templ_data[] = array('name' => 'filemanager.file.perms','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:1:{s:2:"h3";s:9:",!@is_dir";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:8:"groupbox";s:4:"size";s:1:"1";s:5:"label";s:12:"Accessrights";i:1;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:3:{s:1:"A";s:2:"80";s:2:"h5";s:2:",1";s:2:"h4";s:8:",@is_dir";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:12:"perms[owner]";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Group";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:12:"perms[group]";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Other";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:12:"perms[other]";}}i:4;a:2:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:10:"Executable";s:4:"name";s:17:"perms[executable]";}}i:5;a:2:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:43:"Only owner can rename or delete the content";s:4:"name";s:13:"perms[sticky]";}}}s:4:"rows";i:5;s:4:"cols";i:2;s:7:"options";a:0:{}}}}i:2;a:1:{s:1:"A";a:4:{s:4:"type";s:8:"groupbox";s:4:"size";s:1:"1";s:5:"label";s:5:"Owner";i:1;a:5:{s:4:"type";s:4:"grid";s:7:"options";a:0:{}s:4:"data";a:3:{i:0;a:1:{s:1:"A";s:2:"80";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"User";}s:1:"B";a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:13:"root,accounts";s:4:"name";s:3:"uid";s:5:"label";s:12:"@ro_uid_root";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Group";}s:1:"B";a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:11:"root,groups";s:4:"name";s:3:"gid";s:5:"label";s:12:"@ro_gid_root";}}}s:4:"rows";i:2;s:4:"cols";i:2;}}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:43:"Modify all Subdirectories and their content";s:4:"name";s:11:"modify_subs";}}}s:4:"rows";i:3;s:4:"cols";i:1;s:4:"size";s:12:"450,300,,,10";s:7:"options";a:3:{i:0;s:3:"450";i:1;s:3:"300";i:4;s:2:"10";}}}','size' => '450,300,,,10','style' => '','modified' => '1204567746',);
|
||||||
|
|
||||||
@ -38,6 +38,8 @@ $templ_data[] = array('name' => 'filemanager.index','template' => '','lang' => '
|
|||||||
|
|
||||||
$templ_data[] = array('name' => 'filemanager.index.rows','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:6:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:1:"B";s:3:"30%";s:1:"D";s:3:"120";s:1:"E";s:3:"120";s:1:"K";s:2:"70";}i:1;a:11:{s:1:"A";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Type";s:4:"name";s:4:"mime";s:5:"align";s:6:"center";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:4:"name";}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Size";s:4:"name";s:4:"size";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Modified";s:4:"name";s:5:"mtime";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"Created";s:4:"name";s:5:"ctime";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Permissions";s:4:"name";s:4:"mode";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"uid";s:5:"label";s:5:"Owner";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"gid";s:5:"label";s:5:"Group";}s:1:"I";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:7:"Comment";s:4:"name";s:7:"comment";}s:1:"J";a:3:{s:4:"type";s:22:"nextmatch-customfields";s:8:"readonly";s:1:"1";s:4:"name";s:12:"customfields";}s:1:"K";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}i:2;a:8:{s:4:"type";s:6:"button";s:4:"size";s:5:"check";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:60:"toggle_all(this.form,form::name(\'checked[]\')); return false;";s:6:"needed";s:1:"1";s:5:"align";s:5:"right";}}}i:2;a:11:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:5:"label";s:15:"$row_cont[mime]";s:4:"name";s:12:"${row}[icon]";s:5:"align";s:6:"center";}s:1:"B";a:4:{s:4:"type";s:5:"label";s:4:"size";s:14:",@${row}[link]";s:4:"name";s:12:"${row}[name]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[hsize]";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[mtime]";s:8:"readonly";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[ctime]";s:8:"readonly";s:1:"1";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:5:"label";s:16:"$row_cont[perms]";s:4:"span";s:6:",perms";}s:1:"G";a:3:{s:4:"type";s:5:"label";s:4:"name";s:12:"${row}[user]";s:7:"no_lang";s:1:"1";}s:1:"H";a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[group]";s:7:"no_lang";s:1:"1";}s:1:"I";a:2:{s:4:"type";s:5:"label";s:4:"name";s:15:"${row}[comment]";}s:1:"J";a:3:{s:4:"type";s:17:"customfields-list";s:8:"readonly";s:1:"1";s:4:"name";s:4:"$row";}s:1:"K";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:13:"Edit settings";s:4:"name";s:21:"edit[$row_cont[path]]";s:4:"help";s:39:"Rename, change permissions or ownership";s:7:"onclick";s:192:"window.open(egw::link(\'/index.php\',\'menuaction=filemanager.filemanager_ui.file&path=$row_cont[path]\'),\'fileprefs\',\'dependent=yes,width=495,height=400,scrollbars=yes,status=yes\'); return false;";}i:2;a:7:{s:4:"type";s:6:"button";s:4:"name";s:23:"delete[$row_cont[path]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:29:"Delete this file or directory";s:7:"onclick";s:48:"return confirm(\'Delete this file or directory\');";s:5:"align";s:6:"center";}i:3;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:9:"checked[]";s:5:"align";s:5:"right";s:4:"size";s:15:"$row_cont[path]";}s:5:"align";s:5:"right";}}}s:4:"rows";i:2;s:4:"cols";i:11;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1204370567',);
|
$templ_data[] = array('name' => 'filemanager.index.rows','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:6:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:1:"B";s:3:"30%";s:1:"D";s:3:"120";s:1:"E";s:3:"120";s:1:"K";s:2:"70";}i:1;a:11:{s:1:"A";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Type";s:4:"name";s:4:"mime";s:5:"align";s:6:"center";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:4:"name";}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Size";s:4:"name";s:4:"size";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Modified";s:4:"name";s:5:"mtime";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"Created";s:4:"name";s:5:"ctime";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Permissions";s:4:"name";s:4:"mode";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"uid";s:5:"label";s:5:"Owner";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"gid";s:5:"label";s:5:"Group";}s:1:"I";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:7:"Comment";s:4:"name";s:7:"comment";}s:1:"J";a:3:{s:4:"type";s:22:"nextmatch-customfields";s:8:"readonly";s:1:"1";s:4:"name";s:12:"customfields";}s:1:"K";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}i:2;a:8:{s:4:"type";s:6:"button";s:4:"size";s:5:"check";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:60:"toggle_all(this.form,form::name(\'checked[]\')); return false;";s:6:"needed";s:1:"1";s:5:"align";s:5:"right";}}}i:2;a:11:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:5:"label";s:15:"$row_cont[mime]";s:4:"name";s:12:"${row}[icon]";s:5:"align";s:6:"center";}s:1:"B";a:4:{s:4:"type";s:5:"label";s:4:"size";s:14:",@${row}[link]";s:4:"name";s:12:"${row}[name]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[hsize]";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[mtime]";s:8:"readonly";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[ctime]";s:8:"readonly";s:1:"1";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:5:"label";s:16:"$row_cont[perms]";s:4:"span";s:6:",perms";}s:1:"G";a:3:{s:4:"type";s:5:"label";s:4:"name";s:12:"${row}[user]";s:7:"no_lang";s:1:"1";}s:1:"H";a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[group]";s:7:"no_lang";s:1:"1";}s:1:"I";a:2:{s:4:"type";s:5:"label";s:4:"name";s:15:"${row}[comment]";}s:1:"J";a:3:{s:4:"type";s:17:"customfields-list";s:8:"readonly";s:1:"1";s:4:"name";s:4:"$row";}s:1:"K";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:13:"Edit settings";s:4:"name";s:21:"edit[$row_cont[path]]";s:4:"help";s:39:"Rename, change permissions or ownership";s:7:"onclick";s:192:"window.open(egw::link(\'/index.php\',\'menuaction=filemanager.filemanager_ui.file&path=$row_cont[path]\'),\'fileprefs\',\'dependent=yes,width=495,height=400,scrollbars=yes,status=yes\'); return false;";}i:2;a:7:{s:4:"type";s:6:"button";s:4:"name";s:23:"delete[$row_cont[path]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:29:"Delete this file or directory";s:7:"onclick";s:48:"return confirm(\'Delete this file or directory\');";s:5:"align";s:6:"center";}i:3;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:9:"checked[]";s:5:"align";s:5:"right";s:4:"size";s:15:"$row_cont[path]";}s:5:"align";s:5:"right";}}}s:4:"rows";i:2;s:4:"cols";i:11;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1204370567',);
|
||||||
|
|
||||||
|
$templ_data[] = array('name' => 'filemanager.index.rows','template' => '','lang' => '','group' => '0','version' => '1.5.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:6:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:1:"B";s:3:"30%";s:1:"D";s:3:"120";s:1:"E";s:3:"120";s:1:"K";s:2:"70";}i:1;a:11:{s:1:"A";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Type";s:4:"name";s:4:"mime";s:5:"align";s:6:"center";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:4:"name";}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Size";s:4:"name";s:4:"size";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Modified";s:4:"name";s:5:"mtime";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"Created";s:4:"name";s:5:"ctime";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Permissions";s:4:"name";s:4:"mode";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"uid";s:5:"label";s:5:"Owner";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"gid";s:5:"label";s:5:"Group";}s:1:"I";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:7:"Comment";s:4:"name";s:7:"comment";}s:1:"J";a:3:{s:4:"type";s:22:"nextmatch-customfields";s:8:"readonly";s:1:"1";s:4:"name";s:12:"customfields";}s:1:"K";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}i:2;a:8:{s:4:"type";s:6:"button";s:4:"size";s:5:"check";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:60:"toggle_all(this.form,form::name(\'checked[]\')); return false;";s:6:"needed";s:1:"1";s:5:"align";s:5:"right";}}}i:2;a:11:{s:1:"A";a:3:{s:4:"type";s:8:"vfs-mime";s:4:"name";s:12:"${row}[path]";s:5:"align";s:6:"center";}s:1:"B";a:3:{s:4:"type";s:3:"vfs";s:4:"name";s:4:"$row";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:8:"vfs-size";s:4:"name";s:12:"${row}[size]";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[mtime]";s:8:"readonly";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[ctime]";s:8:"readonly";s:1:"1";}s:1:"F";a:2:{s:4:"type";s:8:"vfs-mode";s:4:"name";s:12:"${row}[mode]";}s:1:"G";a:3:{s:4:"type";s:7:"vfs-uid";s:4:"name";s:11:"${row}[uid]";s:7:"no_lang";s:1:"1";}s:1:"H";a:3:{s:4:"type";s:7:"vfs-gid";s:4:"name";s:11:"${row}[gid]";s:7:"no_lang";s:1:"1";}s:1:"I";a:2:{s:4:"type";s:5:"label";s:4:"name";s:15:"${row}[comment]";}s:1:"J";a:3:{s:4:"type";s:17:"customfields-list";s:8:"readonly";s:1:"1";s:4:"name";s:4:"$row";}s:1:"K";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:13:"Edit settings";s:4:"name";s:21:"edit[$row_cont[path]]";s:4:"help";s:39:"Rename, change permissions or ownership";s:7:"onclick";s:192:"window.open(egw::link(\'/index.php\',\'menuaction=filemanager.filemanager_ui.file&path=$row_cont[path]\'),\'fileprefs\',\'dependent=yes,width=495,height=400,scrollbars=yes,status=yes\'); return false;";}i:2;a:7:{s:4:"type";s:6:"button";s:4:"name";s:23:"delete[$row_cont[path]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:29:"Delete this file or directory";s:7:"onclick";s:48:"return confirm(\'Delete this file or directory\');";s:5:"align";s:6:"center";}i:3;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:9:"checked[]";s:5:"align";s:5:"right";s:4:"size";s:15:"$row_cont[path]";}s:5:"align";s:5:"right";}}}s:4:"rows";i:2;s:4:"cols";i:11;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1204370567',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'filemanager.search','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:4:{i:0;a:9:{s:4:"type";s:8:"groupbox";s:4:"name";s:10:"debuginfos";s:4:"size";s:1:"4";s:5:"label";s:10:"Debuginfos";s:8:"disabled";s:1:"1";i:1;a:3:{s:4:"type";s:8:"textarea";s:4:"name";s:7:"message";s:8:"readonly";s:1:"1";}i:2;a:1:{s:4:"type";s:5:"label";}i:3;a:1:{s:4:"type";s:5:"label";}i:4;a:1:{s:4:"type";s:5:"label";}}i:1;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:2:{s:1:"C";s:3:"120";s:1:"D";s:3:"120";}i:1;a:5:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:12:"searchstring";s:4:"name";s:17:"searchstringlabel";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"span";s:1:"2";s:4:"name";s:12:"searchstring";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:3:{s:4:"type";s:6:"button";s:5:"label";s:12:"start search";s:4:"name";s:12:"start_search";}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:2;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"mime type";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:8:"checkall";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:3:"All";s:4:"name";s:8:"alllabel";}s:1:"D";a:4:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:5:"files";s:4:"name";s:14:"checkonlyfiles";}}}s:4:"rows";i:1;s:4:"cols";i:1;}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:3;a:5:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:14:"checkonlyfiles";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"files";s:4:"name";s:9:"filelabel";}s:1:"D";a:4:{s:4:"type";s:6:"button";s:5:"label";s:12:"clear search";s:4:"name";s:12:"clear_search";s:7:"onclick";s:71:"menuaction=filemanager.uifilemanager.index&action=search&actioncd=clear";}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:4;a:5:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:13:"checkonlydirs";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"directory";s:4:"name";s:8:"dirlabel";}s:1:"D";a:4:{s:4:"type";s:8:"checkbox";s:5:"label";s:5:"Debug";s:4:"name";s:5:"debug";s:8:"disabled";s:1:"1";}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:5;a:5:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:15:"created between";s:4:"name";s:12:"createdlabel";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:13:"searchcreated";}s:1:"C";a:3:{s:4:"type";s:4:"date";s:4:"name";s:15:"datecreatedfrom";s:4:"size";s:2:",8";}s:1:"D";a:3:{s:4:"type";s:4:"date";s:4:"name";s:13:"datecreatedto";s:4:"size";s:2:",8";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"name";s:17:"searchcreatedtext";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}}i:6;a:5:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:16:"modified between";s:4:"name";s:13:"modifiedlabel";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:14:"searchmodified";}s:1:"C";a:3:{s:4:"type";s:4:"date";s:4:"name";s:16:"datemodifiedfrom";s:4:"size";s:2:",8";}s:1:"D";a:3:{s:4:"type";s:4:"date";s:4:"name";s:14:"datemodifiedto";s:4:"size";s:2:",8";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"name";s:18:"searchmodifiedtext";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:6;s:4:"cols";i:5;}i:2;a:1:{s:4:"type";s:5:"hrule";}i:3;a:3:{s:4:"type";s:9:"nextmatch";s:4:"size";s:4:"rows";s:4:"name";s:2:"nm";}}','size' => '','style' => '','modified' => '1173101430',);
|
$templ_data[] = array('name' => 'filemanager.search','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:4:{i:0;a:9:{s:4:"type";s:8:"groupbox";s:4:"name";s:10:"debuginfos";s:4:"size";s:1:"4";s:5:"label";s:10:"Debuginfos";s:8:"disabled";s:1:"1";i:1;a:3:{s:4:"type";s:8:"textarea";s:4:"name";s:7:"message";s:8:"readonly";s:1:"1";}i:2;a:1:{s:4:"type";s:5:"label";}i:3;a:1:{s:4:"type";s:5:"label";}i:4;a:1:{s:4:"type";s:5:"label";}}i:1;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:2:{s:1:"C";s:3:"120";s:1:"D";s:3:"120";}i:1;a:5:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:12:"searchstring";s:4:"name";s:17:"searchstringlabel";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"span";s:1:"2";s:4:"name";s:12:"searchstring";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:3:{s:4:"type";s:6:"button";s:5:"label";s:12:"start search";s:4:"name";s:12:"start_search";}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:2;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"mime type";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:8:"checkall";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:3:"All";s:4:"name";s:8:"alllabel";}s:1:"D";a:4:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"checkbox";s:5:"label";s:5:"files";s:4:"name";s:14:"checkonlyfiles";}}}s:4:"rows";i:1;s:4:"cols";i:1;}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:3;a:5:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:14:"checkonlyfiles";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"files";s:4:"name";s:9:"filelabel";}s:1:"D";a:4:{s:4:"type";s:6:"button";s:5:"label";s:12:"clear search";s:4:"name";s:12:"clear_search";s:7:"onclick";s:71:"menuaction=filemanager.uifilemanager.index&action=search&actioncd=clear";}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:4;a:5:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:13:"checkonlydirs";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"directory";s:4:"name";s:8:"dirlabel";}s:1:"D";a:4:{s:4:"type";s:8:"checkbox";s:5:"label";s:5:"Debug";s:4:"name";s:5:"debug";s:8:"disabled";s:1:"1";}s:1:"E";a:1:{s:4:"type";s:5:"label";}}i:5;a:5:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:15:"created between";s:4:"name";s:12:"createdlabel";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:13:"searchcreated";}s:1:"C";a:3:{s:4:"type";s:4:"date";s:4:"name";s:15:"datecreatedfrom";s:4:"size";s:2:",8";}s:1:"D";a:3:{s:4:"type";s:4:"date";s:4:"name";s:13:"datecreatedto";s:4:"size";s:2:",8";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"name";s:17:"searchcreatedtext";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}}i:6;a:5:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:16:"modified between";s:4:"name";s:13:"modifiedlabel";}s:1:"B";a:2:{s:4:"type";s:8:"checkbox";s:4:"name";s:14:"searchmodified";}s:1:"C";a:3:{s:4:"type";s:4:"date";s:4:"name";s:16:"datemodifiedfrom";s:4:"size";s:2:",8";}s:1:"D";a:3:{s:4:"type";s:4:"date";s:4:"name";s:14:"datemodifiedto";s:4:"size";s:2:",8";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"name";s:18:"searchmodifiedtext";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:6;s:4:"cols";i:5;}i:2;a:1:{s:4:"type";s:5:"hrule";}i:3;a:3:{s:4:"type";s:9:"nextmatch";s:4:"size";s:4:"rows";s:4:"name";s:2:"nm";}}','size' => '','style' => '','modified' => '1173101430',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'filemanager.search.rows','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:2:"Id";s:4:"name";s:11:"vfs_file_id";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"file";s:4:"name";s:7:"fulldir";}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:9:"Directory";s:4:"name";s:13:"vfs_directory";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"name";s:4:"name";s:8:"vfs_name";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"comment";s:4:"name";s:11:"vfs_comment";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:9:"mime type";s:4:"name";s:13:"vfs_mime_type";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"created";s:4:"name";s:11:"vfs_created";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"modified";s:4:"name";s:12:"vfs_modified";}}i:2;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[vfs_file_id]";s:7:"no_lang";s:1:"1";}s:1:"B";a:3:{s:4:"type";s:4:"html";s:4:"name";s:15:"${row}[fulldir]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:4:"html";s:4:"name";s:21:"${row}[vfs_directory]";s:7:"no_lang";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[vfs_name]";s:7:"no_lang";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[vfs_comment]";s:7:"no_lang";s:1:"1";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:4:"name";s:21:"${row}[vfs_mime_type]";s:7:"no_lang";s:1:"1";}s:1:"G";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[vfs_created]";s:7:"no_lang";s:1:"1";}s:1:"H";a:3:{s:4:"type";s:5:"label";s:4:"name";s:20:"${row}[vfs_modified]";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:2;s:4:"cols";i:8;s:4:"size";s:9:"100%,auto";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:4:"auto";}}}','size' => '100%,auto','style' => '','modified' => '1173104345',);
|
$templ_data[] = array('name' => 'filemanager.search.rows','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:2:"Id";s:4:"name";s:11:"vfs_file_id";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"file";s:4:"name";s:7:"fulldir";}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:9:"Directory";s:4:"name";s:13:"vfs_directory";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"name";s:4:"name";s:8:"vfs_name";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"comment";s:4:"name";s:11:"vfs_comment";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:9:"mime type";s:4:"name";s:13:"vfs_mime_type";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:7:"created";s:4:"name";s:11:"vfs_created";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"modified";s:4:"name";s:12:"vfs_modified";}}i:2;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[vfs_file_id]";s:7:"no_lang";s:1:"1";}s:1:"B";a:3:{s:4:"type";s:4:"html";s:4:"name";s:15:"${row}[fulldir]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:4:"html";s:4:"name";s:21:"${row}[vfs_directory]";s:7:"no_lang";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[vfs_name]";s:7:"no_lang";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[vfs_comment]";s:7:"no_lang";s:1:"1";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:4:"name";s:21:"${row}[vfs_mime_type]";s:7:"no_lang";s:1:"1";}s:1:"G";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[vfs_created]";s:7:"no_lang";s:1:"1";}s:1:"H";a:3:{s:4:"type";s:5:"label";s:4:"name";s:20:"${row}[vfs_modified]";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:2;s:4:"cols";i:8;s:4:"size";s:9:"100%,auto";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:4:"auto";}}}','size' => '100%,auto','style' => '','modified' => '1173104345',);
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
* CSS for new eTemplate filemanager UI
|
* CSS for new eTemplate filemanager UI
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.perms { font-family: monospace; font-weight: bold; }
|
|
||||||
.address input { font-size: 140%; font-weight: bold; }
|
.address input { font-size: 140%; font-weight: bold; }
|
||||||
.mimeHuge img { width: 64px; height: 64px; }
|
.mimeHuge img { width: 64px; height: 64px; }
|
||||||
.fileName input { font-weight: bold; width: 100%; }
|
.fileName input { font-weight: bold; width: 100%; }
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description value="Size"/>
|
<description value="Size"/>
|
||||||
<description id="hsize" value="%s ($cont[size]b)"/>
|
<vfs-size id="size" options="1"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description value="Created"/>
|
<description value="Created"/>
|
||||||
|
Before Width: | Height: | Size: 396 B |
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!-- $Id$ -->
|
<!-- $Id$ -->
|
||||||
<overlay>
|
<overlay>
|
||||||
<template id="filemanager.index.rows" template="" lang="" group="0" version="1.5.001">
|
<template id="filemanager.index.rows" template="" lang="" group="0" version="1.5.002">
|
||||||
<grid width="100%">
|
<grid width="100%">
|
||||||
<columns>
|
<columns>
|
||||||
<column/>
|
<column/>
|
||||||
@ -34,14 +34,14 @@
|
|||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
<row class="row">
|
<row class="row">
|
||||||
<image label="$row_cont[mime]" src="${row}[icon]" align="center"/>
|
<vfs-mime id="${row}[path]" align="center"/>
|
||||||
<description options=",@${row}[link]" id="${row}[name]" no_lang="1"/>
|
<vfs id="$row" no_lang="1"/>
|
||||||
<description id="${row}[hsize]" align="right"/>
|
<vfs-size id="${row}[size]" align="right"/>
|
||||||
<date-time id="${row}[mtime]" readonly="true"/>
|
<date-time id="${row}[mtime]" readonly="true"/>
|
||||||
<date-time id="${row}[ctime]" readonly="true"/>
|
<date-time id="${row}[ctime]" readonly="true"/>
|
||||||
<description value="$row_cont[perms]" class="perms"/>
|
<vfs-mode id="${row}[mode]"/>
|
||||||
<description id="${row}[user]" no_lang="1"/>
|
<vfs-uid id="${row}[uid]" no_lang="1"/>
|
||||||
<description id="${row}[group]" no_lang="1"/>
|
<vfs-gid id="${row}[gid]" no_lang="1"/>
|
||||||
<description id="${row}[comment]"/>
|
<description id="${row}[comment]"/>
|
||||||
<customfields-list readonly="true" id="$row"/>
|
<customfields-list readonly="true" id="$row"/>
|
||||||
<hbox align="right">
|
<hbox align="right">
|
||||||
|
@ -698,15 +698,15 @@ class egw_link extends solink
|
|||||||
/**
|
/**
|
||||||
* path to the attached files of $app/$ip or the directory for $app if no $id,$file given
|
* path to the attached files of $app/$ip or the directory for $app if no $id,$file given
|
||||||
*
|
*
|
||||||
* All link-files are based in the vfs-subdir '/infolog'. For other apps
|
* All link-files are based in the vfs-subdir '/apps/'.$app
|
||||||
* separate subdirs with name app are created.
|
|
||||||
*
|
*
|
||||||
* @param string $app appname
|
* @param string $app appname
|
||||||
* @param string $id='' id in $app
|
* @param string $id='' id in $app
|
||||||
* @param string $file='' filename
|
* @param string $file='' filename
|
||||||
|
* @param boolean $just_the_path=false return url or just the vfs path
|
||||||
* @return string/array path or array with path and relatives, depending on $relatives
|
* @return string/array path or array with path and relatives, depending on $relatives
|
||||||
*/
|
*/
|
||||||
static function vfs_path($app,$id='',$file='')
|
static function vfs_path($app,$id='',$file='',$just_the_path=false)
|
||||||
{
|
{
|
||||||
$path = self::VFS_BASEURL;
|
$path = self::VFS_BASEURL;
|
||||||
|
|
||||||
@ -724,7 +724,14 @@ class egw_link extends solink
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$path = egw_vfs::resolve_url($path);
|
if ($just_the_path)
|
||||||
|
{
|
||||||
|
$path = parse_url($path,PHP_URL_PATH);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$path = egw_vfs::resolve_url($path);
|
||||||
|
}
|
||||||
//error_log(__METHOD__."($app,$id,$file)=$path");
|
//error_log(__METHOD__."($app,$id,$file)=$path");
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
@ -741,7 +748,6 @@ class egw_link extends solink
|
|||||||
* $file['path'] path of the file on the client computer
|
* $file['path'] path of the file on the client computer
|
||||||
* $file['ip'] of the client (path and ip are only needed if u want a symlink (if possible))
|
* $file['ip'] of the client (path and ip are only needed if u want a symlink (if possible))
|
||||||
* @param string $comment='' comment to add to the link
|
* @param string $comment='' comment to add to the link
|
||||||
* @todo remark/comment from the vfs
|
|
||||||
* @return int negative id of egw_sqlfs table as negative link-id's are for vfs attachments
|
* @return int negative id of egw_sqlfs table as negative link-id's are for vfs attachments
|
||||||
*/
|
*/
|
||||||
static function attach_file($app,$id,$file,$comment='')
|
static function attach_file($app,$id,$file,$comment='')
|
||||||
@ -753,15 +759,16 @@ class egw_link extends solink
|
|||||||
}
|
}
|
||||||
if (file_exists($entry_dir) || ($Ok = mkdir($entry_dir,0,true)))
|
if (file_exists($entry_dir) || ($Ok = mkdir($entry_dir,0,true)))
|
||||||
{
|
{
|
||||||
$Ok = copy($file['tmp_name'],$fname = egw_vfs::concat($entry_dir,$file['name'])) &&
|
if (($Ok = copy($file['tmp_name'],$fname = egw_vfs::concat($entry_dir,$file['name'])) &&
|
||||||
($stat = links_stream_wrapper::url_stat($fname,0));
|
($stat = links_stream_wrapper::url_stat($fname,0))) && $comment)
|
||||||
|
{
|
||||||
|
egw_vfs::proppatch(parse_url($fname,PHP_URL_PATH),array(array('name'=>'comment','val'=>$comment))); // set comment
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
error_log(__METHOD__."($app,$id,$file,$comment) Can't mkdir $entry_dir!");
|
error_log(__METHOD__."($app,$id,$file,$comment) Can't mkdir $entry_dir!");
|
||||||
}
|
}
|
||||||
// todo: set comment
|
|
||||||
|
|
||||||
return $Ok ? -$stat['ino'] : false;
|
return $Ok ? -$stat['ino'] : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -831,7 +838,6 @@ class egw_link extends solink
|
|||||||
* converts a fileinfo (row in the vfs-db-table) in a link
|
* converts a fileinfo (row in the vfs-db-table) in a link
|
||||||
*
|
*
|
||||||
* @param array/int $fileinfo a row from the vfs-db-table (eg. returned by the vfs ls static function) or a file_id of that table
|
* @param array/int $fileinfo a row from the vfs-db-table (eg. returned by the vfs ls static function) or a file_id of that table
|
||||||
* @todo remark/comment from the vfs
|
|
||||||
* @return array a 'kind' of link-array
|
* @return array a 'kind' of link-array
|
||||||
*/
|
*/
|
||||||
static function fileinfo2link($fileinfo,$url=null)
|
static function fileinfo2link($fileinfo,$url=null)
|
||||||
@ -851,7 +857,7 @@ class egw_link extends solink
|
|||||||
'id' => $fileinfo['name'],
|
'id' => $fileinfo['name'],
|
||||||
'app2' => $app,
|
'app2' => $app,
|
||||||
'id2' => $id,
|
'id2' => $id,
|
||||||
'remark' => '',
|
'remark' => '', // only list_attached currently sets the remark
|
||||||
'owner' => $fileinfo['uid'],
|
'owner' => $fileinfo['uid'],
|
||||||
'link_id' => -$fileinfo['ino'],
|
'link_id' => -$fileinfo['ino'],
|
||||||
'lastmod' => $fileinfo['mtime'],
|
'lastmod' => $fileinfo['mtime'],
|
||||||
@ -873,10 +879,26 @@ class egw_link extends solink
|
|||||||
//error_log(__METHOD__."($app,$id) url=$url");
|
//error_log(__METHOD__."($app,$id) url=$url");
|
||||||
|
|
||||||
$attached = array();
|
$attached = array();
|
||||||
foreach(egw_vfs::find($url,array('url'=>true,'need_mime'=>true,'type'=>'f'),true) as $url => $fileinfo)
|
if (($url2stats = egw_vfs::find($url,array('url'=>true,'need_mime'=>true,'type'=>'f'),true)))
|
||||||
{
|
{
|
||||||
$link = self::fileinfo2link($fileinfo,$url);
|
$props = egw_vfs::propfind(array_keys($url2stats)); // get the comments
|
||||||
$attached[$link['link_id']] = $link;
|
foreach($url2stats as $url => &$fileinfo)
|
||||||
|
{
|
||||||
|
$link = self::fileinfo2link($fileinfo,$url);
|
||||||
|
if (isset($props[$path = parse_url($url,PHP_URL_PATH)]))
|
||||||
|
{
|
||||||
|
foreach($props[$path] as $prop)
|
||||||
|
{
|
||||||
|
if ($prop['ns'] == egw_vfs::DEFAULT_PROP_NAMESPACE && $prop['name'] == 'comment')
|
||||||
|
{
|
||||||
|
$link['remark'] = $prop['val'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$attached[$link['link_id']] = $link;
|
||||||
|
$urls[] = $url;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $attached;
|
return $attached;
|
||||||
}
|
}
|
||||||
|
@ -263,6 +263,7 @@ class egw_vfs extends vfs_stream_wrapper
|
|||||||
* @param array $options=null the following keys are allowed:
|
* @param array $options=null the following keys are allowed:
|
||||||
* - type => {d|f} d=dirs, f=files, default both
|
* - type => {d|f} d=dirs, f=files, default both
|
||||||
* - depth => {true|false(default)} put the contents of a dir before the dir itself
|
* - depth => {true|false(default)} put the contents of a dir before the dir itself
|
||||||
|
* - dirsontop => {true(default)|false} allways return dirs before the files (two distinct blocks)
|
||||||
* - mindepth,maxdepth minimal or maximal depth to be returned
|
* - mindepth,maxdepth minimal or maximal depth to be returned
|
||||||
* - name,path => pattern with *,? wildcards, eg. "*.php"
|
* - name,path => pattern with *,? wildcards, eg. "*.php"
|
||||||
* - name_preg,path_preg => preg regular expresion, eg. "/(vfs|wrapper)/"
|
* - name_preg,path_preg => preg regular expresion, eg. "/(vfs|wrapper)/"
|
||||||
@ -288,6 +289,8 @@ class egw_vfs extends vfs_stream_wrapper
|
|||||||
|
|
||||||
$type = $options['type']; // 'd' or 'f'
|
$type = $options['type']; // 'd' or 'f'
|
||||||
$dirs_last = $options['depth']; // put content of dirs before the dir itself
|
$dirs_last = $options['depth']; // put content of dirs before the dir itself
|
||||||
|
// show dirs on top by default, if no recursive listing (allways disabled if $type specified, as unnecessary)
|
||||||
|
$dirsontop = !$type && (isset($options['dirsontop']) ? (boolean)$options['dirsontop'] : isset($options['maxdepth'])&&$options['maxdepth']>0);
|
||||||
|
|
||||||
// process some of the options (need to be done only once)
|
// process some of the options (need to be done only once)
|
||||||
if (isset($options['name']) && !isset($options['name_preg'])) // change from simple *,? wildcards to preg regular expression once
|
if (isset($options['name']) && !isset($options['name_preg'])) // change from simple *,? wildcards to preg regular expression once
|
||||||
@ -377,6 +380,9 @@ class egw_vfs extends vfs_stream_wrapper
|
|||||||
self::_check_add($options,$path,$result);
|
self::_check_add($options,$path,$result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// sort code, to place directories before files, if $dirsontop enabled
|
||||||
|
$dirsfirst = $dirsontop ? '($a[mime]==\''.self::DIR_MIME_TYPE.'\')!==($b[mime]==\''.self::DIR_MIME_TYPE.'\')?'.
|
||||||
|
'($a[mime]==\''.self::DIR_MIME_TYPE.'\'?-1:1):' : '';
|
||||||
// ordering of the rows
|
// ordering of the rows
|
||||||
if (isset($options['order']))
|
if (isset($options['order']))
|
||||||
{
|
{
|
||||||
@ -390,7 +396,7 @@ class egw_vfs extends vfs_stream_wrapper
|
|||||||
case 'mode':
|
case 'mode':
|
||||||
case 'ctime':
|
case 'ctime':
|
||||||
case 'mtime':
|
case 'mtime':
|
||||||
uasort($result,create_function('$a,$b',$c='return '.$sort.'($a[\''.$options['order'].'\']-$b[\''.$options['order'].'\']);'));
|
uasort($result,create_function('$a,$b',$c='return '.$dirsfirst.$sort.'($a[\''.$options['order'].'\']-$b[\''.$options['order'].'\']);'));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// sort alphanumerical
|
// sort alphanumerical
|
||||||
@ -399,8 +405,7 @@ class egw_vfs extends vfs_stream_wrapper
|
|||||||
// fall throught
|
// fall throught
|
||||||
case 'name':
|
case 'name':
|
||||||
case 'mime':
|
case 'mime':
|
||||||
case 'comment': // ToDo: fetch it for sqlfs or oldvfs
|
uasort($result,create_function('$a,$b',$c='return '.$dirsfirst.$sort.'strcasecmp($a[\''.$options['order'].'\'],$b[\''.$options['order'].'\']);'));
|
||||||
uasort($result,create_function('$a,$b',$c='return '.$sort.'strcasecmp($a[\''.$options['order'].'\'],$b[\''.$options['order'].'\']);'));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//echo "order='$options[order]', sort='$options[sort]' --> '$c'<br>\n";
|
//echo "order='$options[order]', sort='$options[sort]' --> '$c'<br>\n";
|
||||||
@ -874,16 +879,16 @@ class egw_vfs extends vfs_stream_wrapper
|
|||||||
$mime_full = strtolower(str_replace ('/','_',$mime_type));
|
$mime_full = strtolower(str_replace ('/','_',$mime_type));
|
||||||
list($mime_part) = explode('_',$mime_full);
|
list($mime_part) = explode('_',$mime_full);
|
||||||
|
|
||||||
if (!($img=$GLOBALS['egw']->common->image('filemanager',$icon='mime'.$size.'_'.$mime_full)) &&
|
if (!($img=$GLOBALS['egw']->common->image('etemplate',$icon='mime'.$size.'_'.$mime_full)) &&
|
||||||
!($img=$GLOBALS['egw']->common->image('filemanager',$icon='mime'.$size.'_'.$mime_part)))
|
!($img=$GLOBALS['egw']->common->image('etemplate',$icon='mime'.$size.'_'.$mime_part)))
|
||||||
{
|
{
|
||||||
$img = $GLOBALS['egw']->common->image('filemanager',$icon='mime'.$size.'_unknown');
|
$img = $GLOBALS['egw']->common->image('etemplate',$icon='mime'.$size.'_unknown');
|
||||||
}
|
}
|
||||||
if ($et_image)
|
if ($et_image)
|
||||||
{
|
{
|
||||||
return 'filemanager/'.$icon;
|
return 'etemplate/'.$icon;
|
||||||
}
|
}
|
||||||
return html::image('filemanager',$icon,lang($mime_type));
|
return html::image('etemplate',$icon,lang($mime_type));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -873,7 +873,7 @@ class sqlfs_stream_wrapper implements iface_stream_wrapper
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$this->opened_dir = array();
|
$this->opened_dir = array();
|
||||||
$query = 'SELECT fs_id,fs_name,fs_mode,fs_uid,fs_gid,fs_size,fs_mime,fs_created,fs_modified FROM '.self::TABLE.' WHERE fs_dir=?';
|
$query = 'SELECT fs_id,fs_name,fs_mode,fs_uid,fs_gid,fs_size,fs_mime,fs_created,fs_modified FROM '.self::TABLE." WHERE fs_dir=? ORDER BY fs_mime='httpd/unix-directory' DESC, fs_name ASC";
|
||||||
|
|
||||||
$stmt = self::$pdo->prepare($query);
|
$stmt = self::$pdo->prepare($query);
|
||||||
$stmt->setFetchMode(PDO::FETCH_ASSOC);
|
$stmt->setFetchMode(PDO::FETCH_ASSOC);
|
||||||
@ -1508,7 +1508,7 @@ class sqlfs_stream_wrapper implements iface_stream_wrapper
|
|||||||
*/
|
*/
|
||||||
static function proppatch($path,array &$props)
|
static function proppatch($path,array &$props)
|
||||||
{
|
{
|
||||||
//error_log(__METHOD__."(".array2string($path).','.array2string($props));
|
error_log(__METHOD__."(".array2string($path).','.array2string($props));
|
||||||
if (!is_numeric($path))
|
if (!is_numeric($path))
|
||||||
{
|
{
|
||||||
if (!($stat = self::url_stat($path,0)))
|
if (!($stat = self::url_stat($path,0)))
|
||||||
@ -1613,7 +1613,7 @@ class sqlfs_stream_wrapper implements iface_stream_wrapper
|
|||||||
unset($props[$id]);
|
unset($props[$id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach((array)$props as $k => $v) error_log(__METHOD__."($path_ids,$ns) $k => ".array2string($v));
|
//foreach((array)$props as $k => $v) error_log(__METHOD__."($path_ids,$ns) $k => ".array2string($v));
|
||||||
return $props;
|
return $props;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|