diff --git a/admin/setup/phpgw_de.lang b/admin/setup/phpgw_de.lang index fe59223e61..73146b4228 100644 --- a/admin/setup/phpgw_de.lang +++ b/admin/setup/phpgw_de.lang @@ -226,6 +226,7 @@ home directory admin de Benutzerverzeichnis host information admin de Host-Information hour
(0-23) admin de Stunde
(0-23) how many days should entries stay in the access log, before they get deleted (default 90) ? admin de Wie viele Tage sollen Einträge im Zugangsprotokoll bleiben, bevor sie gelöscht werden (Vorgabe 90)? +how many entries should non-admins be able to export (empty = no limit, no = no export) admin de Wie viele Einträge sollen nicht-Administratoren exportieren können (leer = kein Limit, Nein = kein Export) how many minutes should an account or ip be blocked (default 30) ? admin de Wie viele Minuten soll ein Benutzerkonto oder eine IP gesperrt werden (Vorgabe 30)? how should email addresses for new users be constructed? admin de In welchem Format sollen E-Mail-Adressen von neuen Benutzern erzeugt werden? icon admin de Icon diff --git a/admin/setup/phpgw_en.lang b/admin/setup/phpgw_en.lang index fb8330bc31..8545e37611 100644 --- a/admin/setup/phpgw_en.lang +++ b/admin/setup/phpgw_en.lang @@ -224,6 +224,7 @@ home directory admin en Home directory host information admin en Host information hour
(0-23) admin en Hour
(0-23) how many days should entries stay in the access log, before they get deleted (default 90) ? admin en How many days should entries stay in the access log, before they get deleted (default 90) ? +how many entries should non-admins be able to export (empty = no limit, no = no export) admin en How many entries should non-admins be able to export (empty = no limit, no = no export) how many minutes should an account or ip be blocked (default 30) ? admin en How many minutes should an account or IP be blocked (default 30) ? how should email addresses for new users be constructed? admin en How should EMail addresses for new users be constructed? icon admin en Icon diff --git a/admin/templates/default/config.tpl b/admin/templates/default/config.tpl index b2505ff533..032d6638f9 100644 --- a/admin/templates/default/config.tpl +++ b/admin/templates/default/config.tpl @@ -240,6 +240,10 @@ + + {lang_How_many_entries_should_non-admins_be_able_to_export_(empty_=_no_limit,_no_=_no_export)}: + + diff --git a/etemplate/doc/reference.html b/etemplate/doc/reference.html index 18f73ea97f..8d23ceea33 100644 --- a/etemplate/doc/reference.html +++ b/etemplate/doc/reference.html @@ -837,8 +837,11 @@ $content[$id] = array( // I = value set by the app, 0 = value on return / 'sel_options' => // O additional or changed sel_options set by the callback and merged into $tmpl->sel_options 'no_columnselection' => // I turns off the columnselection completly, turned on by default 'columnselection-pref' => // I name of the preference (plus 'nextmatch-' prefix), default = template-name - 'default_cols' => // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns + 'default_cols' => // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns 'options-selectcols' => // I array with name/label pairs for the column-selection, this gets autodetected by default. A name => false suppresses a column completly. + 'return' => // IO allows to return something from the get_rows function if $query is a var-param! + 'csv_fields' => // I false=disable csv export, true or unset=enable it with auto-detected fieldnames, + or array with name=>label or name=>array('label'=>label,'type'=>type) pairs (type is a eT widget-type) ); /* diff --git a/etemplate/inc/class.nextmatch_widget.inc.php b/etemplate/inc/class.nextmatch_widget.inc.php index 2b35d6eb9c..ba2671083e 100644 --- a/etemplate/inc/class.nextmatch_widget.inc.php +++ b/etemplate/inc/class.nextmatch_widget.inc.php @@ -48,7 +48,13 @@ * 'rows' => // O content set by callback * 'total' => // O the total number of entries * 'sel_options' => // O additional or changed sel_options set by the callback and merged into $tmpl->sel_options + * 'no_columnselection' => // I turns off the columnselection completly, turned on by default + * 'columnselection-pref' => // I name of the preference (plus 'nextmatch-' prefix), default = template-name + * 'default_cols' => // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns + * 'options-selectcols' => // I array with name/label pairs for the column-selection, this gets autodetected by default. A name => false suppresses a column completly. * 'return' => // IO allows to return something from the get_rows function if $query is a var-param! + * 'csv_fields' => // I false=disable csv export, true or unset=enable it with auto-detected fieldnames, + * or array with name=>label or name=>array('label'=>label,'type'=>type) pairs (type is a eT widget-type) * ); * @package etemplate * @subpackage extensions @@ -198,6 +204,9 @@ // save values in persistent extension_data to be able use it in post_process $extension_data += $value; + $value['no_csv_export'] = $value['csv_fields'] === false || + $GLOBALS['egw_info']['server']['export_limit'] && !is_numeric($GLOBALS['egw_info']['server']['export_limit']); + if (!$value['filter_onchange']) $value['filter_onchange'] = 'this.form.submit();'; if (!$value['filter2_onchange']) $value['filter2_onchange'] = 'this.form.submit();'; @@ -583,7 +592,7 @@ $value[$name] = $value['bottom'][$name]; } } - $buttons = array('start_search','first','left','right','last'); + $buttons = array('start_search','first','left','right','last','export'); foreach($buttons as $name) { if (isset($value['bottom'][$name]) && $value['bottom'][$name]) @@ -697,6 +706,253 @@ $GLOBALS['egw']->preferences->save_repository(false,$pref); $loop = True; } + if ($value['export']) + { + $this->_csv_export($extension_data); + } return True; } + + var $separator = ';'; + var $charset_out; + var $charset; + + /** + * Export the list as csv file download + * + * @param array $value content of the nextmatch widget + * @param boolean false=error, eg. get_rows callback does not exits, true=nothing to export, otherwise we do NOT return! + */ + function _csv_export(&$value) + { + if (!isset($GLOBALS['egw_info']['user']['apps']['admin'])) + { + $export_limit = $GLOBALS['egw_info']['server']['export_limit']; + } + list($app,$class,$method) = explode('.',$value['get_rows']); + if ($app && $class) + { + if (is_object($GLOBALS[$class])) // use existing instance (put there by a previous CreateObject) + { + $obj =& $GLOBALS[$class]; + } + else + { + $obj =& CreateObject($app.'.'.$class); + } + } + if (!is_object($obj) || !method_exists($obj,$method)) + { + $GLOBALS['egw_info']['etemplate']['validation_errors'][$name] = "nextmatch_widget::pre_process($cell[name]): '$value[get_rows]' is no valid method !!!"; + return false; + } + $this->charset = $this->charset_out = $GLOBALS['egw']->translation->charset(); + if (isset($value['csv_charset'])) + { + $this->charset_out = $value['csv_charset']; + } + elseif ($GLOBALS['egw_info']['user']['preferences']['common']['csv_charset']) + { + $this->charset_out = $GLOBALS['egw_info']['user']['preferences']['common']['csv_charset']; + } + $backup_start = $value['start']; + $backup_num_rows = $value['num_rows']; + + $value['start'] = 0; + $value['num_rows'] = 500; + $value['csv_export'] = true; // so get_rows method _can_ produce different content or not store state in the session + do + { + if (!($total = $obj->$method($value,$rows,$readonlys=array()))) + { + break; // nothing to export + } + if ($export_limit && (!is_numeric($export_limit) || $export_limit < $total)) + { + $GLOBALS['egw_info']['etemplate']['validation_errors'][$name] = lang('You are not allowed to export more then %1 entries!',$export_limit); + return false; + } + if (!isset($value['no_csv_support'])) $value['no_csv_support'] = !is_array($value['csv_fields']); + + //echo "

start=$value[start], num_rows=$value[num_rows]: total=$total, count(\$rows)=".count($rows)."

\n"; + if (!$value['start']) // send the neccessary headers + { + $fp = $this->_csv_open($rows[0],$value['csv_fields'],$app); + } + //_debug_array($rows); + foreach($rows as $key => $row) + { + if (!is_numeric($key)) continue; // not a real rows + fwrite($fp,$this->_csv_encode($row,$value['csv_fields'])."\n"); + } + $value['start'] += $value['num_rows']; + + @set_time_limit(10); // 10 more seconds + } + while($total > $value['start']); + + unset($value['csv_export']); + $value['start'] = $backup_start; + $value['num_rows'] = $backup_num_rows; + if ($value['no_csv_support']) // we need to call the get_rows method in case start&num_rows are stored in the session + { + $obj->$method($value,$rows,$readonlys=array()); + } + if ($fp) + { + fclose($fp); + $GLOBALS['egw']->common->egw_exit(); + } + return true; + } + + /** + * Opens the csv output (download) and writes the header line + * + * @param array $row0 first row to guess the available fields + * @param array $fields name=>label or name=>array('lable'=>label,'type'=>type) pairs + * @param string $app app-name + * @return FILE + */ + function _csv_open($row0,&$fields,$app) + { + if (!is_array($fields) || !count($fields)) + { + $fields = $this->_autodetect_fields($row0,$app); + } + $browser =& CreateObject('phpgwapi.browser'); + $browser->content_header('export.csv','text/comma-separated-values'); + //echo "
";
+			
+			if (($fp = fopen('php://output','w')))
+			{
+				$labels = array();
+				foreach($fields as $field => $label)
+				{
+					if (is_array($label)) $label = $label['label'];
+					$labels[$field] = $label ? $label : $field;
+				}
+				fwrite($fp,$this->_csv_encode($labels,$fields,false)."\n");
+			}
+			return $fp;
+		}
+		
+		/**
+		 * CSV encode a single row, including some basic type conversation
+		 *
+		 * @param array $data
+		 * @param array $fields
+		 * @param boolean $use_type=true
+		 * @return string
+		 */
+		function _csv_encode($data,$fields,$use_type=true)
+		{
+			static $date_format,$time_format;
+			if (is_null($date_format))
+			{
+				$time_format = $date_format = $GLOBALS['egw_info']['user']['preferences']['common']['dateformat'];
+				$time_format .= ' '.($GLOBALS['egw_info']['user']['preferences']['common']['timeformat'] == 12 ? 'h:ia' : 'H:i');
+			}
+			$out = array();
+			foreach($fields as $field => $label)
+			{
+				$value = (array)$data[$field];
+
+				if ($use_type && is_array($label) && in_array($label['type'],array('select-account','select-cat','date-time','date')))
+				{
+					foreach($value as $key => $val)
+					{
+						switch($label['type'])
+						{
+							case 'select-account':
+								if ($val) $value[$key] = $GLOBALS['egw']->common->grab_owner_name($val);
+								break;
+							case 'select-cat':
+								if ($val)
+								{
+									if (!is_object($GLOBALS['egw']->categories))
+									{
+										$GLOBALS['egw']->categories =& CreateObject('phpgwapi.categories');
+									}
+									$value[$key] = $GLOBALS['egw']->categories->id2name($val);
+								}
+								break;
+							case 'date-time':
+								if ($val) $value[$key] = date($time_format,$val);
+								break;
+							case 'date':
+								if ($val) $value[$key] = date($date_format,$val);
+								break;
+						}
+					}
+				}
+				$value = implode(', ',$value);
+
+				if (strpos($value,$this->separator) !== false || strpos($value,"\n") !== false || strpos($value,"\r") !== false)
+				{
+					$value = '"'.str_replace(array('\\','"'),array('\\\\','\\"'),$value).'"';
+				}
+				$out[] = $value;
+			}
+			$out = implode($this->separator,$out);
+			
+			if ($this->charset_out && $this->charset != $this->charset_out)
+			{
+				$out = $GLOBALS['egw']->translation->convert($out,$this->charset,$this->charset_out);
+			}
+			return $out;
+		}
+		
+		/**
+		 * Try to autodetect the fields from the first data-row and the app-name
+		 *
+		 * @param array $row0 first data-row
+		 * @param string $app
+		 */
+		function _autodetect_fields($row0,$app)
+		{
+			$fields = array_combine(array_keys($row0),array_keys($row0));
+			
+			foreach($fields as $name => $label)
+			{
+				// try to guess field-type from the fieldname
+				if (preg_match('/(modified|created|start|end)/',$name) && strpos($name,'by')===false && 
+					(!$row0[$name] || is_numeric($row0[$name])))	// only use for real timestamps
+				{
+					$fields[$name] = array('label' => $label,'type' => 'date-time');
+				}
+				elseif (preg_match('/(cat_id|category|cat)/',$name))
+				{
+					$fields[$name] = array('label' => $label,'type' => 'select-cat');
+				}
+				elseif (preg_match('/(owner|creator|modifier|assigned|by|coordinator|responsible)/',$name))
+				{
+					$fields[$name] = array('label' => $label,'type' => 'select-account');
+				}
+				elseif(preg_match('/(jpeg|photo)/',$name))
+				{
+					unset($fields[$name]);
+				}
+			}
+			if ($app)
+			{
+				include_once(EGW_API_INC.'/class.config.inc.php');
+				$config =& new config($app);
+				$config->read_repository();
+				
+				$customfields = isset($config->config_data['customfields']) ? $config->config_data['customfields'] : $config->config_data['custom_fields'];
+				if (is_array($customfields))
+				{
+					foreach($customfields as $name => $data)
+					{
+						$fields['#'.$name] = array(
+							'label' => $data['label'],
+							'type'  => $data['type'],
+						);
+					}
+				}
+			}
+			//_debug_array($fields);
+			return $fields;
+		}
 	}
diff --git a/etemplate/setup/etemplates.inc.php b/etemplate/setup/etemplates.inc.php
index 4b0ba4f1c2..bafc67eac3 100644
--- a/etemplate/setup/etemplates.inc.php
+++ b/etemplate/setup/etemplates.inc.php
@@ -2,7 +2,7 @@
 	/**
 	 * eGroupWare - eTemplates for Application etemplate
 	 * http://www.egroupware.org 
-	 * generated by soetemplate::dump4setup() 2007-05-25 20:26
+	 * generated by soetemplate::dump4setup() 2007-09-22 17:04
 	 *
 	 * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
 	 * @package etemplate
@@ -147,7 +147,7 @@ $templ_data[] = array('name' => 'etemplate.editor.values','template' => '','lang
 
 $templ_data[] = array('name' => 'etemplate.editor.widget','template' => '','lang' => '','group' => '0','version' => '1.0.1.005','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:9:{i:0;a:4:{s:2:"h2";s:6:",!@msg";s:2:"h6";s:11:",!@grid_row";s:2:"h7";s:14:",!@grid_column";s:2:"c1";s:2:"th";}i:1;a:2:{s:1:"A";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:6:"select";s:4:"size";s:7:"Edit...";s:4:"name";s:9:"edit_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"delete and cut save the template!";}i:2;a:5:{s:4:"type";s:6:"select";s:4:"size";s:6:"Box...";s:4:"name";s:8:"box_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}i:3;a:5:{s:4:"type";s:6:"select";s:4:"size";s:6:"Row...";s:4:"name";s:8:"row_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"size";s:9:"Column...";s:4:"name";s:11:"column_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;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:3;a:2:{s:1:"A";a:3:{s:4:"type";s:4:"html";s:5:"label";s:4:"Name";s:4:"name";s:11:"java_script";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:4:"text";s:4:"name";s:8:"template";s:8:"readonly";s:1:"1";}i:3;a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"lang";s:8:"readonly";s:1:"1";}i:4;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"20";s:5:"label";s:7:"Version";s:4:"name";s:7:"version";s:4:"help";s:56:"increment version to not overwrite the existing template";}i:5;a:5:{s:4:"type";s:5:"label";s:4:"span";s:5:",gray";s:5:"label";s:4:"Path";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"path";}}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,goto";s:5:"label";s:4:"Path";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"path";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"goto";s:4:"help";s:25:"switch to a parent widget";}i:2;a:6:{s:4:"type";s:4:"path";s:4:"size";s:1:" ";s:5:"label";s:1:" ";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"goto2";s:4:"help";s:44:"switch to an other widgets of that container";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:4:"cell";s:4:"span";s:3:"all";s:4:"name";s:31:"etemplate.editor.widget.generic";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:6;a:2:{s:1:"A";a:8:{s:4:"type";s:8:"groupbox";s:4:"size";s:12:"4,horizontal";s:5:"label";s:19:"Grid row attributes";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:5:"label";s:6:"Height";s:4:"name";s:16:"grid_row[height]";s:4:"help";s:29:"height of row (in % or pixel)";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:8:"Disabled";s:4:"name";s:18:"grid_row[disabled]";s:4:"help";s:88:"to disable: [! = not][=] eg: \'!@data\' disables if content of data is empty";}i:3;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:5:"Class";s:4:"name";s:15:"grid_row[class]";s:4:"help";s:100:"CSS-class name for this row, preset: \'th\' = header, \'row\' = alternating row, \'row_off\'+\'row_on\' rows";}i:4;a:4:{s:4:"type";s:6:"select";s:5:"label";s:6:"Valign";s:4:"name";s:16:"grid_row[valign]";s:4:"help";s:25:"vertical alignment of row";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:7;a:2:{s:1:"A";a:6:{s:4:"type";s:8:"groupbox";s:4:"size";s:12:"2,horizontal";s:5:"label";s:22:"Grid column attributes";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:5:"label";s:5:"Width";s:4:"name";s:18:"grid_column[width]";s:4:"help";s:31:"width of column (in % or pixel)";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:8:"Disabled";s:4:"name";s:21:"grid_column[disabled]";s:4:"help";s:88:"to disable: [! = not][=] eg: \'!@data\' disables if content of data is empty";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:8;a:2:{s:1:"A";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:4:"span";s:3:"all";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";s:4:"help";s:66:"saves the template with given version number and closes the window";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:5:"Apply";s:4:"name";s:5:"apply";s:4:"help";s:56:"applies the changes to the given version of the template";}i:3;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:6:"cancel";s:4:"help";s:44:"closes the window without saving the changes";s:7:"onclick";s:15:"window.close();";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:8;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1109104064',);
 
-$templ_data[] = array('name' => 'etemplate.editor.widget','template' => '','lang' => '','group' => '0','version' => '1.0.1.006','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:9:{i:0;a:4:{s:2:"h2";s:6:",!@msg";s:2:"h6";s:11:",!@grid_row";s:2:"h7";s:14:",!@grid_column";s:2:"c1";s:2:"th";}i:1;a:2:{s:1:"A";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:6:"select";s:4:"size";s:7:"Edit...";s:4:"name";s:9:"edit_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"delete and cut save the template!";}i:2;a:5:{s:4:"type";s:6:"select";s:4:"size";s:6:"Box...";s:4:"name";s:8:"box_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}i:3;a:5:{s:4:"type";s:6:"select";s:4:"size";s:6:"Row...";s:4:"name";s:8:"row_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"size";s:9:"Column...";s:4:"name";s:11:"column_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;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:3;a:2:{s:1:"A";a:3:{s:4:"type";s:4:"html";s:5:"label";s:4:"Name";s:4:"name";s:11:"java_script";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:4:"text";s:4:"name";s:8:"template";s:8:"readonly";s:1:"1";}i:3;a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"lang";s:8:"readonly";s:1:"1";}i:4;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"20";s:5:"label";s:7:"Version";s:4:"name";s:7:"version";s:4:"help";s:56:"increment version to not overwrite the existing template";}i:5;a:5:{s:4:"type";s:5:"label";s:4:"span";s:5:",gray";s:5:"label";s:4:"Path";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"path";}}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,goto";s:5:"label";s:4:"Path";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"path";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"goto";s:4:"help";s:25:"switch to a parent widget";}i:2;a:6:{s:4:"type";s:4:"path";s:4:"size";s:1:" ";s:5:"label";s:1:" ";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"goto2";s:4:"help";s:44:"switch to an other widgets of that container";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:4:"cell";s:4:"span";s:3:"all";s:4:"name";s:31:"etemplate.editor.widget.generic";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:6;a:2:{s:1:"A";a:8:{s:4:"type";s:8:"groupbox";s:4:"size";s:12:"4,horizontal";s:5:"label";s:19:"Grid row attributes";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:5:"label";s:6:"Height";s:4:"name";s:16:"grid_row[height]";s:4:"help";s:29:"height of row (in % or pixel)";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:8:"Disabled";s:4:"name";s:18:"grid_row[disabled]";s:4:"help";s:88:"to disable: [! = not][=] eg: \'!@data\' disables if content of data is empty";}i:3;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:5:"Class";s:4:"name";s:15:"grid_row[class]";s:4:"help";s:100:"CSS-class name for this row, preset: \'th\' = header, \'row\' = alternating row, \'row_off\'+\'row_on\' rows";}i:4;a:4:{s:4:"type";s:6:"select";s:5:"label";s:6:"Valign";s:4:"name";s:16:"grid_row[valign]";s:4:"help";s:25:"vertical alignment of row";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:7;a:2:{s:1:"A";a:6:{s:4:"type";s:8:"groupbox";s:4:"size";s:12:"2,horizontal";s:5:"label";s:22:"Grid column attributes";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:5:"label";s:5:"Width";s:4:"name";s:18:"grid_column[width]";s:4:"help";s:31:"width of column (in % or pixel)";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:8:"Disabled";s:4:"name";s:21:"grid_column[disabled]";s:4:"help";s:88:"to disable: [! = not][=] eg: \'!@data\' disables if content of data is empty";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:8;a:2:{s:1:"A";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:4:"span";s:3:"all";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";s:4:"help";s:66:"saves the template with given version number and closes the window";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:5:"Apply";s:4:"name";s:5:"apply";s:4:"help";s:56:"applies the changes to the given version of the template";}i:3;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:6:"cancel";s:4:"help";s:44:"closes the window without saving the changes";s:7:"onclick";s:15:"window.close();";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:8;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1131206619',);
+$templ_data[] = array('name' => 'etemplate.editor.widget','template' => '','lang' => '','group' => '0','version' => '1.0.1.006','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:9:{i:0;a:4:{s:2:"h2";s:6:",!@msg";s:2:"h6";s:11:",!@grid_row";s:2:"h7";s:14:",!@grid_column";s:2:"c1";s:2:"th";}i:1;a:2:{s:1:"A";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:6:"select";s:4:"size";s:7:"Edit...";s:4:"name";s:9:"edit_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"delete and cut save the template!";}i:2;a:5:{s:4:"type";s:6:"select";s:4:"size";s:6:"Box...";s:4:"name";s:8:"box_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}i:3;a:5:{s:4:"type";s:6:"select";s:4:"size";s:6:"Row...";s:4:"name";s:8:"row_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"size";s:9:"Column...";s:4:"name";s:11:"column_menu";s:8:"onchange";s:1:"1";s:4:"help";s:33:"all operations save the template!";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;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:3;a:2:{s:1:"A";a:3:{s:4:"type";s:4:"html";s:5:"label";s:4:"Name";s:4:"name";s:11:"java_script";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:4:"text";s:4:"name";s:8:"template";s:8:"readonly";s:1:"1";}i:3;a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"lang";s:8:"readonly";s:1:"1";}i:4;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"20";s:5:"label";s:7:"Version";s:4:"name";s:7:"version";s:4:"help";s:56:"increment version to not overwrite the existing template";}i:5;a:5:{s:4:"type";s:5:"label";s:4:"span";s:5:",gray";s:5:"label";s:4:"Path";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"path";}}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,goto";s:5:"label";s:4:"Path";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"path";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"goto";s:4:"help";s:25:"switch to a parent widget";}i:2;a:6:{s:4:"type";s:4:"path";s:4:"size";s:1:" ";s:5:"label";s:1:" ";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"goto2";s:4:"help";s:44:"switch to an other widgets of that container";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:4:"cell";s:4:"span";s:3:"all";s:4:"name";s:31:"etemplate.editor.widget.generic";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:6;a:2:{s:1:"A";a:9:{s:4:"type";s:8:"groupbox";s:4:"size";s:12:"5,horizontal";s:5:"label";s:19:"Grid row attributes";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:5:"label";s:6:"Height";s:4:"name";s:16:"grid_row[height]";s:4:"help";s:29:"height of row (in % or pixel)";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:8:"Disabled";s:4:"name";s:18:"grid_row[disabled]";s:4:"help";s:88:"to disable: [! = not][=] eg: \'!@data\' disables if content of data is empty";}i:3;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:5:"Class";s:4:"name";s:15:"grid_row[class]";s:4:"help";s:100:"CSS-class name for this row, preset: \'th\' = header, \'row\' = alternating row, \'row_off\'+\'row_on\' rows";}i:4;a:4:{s:4:"type";s:6:"select";s:5:"label";s:6:"Valign";s:4:"name";s:16:"grid_row[valign]";s:4:"help";s:25:"vertical alignment of row";}i:5;a:1:{s:4:"type";s:5:"label";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:7;a:2:{s:1:"A";a:6:{s:4:"type";s:8:"groupbox";s:4:"size";s:12:"2,horizontal";s:5:"label";s:22:"Grid column attributes";s:4:"span";s:3:"all";i:1;a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:5:"label";s:5:"Width";s:4:"name";s:18:"grid_column[width]";s:4:"help";s:31:"width of column (in % or pixel)";}i:2;a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:5:"label";s:8:"Disabled";s:4:"name";s:21:"grid_column[disabled]";s:4:"help";s:88:"to disable: [! = not][=] eg: \'!@data\' disables if content of data is empty";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:8;a:2:{s:1:"A";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:4:"span";s:3:"all";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";s:4:"help";s:66:"saves the template with given version number and closes the window";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:5:"Apply";s:4:"name";s:5:"apply";s:4:"help";s:56:"applies the changes to the given version of the template";}i:3;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:6:"cancel";s:4:"help";s:44:"closes the window without saving the changes";s:7:"onclick";s:15:"window.close();";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:8;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1131206619',);
 
 $templ_data[] = array('name' => 'etemplate.editor.widget.ajax_select','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:9:{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:"c4";s:3:"row";s:2:"h4";s:12:",@type=label";s:2:"h7";s:12:",@type=label";s:2:"c7";s:3:"row";s:2:"c8";s:3:"row";s:2:"h8";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:2:{s:4:"type";s:5:"label";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:7:{s:4:"type";s:4:"grid";s:4:"span";s:3:"all";s:5:"label";s:19:"AJAX Select options";s:7:"options";a:1:{i:0;s:1:"1";}s:4:"data";a:3:{i:0;a:0:{}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"data";a:1:{i:0;a:0:{}}s:5:"label";s:11:"Data Source";}s:1:"B";a:2:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[0]";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Title Source";}s:1:"D";a:2:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[1]";}}i:2;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"ID Field";}s:1:"B";a:2:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[2]";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:19:"Result row template";}s:1:"D";a:2:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[3]";}}}s:4:"rows";i:2;s:4:"cols";i:4;}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";}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: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:8;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:8;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1163010571',);
 
@@ -161,6 +161,8 @@ $templ_data[] = array('name' => 'etemplate.editor.widget.generic','template' =>
 
 $templ_data[] = array('name' => 'etemplate.editor.widget.grid','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: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: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:8:",,,align";s:5:"label";s:5:"Align";s:5:"align";s:5:"right";}s:1:"D";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";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,span";s:5:"label";s:4:"Span";s:5:"align";s:5:"right";}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: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:1:"2";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[3]";s:5:"label";s:5:"Class";s:5:"align";s:5:"right";}s:1:"F";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"10";s:4:"name";s:10:"options[3]";s:4:"help";s:27:"CSS class for the table-tag";}}i:3;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[0]";s:5:"label";s:5:"Width";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:10:"options[0]";s:4:"help";s:71:" Width of the table in % or pixels for the table-tag and (optional) div";}s:1:"C";a:4:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[1]";s:5:"label";s:6:"Height";s:5:"align";s:5:"right";}s:1:"D";a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:10:"options[1]";s:4:"help";s:72:" Height of the table in % or pixels for the table-tag and (optional) div";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[6]";s:5:"label";s:8:"Overflow";s:5:"align";s:5:"right";}s:1:"F";a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:10:"options[6]";s:4:"help";s:96:"what happens with overflowing content: visible (default), hidden, scroll, auto (browser decides)";}}i:4;a:6:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[4]";s:5:"label";s:7:"Spacing";}s:1:"B";a:4:{s:4:"type";s:13:"select-number";s:4:"name";s:10:"options[4]";s:4:"help";s:29:"Cellspacing for the table-tag";s:4:"size";s:14:"Default,0,10,1";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[5]";s:5:"label";s:7:"Padding";}s:1:"D";a:4:{s:4:"type";s:13:"select-number";s:4:"size";s:14:"Default,0,10,1";s:4:"name";s:10:"options[5]";s:4:"help";s:29:"Cellpadding for the table-tag";}s:1:"E";a:4:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,options[2]";s:5:"label";s:6:"Border";s:5:"align";s:5:"right";}s:1:"F";a:4:{s:4:"type";s:13:"select-number";s:4:"size";s:14:"Default,0,10,1";s:4:"name";s:10:"options[2]";s:4:"help";s:39:"Border-line-thickness for the table-tag";}}}s:4:"rows";i:4;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1116599469',);
 
+$templ_data[] = array('name' => 'etemplate.editor.widget.infolog','template' => '','lang' => '','group' => '0','version' => '1.4.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:7:{s:2:"c1";s:3:"row";s:2:"c4";s:3:"row";s:2:"c5";s:3:"row";s:2:"c2";s:3:"row";s:2:"c6";s:3:"row";s:2:"h6";s:14:",!@type=button";s:2:"c3";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:6:{s:4:"type";s:14:"infolog-fields";s:4:"name";s:10:"options[0]";s:4:"help";s:21:"Contact field to show";s:4:"span";s:3:"all";s:5:"label";s:5:"Field";s:7:"options";a:0:{}}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:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Compare";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[1]";s:4:"help";s:69:"show a X if content equals this compare value, otherwise show nothing";}s:1:"C";a:6:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"span";s:3:"all";s:5:"label";s:12:"Alternatives";s:4:"name";s:10:"options[2]";s:4:"help";s:77:"colon (:) separated list of field names to use if value is empty or to sum up";}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:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Contactfield";}s:1:"B";a:2:{s:4:"type";s:14:"contact-fields";s:4:"name";s:10:"options[3]";}s:1:"C";a:5:{s:4:"type";s:4:"text";s:4:"span";s:1:"2";s:5:"label";s:19:"Regular expression ";s:4:"name";s:10:"options[4]";s:4:"help";s:31:"first argument for preg_replace";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:5:{s:4:"type";s:4:"text";s:4:"span";s:1:"2";s:5:"label";s:11:"Replacement";s:4:"name";s:10:"options[5]";s:4:"help";s:33:"second parameter for preg_replace";}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: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:5;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: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:"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:6;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1187334168',);
+
 $templ_data[] = array('name' => 'etemplate.groupbox.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:5:{s:4:"type";s:8:"groupbox";s:4:"size";s:1:"2";s:5:"label";s:18:"Selection grouping";i:1;a:4:{s:4:"type";s:5:"radio";s:4:"size";s:1:"1";s:5:"label";s:18:"%s selection #1 or";s:4:"name";s:9:"selection";}i:2;a:4:{s:4:"type";s:5:"radio";s:4:"size";s:1:"2";s:5:"label";s:15:"%s selection #2";s:4:"name";s:9:"selection";}}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1107699792',);
 
 $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',);
@@ -214,6 +216,8 @@ $templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' =
 
 $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',);
 
+$templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' => '','lang' => '','group' => '0','version' => '1.5.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:11:{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:1:"K";s:20:",@no_columnselection";s:1:"L";s:15:",@no_csv_export";}i:1;a:12:{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:1:"L";a:4:{s:4:"type";s:6:"button";s:4:"name";s:6:"export";s:4:"size";s:8:"filesave";s:5:"label";s:10:"CSV Export";}}}s:4:"rows";i:1;s:4:"cols";i:12;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',);
+
 $templ_data[] = array('name' => 'etemplate.popup.manual','template' => '','lang' => '','group' => '0','version' => '1.2','data' => 'a:1:{i:0;a:5:{s:4:"type";s:6:"manual";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;s:4:"span";s:20:",popupManual noPrint";}}','size' => '','style' => '.popupManual { position: absolute; right: 27px; top: 24px; }','modified' => '1131553453',);
 
 $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',);
@@ -259,6 +263,8 @@ $templ_data[] = array('name' => 'etemplate.test.grid-export','template' => '','l
 
 $templ_data[] = array('name' => 'etemplate.test.Ymd','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:3:{s:4:"type";s:4:"text";s:5:"label";s:19:"Date YYYYmmddHHiiss";s:4:"name";s:4:"date";}}i:2;a:1:{s:1:"A";a:5:{s:4:"type";s:4:"date";s:4:"size";s:5:"YmdHi";s:5:"label";s:4:"Date";s:4:"name";s:4:"date";s:8:"readonly";s:1:"1";}}i:3;a:1:{s:1:"A";a:5:{s:4:"type";s:13:"date-timeonly";s:4:"size";s:5:"YmdHi";s:5:"label";s:4:"Time";s:4:"name";s:4:"date";s:8:"readonly";s:1:"1";}}}s:4:"rows";i:3;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1179320861',);
 
+$templ_data[] = array('name' => 'etemplate.tree.test','template' => '','lang' => '','group' => '0','version' => '1','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:3:{s:4:"type";s:8:"tree-cat";s:4:"name";s:4:"tree";s:7:"onclick";s:9:"alert(id)";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1185018372',);
+
 $templ_data[] = array('name' => 'etemplate.validation-test','template' => '','lang' => '','group' => '0','version' => '','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:4:{s:4:"type";s:4:"text";s:4:"size";s:15:"10,10,/^[A-Z]+/";s:5:"label";s:52:"Text (<= 10 chars, has to start with capital letter)";s:4:"name";s:4:"text";}}i:2;a:1:{s:1:"A";a:5:{s:4:"type";s:3:"int";s:4:"size";s:5:"-15,5";s:5:"label";s:23:"Integer (-15 <= x <= 5)";s:4:"name";s:7:"integer";s:6:"needed";s:1:"1";}}i:3;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"float";s:4:"size";s:8:"-1.5,3.5";s:5:"label";s:32:"Floatingpoint (-1.5 <= x <= 3.5)";s:4:"name";s:5:"float";}}i:4;a:1:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";}i:2;a:3:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:6:"cancel";}}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:8:",,0,,0,0";}}','size' => ',,0,,0,0','style' => '','modified' => '1081128620',);
 
 $templ_data[] = array('name' => 'etemplate.vbox.test','template' => '','lang' => '','group' => '0','version' => '','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:"row,top";s:2:"c2";s:3:"row";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";s:4:"span";s:4:"2,th";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Hallo";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Ralf";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"C1";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"A2";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"B2";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"C2";}}}s:4:"rows";i:2;s:4:"cols";i:3;s:4:"size";s:3:",,1";}}','size' => ',,1','style' => '','modified' => '1034420647',);
diff --git a/etemplate/templates/default/nextmatch_widget.xet b/etemplate/templates/default/nextmatch_widget.xet
index 8d79fa72ee..f96f9b5440 100644
--- a/etemplate/templates/default/nextmatch_widget.xet
+++ b/etemplate/templates/default/nextmatch_widget.xet
@@ -1,7 +1,7 @@
 
 
 
-