diff --git a/etemplate/inc/class.link_widget.inc.php b/etemplate/inc/class.link_widget.inc.php index b412d0cfc7..d5509e4409 100644 --- a/etemplate/inc/class.link_widget.inc.php +++ b/etemplate/inc/class.link_widget.inc.php @@ -1,651 +1,619 @@ - * @version $Id$ +/** + * eGroupWare eTemplate Extension - Link Widgets / UI for the link class + * + * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + * @package etemplate + * @subpackage extensions + * @link http://www.egroupware.org + * @author Ralf Becker + * @version $Id$ + */ + +/** + * eTemplate Extension: several widgets as user-interface for the link-class + * + * All widgets use the link-registry, to "know" which apps use popups (and what size). + * Participating apps need to register a proper "search_link" hook - see eTemplate-reference (LinkWidgets) for info. + * If run in a popup and the app uses no popups, a target will be set, to open a new full decorated window. + * + * The class contains the following widgets: + * - link: Show a link to one linked entry specified by an array with keys app, id and optional title and help-message + * Optionally the application can be specified as option and the value can be just the id. + * - link-to: Widget to create links to an other entries of link-aware apps + * If the variables $data['widget_id']['to_app'] = $app and $data['widget_id']['to_id'] = $entry_id + * are set, this widget creates the links without further interaction with the calling code. + * If the entry does not yet exist, the widget returns an array with the new links in the id. After the + * entry was successfuly created, bolink::link($app,$new_id,$arr) has to be called to create the links! + * - link-list: Widget to show the links to an entry in a table with an unlink icon for each link. Needs the same + * pair of variables as link-to widget and needs to have the same id, as the data is shared with link-to. + * - link-string: comma-separated list of link-titles with a link to its view method, value is like get_links() + * or array with keys to_app and to_id (widget calls then get_links itself) + * - link-add: Add a new entry of the select app, which is already linked to a given entry + * - link-entry: Allow to select an entry of a selectable or in options specified app + * - link-apps: Select an app registered in the link system, options: '' or 'add' + * + * + * $content[$name] = array( + * 'to_app' => // I string appname of the entry to link to + * 'to_id' => // IO int id of the entry to link to, for new entries 0, returns the array with new links + * // the following params apply only for the link-to widget! + * 'no_files' => // I boolean suppress attach-files, default no + * 'search_label' => // I string label to use instead of search + * 'link_label' => // I string label for the link button, default 'Link' + * // optional only for the link-add widget + * 'extra' => // I array with extra parameters, eg. array('cat_id' => 15) + * // optional for link-string: + * 'only_app' => // I string with appname, eg. 'projectmananager' to list only linked projects + * ); + * + * + * This widget is independent of the UI as it only uses etemplate-widgets and has therefore no render-function. + */ +class link_widget +{ + /** + * @var array exported methods of this class */ + var $public_functions = array( + 'pre_process' => True, + 'post_process' => True, + 'ajax_search' => True, + ); + /** + * @var array availible extensions and there names for the editor + */ + var $human_name = array( + 'link' => 'Link', + 'link-to' => 'LinkTo', + 'link-list' => 'LinkList', + 'link-string' => 'LinkString', + 'link-add' => 'LinkEntry', + 'link-entry' => 'Select entry', + 'link-apps' => 'LinkApps', + ); + /** + * @var boolean $debug switches debug-messages on and off + */ + var $debug = False; /** - * eTemplate Extension: several widgets as user-interface for the link-class + * Constructor of the extension * - * All widgets use the link-registry, to "know" which apps use popups (and what size). - * Participating apps need to register a proper "search_link" hook - see eTemplate-reference (LinkWidgets) for info. - * If run in a popup and the app uses no popups, a target will be set, to open a new full decorated window. - * - * The class contains the following widgets: - * - link: Show a link to one linked entry specified by an array with keys app, id and optional title and help-message - * Optionally the application can be specified as option and the value can be just the id. - * - link-to: Widget to create links to an other entries of link-aware apps - * If the variables $data['widget_id']['to_app'] = $app and $data['widget_id']['to_id'] = $entry_id - * are set, this widget creates the links without further interaction with the calling code. - * If the entry does not yet exist, the widget returns an array with the new links in the id. After the - * entry was successfuly created, bolink::link($app,$new_id,$arr) has to be called to create the links! - * - link-list: Widget to show the links to an entry in a table with an unlink icon for each link. Needs the same - * pair of variables as link-to widget and needs to have the same id, as the data is shared with link-to. - * - link-string: comma-separated list of link-titles with a link to its view method, value is like get_links() - * or array with keys to_app and to_id (widget calls then get_links itself) - * - link-add: Add a new entry of the select app, which is already linked to a given entry - * - link-entry: Allow to select an entry of a selectable or in options specified app - * - link-apps: Select an app registered in the link system, options: '' or 'add' - * - * - * $content[$name] = array( - * 'to_app' => // I string appname of the entry to link to - * 'to_id' => // IO int id of the entry to link to, for new entries 0, returns the array with new links - * // the following params apply only for the link-to widget! - * 'no_files' => // I boolean suppress attach-files, default no - * 'search_label' => // I string label to use instead of search - * 'link_label' => // I string label for the link button, default 'Link' - * // optional only for the link-add widget - * 'extra' => // I array with extra parameters, eg. array('cat_id' => 15) - * // optional for link-string: - * 'only_app' => // I string with appname, eg. 'projectmananager' to list only linked projects - * ); - * - * - * This widget is independent of the UI as it only uses etemplate-widgets and has therefore no render-function. - * - * @package etemplate - * @subpackage extensions - * @author Ralf Becker - * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + * @param string $ui '' for html */ - class link_widget + function link_widget($ui='') { - /** - * @var array exported methods of this class - */ - var $public_functions = array( - 'pre_process' => True, - 'post_process' => True, - 'ajax_search' => True, - ); - /** - * @var array availible extensions and there names for the editor - */ - var $human_name = array( - 'link' => 'Link', - 'link-to' => 'LinkTo', - 'link-list' => 'LinkList', - 'link-string' => 'LinkString', - 'link-add' => 'LinkEntry', - 'link-entry' => 'Select entry', - 'link-apps' => 'LinkApps', - ); - /** - * @var boolean $debug switches debug-messages on and off - */ - var $debug = False; - /** - * Constructor of the extension - * - * @param string $ui '' for html - */ - function link_widget($ui='') + } + + /** + * pre-processing of the extension + * + * This function is called before the extension gets rendered + * + * @param string $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($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl) + { + $extension_data['type'] = $type = $cell['type']; + $extension_data['needed'] = $cell['needed']; + $help = $cell['help'] ? ($value['help'] ? $value['help'] : $cell['help']) : lang('view this linked entry in its application'); + + if (($type == 'link-to' || $type == 'link-add' || $type == 'link-entry' && !$value) && ($cell['readonly'] || $readonlys)) { - + //echo "

link-to is readonly, cell=".print_r($cell,true).", readonlys=".print_r($readonlys).", value='$value'

\n"; + // readonly ==> omit the whole widget + $value = ''; + $cell = $tmpl->empty_cell(); + return; } - - /** - * pre-processing of the extension - * - * This function is called before the extension gets rendered - * - * @param string $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($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl) + if (!is_array($value) && in_array($type,array('link-to','link-list','link-add'))) { - $extension_data['type'] = $type = $cell['type']; - $extension_data['needed'] = $cell['needed']; - $help = $cell['help'] ? ($value['help'] ? $value['help'] : $cell['help']) : lang('view this linked entry in its application'); - - if (($type == 'link-to' || $type == 'link-add' || $type == 'link-entry' && !$value) && ($cell['readonly'] || $readonlys)) + $value = array( + 'to_id' => $value, + 'to_app' => $GLOBALS['egw_info']['flags']['currentapp'] + ); + } + if ($this->debug) + { + echo "

link_widget::pre_process($name,$value,".print_r($cell,true).",$readonlys,,)

\n"; + echo "

start: $cell[type][$name]::pre_process: value ="; _debug_array($value); + echo "extension_data[$cell[type]][$name] ="; _debug_array($extension_data); + } + switch ($cell['type']) + { + case 'link': + $cell['readonly'] = True; // set it readonly to NOT call our post_process function + $cell['no_lang'] = 1; + $link = $target = $popup = ''; + if (!is_array($value) && $value && isset($GLOBALS['egw_info']['apps'][$cell['size']])) + { + $value = array( + 'id' => $value, + 'app' => $cell['size'], + ); + $cell['size'] = ''; + } + if ($value['app'] && $value['id']) + { + $view = egw_link::view($value['app'],$value['id']); + $link = $view['menuaction']; unset($view['menuaction']); + foreach($view as $var => $val) + { + $link .= '&'.$var.'='.$val; + } + if (!($popup = egw_link::is_popup($value['app'],'view')) && + $GLOBALS['egw_info']['etemplate']['output_mode'] == 2) // we are in a popup + { + $target = '_blank'; + } + if (!$cell['help']) + { + $cell['help'] = $value['help']; + $cell['no_lang'] = 2; + } + } + elseif (!$value['title']) + { + $cell = $tmpl->empty_cell(); + $cell['readonly'] = True; // set it readonly to NOT call our post_process function + return; + } + $cell['type'] = 'label'; + // size: [b[old]][i[talic]],[link],[activate_links],[label_for],[link_target],[link_popup_size],[link_title] + list($cell['size']) = explode(',',$cell['size']); + $cell['size'] .= ','.$link.',,,'.$target.','.$popup.','.$value['extra_title']; + $value = $value['title'] ? $value['title'] : egw_link::title($value['app'],$value['id']); + return true; + + case 'link-string': + $str = ''; + if ($value && !is_array($value) && $cell['size']) + { + $value = array('to_id' => $value); + list($value['to_app'],$value['only_app']) = explode(',',$cell['size']); + } + if ($value['to_id'] && $value['to_app']) + { + $value = egw_link::get_links($value['to_app'],$value['to_id'],$only_app = $value['only_app']); + if ($only_app) + { + foreach($value as $key => $id) + { + $value[$key] = array( + 'id' => $id, + 'app' => $only_app, + ); + } + } + } + if (is_array($value)) + { + foreach ($value as $link) + { + $options .= " onMouseOver=\"self.status='".addslashes(html::htmlspecialchars($help))."'; return true;\""; + $options .= " onMouseOut=\"self.status=''; return true;\""; + + if (($popup = egw_link::is_popup($link['app'],'view'))) + { + list($w,$h) = explode('x',$popup); + $options = ' onclick="window.open(this,this.target,\'width='.(int)$w.',height='.(int)$h.',location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes\'); return false;"'; + } + elseif ($GLOBALS['egw_info']['etemplate']['output_mode'] == 2 || // we are in a popup + $link['app'] == egw_link::VFS_APPNAME) // or it's a link to an attachment + { + $options = ' target="_blank"'; + } + $str .= ($str !== '' ? ', ' : '') . html::a_href( + html::htmlspecialchars(egw_link::title($link['app'],$link['id'])), + egw_link::view($link['app'],$link['id'],$link),'',$options); + } + } + $cell['type'] = 'html'; + $cell['readonly'] = True; // set it readonly to NOT call our post_process function + $value = $str; + return True; + + case 'link-add': + $apps = egw_link::app_list($type == 'link-add' ? 'add_app' : 'query'); + if (!$apps || !$value['to_id'] || is_array($value['to_id'])) // cant do an add without apps or already created entry { - //echo "

link-to is readonly, cell=".print_r($cell,true).", readonlys=".print_r($readonlys).", value='$value'

\n"; - // readonly ==> omit the whole widget - $value = ''; $cell = $tmpl->empty_cell(); return; } - if (!is_array($value) && in_array($type,array('link-to','link-list','link-add'))) + asort($apps); // sort them alphabetic + $value['options-add_app'] = array(); + foreach($apps as $app => $label) { - $value = array( - 'to_id' => $value, - 'to_app' => $GLOBALS['egw_info']['flags']['currentapp'] - ); + $link = $GLOBALS['egw']->link('/index.php',egw_link::add($app,$value['to_app'],$value['to_id'])+ + (is_array($value['extra']) ? $value['extra'] : array())); + if (($popup = egw_link::is_popup($app,'add'))) + { + list($w,$h) = explode('x',$popup); + $action = "window.open('$link','_blank','width=$w,height=$h,location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes');"; + } + else + { + $action = "location.href = '$link';"; + } + $value['options-add_app'][$action] = $label; + // modify add_app default to the action used as value + if (isset($value['add_app']) && $app == $value['add_app']) $value['add_app'] = $action; } + $tpl =& new etemplate('etemplate.link_widget.add'); + break; + + case 'link-to': + $GLOBALS['egw_info']['flags']['include_xajax'] = true; + if ($value['search_label'] && $extension_data['search_label'] != $value['search_label']) $value['search_label'] = lang($value['search_label']); + $extension_data = $value; + $tpl = new etemplate('etemplate.link_widget.to'); + if ($value['link_label']) $tpl->set_cell_attribute('create','label',$value['link_label']); + if ($value['search_label']) $tpl->set_cell_attribute('search','label',$value['search_label']); + break; + + case 'link-list': + $app = $value['to_app']; + $id = isset($extension_data['to_id']) ? $extension_data['to_id'] : $value['to_id']; if ($this->debug) { - echo "

link_widget::pre_process($name,$value,".print_r($cell,true).",$readonlys,,)

\n"; - echo "

start: $cell[type][$name]::pre_process: value ="; _debug_array($value); - echo "extension_data[$cell[type]][$name] ="; _debug_array($extension_data); + echo "

link-list-widget[$name].preprocess: value="; _debug_array($value); } - switch ($cell['type']) + if (!isset($value['title'])) { - case 'link': - $cell['readonly'] = True; // set it readonly to NOT call our post_process function - $cell['no_lang'] = 1; - $link = $target = $popup = ''; - if (!is_array($value) && $value && isset($GLOBALS['egw_info']['apps'][$cell['size']])) + $value['title'] = egw_link::title($app,$id); + } + $links = egw_link::get_links($app,$id); + $value['anz_links'] = count($links); + $extension_data = $value; + + if (!count($links)) + { + $cell = $tmpl->empty_cell(); + $value = ''; + return True; + } + $tpl =& new etemplate('etemplate.link_widget.list'); + $tpl->data[0]['A'] = $tmpl->data[0]['A']; // set width of first col like the tmpl. calling us + for($row=$tpl->rows-1; list(,$link) = each($links); ++$row) + { + $value[$row] = $link; + $value[$row]['title'] = egw_link::title($link['app'],$link['id'],$link); + $value[$row]['mime_icon'] = ''; + if (!is_array($link['id'])) { - $value = array( - 'id' => $value, - 'app' => $cell['size'], - ); - $cell['size'] = ''; - } - if ($value['app'] && $value['id']) - { - $view = egw_link::view($value['app'],$value['id']); - $link = $view['menuaction']; unset($view['menuaction']); - foreach($view as $var => $val) - { - $link .= '&'.$var.'='.$val; - } - if (!($popup = egw_link::is_popup($value['app'],'view')) && + $value[$row]['view'] = egw_link::view($link['app'],$link['id'],$link); + if (!($value[$row]['popup'] = egw_link::is_popup($link['app'],'view')) && $GLOBALS['egw_info']['etemplate']['output_mode'] == 2) // we are in a popup { - $target = '_blank'; - } - if (!$cell['help']) - { - $cell['help'] = $value['help']; - $cell['no_lang'] = 2; + $value[$row]['target'] = '_blank'; // we create a new window as the linked page is no popup } } - elseif (!$value['title']) + if ($link['app'] == egw_link::VFS_APPNAME) { - $cell = $tmpl->empty_cell(); - $cell['readonly'] = True; // set it readonly to NOT call our post_process function - return; - } - $cell['type'] = 'label'; - // size: [b[old]][i[talic]],[link],[activate_links],[label_for],[link_target],[link_popup_size],[link_title] - list($cell['size']) = explode(',',$cell['size']); - $cell['size'] .= ','.$link.',,,'.$target.','.$popup.','.$value['extra_title']; - $value = $value['title'] ? $value['title'] : egw_link::title($value['app'],$value['id']); - return true; + $value[$row]['target'] = '_blank'; + $value[$row]['label'] = 'Delete'; + $value[$row]['help'] = lang('Delete this file'); - case 'link-string': - $str = ''; - if ($value && !is_array($value) && $cell['size']) - { - $value = array('to_id' => $value); - list($value['to_app'],$value['only_app']) = explode(',',$cell['size']); - } - if ($value['to_id'] && $value['to_app']) - { - $value = egw_link::get_links($value['to_app'],$value['to_id'],$only_app = $value['only_app']); - if ($only_app) + // Get mimetype and thumbnail + if(in_array($GLOBALS['egw_info']['user']['preferences']['common']['link_list_format'], array('icons', 'icons_and_text') )) { - foreach($value as $key => $id) + list(,$icon) = explode('/',filemanager_ui::mime_icon($value[$row]['type'])); + $value[$row]['mime_icon'] = html::image('filemanager',$icon,lang('File').': '.$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[$key] = array( - 'id' => $id, - 'app' => $only_app, - ); + $value[$row]['thumbnail'] = ''; } } } - if (is_array($value)) - { - foreach ($value as $link) - { - $options .= " onMouseOver=\"self.status='".addslashes(html::htmlspecialchars($help))."'; return true;\""; - $options .= " onMouseOut=\"self.status=''; return true;\""; - if (($popup = egw_link::is_popup($link['app'],'view'))) - { - list($w,$h) = explode('x',$popup); - $options = ' onclick="window.open(this,this.target,\'width='.(int)$w.',height='.(int)$h.',location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes\'); return false;"'; - } - elseif ($GLOBALS['egw_info']['etemplate']['output_mode'] == 2) // we are in a popup - { - $options = ' target="_blank"'; - } - $str .= ($str !== '' ? ', ' : '') . html::a_href( - html::htmlspecialchars(egw_link::title($link['app'],$link['id'])), - '/index.php',egw_link::view($link['app'],$link['id'],$link),$options); - } - } - $cell['type'] = 'html'; - $cell['readonly'] = True; // set it readonly to NOT call our post_process function - $value = $str; - return True; - - case 'link-add': - $apps = egw_link::app_list($type == 'link-add' ? 'add_app' : 'query'); - if (!$apps || !$value['to_id'] || is_array($value['to_id'])) // cant do an add without apps or already created entry - { - $cell = $tmpl->empty_cell(); - return; - } - asort($apps); // sort them alphabetic - $value['options-add_app'] = array(); - foreach($apps as $app => $label) - { - $link = $GLOBALS['egw']->link('/index.php',egw_link::add($app,$value['to_app'],$value['to_id'])+ - (is_array($value['extra']) ? $value['extra'] : array())); - if (($popup = egw_link::is_popup($app,'add'))) - { - list($w,$h) = explode('x',$popup); - $action = "window.open('$link','_blank','width=$w,height=$h,location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes');"; - } - else - { - $action = "location.href = '$link';"; - } - $value['options-add_app'][$action] = $label; - // modify add_app default to the action used as value - if (isset($value['add_app']) && $app == $value['add_app']) $value['add_app'] = $action; - } - $tpl =& new etemplate('etemplate.link_widget.add'); - break; - - case 'link-to': - $GLOBALS['egw_info']['flags']['include_xajax'] = true; - if ($value['search_label'] && $extension_data['search_label'] != $value['search_label']) $value['search_label'] = lang($value['search_label']); - $extension_data = $value; - $tpl =& new etemplate('etemplate.link_widget.to'); - if ($value['link_label']) $tpl->set_cell_attribute('create','label',$value['link_label']); - if ($value['search_label']) $tpl->set_cell_attribute('search','label',$value['search_label']); - /* old request code - $value['msg'] = ''; - if ($value['button'] == 'search' && count($ids = egw_link::query($value['app'],$value['query']))) - { - $extension_data['app'] = $value['app']; - - $value = $extension_data; - $value['options-id'] = $ids; - $value['remark'] = ''; - - $tpl =& new etemplate('etemplate.link_widget.create'); - if ($value['link_label']) - { - $tpl->set_cell_attribute('create','label',$value['link_label']); - } - } else { - // error from search or upload - $value['msg'] = $value['button'] == 'search' ? lang('Nothing found - try again !!!') : $extension_data['msg']; - - if (!$value['button']) + if(in_array($GLOBALS['egw_info']['user']['preferences']['common']['link_list_format'], array('icons', 'icons_and_text') )) { - $extension_data = $value; + // Hardcoded sizes to match the mimetype icons. Uses the navbar image and CSS to resize. + $value[$row]['mime_icon'] = html::image($value[$row]['app'], 'navbar', lang($value[$row]['app']), 'style="width: 16px; height: 16px;"'); } - $value = array_merge($extension_data,$value); - $value['options-app'] = egw_link::app_list('query'); - asort($value['options-app']); // sort them alphabetic - - $tpl =& new etemplate('etemplate.link_widget.search'); - if ($value['search_label']) - { - $tpl->set_cell_attribute('app','label',$value['search_label']); - } - $tpl->set_cell_attribute('comment','onchange',"set_style_by_class('*','hide_comment','display',this.checked ? 'block' : 'none');"); - unset($value['comment']); - }*/ - break; - - case 'link-list': - $app = $value['to_app']; - $id = isset($extension_data['to_id']) ? $extension_data['to_id'] : $value['to_id']; - if ($this->debug) - { - echo "

link-list-widget[$name].preprocess: value="; _debug_array($value); + $value[$row]['label'] = 'Unlink'; + $value[$row]['help'] = lang('Remove this link (not the entry itself)'); } - if (!isset($value['title'])) + // Remove appname if they only want icons + if($value[$row]['mime_icon'] && $GLOBALS['egw_info']['user']['preferences']['common']['link_list_format'] == 'icons') { - $value['title'] = egw_link::title($app,$id); + $value[$row]['app'] = ''; } - $links = egw_link::get_links($app,$id); - $value['anz_links'] = count($links); - $extension_data = $value; + } + break; - if (!count($links)) + case 'link-entry': + $GLOBALS['egw_info']['flags']['include_xajax'] = true; + $tpl =& new etemplate('etemplate.link_widget.entry'); + $options = $cell['size'] ? explode(',',$cell['size']) : array(); + $app = $extension_data['app'] = array_shift($options); + if ($value) // show pre-selected entry in select-box and not the search + { + // add selected-entry plus "new search" to the selectbox-options + if (($app = $cell['size'])) { - $cell = $tmpl->empty_cell(); - $value = ''; - return True; + $id = $value; } - $tpl =& new etemplate('etemplate.link_widget.list'); - $tpl->data[0]['A'] = $tmpl->data[0]['A']; // set width of first col like the tmpl. calling us - for($row=$tpl->rows-1; list(,$link) = each($links); ++$row) + else { - $value[$row] = $link; - $value[$row]['title'] = egw_link::title($link['app'],$link['id'],$link); - $value[$row]['mime_icon'] = ''; - if (!is_array($link['id'])) + list($app,$id) = explode(':',$value); + } + $titles = array(); + foreach(explode(',',$id) as $id) + { + if ($id && ($title = egw_link::title($app,$id))) { - $value[$row]['view'] = egw_link::view($link['app'],$link['id'],$link); - if (!($value[$row]['popup'] = egw_link::is_popup($link['app'],'view')) && - $GLOBALS['egw_info']['etemplate']['output_mode'] == 2) // we are in a popup - { - $value[$row]['target'] = '_blank'; // we create a new window as the linked page is no popup - } - } - if ($link['app'] == egw_link::VFS_APPNAME) - { - $value[$row]['label'] = 'Delete'; - $value[$row]['help'] = lang('Delete this file'); - - // Get mimetype and thumbnail - if(in_array($GLOBALS['egw_info']['user']['preferences']['common']['link_list_format'], array('icons', 'icons_and_text') )) { - $value[$row]['mime_icon'] = ExecMethod2('filemanager.uifilemanager.mime_icon', $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]['thumbnail'] = ''; - } - } - } - else - { - if(in_array($GLOBALS['egw_info']['user']['preferences']['common']['link_list_format'], array('icons', 'icons_and_text') )) { - // Hardcoded sizes to match the mimetype icons. Uses the navbar image and CSS to resize. - $value[$row]['mime_icon'] = html::image($value[$row]['app'], 'navbar', $value[$row]['app'], 'style="width: 16px; height: 16px;"'); - } - $value[$row]['label'] = 'Unlink'; - $value[$row]['help'] = lang('Remove this link (not the entry itself)'); - } - // Remove appname if they only want icons - if($value[$row]['mime_icon'] && $GLOBALS['egw_info']['user']['preferences']['common']['link_list_format'] == 'icons') { - $value[$row]['app'] = ''; + $titles[$id] = $title; } } - break; + if ($titles) + { + $titles[''] = lang('new search').' ...'; + $selectbox =& $tpl->get_widget_by_name('id'); + $selectbox['sel_options'] = $titles; + // remove link_hide class from select-box-line + $span =& $tpl->get_cell_attribute('select_line','span'); + $span = str_replace('link_hide','',$span); + // add link_hide class to search_line + $span =& $tpl->get_cell_attribute('search_line','span'); + $span .= ' link_hide'; + unset($span); + } + } + if ($extension_data['app']) // no app-selection, using app given in first option + { + $tpl->disable_cells('app'); + $onchange =& $tpl->get_cell_attribute('search','onclick'); + $onchange = str_replace("document.getElementById(form::name('app')).value",'\''.$cell['size'].'\'',$onchange); + unset($onchange); + } + $value = array( + 'app' => $app, + 'no_app_sel' => !!$extension_data['app'], + 'id' => $value, + ); + if ($options) // limit the app-selectbox to the given apps + { + $tpl->set_cell_attribute('app','type','select'); + $tpl->set_cell_attribute('app','no_lang',true); + $apps = egw_link::app_list('query'); + asort($apps); // sort them alphabetic + foreach($apps as $app => $label) + { + if (!in_array($app,$options)) unset($apps[$app]); + } + $value['options-app'] = $apps; + } + break; + + case 'link-apps': + $apps = egw_link::app_list($cell['size'] ? $cell['size'] : 'query'); + if (!$apps) // cant do an add without apps or already created entry + { + $cell = $tmpl->empty_cell(); + return; + } + asort($apps); // sort them alphabetic + $cell['sel_options'] = $apps; + $cell['no_lang'] = True; // already translated + $cell['type'] = 'select'; + return true; + } + $cell['size'] = $cell['name']; + $cell['type'] = 'template'; + $cell['name'] = $tpl->name; + $cell['obj'] =& $tpl; + // keep the editor away from the generated tmpls + $tpl->no_onclick = true; + if ($this->debug) + { + echo "

end: $type"."[$name]::pre_process: value ="; _debug_array($value); + } + return True; // extra Label is ok + } + + /** + * postprocessing method, called after the submission of the form + * + * It has to copy the allowed/valid data from $value_in to $value, otherwise the widget + * will return no data (if it has a preprocessing method). The framework insures that + * the post-processing of all contained widget has been done before. + * + * Only used by select-dow so far + * + * @param string $name form-name of the widget + * @param mixed &$value the extension returns here it's input, if there's any + * @param mixed &$extension_data persistent storage between calls or pre- and post-process + * @param boolean &$loop can be set to true to request a re-submision of the form/dialog + * @param object &$tmpl the eTemplate the widget belongs too + * @param mixed &value_in the posted values (already striped of magic-quotes) + * @return boolean true if $value has valid content, on false no content will be returned! + */ + function post_process($name,&$value,&$extension_data,&$loop,&$tmpl,$value_in) + { + //echo "

link_widget::post_process('$name',value=".print_r($value,true).",ext=".print_r($extension_data,true).",$loop,,value_in=".print_r($value_in,true)."

\n"; + + switch($extension_data['type']) + { case 'link-entry': - $GLOBALS['egw_info']['flags']['include_xajax'] = true; - $tpl =& new etemplate('etemplate.link_widget.entry'); - $options = $cell['size'] ? explode(',',$cell['size']) : array(); - $app = $extension_data['app'] = array_shift($options); - if ($value) // show pre-selected entry in select-box and not the search + if (!$value_in['id'] && $extension_data['needed']) { - // add selected-entry plus "new search" to the selectbox-options - if (($app = $cell['size'])) - { - $id = $value; - } - else - { - list($app,$id) = explode(':',$value); - } - $titles = array(); - foreach(explode(',',$id) as $id) - { - if ($id && ($title = egw_link::title($app,$id))) - { - $titles[$id] = $title; - } - } - if ($titles) - { - $titles[''] = lang('new search').' ...'; - $selectbox =& $tpl->get_widget_by_name('id'); - $selectbox['sel_options'] = $titles; - // remove link_hide class from select-box-line - $span =& $tpl->get_cell_attribute('select_line','span'); - $span = str_replace('link_hide','',$span); - // add link_hide class to search_line - $span =& $tpl->get_cell_attribute('search_line','span'); - $span .= ' link_hide'; - unset($span); - } + $tmpl->set_validation_error($name,lang('Field must not be empty !!!'),''); + return true; } - if ($extension_data['app']) // no app-selection, using app given in first option - { - $tpl->disable_cells('app'); - $onchange =& $tpl->get_cell_attribute('search','onclick'); - $onchange = str_replace("document.getElementById(form::name('app')).value",'\''.$cell['size'].'\'',$onchange); - unset($onchange); - } - $value = array( - 'app' => $app, - 'no_app_sel' => !!$extension_data['app'], - 'id' => $value, - ); - if ($options) // limit the app-selectbox to the given apps - { - $tpl->set_cell_attribute('app','type','select'); - $tpl->set_cell_attribute('app','no_lang',true); - $apps = egw_link::app_list('query'); - asort($apps); // sort them alphabetic - foreach($apps as $app => $label) - { - if (!in_array($app,$options)) unset($apps[$app]); - } - $value['options-app'] = $apps; - } - break; + $value = $extension_data['app'] ? $value_in['id'] : $value['app'].':'.$value_in['id']; + return !!$value_in['id']; case 'link-apps': - $apps = egw_link::app_list($cell['size'] ? $cell['size'] : 'query'); - if (!$apps) // cant do an add without apps or already created entry + if (!$value_in && $extension_data['needed']) { - $cell = $tmpl->empty_cell(); - return; + $tmpl->set_validation_error($name,lang('Field must not be empty !!!'),''); + return true; } - asort($apps); // sort them alphabetic - $cell['sel_options'] = $apps; - $cell['no_lang'] = True; // already translated - $cell['type'] = 'select'; - return true; - } - $cell['size'] = $cell['name']; - $cell['type'] = 'template'; - $cell['name'] = $tpl->name; - $cell['obj'] =& $tpl; - // keep the editor away from the generated tmpls - $tpl->no_onclick = true; - - if ($this->debug) - { - echo "

end: $type"."[$name]::pre_process: value ="; _debug_array($value); - } - return True; // extra Label is ok + $value = $value_in; + return !!$value; } - - /** - * postprocessing method, called after the submission of the form - * - * It has to copy the allowed/valid data from $value_in to $value, otherwise the widget - * will return no data (if it has a preprocessing method). The framework insures that - * the post-processing of all contained widget has been done before. - * - * Only used by select-dow so far - * - * @param string $name form-name of the widget - * @param mixed &$value the extension returns here it's input, if there's any - * @param mixed &$extension_data persistent storage between calls or pre- and post-process - * @param boolean &$loop can be set to true to request a re-submision of the form/dialog - * @param object &$tmpl the eTemplate the widget belongs too - * @param mixed &value_in the posted values (already striped of magic-quotes) - * @return boolean true if $value has valid content, on false no content will be returned! - */ - function post_process($name,&$value,&$extension_data,&$loop,&$tmpl,$value_in) + $buttons = array('search','create','new','upload','attach'); + while (!$button && list(,$bname) = each($buttons)) { - //echo "

link_widget::post_process('$name',value=".print_r($value,true).",ext=".print_r($extension_data,true).",$loop,,value_in=".print_r($value_in,true)."

\n"; - - switch($extension_data['type']) - { - case 'link-entry': - if (!$value_in['id'] && $extension_data['needed']) - { - $tmpl->set_validation_error($name,lang('Field must not be empty !!!'),''); - return true; - } - $value = $extension_data['app'] ? $value_in['id'] : $value['app'].':'.$value_in['id']; - return !!$value_in['id']; - - case 'link-apps': - if (!$value_in && $extension_data['needed']) - { - $tmpl->set_validation_error($name,lang('Field must not be empty !!!'),''); - return true; - } - $value = $value_in; - return !!$value; - } - $buttons = array('search','create','new','upload','attach'); - while (!$button && list(,$bname) = each($buttons)) - { - $button = $value[$bname] ? $bname : ''; - } - if (is_array($value['unlink'])) - { - $button = 'unlink'; - list($unlink) = @each($value['unlink']); - } - unset($value[$button]); - unset($value['msg']); - unset($extension_data['msg']); - - if (is_array($extension_data)) - { - $value = is_array($value) ? array_merge($extension_data,$value) : $extension_data; - } - if ($button && $this->debug) - { - echo "

start: link_widget[$name]::post_process: button='$button', unlink='$unlink', value ="; _debug_array($value); - } - switch ($button) - { - case 'create': - if ($value['to_app']) // make the link - { - $link_id = egw_link::link($value['to_app'],$value['to_id'], - $value['app'],$value['id'],$value['remark']); - $value['remark'] = $value['query'] = ''; - - if (isset($value['primary']) && !$value['anz_links'] ) - { - $value['primary'] = $link_id; - } - } - // fall-trough - case 'search': - case 'new': - $extension_data = $value; - $loop = True; - break; - - case 'attach': - if (is_array($value['file']) && $value['to_app'] && - !empty($value['file']['tmp_name']) && $value['file']['tmp_name'] != 'none') - { - if (!$value['to_id'] || is_array($value['to_id'])) // otherwise the webserver deletes the file - { - move_uploaded_file($value['file']['tmp_name'],$value['file']['tmp_name'].'+'); - $value['file']['tmp_name'] .= '+'; - } - $link_id = egw_link::link($value['to_app'],$value['to_id'], - egw_link::VFS_APPNAME,$value['file'],$value['remark']); - $value['remark'] = ''; - - if (isset($value['primary']) && !$value['anz_links'] ) - { - $value['primary'] = $link_id; - } - unset($value['comment']); - unset($value['file']); - } - else - { - $value['msg'] = 'You need to select a file first!'; - } - $extension_data = $value; - $loop = True; - break; - - case 'unlink': - if ($this->debug) - { - //echo "

unlink(link-id=$unlink,$value[to_app],$value[to_id])

\n"; - if (is_array($value['to_id'])) _debug_array($value['to_id']); - } - egw_link::unlink2($unlink,$value['to_app'],$value['to_id']); - if (is_array($value['to_id'])) - { - $extension_data['to_id'] = $value['to_id']; // else changes from unlink get lost - } - $loop = True; - break; - } - $value['button'] = $button; - - if ($this->debug) - { - echo "

end: link_widget[$name]::post_process: value ="; _debug_array($value); - } - return True; + $button = $value[$bname] ? $bname : ''; } - - /** - * ajax callback to search in $app for $pattern, result is displayed in $id - * - * @param string $app app-name to search - * @param string $pattern search-pattern - * @param string $id_res id of selectbox to show the result - * @param string $id_hide id(s) of the search-box/-line to hide after a successful search - * @param string $id_show id(s) of the select-box/-line to show after a successful search - * @param string $id_input id of the search input-field - */ - function ajax_search($app,$pattern,$id_res,$id_hide,$id_show,$id_input) + if (is_array($value['unlink'])) { - $response = new xajaxResponse(); - //$args = func_get_args(); $response->addAlert("link_widget::ajax_search('".implode("','",$args)."')"); - - if (!($found = egw_link::query($app,$pattern == lang('Search') ? '' : $pattern))) // ignore the blur-text - { - $GLOBALS['egw']->translation->add_app('etemplate'); - $response->addAlert(lang('Nothing found - try again !!!')); - $response->addScript("document.getElementById('$id_input').select();"); - } - else - { - $script = "var select = document.getElementById('$id_res');\nselect.options.length=0;\n"; - foreach($found as $id => $option) + $button = 'unlink'; + list($unlink) = @each($value['unlink']); + } + unset($value[$button]); + unset($value['msg']); + unset($extension_data['msg']); + + if (is_array($extension_data)) + { + $value = is_array($value) ? array_merge($extension_data,$value) : $extension_data; + } + if ($button && $this->debug) + { + echo "

start: link_widget[$name]::post_process: button='$button', unlink='$unlink', value ="; _debug_array($value); + } + switch ($button) + { + case 'create': + if ($value['to_app']) // make the link { - if (!is_array($option)) $option = array('label' => $option); - $script .= "opt = select.options[select.options.length] = new Option('".addslashes($option['label'])."','$id');\n"; - if (count($option) > 1) + $link_id = egw_link::link($value['to_app'],$value['to_id'], + $value['app'],$value['id'],$value['remark']); + $value['remark'] = $value['query'] = ''; + + if (isset($value['primary']) && !$value['anz_links'] ) { - foreach($option as $name => $value) - { - if ($name != 'label') $script .= "opt.$name = '".addslashes($value)."';\n"; - } + $value['primary'] = $link_id; } } - $script .= "select.options[select.options.length] = new Option('".addslashes(lang('New search').' ...')."','');\n"; - foreach(explode(',',$id_show) as $id) + // fall-trough + case 'search': + case 'new': + $extension_data = $value; + $loop = True; + break; + + case 'attach': + if (is_array($value['file']) && $value['to_app'] && + !empty($value['file']['tmp_name']) && $value['file']['tmp_name'] != 'none') { - $script .= "document.getElementById('$id').style.display='inline';\n"; + if (!$value['to_id'] || is_array($value['to_id'])) // otherwise the webserver deletes the file + { + move_uploaded_file($value['file']['tmp_name'],$value['file']['tmp_name'].'+'); + $value['file']['tmp_name'] .= '+'; + } + $link_id = egw_link::link($value['to_app'],$value['to_id'], + egw_link::VFS_APPNAME,$value['file'],$value['remark']); + $value['remark'] = ''; + + if (isset($value['primary']) && !$value['anz_links'] ) + { + $value['primary'] = $link_id; + } + unset($value['comment']); + unset($value['file']); } - foreach(explode(',',$id_hide) as $id) + else { - $script .= "document.getElementById('$id').style.display='none';\n"; + $value['msg'] = 'You need to select a file first!'; } - //$response->addAlert($script); - $response->addScript($script); - } - return $response->getXML(); + $extension_data = $value; + $loop = True; + break; + + case 'unlink': + if ($this->debug) + { + //echo "

unlink(link-id=$unlink,$value[to_app],$value[to_id])

\n"; + if (is_array($value['to_id'])) _debug_array($value['to_id']); + } + egw_link::unlink2($unlink,$value['to_app'],$value['to_id']); + if (is_array($value['to_id'])) + { + $extension_data['to_id'] = $value['to_id']; // else changes from unlink get lost + } + $loop = True; + break; } + $value['button'] = $button; + + if ($this->debug) + { + echo "

end: link_widget[$name]::post_process: value ="; _debug_array($value); + } + return True; } + + /** + * ajax callback to search in $app for $pattern, result is displayed in $id + * + * @param string $app app-name to search + * @param string $pattern search-pattern + * @param string $id_res id of selectbox to show the result + * @param string $id_hide id(s) of the search-box/-line to hide after a successful search + * @param string $id_show id(s) of the select-box/-line to show after a successful search + * @param string $id_input id of the search input-field + */ + function ajax_search($app,$pattern,$id_res,$id_hide,$id_show,$id_input) + { + $response = new xajaxResponse(); + //$args = func_get_args(); $response->addAlert("link_widget::ajax_search('".implode("','",$args)."')"); + + if (!($found = egw_link::query($app,$pattern == lang('Search') ? '' : $pattern))) // ignore the blur-text + { + $GLOBALS['egw']->translation->add_app('etemplate'); + $response->addAlert(lang('Nothing found - try again !!!')); + $response->addScript("document.getElementById('$id_input').select();"); + } + else + { + $script = "var select = document.getElementById('$id_res');\nselect.options.length=0;\n"; + foreach($found as $id => $option) + { + if (!is_array($option)) $option = array('label' => $option); + $script .= "opt = select.options[select.options.length] = new Option('".addslashes($option['label'])."','$id');\n"; + if (count($option) > 1) + { + foreach($option as $name => $value) + { + if ($name != 'label') $script .= "opt.$name = '".addslashes($value)."';\n"; + } + } + } + $script .= "select.options[select.options.length] = new Option('".addslashes(lang('New search').' ...')."','');\n"; + foreach(explode(',',$id_show) as $id) + { + $script .= "document.getElementById('$id').style.display='inline';\n"; + } + foreach(explode(',',$id_hide) as $id) + { + $script .= "document.getElementById('$id').style.display='none';\n"; + } + //$response->addAlert($script); + $response->addScript($script); + } + return $response->getXML(); + } +} diff --git a/etemplate/inc/thumbnail.inc.php b/etemplate/inc/thumbnail.inc.php index 3760bc3724..96acd24cac 100644 --- a/etemplate/inc/thumbnail.inc.php +++ b/etemplate/inc/thumbnail.inc.php @@ -8,19 +8,22 @@ * @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' => 'infolog', + 'currentapp' => $_GET['app'], 'noheader' => true, 'nonavbar' => true ); include ('../../header.inc.php'); - $file = $_GET['image']; - $g_srcfile = $GLOBALS['egw_info']['server']['files_dir'] . $file; - $g_dstfile = $GLOBALS['egw_info']['server']['temp_dir'] . $file; + $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; } @@ -46,8 +49,12 @@ * * @author Nathan Gray */ - function get_thumbnail($file, $return_data = true) { - $max_width = $max_height = $GLOBALS['egw_info']['server']['link_list_thumbnail']; + 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; @@ -59,28 +66,9 @@ // Quality $g_imgcomp=55; - $g_srcfile = $GLOBALS['egw_info']['server']['files_dir'] . $file; - $g_dstfile = $GLOBALS['egw_info']['server']['temp_dir'] . $file; - - $dir_array = explode(DIRECTORY_SEPARATOR, $g_dstfile); - array_pop($dir_array); - $dest_dir = implode(DIRECTORY_SEPARATOR, $dir_array); - @mkdir($dest_dir, 0700, true); - - if(file_exists($g_srcfile)) { - $bolink = CreateObject('phpgwapi.bolink'); - $read = $bolink->vfs->acl_check(array( - 'string' => $file, - 'relatives' => array (), - 'operation' => EGW_ACL_READ - )); - if(!$read) { - $im = @imagecreatetruecolor(strlen(lang('access not permitted')) * 7, 20); - $text_color = imagecolorallocate($im, 233, 14, 91); - imagestring($im, 2,5,3, lang('access not permitted'), $text_color); - return $return_data ? $im : false; - } - + $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]; @@ -94,10 +82,7 @@ } // Get mime type - $info = $bolink->vfs->ls(array( - 'string' => $file - )); - list($type, $image_type) = explode('/', $info[0]['mime_type']); + list($type, $image_type) = explode('/',egw_vfs::mime_content_type($g_srcfile)); if($type != 'image') { return false; } @@ -134,9 +119,6 @@ imagepng($img_dst, $g_dstfile); return $return_data ? $img_dst : $g_dstfile; } else { - if(file_exists($g_dstfile)) { - unlink($g_dstfile); - } return false; } } diff --git a/etemplate/setup/etemplates.inc.php b/etemplate/setup/etemplates.inc.php index 1a17a7ead9..bd56987870 100644 --- a/etemplate/setup/etemplates.inc.php +++ b/etemplate/setup/etemplates.inc.php @@ -1,14 +1,14 @@ 'etemplate.editor','template' => '','lang' => '' $templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.15.004','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:9:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"size";s:2:"bi";s:5:"label";s:27:"Editable Templates - Editor";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:5:"label";s:8:"DB-Tools";s:5:"align";s:5:"right";s:4:"name";s:8:"db_tools";s:4:"help";s:21:"to start the DB-Tools";}}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:3:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:4:"name";s:21:"etemplate.editor.keys";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:12:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"9";s:4:"span";s:3:"all";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Read";s:4:"name";s:4:"read";s:4:"help";s:49:"read eTemplate from database (for the keys above)";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Show";s:4:"name";s:4:"show";s:4:"help";s:61:"shows/displays eTemplate for testing, does NOT save it before";}i:3;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";s:4:"help";s:77:"save the eTemplate under the above keys (name, ...), change them for a SaveAs";}i:4;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:6:"delete";s:4:"help";s:33:"deletes the eTemplate spez. above";}i:5;a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"Dump4Setup";s:4:"name";s:4:"dump";s:4:"help";s:88:"writes a \'etemplates.inc.php\' file (for application in Name) in the setup-dir of the app";}i:6;a:4:{s:4:"type";s:6:"button";s:5:"label";s:14:"Write Langfile";s:4:"name";s:8:"langfile";s:4:"help";s:85:"creates an english (\'en\') langfile from label and helptexts (for application in Name)";}i:7;a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"Export XML";s:4:"name";s:10:"export_xml";s:4:"help";s:43:"export the loaded eTemplate into a xml-file";}i:8;a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"Import XML";s:4:"name";s:10:"import_xml";s:4:"help";s:35:"import an eTemplate from a xml-file";}i:9;a:3:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:18:"xml-file to import";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:7:"options";s:4:"span";s:3:"all";s:4:"name";s:24:"etemplate.editor.options";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:6;a:2:{s:1:"A";a:3:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:4:"name";s:21:"etemplate.editor.edit";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:7;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:10:"CSS-styles";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:8;a:2:{s:1:"A";a:5:{s:4:"type";s:8:"textarea";s:4:"size";s:5:"10,80";s:4:"span";s:3:"all";s:4:"name";s:5:"style";s:4:"help";s:155:"embeded CSS styles, eg. \'.red { background: red; }\' (note the \'.\' before the class-name) or \'@import url(...)\' (class names are global for the whole page!)";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:8;s:4:"cols";i:2;s:4:"size";s:9:"100%,100%";}}','size' => '100%,100%','style' => '','modified' => '1035854216',); +$templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:4:{s:2:"c1";s:3:"nmr";s:2:"c2";s:3:"nmr";s:2:"c3";s:3:"nmr";s:2:"c4";s:3:"nmr";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Options";s:5:"align";s:6:"center";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"size";s:4:"help";s:187:"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:11:"Span, Class";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:8:"checkbox";s:4:"span";s:1:"2";s:5:"label";s:16:"%s NoTranslation";s:5:"align";s:6:"center";s:4:"name";s:7:"no_lang";s:4:"help";s:82:"select if content of field should not be translated (label gets always translated)";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:3:{s:4:"type";s:8:"template";s:4:"span";s:1:"4";s:4:"name";s:26:"etemplate.editor.cell_opts";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Help";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"50";s:4:"span";s:3:"all";s:4:"name";s:4:"help";s:4:"help";s:60:"displayed in statusline of browser if input-field gets focus";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:6;s:4:"size";s:5:",100%";}}','size' => ',100%','style' => '','modified' => '1032907904',); + $templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:4:{s:2:"c1";s:3:"row";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c4";s:3:"row";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Options";s:5:"align";s:6:"center";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"size";s:4:"help";s:187:"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:11:"Span, Class";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:8:"checkbox";s:4:"span";s:1:"2";s:5:"label";s:16:"%s NoTranslation";s:5:"align";s:6:"center";s:4:"name";s:7:"no_lang";s:4:"help";s:82:"select if content of field should not be translated (label gets always translated)";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:1:"4";i:1;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:9:"%s needed";s:5:"align";s:6:"center";s:4:"name";s:6:"needed";s:4:"help";s:39:"check if field has to be filled by user";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s readonly";s:5:"align";s:6:"center";s:4:"name";s:8:"readonly";s:4:"help";s:94:"check if content should only be displayed but not altered (the content is not send back then!)";}i:3;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s disabled";s:5:"align";s:6:"center";s:4:"name";s:8:"disabled";s:4:"help";s:96:"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell";}i:4;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s onChange";s:5:"align";s:6:"center";s:4:"name";s:8:"onchange";s:4:"help";s:33:"enable JavaScript onChange submit";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Help";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"50";s:4:"span";s:3:"all";s:4:"name";s:4:"help";s:4:"help";s:60:"displayed in statusline of browser if input-field gets focus";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:6;s:4:"size";s:5:",100%";}}','size' => ',100%','style' => '','modified' => '1034540913',); $templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.15.003','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:4:{s:2:"c1";s:3:"row";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c4";s:3:"row";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Options";s:5:"align";s:6:"center";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"size";s:4:"help";s:187:"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:11:"Span, Class";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:8:"checkbox";s:4:"span";s:1:"2";s:5:"label";s:16:"%s NoTranslation";s:5:"align";s:6:"center";s:4:"name";s:7:"no_lang";s:4:"help";s:82:"select if content of field should not be translated (label gets always translated)";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:1:"4";i:1;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:9:"%s needed";s:5:"align";s:6:"center";s:4:"name";s:6:"needed";s:4:"help";s:39:"check if field has to be filled by user";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s readonly";s:5:"align";s:6:"center";s:4:"name";s:8:"readonly";s:4:"help";s:94:"check if content should only be displayed but not altered (the content is not send back then!)";}i:3;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s disabled";s:5:"align";s:6:"center";s:4:"name";s:8:"disabled";s:4:"help";s:96:"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell";}i:4;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s onChange";s:5:"align";s:6:"center";s:4:"name";s:8:"onchange";s:4:"help";s:33:"enable JavaScript onChange submit";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Help";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"45";s:4:"span";s:1:"3";s:4:"name";s:4:"help";s:4:"help";s:60:"displayed in statusline of browser if input-field gets focus";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"blurText";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"blur";s:4:"help";s:76:"this text gets displayed if the input-field is empty and has no focus (blur)";}}}s:4:"rows";i:4;s:4:"cols";i:6;s:4:"size";s:5:",100%";}}','size' => ',100%','style' => '','modified' => '1061339128',); @@ -111,6 +113,8 @@ $templ_data[] = array('name' => 'etemplate.editor.keys','template' => '','lang' $templ_data[] = array('name' => 'etemplate.editor.keys','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:4:{s:1:"A";a:5:{s:4:"type";s:4:"text";s:4:"size";s:5:"25,80";s:5:"label";s:4:"Name";s:4:"name";s:4:"name";s:4:"help";s:75:"name of the eTemplate, should be in form application.function[.subTemplate]";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:4:"8,20";s:5:"label";s:8:"Template";s:4:"name";s:8:"template";s:4:"help";s:125:"name of phpgw-template set (e.g. verdilak): \'\' = default (will read pref. template, us \'default\' to read default template \'\')";}s:1:"C";a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"5,5";s:5:"label";s:4:"Lang";s:4:"name";s:4:"lang";s:4:"help";s:162:"language-short (eg. \'en\' for english) for language-dependent template (\'\' reads your pref. languages or the default, us \'default\' to read the default template \'\')";}s:1:"D";a:5:{s:4:"type";s:4:"text";s:4:"size";s:4:"9,20";s:5:"label";s:7:"Version";s:4:"name";s:7:"version";s:4:"help";s:116:"version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros)";}}}s:4:"rows";i:1;s:4:"cols";i:4;}}','size' => '','style' => '','modified' => '1108983539',); +$templ_data[] = array('name' => 'etemplate.editor.list_result','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:6:{s:4:"type";s:5:"label";s:4:"size";s:2:"bi";s:4:"span";s:3:"all";s:5:"label";s:27:"Editable Templates - Search";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:5:"hrule";s:4:"span";s:3:"all";}}i:3;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:21:"etemplate.editor.keys";}}i:4;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:4:"name";s:33:"etemplate.editor.list_result.list";}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1032907904',); + $templ_data[] = array('name' => 'etemplate.editor.list_result','template' => '','lang' => '','group' => '0','version' => '1.0.0.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:1:{s:2:"h1";s:6:",!@msg";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:21:"etemplate.editor.keys";}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:4:"name";s:33:"etemplate.editor.list_result.list";}}}s:4:"rows";i:3;s:4:"cols";i:1;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.redItalic { color:red; font-style:italic;}','modified' => '1107711996',); $templ_data[] = array('name' => 'etemplate.editor.list_result','template' => '','lang' => '','group' => '0','version' => '1.0.0.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:1:{s:2:"h1";s:6:",!@msg";}i:1;a:1:{s:1:"A";a:4:{s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:4:"type";s:5:"label";}}i:2;a:1:{s:1:"A";a:2:{s:4:"name";s:21:"etemplate.editor.keys";s:4:"type";s:8:"template";}}i:3;a:1:{s:1:"A";a:4:{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:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";s:4:"span";s:11:",lr_padding";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Template";s:4:"span";s:11:",lr_padding";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Lang";s:4:"span";s:11:",lr_padding";}s:1:"D";a:4:{s:5:"align";s:6:"center";s:4:"type";s:5:"label";s:5:"label";s:7:"Version";s:4:"span";s:11:",lr_padding";}s:1:"E";a:6:{s:5:"label";s:6:"Search";s:5:"align";s:6:"center";s:4:"name";s:6:"search";s:4:"type";s:6:"button";s:4:"help";s:38:"start new search for the above pattern";s:4:"span";s:11:",lr_padding";}s:1:"F";a:5:{s:5:"label";s:6:"Delete";s:4:"name";s:15:"delete_selected";s:4:"type";s:6:"button";s:4:"help";s:55:"delete ALL selected eTemplates, WITHOUT further inquiry";s:4:"span";s:11:",lr_padding";}}i:2;a:6:{s:1:"A";a:5:{s:7:"no_lang";s:1:"1";s:4:"size";s:17:",,,selected[$row]";s:4:"type";s:5:"label";s:5:"label";s:13:"@${row}[name]";s:4:"span";s:11:",lr_padding";}s:1:"B";a:4:{s:7:"no_lang";s:1:"1";s:4:"name";s:16:"${row}[template]";s:4:"type";s:5:"label";s:4:"span";s:11:",lr_padding";}s:1:"C";a:4:{s:7:"no_lang";s:1:"1";s:4:"name";s:12:"${row}[lang]";s:4:"type";s:5:"label";s:4:"span";s:11:",lr_padding";}s:1:"D";a:5:{s:7:"no_lang";s:1:"1";s:4:"size";s:17:",,,selected[$row]";s:4:"type";s:5:"label";s:5:"label";s:16:"@${row}[version]";s:4:"span";s:11:",lr_padding";}s:1:"E";a:5:{s:5:"align";s:6:"center";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:5:{s:5:"label";s:4:"Edit";s:4:"name";s:10:"read[$row]";s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:4:"help";s:34:"load this template into the editor";}i:2;a:6:{s:5:"label";s:6:"Delete";s:7:"onclick";s:40:"return confirm(\'Delete this eTemplate\');";s:4:"name";s:12:"delete[$row]";s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:4:"help";s:21:"Delete this eTemplate";}}s:1:"F";a:4:{s:5:"align";s:6:"center";s:4:"name";s:14:"selected[$row]";s:4:"type";s:8:"checkbox";s:4:"help";s:34:"select this eTemplate to delete it";}}}s:4:"cols";i:6;s:4:"rows";i:2;}}}s:4:"cols";i:1;s:4:"rows";i:3;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.redItalic { color:red; font-style:italic;} td.lr_padding { padding-left: 5px; padding-right: 5px; }','modified' => '1115535419',); @@ -151,6 +155,8 @@ $templ_data[] = array('name' => 'etemplate.editor.widget.ajax_select','template' $templ_data[] = array('name' => 'etemplate.editor.widget.contact','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:5:{s:2:"c1";s:3:"row";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c4";s:3:"row";s:2:"h4";s:14:",!@type=button";}i:1;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,type";s:5:"label";s:4:"Type";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:8:"onchange";s:1:"1";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:5:{s:4:"type";s:14:"contact-fields";s:4:"name";s:4:"size";s:4:"help";s:21:"Contact field to show";s:4:"span";s:3:"all";s:5:"label";s:5:"Field";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";s:5:"label";s:11:"Span, Class";s:4:"span";s:1:"2";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,name";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s disabled";s:4:"name";s:8:"disabled";s:4:"help";s:96:"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell";s:4:"span";s:3:"all";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:"onclick";s:5:"label";s:7:"onClick";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"select";s:4:"name";s:12:"onclick_type";s:4:"help";s:43:"confirmation necesary or custom java-script";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"53";s:4:"span";s:3:"all";s:4:"name";s:7:"onclick";s:4:"help";s:67:"confirmation message or custom javascript (returning true or false)";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1159998081',); +$templ_data[] = array('name' => 'etemplate.editor.widget.generic','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:8:{s:2:"c1";s:3:"row";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c5";s:3:"row";s:2:"c6";s:3:"row";s:2:"h6";s:14:",!@type=button";s:2:"c4";s:3:"row";s:2:"h4";s:12:",@type=label";}i:1;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,type";s:5:"label";s:4:"Type";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:8:"onchange";s:1:"1";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,size";s:5:"label";s:7:"Options";s:5:"align";s:6:"center";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"size";s:4:"help";s:187:"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,span";s:5:"label";s:11:"Span, Class";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";}}i:2;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:8:"checkbox";s:4:"span";s:1:"2";s:5:"label";s:16:"%s NoTranslation";s:5:"align";s:6:"center";s:4:"name";s:7:"no_lang";s:4:"help";s:82:"select if content of field should not be translated (label gets always translated)";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,name";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:1:"4";i:1;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:9:"%s needed";s:5:"align";s:6:"center";s:4:"name";s:6:"needed";s:4:"help";s:39:"check if field has to be filled by user";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s readonly";s:5:"align";s:6:"center";s:4:"name";s:8:"readonly";s:4:"help";s:94:"check if content should only be displayed but not altered (the content is not send back then!)";}i:3;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s disabled";s:5:"align";s:6:"center";s:4:"name";s:8:"disabled";s:4:"help";s:96:"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell";}i:4;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s onChange";s:5:"align";s:6:"center";s:4:"name";s:8:"onchange";s:4:"help";s:33:"enable JavaScript onChange submit";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,blur";s:5:"label";s:8:"blurText";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"blur";s:4:"help";s:76:"this text gets displayed if the input-field is empty and has no focus (blur)";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:1:"4";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:3:"int";s:5:"label";s:8:"Tabindex";s:4:"span";s:1:"2";s:4:"name";s:8:"tabindex";s:4:"help";s:47:"Order to navigating by tab key through the form";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"1,1";s:4:"name";s:9:"accesskey";s:4:"help";s:67:"Accesskeys can also be specified with an & in the label (eg. &Name)";s:5:"label";s:9:"Accesskey";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:5;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,help";s:5:"label";s:4:"Help";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"73";s:4:"span";s:3:"all";s:4:"name";s:4:"help";s:4:"help";s:60:"displayed in statusline of browser if input-field gets focus";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:6;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:"onclick";s:5:"label";s:7:"onClick";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"select";s:4:"name";s:12:"onclick_type";s:4:"help";s:43:"confirmation necesary or custom java-script";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"58";s:4:"span";s:3:"all";s:4:"name";s:7:"onclick";s:4:"help";s:67:"confirmation message or custom javascript (returning true or false)";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1118499298',); + $templ_data[] = array('name' => 'etemplate.editor.widget.generic','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:8:{i:0;a:10:{s:2:"c1";s:3:"row";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c5";s:3:"row";s:2:"c6";s:3:"row";s:2:"h6";s:12:",@type=label";s:2:"c4";s:3:"row";s:2:"h4";s:12:",@type=label";s:2:"h7";s:14:",!@type=button";s:2:"c7";s:3:"row";}i:1;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,type";s:5:"label";s:4:"Type";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:8:"onchange";s:1:"1";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,size";s:5:"label";s:7:"Options";s:5:"align";s:6:"center";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"size";s:4:"help";s:187:"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,span";s:5:"label";s:11:"Span, Class";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";}}i:2;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:8:"checkbox";s:4:"span";s:1:"2";s:5:"label";s:16:"%s NoTranslation";s:5:"align";s:6:"center";s:4:"name";s:7:"no_lang";s:4:"help";s:82:"select if content of field should not be translated (label gets always translated)";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,name";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:4:"span";s:1:"4";i:1;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:9:"%s needed";s:5:"align";s:6:"center";s:4:"name";s:6:"needed";s:4:"help";s:39:"check if field has to be filled by user";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s readonly";s:5:"align";s:6:"center";s:4:"name";s:8:"readonly";s:4:"help";s:94:"check if content should only be displayed but not altered (the content is not send back then!)";}i:3;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s disabled";s:5:"align";s:6:"center";s:4:"name";s:8:"disabled";s:4:"help";s:96:"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,blur";s:5:"label";s:8:"blurText";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"blur";s:4:"help";s:76:"this text gets displayed if the input-field is empty and has no focus (blur)";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:1:"4";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:3:"int";s:5:"label";s:8:"Tabindex";s:4:"span";s:1:"2";s:4:"name";s:8:"tabindex";s:4:"help";s:47:"Order to navigating by tab key through the form";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"1,1";s:4:"name";s:9:"accesskey";s:4:"help";s:67:"Accesskeys can also be specified with an & in the label (eg. &Name)";s:5:"label";s:9:"Accesskey";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:5;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,help";s:5:"label";s:4:"Help";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"71";s:4:"span";s:3:"all";s:4:"name";s:4:"help";s:4:"help";s:60:"displayed in statusline of browser if input-field gets focus";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:6;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"onChange";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"select";s:4:"name";s:13:"onchange_type";s:4:"help";s:65:"Should the form be submitted or any custom javascript be executed";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"50";s:4:"span";s:3:"all";s:4:"name";s:8:"onchange";s:4:"help";s:30:"custom javascript for onChange";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:7;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:"onclick";s:5:"label";s:7:"onClick";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"select";s:4:"name";s:12:"onclick_type";s:4:"help";s:43:"confirmation necesary or custom java-script";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"53";s:4:"span";s:3:"all";s:4:"name";s:7:"onclick";s:4:"help";s:67:"confirmation message or custom javascript (returning true or false)";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:7;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1118499298',); $templ_data[] = array('name' => 'etemplate.editor.widget.generic','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:8:{i:0;a:9:{s:2:"c1";s:3:"row";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c5";s:3:"row";s:2:"c6";s:3:"row";s:2:"h6";s:12:",@type=label";s:2:"c4";s:3:"row";s:2:"h4";s:12:",@type=label";s:2:"c7";s:3:"row";}i:1;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,type";s:5:"label";s:4:"Type";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:4:"name";s:4:"type";s:8:"onchange";s:1:"1";s:4:"help";s:57:"type of the field (select Label if field should be empty)";}s:1:"C";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,size";s:5:"label";s:7:"Options";s:5:"align";s:6:"center";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"size";s:4:"help";s:187:"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,span";s:5:"label";s:11:"Span, Class";s:5:"align";s:6:"center";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:4:"span";s:4:"help";s:111:"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)";}}i:2;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,label";s:5:"label";s:5:"Label";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"label";s:4:"help";s:118:"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)";}s:1:"C";a:6:{s:4:"type";s:8:"checkbox";s:4:"span";s:1:"2";s:5:"label";s:16:"%s NoTranslation";s:5:"align";s:6:"center";s:4:"name";s:7:"no_lang";s:4:"help";s:82:"select if content of field should not be translated (label gets always translated)";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:5:"Align";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:6:"select";s:4:"name";s:5:"align";s:4:"help";s:48:"alignment of label and input-field in table-cell";}}i:3;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,name";s:5:"label";s:4:"Name";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"help";s:78:"index/name of returned content (name of the Template, Link / Method for Image)";}s:1:"C";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:4:"span";s:1:"4";i:1;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:9:"%s needed";s:5:"align";s:6:"center";s:4:"name";s:6:"needed";s:4:"help";s:39:"check if field has to be filled by user";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s readonly";s:5:"align";s:6:"center";s:4:"name";s:8:"readonly";s:4:"help";s:94:"check if content should only be displayed but not altered (the content is not send back then!)";}i:3;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:11:"%s disabled";s:5:"align";s:6:"center";s:4:"name";s:8:"disabled";s:4:"help";s:96:"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:4;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,blur";s:5:"label";s:8:"blurText";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"blur";s:4:"help";s:76:"this text gets displayed if the input-field is empty and has no focus (blur)";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:1:"4";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:3:"int";s:5:"label";s:8:"Tabindex";s:4:"span";s:1:"2";s:4:"name";s:8:"tabindex";s:4:"help";s:47:"Order to navigating by tab key through the form";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"1,1";s:4:"name";s:9:"accesskey";s:4:"help";s:67:"Accesskeys can also be specified with an & in the label (eg. &Name)";s:5:"label";s:9:"Accesskey";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:5;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,help";s:5:"label";s:4:"Help";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"71";s:4:"span";s:3:"all";s:4:"name";s:4:"help";s:4:"help";s:60:"displayed in statusline of browser if input-field gets focus";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:6;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"onChange";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"select";s:4:"name";s:13:"onchange_type";s:4:"help";s:65:"Should the form be submitted or any custom javascript be executed";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"50";s:4:"span";s:3:"all";s:4:"name";s:8:"onchange";s:4:"help";s:30:"custom javascript for onChange";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:7;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:"onclick";s:5:"label";s:7:"onClick";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"select";s:4:"name";s:12:"onclick_type";s:4:"help";s:43:"confirmation necesary or custom java-script";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"53";s:4:"span";s:3:"all";s:4:"name";s:7:"onclick";s:4:"help";s:67:"confirmation message or custom javascript (returning true or false)";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:1:{s:4:"type";s:5:"label";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:7;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1118499298',); @@ -163,6 +169,8 @@ $templ_data[] = array('name' => 'etemplate.groupbox.test','template' => '','lang $templ_data[] = array('name' => 'etemplate.groupbox.test-template','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}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:8:"Template";i:1;a:2:{s:4:"type";s:8:"template";s:4:"name";s:25:"etemplate.tab_widget.test";}}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1107701431',); +$templ_data[] = array('name' => 'etemplate.integer','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"c1";s:7:",middle";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:3:"int";s:4:"size";s:2:",2";s:5:"label";s:5:"Datum";s:4:"name";s:4:"zahl";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:5:"2,0,0";i:1;a:3:{s:4:"type";s:6:"button";s:4:"size";s:9:"up.button";s:5:"label";s:1:"+";}i:2;a:3:{s:4:"type";s:6:"button";s:4:"size";s:11:"down.button";s:5:"label";s:1:"-";}}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"size";s:8:",,0,,0,0";}}','size' => ',,0,,0,0','style' => '','modified' => '1046010927',); + $templ_data[] = array('name' => 'etemplate.link_widget.add','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"name";s:3:"app";s:4:"help";s:43:"Add a new entry of the selected application";s:5:"label";s:7:"Add new";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:4:"help";s:43:"Add a new entry of the selected application";s:7:"onclick";s:64:"eval(this.form.elements[form::name(\'app\')].value); return false;";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1159565080',); $templ_data[] = array('name' => 'etemplate.link_widget.add','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"name";s:7:"add_app";s:4:"help";s:43:"Add a new entry of the selected application";s:5:"label";s:7:"Add new";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:4:"help";s:43:"Add a new entry of the selected application";s:7:"onclick";s:68:"eval(this.form.elements[form::name(\'add_app\')].value); return false;";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1165593765',); @@ -185,6 +193,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.2.002','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:4:"vbox";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:14:",@${row}[view]";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',); +$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',); + $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.2.001','data' => 'a:2:{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:4:{s:1:"A";a:4:{s:4:"type";s:6:"select";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:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"32";s:4:"name";s:5:"query";s:4:"help";s:22:"Enter a search pattern";s:8:"tabindex";i:99;}s:1:"C";a:6:{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";s:4:"span";s:3:"all";s:8:"tabindex";i:100;}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:2;a:4:{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";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:3;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Attach file";}s:1:"B";a:4:{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:4:"size";s:2:"12";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Attach";s:4:"name";s:6:"attach";s:4:"help";s:29:"Click here to attach the file";}s:1:"D";a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"comment";s:4:"help";s:28:"optional note about the Link";s:8:"onchange";s:81:"set_style_by_class(\'*\',\'hide_comment\',\'display\',this.checked ? \'block\' : \'none\');";}}}s:4:"rows";i:3;s:4:"cols";i:4;}i:1;a:6:{s:4:"type";s:4:"text";s:4:"name";s:6:"remark";s:4:"size";s:5:"50,50";s:4:"span";s:13:",hide_comment";s:5:"label";s:7:"Comment";s:4:"help";s:28:"optional note about the Link";}}','size' => '','style' => '.redItalic { font-style: italic; color: red; } @@ -201,6 +212,14 @@ $templ_data[] = array('name' => 'etemplate.link_widget.to','template' => '','lan .hide_comment input { display: none; width: 99%; } ','modified' => '1159565799',); +$templ_data[] = array('name' => 'etemplate.nextm*','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1155977979',); + +$templ_data[] = array('name' => 'etemplate.nextmatch_widget','template' => '','lang' => '','group' => '0','version' => '0.9.15.008','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:1:"A";s:3:"40%";s:1:"C";s:3:"40%";s:2:"h4";s:13:",!@bottom_too";}i:1;a:3:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:12:"@header_left";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:6:"center";i:1;a:4:{s:4:"type";s:5:"label";s:5:"label";s:7:"showing";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"range";}i:2;a:4:{s:4:"type";s:5:"label";s:5:"label";s:2:"of";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"total";}}s:1:"C";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:13:"@header_right";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:8:"onchange";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:4:"rows";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:9:"@template";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:6:"bottom";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:3;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.activ_sortcolumn { color: red; font-weight: bold; } +.inactiv_sortcolumn { color: green; font-weight: normal; }','modified' => '1070783966',); + +$templ_data[] = array('name' => 'etemplate.nextmatch_widget','template' => '','lang' => '','group' => '0','version' => '1.0.0.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:6:{s:1:"A";s:3:"35%";s:1:"C";s:3:"35%";s:2:"h4";s:13:",!@bottom_too";s:2:"c1";s:7:"noPrint";s:2:"c2";s:7:"noPrint";s:2:"c4";s:7:"noPrint";}i:1;a:3:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:12:"@header_left";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:6:"center";i:1;a:4:{s:4:"type";s:5:"label";s:5:"label";s:7:"showing";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"range";}i:2;a:4:{s:4:"type";s:5:"label";s:5:"label";s:2:"of";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"total";}}s:1:"C";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:13:"@header_right";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:8:"onchange";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:4:"rows";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:9:"@template";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:6:"bottom";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:3;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.activ_sortcolumn { color: red; font-weight: bold; } +.inactiv_sortcolumn { color: green; font-weight: normal; }','modified' => '1114155787',); + $templ_data[] = array('name' => 'etemplate.nextmatch_widget','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:6:{s:1:"A";s:3:"35%";s:1:"C";s:3:"35%";s:2:"c1";s:7:"noPrint";s:2:"c2";s:7:"noPrint";s:2:"c4";s:7:"noPrint";s:2:"h4";s:13:",!@bottom_too";}i:1;a:3:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:12:"@header_left";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:6:"center";i:1;a:4:{s:4:"type";s:5:"label";s:5:"label";s:7:"showing";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"range";}i:2;a:4:{s:4:"type";s:5:"label";s:5:"label";s:2:"of";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"total";}}s:1:"C";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:13:"@header_right";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:8:"onchange";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:4:"rows";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:9:"@template";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:6:"bottom";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:3;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.activ_sortcolumn { color: red; font-weight: bold; } .inactiv_sortcolumn { color: green; font-weight: normal; }','modified' => '1143393034',); @@ -211,6 +230,10 @@ $templ_data[] = array('name' => 'etemplate.nextmatch_widget.header_only','templa $templ_data[] = array('name' => 'etemplate.nextmatch_widget.header_only','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:1:"A";s:3:"50%";s:1:"B";s:3:"50%";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:12:"@header_left";}s:1:"B";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:13:"@header_right";}}i:2;a:2:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:4:"rows";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:9:"@template";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:2;s:4:"cols";i:2;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.activ_sortcolumn { color: red; font-weight: bold; } .inactiv_sortcolumn { color: green; font-weight: normal; }','modified' => '1075985789',); +$templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' => '','lang' => '','group' => '0','version' => '0.9.15.006','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:9:{s:1:"A";s:2:"1%";s:1:"B";s:2:"1%";s:1:"C";s:3:"30%";s:1:"D";s:3:"30%";s:1:"F";s:3:"15%";s:1:"G";s:2:"5%";s:1:"H";s:2:"1%";s:1:"I";s:2:"1%";s:2:"c1";s:3:"nmh";}i:1;a:9:{s:1:"A";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"first.gif,first-grey.gif";s:5:"label";s:5:"First";s:4:"name";s:5:"first";s:4:"help";s:21:"go to the first entry";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"left.gif,left-grey.gif";s:5:"label";s:4:"Left";s:4:"name";s:4:"left";s:4:"help";s:34:"go to the previous page of entries";}s:1:"C";a:6:{s:4:"type";s:10:"select-cat";s:4:"size";s:2:"-1";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";s:8:"onchange";s:1:"1";s:4:"help";s:17:"select a Category";}s:1:"D";a:6:{s:4:"type";s:6:"select";s:5:"label";s:13:"@filter_label";s:5:"align";s:6:"center";s:4:"name";s:6:"filter";s:8:"onchange";s:1:"1";s:4:"help";s:12:"@filter_help";}s:1:"E";a:6:{s:4:"type";s:6:"select";s:5:"label";s:14:"@filter2_label";s:5:"align";s:5:"right";s:4:"name";s:7:"filter2";s:8:"onchange";s:1:"1";s:4:"help";s:13:"@filter2_help";}s:1:"F";a:5:{s:4:"type";s:4:"text";s:5:"align";s:5:"right";s:4:"name";s:6:"search";s:8:"onchange";s:1:"1";s:4:"help";s:28:"a pattern to be searched for";}s:1:"G";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:12:"start_search";s:4:"help";s:19:"to start the search";}s:1:"H";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"right.gif,right-grey.gif";s:5:"label";s:5:"Right";s:4:"name";s:5:"right";s:4:"help";s:30:"go to the next page of entries";}s:1:"I";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"last.gif,last-grey.gif";s:5:"label";s:4:"Last";s:4:"name";s:4:"last";s:4:"help";s:20:"go to the last entry";}}}s:4:"rows";i:1;s:4:"cols";i:9;s:4:"size";s:11:"100%,,,,0,5";s:4:"span";s:11:",thinBorder";}}','size' => '100%,,,,0,5','style' => '.thinBorder { border: 1px solid black; }','modified' => '1061331789',); + +$templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' => '','lang' => '','group' => '0','version' => '1.0.0.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:9:{s:1:"A";s:2:"1%";s:1:"B";s:2:"1%";s:1:"C";s:3:"30%";s:1:"D";s:3:"30%";s:1:"F";s:3:"15%";s:1:"G";s:2:"5%";s:1:"H";s:2:"1%";s:1:"I";s:2:"1%";s:2:"c1";s:3:"nmh";}i:1;a:9:{s:1:"A";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"first.gif,first-grey.gif";s:5:"label";s:5:"First";s:4:"name";s:5:"first";s:4:"help";s:21:"go to the first entry";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"left.gif,left-grey.gif";s:5:"label";s:4:"Left";s:4:"name";s:4:"left";s:4:"help";s:34:"go to the previous page of entries";}s:1:"C";a:6:{s:4:"type";s:10:"select-cat";s:4:"size";s:2:"-1";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";s:8:"onchange";s:1:"1";s:4:"help";s:17:"select a Category";}s:1:"D";a:6:{s:4:"type";s:6:"select";s:5:"label";s:13:"@filter_label";s:5:"align";s:6:"center";s:4:"name";s:6:"filter";s:8:"onchange";s:16:"@filter_onchange";s:4:"help";s:12:"@filter_help";}s:1:"E";a:6:{s:4:"type";s:6:"select";s:5:"label";s:14:"@filter2_label";s:5:"align";s:5:"right";s:4:"name";s:7:"filter2";s:8:"onchange";s:17:"@filter2_onchange";s:4:"help";s:13:"@filter2_help";}s:1:"F";a:5:{s:4:"type";s:4:"text";s:5:"align";s:5:"right";s:4:"name";s:6:"search";s:8:"onchange";s:1:"1";s:4:"help";s:28:"a pattern to be searched for";}s:1:"G";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:12:"start_search";s:4:"help";s:19:"to start the search";}s:1:"H";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"right.gif,right-grey.gif";s:5:"label";s:5:"Right";s:4:"name";s:5:"right";s:4:"help";s:30:"go to the next page of entries";}s:1:"I";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"last.gif,last-grey.gif";s:5:"label";s:4:"Last";s:4:"name";s:4:"last";s:4:"help";s:20:"go to the last entry";}}}s:4:"rows";i:1;s:4:"cols";i:9;s:4:"size";s:11:"100%,,,,0,5";s:4:"span";s:11:",thinBorder";}}','size' => '100%,,,,0,5','style' => '.thinBorder { border: 1px solid black; }','modified' => '1113294054',); + $templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:9:{s:1:"A";s:2:"1%";s:1:"B";s:2:"1%";s:1:"D";s:3:"30%";s:1:"G";s:2:"5%";s:1:"I";s:2:"1%";s:2:"c1";s:2:"th";s:1:"C";s:3:"30%";s:1:"F";s:3:"15%";s:1:"J";s:2:"1%";}i:1;a:10:{s:1:"A";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"first.gif,first-grey.gif";s:5:"label";s:5:"First";s:4:"name";s:5:"first";s:4:"help";s:21:"go to the first entry";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"left.gif,left-grey.gif";s:5:"label";s:4:"Left";s:4:"name";s:4:"left";s:4:"help";s:34:"go to the previous page of entries";}s:1:"C";a:6:{s:4:"type";s:10:"select-cat";s:4:"size";s:19:"-1,,,$cont[cat_app]";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";s:8:"onchange";i:1;s:4:"help";s:17:"select a Category";}s:1:"D";a:6:{s:4:"type";s:6:"select";s:5:"label";s:13:"@filter_label";s:5:"align";s:6:"center";s:4:"name";s:6:"filter";s:8:"onchange";s:16:"@filter_onchange";s:4:"help";s:12:"@filter_help";}s:1:"E";a:6:{s:4:"type";s:6:"select";s:5:"label";s:14:"@filter2_label";s:5:"align";s:5:"right";s:4:"name";s:7:"filter2";s:8:"onchange";s:17:"@filter2_onchange";s:4:"help";s:13:"@filter2_help";}s:1:"F";a:5:{s:4:"type";s:4:"text";s:5:"align";s:5:"right";s:4:"name";s:6:"search";s:8:"onchange";s:1:"1";s:4:"help";s:28:"a pattern to be searched for";}s:1:"G";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:12:"start_search";s:4:"help";s:19:"to start the search";}s:1:"H";a:5:{s:4:"type";s:6:"select";s:4:"name";s:8:"num_rows";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;s:4:"help";s:37:"How many entries should the list show";}s:1:"I";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"right.gif,right-grey.gif";s:5:"label";s:5:"Right";s:4:"name";s:5:"right";s:4:"help";s:30:"go to the next page of entries";}s:1:"J";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"last.gif,last-grey.gif";s:5:"label";s:4:"Last";s:4:"name";s:4:"last";s:4:"help";s:20:"go to the last entry";}}}s:4:"rows";i:1;s:4:"cols";i:10;s:4:"size";s:11:"100%,,,,0,5";s:4:"span";s:11:",thinBorder";}}','size' => '100%,,,,0,5','style' => '.thinBorder { border: 1px solid black; }','modified' => '1113294054',); $templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:10:{s:1:"A";s:2:"1%";s:1:"B";s:2:"1%";s:1:"D";s:3:"30%";s:1:"G";s:2:"5%";s:1:"I";s:2:"1%";s:2:"c1";s:2:"th";s:1:"C";s:3:"30%";s:1:"F";s:3:"15%";s:1:"J";s:2:"1%";s:2:"h1";s:20:",@no_columnselection";}i:1;a:11:{s:1:"A";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"first.gif,first-grey.gif";s:5:"label";s:5:"First";s:4:"name";s:5:"first";s:4:"help";s:21:"go to the first entry";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"left.gif,left-grey.gif";s:5:"label";s:4:"Left";s:4:"name";s:4:"left";s:4:"help";s:34:"go to the previous page of entries";}s:1:"C";a:7:{s:4:"type";s:10:"select-cat";s:4:"size";s:19:"-1,,,$cont[cat_app]";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";s:8:"onchange";i:1;s:4:"help";s:17:"select a Category";s:5:"align";s:6:"center";}s:1:"D";a:6:{s:4:"type";s:6:"select";s:5:"label";s:13:"@filter_label";s:5:"align";s:6:"center";s:4:"name";s:6:"filter";s:8:"onchange";s:16:"@filter_onchange";s:4:"help";s:12:"@filter_help";}s:1:"E";a:6:{s:4:"type";s:6:"select";s:5:"label";s:14:"@filter2_label";s:5:"align";s:6:"center";s:4:"name";s:7:"filter2";s:8:"onchange";s:17:"@filter2_onchange";s:4:"help";s:13:"@filter2_help";}s:1:"F";a:6:{s:4:"type";s:4:"text";s:5:"align";s:5:"right";s:4:"name";s:6:"search";s:8:"onchange";i:1;s:4:"help";s:28:"a pattern to be searched for";s:4:"size";s:2:"12";}s:1:"G";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:12:"start_search";s:4:"help";s:19:"to start the search";}s:1:"H";a:6:{s:4:"type";s:6:"select";s:4:"name";s:8:"num_rows";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;s:4:"help";s:37:"How many entries should the list show";s:4:"span";s:12:",nm_num_rows";}s:1:"I";a:5:{s:4:"type";s:6:"button";s:4:"size";s:24:"right.gif,right-grey.gif";s:5:"label";s:5:"Right";s:4:"name";s:5:"right";s:4:"help";s:30:"go to the next page of entries";}s:1:"J";a:5:{s:4:"type";s:6:"button";s:4:"size";s:22:"last.gif,last-grey.gif";s:5:"label";s:4:"Last";s:4:"name";s:4:"last";s:4:"help";s:20:"go to the last entry";}s:1:"K";a:5:{s:4:"type";s:3:"box";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:6:"button";s:4:"size";s:10:"selectcols";s:5:"label";s:14:"Select columns";s:4:"help";s:41:"Select the columns to display in the list";s:7:"onclick";s:174:"document.getElementById(form::name(\'colselection\')).style.display=document.getElementById(form::name(\'colselection\')).style.display==\'block\' ? \'none\' : \'block\'; return false;";}i:2;a:7:{s:4:"type";s:8:"groupbox";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:6:"select";s:4:"size";s:3:"012";s:4:"name";s:10:"selectcols";s:4:"help";s:41:"Select the columns to display in the list";s:7:"no_lang";s:1:"1";}i:2;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:8:"savecols";i:1;a:1:{s:4:"type";s:4:"hbox";}}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:6:"cancel";s:5:"label";s:6:"Cancel";s:7:"onclick";s:87:"document.getElementById(form::name(\'colselection\')).style.display=\'none\'; return false;";}i:3;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:13:"default_prefs";s:5:"label";s:10:"as default";s:4:"help";s:58:"Save selected columns as default preference for all users.";}}s:4:"span";s:13:",colselection";s:4:"name";s:12:"colselection";s:5:"label";s:14:"Select columns";}s:4:"span";s:11:",selectcols";}}}s:4:"rows";i:1;s:4:"cols";i:11;s:4:"size";s:11:"100%,,,,0,3";s:4:"span";s:17:",nextmatch_header";s:7:"options";a:3:{i:0;s:4:"100%";i:4;s:1:"0";i:5;s:1:"3";}}}','size' => '100%,,,,0,3','style' => '','modified' => '1113294054',); @@ -221,6 +244,10 @@ $templ_data[] = array('name' => 'etemplate.popup.manual','template' => '','lang' $templ_data[] = array('name' => 'etemplate.stack-test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:4:"deck";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:10:"Hallo Ralf";s:4:"name";s:4:"ralf";}i:2;a:3:{s:4:"type";s:5:"label";s:5:"label";s:10:"Hallo Welt";s:4:"name";s:4:"welt";}}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1047754314',); +$templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '0.9.15.003','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:7:",bottom";s:2:"c2";s:7:"row_off";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@tabs";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@body";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:11:"100%,,,,0,0";}}','size' => '100%,,,,0,0','style' => '.etemplate_tab { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:4px; width: 60px; white-space:nowrap; } +.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black;padding:6px; width: 60px; white-space:nowrap; } +.tab_body { border-style: solid; border-color: black; border-width: 1px; }','modified' => '1088758341',); + $templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:1:{s:2:"c2";s:7:"row_off";}i:1;a:1:{s:1:"A";a:5:{s:4:"name";s:4:"tabs";s:4:"type";s:4:"hbox";s:4:"size";s:1:"1";i:1;a:1:{s:4:"type";s:5:"label";}s:4:"span";s:10:",TabHeader";}}i:2;a:1:{s:1:"A";a:6:{s:5:"class";s:8:"tab_body";s:4:"name";s:4:"body";s:4:"type";s:4:"deck";s:4:"size";s:1:"1";i:1;a:1:{s:4:"type";s:5:"label";}s:4:"span";s:9:",tab_body";}}}s:4:"cols";i:1;s:4:"rows";i:2;s:4:"size";s:11:"100%,,,,0,0";}}','size' => '100%,,,,0,0','style' => '.etemplate_tab,.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:3px; padding-left: 6px; padding-right: 6px; width: 60px; white-space: nowrap; } .etemplate_tab { cursor: pointer; } .etemplate_tab_active { border-width:2px 2px 0px; } diff --git a/etemplate/templates/default/link_widget.list.xet b/etemplate/templates/default/link_widget.list.xet index 9113042336..bf4f7f0f13 100644 --- a/etemplate/templates/default/link_widget.list.xet +++ b/etemplate/templates/default/link_widget.list.xet @@ -1,27 +1,35 @@ - - - - - - - - - - - - - - -