From f0c9a45803e6eb3078ce07db58f7fb0459e84382 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 8 May 2007 12:20:38 +0000 Subject: [PATCH] patch #25: AJAX Select widget from Nathan Gray --- .../inc/class.ajax_select_widget.inc.php | 263 ++++++++++++++++++ etemplate/js/ajax_select.js | 234 ++++++++++++++++ etemplate/setup/etemplates.inc.php | 55 +++- 3 files changed, 551 insertions(+), 1 deletion(-) create mode 100644 etemplate/inc/class.ajax_select_widget.inc.php create mode 100644 etemplate/js/ajax_select.js diff --git a/etemplate/inc/class.ajax_select_widget.inc.php b/etemplate/inc/class.ajax_select_widget.inc.php new file mode 100644 index 0000000000..6750e16a1a --- /dev/null +++ b/etemplate/inc/class.ajax_select_widget.inc.php @@ -0,0 +1,263 @@ + + * @version $Id$ + */ + + /** + * AJAX Select Widget + * + * Using AJAX, this widget allows a type-ahead find similar to a ComboBox, where as the user enters information, + * a drop-down box is populated with the n closest matches. If the user clicks on an item in the drop-down, that + * value is selected. + * n is the maximum number of results set in the user's preferences. + * The user is restricted to selecting values in the list. + * This widget can get data from any function that can provide data to a nextmatch widget. + * This widget is generating html, so it does not work (without an extra implementation) in an other UI + */ + class ajax_select_widget + { + var $public_functions = array( + 'pre_process' => True, + 'post_process' => True + ); + var $human_name = 'AJAX Select'; // this is the name for the editor + + function ajax_select_widget($ui='') + { + + switch($ui) + { + case '': + case 'html': + $this->ui = 'html'; + break; + default: + echo "UI='$ui' not implemented"; + } + return 0; + } + + /** + * 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) + { + //echo "

ajax_select_widget::pre_process('$name',$value," . print_r($cell, true) . "," . print_r($extension_data, true) . ")

\n"; + + // Get Options + if(!is_array($cell['size'])) { + list( + $options['get_rows'], + $options['get_title'], + $options['id_field'], + $options['template'], + $options['filter'], + $options['filter2'] + ) = explode(',', $cell['size']); + } else { + $options = $cell['size']; + } + + if(is_array($value)) { + $options = array_merge($options, $value); + } + + if(!$options['template']) { + $options['template'] = 'etemplate.ajax_select_widget.row'; + } + + $onchange = ($cell['onchange'] ? $cell['onchange'] : 'false'); + + // Set current value + if(!is_array($value)) { + $current_value = $value; + } elseif($value[$options['id_field']]) { + $current_value = $value[$options['id_field']]; + } + + list($title_app, $title_class, $title_method) = explode('.', $options['get_title']); + if($title_app && $title_class) { + if (is_object($GLOBALS[$title_class])) { // use existing instance (put there by a previous CreateObject) + $title_obj =& $GLOBALS[$title_class]; + } else { + $title_obj =& CreateObject($title_app . '.' . $title_class); + } + } + if(!is_object($title_obj) || !method_exists($title_obj,$title_method)) { + echo "$entry_app.$entry_class.$entry_method is not a valid method for getting the title"; + } elseif($current_value) { + $title = $title_obj->$title_method($current_value); + } + + // Check get_rows method + list($get_rows_app, $get_rows_class, $get_rows_method) = explode('.', $options['get_rows']); + if($get_rows_app && $get_rows_class) { + if (is_object($GLOBALS[$get_rows_class])) { // use existing instance (put there by a previous CreateObject) + $get_rows_obj =& $GLOBALS[$get_rows_class]; + } else { + $get_rows_obj =& CreateObject($get_rows_app . '.' . $get_rows_class); + } + + if(!is_object($get_rows_obj) || !method_exists($get_rows_obj, $get_rows_method)) { + echo "$get_rows_app.$get_rows_class.$get_rows_method is not a valid method for getting the rows"; + } + } + + + // Set up widget + $cell['type'] = 'template'; + $cell['size'] = $cell['name']; + $value = array('value' => $current_value, 'search' => $title); + $widget =& new etemplate('etemplate.ajax_select_widget'); + $widget->no_onclick = True; + + $cell['obj'] = &$widget; + + // Save options for post_processing + $extension_data = $options; + $extension_data['required'] = $cell['required']; + + // xajax + $GLOBALS['egw_info']['flags']['include_xajax'] = True; + + // JavaScript + if(!is_object($GLOBALS['egw']->js)) { + $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript'); + } + $options = $GLOBALS['egw']->js->convert_phparray_jsarray("options['$name']", $options, true); + $GLOBALS['egw']->js->set_onload("if(!options) { var options = new Object();}\n $options;\n ajax_select_widget_setup('$name', '$onchange', options['$name']); "); + $GLOBALS['egw']->js->validate_file('', 'ajax_select', 'etemplate'); + + return True; // no extra label + } + + function post_process($name,&$value,&$extension_data,&$loop,&$tmpl,$value_in) + { + //echo "

ajax_select_widget.post_process: $name = "; _debug_array($value_in); + if(!is_array($value_in)) { + $value_in = array(); + } + + // They typed something in, but didn't choose a result + if(!$value_in['value'] && $value_in['search']) { + list($get_rows_app, $get_rows_class, $get_rows_method) = explode('.', $extension_data['get_rows']); + if($get_rows_app && $get_rows_class) { + if (is_object($GLOBALS[$get_rows_class])) { // use existing instance (put there by a previous CreateObject) + $get_rows_obj =& $GLOBALS[$get_rows_class]; + } else { + $get_rows_obj =& CreateObject($get_rows_app . '.' . $get_rows_class); + } + + if(!is_object($get_rows_obj) || !method_exists($get_rows_obj, $get_rows_method)) { + echo "$get_rows_app.$get_rows_class.$get_rows_method is not a valid method for getting the rows"; + } else { + $query = $extension_data + $value_in; + $count = $get_rows_obj->$get_rows_method($query, $results); + + if($count == 1) { + $value = $results[0][$extension_data['id_field']]; + echo 'Match found'; + return true; + } else { + $GLOBALS['egw_info']['etemplate']['validation_errors'][$name] = lang("More than 1 match for '%1'",$value_in['search']); + $loop = true; + return false; + } + } + } + } elseif (!$value_in['value'] && !$value_in['search']) { + $value = null; + $loop = $extension_data['required']; + return !$extension_data['required']; + } else { + $value = $value_in['value']; + $loop = false; + return true; + } + } + + function change($id, $value, $set_id, $query) { + $base_id = substr($id, 0, strrpos($id, '[')); + $result_id = ($set_id ? $set_id : $base_id . '[results]'); + $response = new xajaxResponse(); + if($query['get_rows']) { + list($app, $class, $method) = explode('.', $query['get_rows']); + $this->bo = CreateObject($app . '.' . $class); + unset($query['get_rows']); + } else { + return $response->getXML(); + } + + // Expand lists + foreach($query as $key => $row) { + if(strpos($row, ',')) { + $query[$key] = explode(',', $row); + } + + // sometimes it sends 'null' (not null) + if($row == 'null') { + unset($query[$key]); + } + } + $query['search'] = $value; + + if(is_object($this->bo)) { + $count = $this->bo->$method($query, $result_list); + } + if(is_array($count)) { + $count = count($result_list); + } + + $response->addScript("remove_ajax_results('$result_id')"); + if($count > 0) { + $response->addScript("add_ajax_result('$result_id', '', '', '" . lang('Select') ."');"); + $count = 0; + + if(!$query['template'] || $query['template'] == 'etemplate.ajax_select_widget.row') { + $query['template'] = 'etemplate.ajax_select_widget.row'; + } + foreach($result_list as $key => &$row) { + if(!is_array($row)) { + continue; + } + if($query['id_field'] && $query['get_title']) { + if($row[$query['id_field']]) { + $row['title'] = ExecMethod($query['get_title'], $row[$query['id_field']]); + } + } + + $data = ($query['nextmatch_template']) ? array(1=>$row) : $row; + $widget =& CreateObject('etemplate.etemplate', $query['template']); + $html = addslashes(str_replace("\n", '', $widget->show($data))); + $row['title'] = htmlspecialchars(addslashes($row['title'])); + $response->addScript("add_ajax_result('$result_id', '${row[$query['id_field']]}', '" . $row['title'] . "', '$html');"); + $count++; + if($count > $GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs']) { + $response->addScript("add_ajax_result('$result_id', '', '" . lang("%1 more...", (count($result_list) - $count)) . "');"); + break; + } + } + } else { + $response->addScript("add_ajax_result('$result_id', '', '', '" . lang('No matches found') ."');"); + } + return $response->getXML(); + } + } +?> diff --git a/etemplate/js/ajax_select.js b/etemplate/js/ajax_select.js new file mode 100644 index 0000000000..bd6c97f1a4 --- /dev/null +++ b/etemplate/js/ajax_select.js @@ -0,0 +1,234 @@ + + + +//xajaxDebug = 1; + +function ajax_select_widget_setup(widget_id, onchange, options) { + if(onchange) { + if(onchange == 1) { + onchange = function() {submitit(this.form, this.value);}; + } else { + eval("onchange = function(e) { " + onchange + ";}"); + } + + var value = document.getElementById(widget_id + '[value]'); + if(value) { + if(value.addEventListener) { + value.addEventListener('change', onchange, true); + } else { + var old = (value.onchange) ? value.onchange : function() {}; + value.onchange = function() { + old(); + onchange; + }; + } + } + } + + var widget = document.getElementById(widget_id + '[search]'); + if(widget) { + widget.form.disableautocomplete = true; + widget.form.autocomplete = 'off'; + + if(widget.addEventListener) { + widget.addEventListener('keyup', change, true); + widget.addEventListener('blur', hideBox, false); + } else { + widget.onkeyup = change; + widget.onblur = hideBox; + } + + // Set results + var results = document.createElement('div'); + results.id = widget_id + '[results]'; + results.className = 'resultBox'; + results.style.position = 'absolute'; + results.style.zIndex = 50; + results.options = options; + results.innerHTML = ""; + + widget.parentNode.appendChild(results); + } + + var value = document.getElementById(widget_id + '[value]'); + if(value) { + value.style.display = 'none'; + } +} + + +function change(e, value) { + if(!e) { + var e = window.event; + } + if(e.target) { + var target = e.target; + } else if (e.srcElement) { + var target = e.srcElement; + } + if(target) { + if (target.nodeType == 3) { // defeat Safari bug + target = target.parentNode; + } + var id = target.id; + var value = target.value; + } else if (e) { + var id = e; + if(value) { + var value = value; + } else { + var value = e.value; + } + var set_id = id.substr(0, id.lastIndexOf('[')); + } + + var base_id = id.substr(0, id.lastIndexOf('[')); + if(document.getElementById(base_id + '[results]')) { + set_id = base_id + '[results]'; + } else { + set_id = base_id + '[search]'; + } + + var query = document.getElementById(set_id).options; + if(document.getElementById(base_id + '[filter]')) { + query.filter = document.getElementById(base_id + '[filter]').value; + } + + // Hide selectboxes for IE + if(document.all) { + var selects = document.getElementsByTagName('select'); + for(var i = 0; i < selects.length; i++) { + selects[i].style.visibility = 'hidden'; + } + } + xajax_doXMLHTTP("etemplate.ajax_select_widget.change", id, value, set_id, query); +} + + +/* Remove options from a results box +* @param id - The id of the select +*/ +function remove_ajax_results(id) { + if(document.getElementById(id)) { + var element = document.getElementById(id); + if (element.tagName == 'DIV') { + element.innerHTML = ''; + } + } +} + +/* Add an option to a result box +* @param id - The id of the result box +* @param key - The key of the option +* @param value - The value of the option +* @param row - The html for the row to display +*/ +function add_ajax_result(id, key, value, row) { + var resultbox = document.getElementById(id); + if(resultbox) { + if (resultbox.tagName == 'DIV') { + var base_id = resultbox.id.substr(0, resultbox.id.lastIndexOf('[')); + var search_id = base_id + '[search]'; + var value_id = base_id + '[value]'; + + resultbox.style.display = 'block'; + var result = document.createElement('div'); + + result.className = (resultbox.childNodes.length % 2) ? 'row_on' : 'row_off'; + if(key) { + result.value = new Object(); + result.value.key = key; + result.value.value = value; + result.value.search_id = search_id; + result.value.value_id = value_id; + + result.innerHTML = row; + + // when they click, add that item to the value hidden textbox + if(result.addEventListener) { + result.addEventListener('click', select_result, true); + } else { + result.onclick = select_result; + } + } else { + result.innerHTML += row + "
"; + } + resultbox.appendChild(result); + } + } +} + +function select_result(e) { + // when they click, add that item to the value textbox & call onchange() + if(!e) { + var e = window.event; + } + if(e.target) { + var target = e.target; + } else if (e.srcElement) { + var target = e.srcElement; + } + while(!target.value && target != document) { + target = target.parentNode; + } + + var value = document.getElementById(target.value.value_id); + var search = document.getElementById(target.value.search_id); + if(value) { + value.value = target.value.key; + } + if(search) { + search.value = target.value.value; + try { + value.onchange(e); + } catch (err) { + //no onchange; + var event = document.createEvent('HTMLEvents'); + event.initEvent('change', true, true); + value.dispatchEvent(event); + } + } +} + +function hideBox(e) { + if(!e) { + var e = window.event; + } + if(e.target) { + var target = e.target; + } else if (e.srcElement) { + var target = e.srcElement; + } + if(target) { + if (target.nodeType == 3) { // defeat Safari bug + target = target.parentNode; + } + } + var set_id = target.id.substr(0, target.id.lastIndexOf('[')) + '[results]'; + setTimeout("document.getElementById('" + set_id + "').style.display = 'none'", 200); + var selects = document.getElementsByTagName('select'); + + // Un-hide select boxes for IE + if(document.all) { + for(var i = 0; i < selects.length; i++) { + selects[i].style.visibility = 'visible'; + } + } +} diff --git a/etemplate/setup/etemplates.inc.php b/etemplate/setup/etemplates.inc.php index e58de03bac..e14c84cd6c 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-04-18 12:32 + * generated by soetemplate::dump4setup() 2007-05-03 08:32 * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package etemplate @@ -14,6 +14,55 @@ $templ_version=1; $templ_data[] = array('name' => 'etemplate*','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' => '1155978334',); +$templ_data[] = array('name' => 'etemplate.ajax_select_widget','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:2:{s:1:"A";a:3:{s:4:"type";s:4:"text";s:4:"name";s:6:"search";s:4:"span";s:14:",select_search";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"value";s:4:"span";s:13:",select_value";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '.select_value { + display: none; +} + +.select_search input { + border: 2px groove #D3DCE3; +} + +.resultBox { + background-color: white; +} + +.resultBox div:hover { + background-color: #D3DCE3; +}','modified' => '1160681773',); + +$templ_data[] = array('name' => 'etemplate.ajax_select_widget','template' => '','lang' => '','group' => '0','version' => '0.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:3:{s:1:"A";a:3:{s:4:"type";s:5:"image";s:4:"name";s:4:"icon";s:4:"span";s:12:",select_icon";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:6:"search";s:4:"span";s:14:",select_search";}s:1:"C";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"value";s:4:"span";s:13:",select_value";}}}s:4:"rows";i:1;s:4:"cols";i:3;}}','size' => '','style' => 'td.select_icon { + display: inline; + float: left; +} + +.select_icon img { + margin-left: -22px; + height: 16px; + widht: 16px; +} + +.select_value { + display: none; +} + +td.select_search { + display: block; +} + +.select_search input { + border: 2px groove #D3DCE3; +} + +.resultBox { + background-color: white; +} + +.resultBox div:hover { + background-color: #D3DCE3; +}','modified' => '1176831076',); + +$templ_data[] = array('name' => 'etemplate.ajax_select_widget.row','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:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:8:"id_field";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"title";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1160761596',); + $templ_data[] = array('name' => 'etemplate.date.test','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:1:{s:2:"c2";s:7:",bottom";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:9:"date-time";s:4:"span";s:3:"all";s:5:"label";s:4:"Date";s:4:"name";s:4:"date";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:4:{s:4:"type";s:4:"date";s:4:"size";s:9:"d.m.Y H:i";s:5:"label";s:7:"2. Date";s:4:"name";s:5:"date2";}s:1:"B";a:3:{s:4:"type";s:13:"date-timeonly";s:4:"size";s:9:"d.m.Y H:i";s:4:"name";s:5:"date2";}}i:3;a:2:{s:1:"A";a:5:{s:4:"type";s:13:"date-timeonly";s:4:"size";s:3:"H:i";s:4:"span";s:3:"all";s:5:"label";s:4:"Time";s:4:"name";s:4:"time";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:3;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1108209808',); $templ_data[] = array('name' => 'etemplate.datefield','template' => '','lang' => '','group' => '0','version' => '0.9.15.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:3:{s:1:"A";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,31";s:4:"name";s:1:"d";s:4:"help";s:3:"Day";}s:1:"B";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,12";s:4:"name";s:1:"m";s:4:"help";s:5:"Month";}s:1:"C";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1900";s:4:"name";s:1:"Y";s:4:"help";s:4:"Year";}}}s:4:"rows";i:1;s:4:"cols";i:3;}}','size' => '','style' => '','modified' => '1032907904',); @@ -104,6 +153,10 @@ $templ_data[] = array('name' => 'etemplate.editor.widget','template' => '','lang $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.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',); + +$templ_data[] = array('name' => 'etemplate.editor.widget.ajax_select','template' => '','lang' => '','group' => '0','version' => '0.2','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:4:{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]";}}i:3;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Link";}s:1:"B";a:2:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[6]";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Icon";}s:1:"D";a:2:{s:4:"type";s:4:"text";s:4:"name";s:10:"options[7]";}}}s:4:"rows";i:3;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' => '1176828301',); + $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',);