new fieldtypes: int, float

db_tools: import of existing db-tables via schema proc (needs some modification in the schema proc-class to allow calls from regular app !!!)
lots of other changes and improvments
This commit is contained in:
Ralf Becker 2002-02-14 14:06:53 +00:00
parent d3311b7244
commit 4746eac65d
8 changed files with 578 additions and 541 deletions

View File

@ -23,8 +23,10 @@
class boetemplate extends soetemplate
{
var $types = array(
'label' => 'Label', // Label $cell['label'] is (to be translated) textual content
'text' => 'Text', // Textfield 1 Line (size = [length][,maxlength])
'label' => 'Label', // Label $cell['label'] is (to be translated) textual content
'text' => 'Text', // Textfield 1 Line (size = [length][,maxlength])
'int' => 'Integer', // like text, but only numbers (size = [min][,max])
'float' => 'Floating Point', // --------------- " --------------------------
'textarea' => 'Textarea', // Multiline Text Input (size = [rows][,cols])
'checkbox'=> 'Checkbox',
'radio' => 'Radiobutton', // Radiobutton (size = value if checked)
@ -34,7 +36,7 @@
'image' => 'Image', // label = url, name=link or method, help=alt or title
'date' => 'Date', // Datefield, size='' timestamp or size=format like 'm/d/Y'
'select' => 'Selectbox', // Selectbox ($sel_options[$name] or $content[options-$name] is array with options)
// if size > 1 then multiple selections, size lines showed
// if size > 1 then multiple selections, size lines showed
'select-percent' => 'Select Percentage',
'select-priority' => 'Select Priority',
'select-access' => 'Select Access',
@ -42,12 +44,12 @@
'select-state' => 'Select State', // US-states
'select-cat' => 'Select Cathegory', // Cathegory-Selection, size: -1=Single+All, 0=Single, >0=Multiple with size lines
'select-account' => 'Select Account', // label=accounts(default),groups,both
// size: -1=Single+not assigned, 0=Single, >0=Multiple
// size: -1=Single+not assigned, 0=Single, >0=Multiple
'raw' => 'Raw', // Raw html in $content[$cell['name']]
);
var $aligns = array(
'' => 'Left',
'right' => 'Right',
'' => 'Left',
'right' => 'Right',
'center' => 'Center'
);
@ -62,7 +64,7 @@
}
/*!
@function expand_name($name,$c,$row,$c_='',$row_='',$cont=array())
@function expand_name($name,$c,$row,$c_='',$row_='',$cont='')
@abstract allows a few variables (eg. row-number) to be used in field-names
@discussion This is mainly used for autorepeat, but other use is possible.
@discussion You need to be aware of the rules PHP uses to expand vars in strings, a name
@ -87,7 +89,7 @@
*/
function expand_name($name,$c,$row,$c_='',$row_='',$cont='')
{
if(!$cont)
if (!$cont)
{
$cont = array();
}
@ -145,7 +147,7 @@
if ($check_col)
{
$Ok = $pat[0] == 'c' && !(substr($pat,0,4) == 'cont' ||
substr($pat,0,2) == 'c_' || substr($pat,0,4) == 'col_');
substr($pat,0,2) == 'c_' || substr($pat,0,4) == 'col_');
}
else
{
@ -156,7 +158,6 @@
{
echo "$this->name ".($check_col ? 'col' : 'row')."-check: c=$c, r=$r, idx='$org_idx' ==> ".($Ok?'True':'False')."<p>\n";
}
return $Ok;
}
}
};

View File

@ -34,7 +34,8 @@
'writen' => 'File writen',
'error_writing' => 'Error: writing file !!!',
'give_table_name' => 'Please enter table-name first !!!',
'new_table' => 'New table created'
'new_table' => 'New table created',
'select_app' => 'Select an app first !!!'
);
var $types = array(
'auto' => 'auto',
@ -54,7 +55,7 @@
@function db_tools()
@abstract constructor of class
*/
function db_tools()
function db_tools($lang_on_messages=True)
{
$this->editor = CreateObject('etemplate.etemplate','etemplate.db-tools.edit');
$this->data = array();
@ -69,6 +70,12 @@
{
$this->apps[$name] = $data['title'];
}
if ($lang_on_messages)
{
reset($this->messages);
while(list($key,$msg) = each($this->messages))
$this->messages[$key] = lang($msg);
}
}
/*!
@ -81,7 +88,6 @@
{
$this->app = $GLOBALS['HTTP_GET_VARS']['app'];
}
if (isset($GLOBALS['HTTP_POST_VARS']['cont']))
{
$content = $GLOBALS['HTTP_POST_VARS']['cont'];
@ -135,7 +141,7 @@
list($col) = each($content['delete']);
reset($this->data[$posted_table]['fd']);
while ($col-- > 0 && list($key,$data) = each($this->data[$posted_table]['fd']));
while ($col-- > 0 && list($key,$data) = each($this->data[$posted_table]['fd'])) ;
unset($this->data[$posted_table]['fd'][$key]);
}
@ -143,18 +149,42 @@
{
$this->data[$posted_table]['fd'][''] = array();
}
elseif (isset($content['add_table']))
elseif ($content['add_table'] || $content['import'])
{
if (!$content['new_table_name'])
if (!$this->app)
{
$msg .= $this->messages['select_app'];
}
elseif (!$content['new_table_name'])
{
$msg .= $this->messages['give_table_name'];
}
else
elseif ($content['add_table'])
{
$this->table = $content['new_table_name'];
$this->data[$this->table] = array('fd' => array(),'pk' =>array(),'ix' => array(),'uc' => array(),'fk' => array());
$msg .= $this->messages['new_table'];
}
else // import
{
$oProc = CreateObject('setup.schema_proc','mysql');
$oProc->m_odb = $GLOBALS['phpgw']->db;
$oProc->m_oTranslator->_GetColumns($oProc,$content['new_table_name'],$nul);
while (list($key,$tbldata) = each ($oProc->m_oTranslator->sCol))
{
$cols .= $tbldata;
}
eval('$cols = array('. $cols . ');');
$this->data[$this->table = $content['new_table_name']] = array(
'fd' => $cols,
'pk' => $oProc->m_oTranslator->pk,
'fk' => $oProc->m_oTranslator->fk,
'ix' => $oProc->m_oTranslator->ix,
'uc' => $oProc->m_oTranslator->uc
);
}
}
elseif ($content['editor'])
{
@ -171,8 +201,7 @@
{
$table_names[$this->table] = $this->table;
}
$sel_options = array(
$sel_options = array(
'table_name' => $table_names,
'type' => $this->types,
'app' => array('' => lang($this->messages['select_one'])) + $this->apps
@ -182,12 +211,15 @@
$content += $this->table2content($this->data[$this->table]);
}
$no_button = array( );
if (!$this->app || !$this->table)
{
$no_button += array('write_tables' => True);
}
if ($this->debug)
{
echo 'editor.edit: content ='; _debug_array($content);
}
$this->editor->exec('etemplate.db_tools.edit',$content,$sel_options,$no_buttons,
$this->editor->exec('etemplate.db_tools.edit',$content,$sel_options,$no_button,
array('posted_table' => $this->table,'posted_app' => $this->app));
}
@ -232,7 +264,7 @@
$this->app = $posted_app;
$this->data = array();
$this->read($posted_app,$this->data);
$this->read($posted_app,$this->data);
if (isset($this->data[$posted_table]) &&
$this->tables_identical($this->data[$posted_table],$edited_table))
@ -303,7 +335,7 @@
$table['fk'] = array();
$table['ix'] = array();
$table['uc'] = array();
for (reset($content),$n = 1; isset($content["Row$n"]); ++$n)
for (reset($content),$n = 1; isset($content["Row$n"]); ++$n)
{
$col = $content["Row$n"];
if (($name = $col['name']) != '') // ignoring lines without column-name
@ -315,6 +347,7 @@
case 'default':
case 'type': // selectbox ensures type is not empty
case 'precision':
case 'scale':
case 'nullable':
if ($val != '' || $prop == 'nullable')
{
@ -367,7 +400,6 @@
{
return False;
}
if ($this->debug >= 5)
{
echo "<p>read($app): file='$file', phpgw_baseline =";
@ -404,7 +436,6 @@
{
$def .= "'$key' => ";
}
if (is_array($val))
{
$def .= $this->write_array($val,$parent == 'fd' ? 0 : $depth,$key,$only_vals);
@ -457,13 +488,11 @@
if (!$header)
{
$header = "<?php\n\n";
}
}
if (!($f = fopen($file,'w')))
{
return False;
}
$def .= "\t\$phpgw_baseline = ";
$def .= $this->write_array($phpgw_baseline,1);
$def .= ";\n";
@ -489,6 +518,7 @@
$table['fd'][$col] = array(
'type' => ''.$props['type'],
'precision' => 0+$props['precision'],
'scale' => 0+$props['scale'],
'nullable' => !!$props['nullable'],
'default' => ''.$props['default']
);
@ -525,6 +555,10 @@
*/
function writeLangFile()
{
$this->tmpl->writeLangFile('etemplate','en',$this->messages);
$m = new db_tools(False); // no lang on messages
$this->tmpl->writeLangFile('etemplate','en',$m->messages);
}
}
};

View File

@ -21,7 +21,8 @@
'not_found' => 'Error: Template not found !!!',
'deleted' => 'Template deleted',
'saved' => 'Template saved',
'error_writing' => 'Error: while saveing !!!'
'error_writing' => 'Error: while saveing !!!',
'other_version' => 'only an other Version found !!!'
);
var $public_functions = array
@ -34,12 +35,19 @@
//'preferences' => True
);
function editor()
function editor($lang_on_messages=True)
{
$this->etemplate = CreateObject('etemplate.etemplate');
//echo '$HTTP_POST_VARS='; _debug_array($HTTP_POST_VARS);
$this->editor = new etemplate('etemplate.editor');
if ($lang_on_messages)
{
reset($this->messages);
while (list($key,$msg) = each($this->messages))
$this->messages[$key] = lang($msg);
}
}
function edit($msg = '')
@ -49,14 +57,16 @@
{
$msg .= $this->messages['not_found'];
}
$content = $this->etemplate->as_array() + array(
'cols' => $this->etemplate->cols,
'msg' => $msg
);
$cols_spanned = array();
reset($this->etemplate->data);
if (isset($this->etemplate->data[0])) each($this->etemplate->data);
if (isset($this->etemplate->data[0]))
{
each($this->etemplate->data);
}
$no_button = array('values' => True,'edit' => True);
while (list($row,$cols) = each($this->etemplate->data))
{
@ -113,11 +123,10 @@
}
$this->editor->exec('etemplate.editor.process_edit',$content,
array(
'type' => $this->etemplate->types,
'type' => $this->etemplate->types,
'align' => $this->etemplate->aligns
),
$no_button,$cols_spanned
);
$no_button,$cols_spanned);
}
function swap(&$a,&$b)
@ -149,8 +158,7 @@
$cols = $col;
}
$this->etemplate->data[$row] = $row_data;
++$row; $col = 0;
$row_data = array();
++$row; $col = 0; $row_data = array();
}
}
$this->etemplate->rows = $row - 1;
@ -265,7 +273,12 @@
{
if (!$this->etemplate->read($content))
{
$msg = $this->messages['not_found'];
$content['version'] = ''; // trying it without version
$msg = $this->messages['other_version'];
if (!$this->etemplate->read($content))
{
$msg = $this->messages['not_found'];
}
}
}
elseif ($content['delete'])
@ -292,9 +305,9 @@
$additional = array();
if (substr($content['name'],0,9) == 'etemplate')
{
$additional = $this->messages + $this->etemplate->types + $this->etemplate->aligns;
$m = new editor(False);
$additional = $m->messages + $this->etemplate->types + $this->etemplate->aligns;
}
$msg = $this->etemplate->writeLangFile($content['name'],'en',$additional);
}
elseif ($content['db_tools'])
@ -311,7 +324,6 @@
{
$read_ok = $this->etemplate->read($GLOBALS['HTTP_POST_VARS']);
}
if (isset($GLOBALS['HTTP_POST_VARS']['yes'])) // Delete
{
if ($read_ok)
@ -351,7 +363,6 @@
{
$msg = $this->messages['not_found'];
}
if (!$msg && isset($post_vars['delete']))
{
$this->delete('show');
@ -392,4 +403,7 @@
}
$show->exec('etemplate.editor.show',$content,array(),$no_buttons,array('olds' => $vals),'');
}
}
};

View File

@ -1,9 +1,8 @@
<?php
/**************************************************************************\
* phpGroupWare - InfoLog *
* phpGroupWare - HTML creation class *
* http://www.phpgroupware.org *
* Written by Ralf Becker <RalfBecker@outdoor-training.de> *
* originaly based on todo written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
@ -13,265 +12,229 @@
/* $Id$ */
class html
class html
{
var $prefered_img_title;
function html()
{
var $prefered_img_title;
global $HTTP_USER_AGENT;
// should be Ok for all HTML 4 compatible browsers
$this->prefered_img_title = stristr($HTTP_USER_AGENT,'konqueror') ? 'title' : 'alt';
}
function html()
function input_hidden($vars,$value='')
{
if (!is_array($vars))
{
global $HTTP_USER_AGENT;
// should be Ok for all HTML 4 compatible browsers
$this->prefered_img_title = stristr($HTTP_USER_AGENT,'konqueror') ? 'title' : 'alt';
$vars = array( $vars => $value );
}
function input_hidden($vars,$value='')
while (list($name,$value) = each($vars))
{
if (!is_array($vars))
if (is_array($value)) $value = serialize($value);
$del = strchr($value,'"') ? "'" : '"';
if ($value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$vars = array( $vars => $value );
$html .= "<INPUT TYPE=HIDDEN NAME=\"$name\" VALUE=$del$value$del>\n";
}
while (list($name,$value) = each($vars))
}
return $html;
}
function textarea($name,$value='',$options='' )
{
return "<TEXTAREA name=\"$name\" $options>$value</TEXTAREA>\n";
}
function input($name,$value='',$type='',$options='' )
{
if ($type) $type = "TYPE=$type";
return "<INPUT $type NAME=\"$name\" VALUE=\"$value\" $options>\n";
}
function submit_button($name,$lang,$onClick='',$no_lang=0,$options='')
{
if (!$no_lang) $lang = lang($lang);
if ($onClick) $options .= " onClick=\"$onClick\"";
return $this->input($name,$lang,'SUBMIT',$options);
}
/*!
@function link
@abstract creates an absolut link + the query / get-variables
@param $url phpgw-relative link, may include query / get-vars
@parm $vars query or array ('name' => 'value', ...) with query
@example link('/index.php?menuaction=infolog.uiinfolog.get_list',array('info_id' => 123))
@example = 'http://domain/phpgw-path/index.php?menuaction=infolog.uiinfolog.get_list&info_id=123'
@returns absolut link already run through $phpgw->link
*/
function link($url,$vars='')
{
if (is_array( $vars ))
{
$v = array( );
while(list($name,$value) = each($vars))
{
if (is_array($value))
{
$value = serialize($value);
}
$del = strchr($value,'"') ? "'" : '"';
if ($value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$html .= "<INPUT TYPE=HIDDEN NAME=\"$name\" VALUE=$del$value$del>\n";
$v[] = "$name=$value";
}
}
return $html;
$vars = implode('&',$v);
}
list($url,$v) = explode('?',$url); // url may contain additional vars
if ($v)
$vars .= ($vars ? '&' : '') . $v;
function textarea($name,$value='',$options='' )
{
return "<TEXTAREA name=\"$name\" $options>$value</TEXTAREA>\n";
}
function input($name,$value='',$type='',$options='' )
{
if ($type)
{
$type = "TYPE=$type";
}
return "<INPUT $type NAME=\"$name\" VALUE=\"$value\" $options>\n";
}
function submit_button($name,$lang,$onClick='',$no_lang=0,$options='')
{
if (!$no_lang)
{
$lang = lang($lang);
}
if ($onClick)
{
$options .= " onClick=\"$onClick\"";
}
return $this->input($name,$lang,'SUBMIT',$options);
}
/*!
@function link
@abstract creates an absolut link + the query / get-variables
@param $url phpgw-relative link, may include query / get-vars
@parm $vars query or array ('name' => 'value', ...) with query
@example link('/index.php?menuaction=infolog.uiinfolog.get_list',array('info_id' => 123))
@example = 'http://domain/phpgw-path/index.php?menuaction=infolog.uiinfolog.get_list&info_id=123'
@returns absolut link already run through $phpgw->link
*/
function link($url,$vars='')
{
if (is_array( $vars ))
{
$v = array( );
while(list($name,$value) = each($vars))
{
if ($value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$v[] = "$name=$value";
}
}
$vars = implode('&',$v);
}
list($url,$v) = explode('?',$url); // url may contain additional vars
if ($v)
{
$vars .= ($vars ? '&' : '') . $v;
}
return $GLOBALS['phpgw']->link($url,$vars);
}
function checkbox($name,$value='')
{
return "<input type=\"checkbox\" name=\"$name\" value=\"True\"" .($value ? ' checked' : '') . ">\n";
}
function form($content,$hidden_vars,$url,$url_vars='',$method='POST')
{
$html = "<form method=\"$method\" action=\"".$this->link($url,$url_vars)."\">\n";
$html .= $this->input_hidden($hidden_vars);
if ($content)
{
$html .= $content;
$html .= "</form>\n";
}
return $html;
}
function form_1button($name,$lang,$hidden_vars,$url,$url_vars='',$method='POST')
{
return $this->form($this->submit_button($name,$lang),
$hidden_vars,$url,$url_vars,$method);
}
/*!
@function table
@abstracts creates table from array with rows
@discussion abstract the html stuff
@param $rows array with rows, each row is an array of the cols
@param $options options for the table-tag
@example $rows = array ( '1' => array( 1 => 'cell1', '.1' => 'colspan=3',
@example 2 => 'cell2', 3 => 'cell3', '.3' => 'width="10%"' ),
@example '.1' => 'BGCOLOR="#0000FF"' );
@example table($rows,'WIDTH="100%"') = '<table WIDTH="100%"><tr><td colspan=3>cell1</td><td>cell2</td><td width="10%">cell3</td></tr></table>'
@returns string with html-code of the table
*/
function table($rows,$options = '')
{
$html = "<TABLE $options>\n";
while (list($key,$row) = each($rows))
{
if (!is_array($row))
{
continue; // parameter
}
$html .= "\t<TR ".$rows['.'.$key].">\n";
while (list($key,$cell) = each($row))
{
if ($key[0] == '.')
{
continue; // parameter
}
$html .= "\t\t<TD ".$row['.'.$key].">$cell</TD>\n";
}
$html .= "\t</TR>\n";
}
$html .= "</TABLE>\n";
return $html;
}
function sbox_submit( $sbox,$no_script=0 )
{
$html = str_replace('<select','<select onChange="this.form.submit()" ',
$sbox);
if ($no_script)
{
$html .= '<noscript>'.$this->submit_button('send','>').'</noscript>';
}
return $html;
}
function image( $app,$name,$title='',$options='' )
{
if (!($path = $GLOBALS['phpgw']->common->image($app,$name)))
{
$path = $name; // name may already contain absolut path
}
if ($title)
{
$options .= " $this->prefered_img_title=\"$title\"";
}
return "<IMG SRC=\"$path\" $options>";
}
function a_href( $content,$url,$vars='',$options='')
{
if (!strstr($url,'/') && count(explode('.',$url)) == 3)
{
$url = "/index.php?menuaction=$url";
}
return '<a href="'.$this->link($url,$vars).'" '.$options.'>'.$content.'</a>';
}
function bold($content)
{
return '<b>'.$content.'</b>';
}
function italic($content)
{
return '<i>'.$content.'</i>';
}
function hr($width,$options='')
{
if ($width)
{
$options .= " WIDTH=$width";
}
return "<hr $options>\n";
}
/*!
@function formatOptions
@abstract formats option-string for most of the above functions
@param $options String (or Array) with option-values eg. '100%,,1'
@param $names String (or Array) with the option-names eg. 'WIDTH,HEIGHT,BORDER'
@example formatOptions('100%,,1','WIDTH,HEIGHT,BORDER') = ' WIDTH="100%" BORDER="1"'
@returns option string
*/
function formatOptions($options,$names)
{
if (!is_array($options))
{
$options = explode(',',$options);
}
if (!is_array($names))
{
$names = explode(',',$names);
}
while (list($n,$val) = each($options))
{
if ($val != '' && $names[$n] != '')
{
$html .= ' '.$names[$n].'="'.$val.'"';
}
}
return $html;
}
/*!
@function nextMatchStyles
@abstract returns simple stylesheet for nextmatch row-colors
@returns the classes 'nmh' = nextmatch header, 'nmr0'+'nmr1' = alternating rows
*/
function nextMatchStyles()
{
return $this->style(
".nmh { background: ".$GLOBALS['phpgw_info']['theme']['th_bg']."; }\n".
".nmr1 { background: ".$GLOBALS['phpgw_info']['theme']['row_on']."; }\n".
".nmr0 { background: ".$GLOBALS['phpgw_info']['theme']['row_off']."; }\n"
);
}
function style($styles)
{
return $styles ? "<STYLE type=\"text/css\">\n<!--\n$styles\n-->\n</STYLE>" : '';
}
function label($content,$options='')
{
return "<LABEL $options>$content</LABEL>";
}
return $GLOBALS['phpgw']->link($url,$vars);
}
function checkbox($name,$value='')
{
return "<input type=\"checkbox\" name=\"$name\" value=\"True\"" .($value ? ' checked' : '') . ">\n";
}
function form($content,$hidden_vars,$url,$url_vars='',$method='POST')
{
$html = "<form method=\"$method\" action=\"".$this->link($url,$url_vars)."\">\n";
$html .= $this->input_hidden($hidden_vars);
if ($content) {
$html .= $content;
$html .= "</form>\n";
}
return $html;
}
function form_1button($name,$lang,$hidden_vars,$url,$url_vars='',
$method='POST')
{
return $this->form($this->submit_button($name,$lang),
$hidden_vars,$url,$url_vars,$method);
}
/*!
@function table
@abstracts creates table from array with rows
@discussion abstract the html stuff
@param $rows array with rows, each row is an array of the cols
@param $options options for the table-tag
@example $rows = array ( '1' => array( 1 => 'cell1', '.1' => 'colspan=3',
@example 2 => 'cell2', 3 => 'cell3', '.3' => 'width="10%"' ),
@example '.1' => 'BGCOLOR="#0000FF"' );
@example table($rows,'WIDTH="100%"') = '<table WIDTH="100%"><tr><td colspan=3>cell1</td><td>cell2</td><td width="10%">cell3</td></tr></table>'
@returns string with html-code of the table
*/
function table($rows,$options = '')
{
$html = "<TABLE $options>\n";
while (list($key,$row) = each($rows)) {
if (!is_array($row))
continue; // parameter
$html .= "\t<TR ".$rows['.'.$key].">\n";
while (list($key,$cell) = each($row)) {
if ($key[0] == '.')
continue; // parameter
$html .= "\t\t<TD ".$row['.'.$key].">$cell</TD>\n";
}
$html .= "\t</TR>\n";
}
$html .= "</TABLE>\n";
return $html;
}
function sbox_submit( $sbox,$no_script=0 )
{
$html = str_replace('<select','<select onChange="this.form.submit()" ',
$sbox);
if ($no_script)
{
$html .= '<noscript>'.$this->submit_button('send','>').'</noscript>';
}
return $html;
}
function image( $app,$name,$title='',$options='' )
{
if (!($path = $GLOBALS['phpgw']->common->image($app,$name)))
$path = $name; // name may already contain absolut path
if ($title)
{
$options .= " $this->prefered_img_title=\"$title\"";
}
return "<IMG SRC=\"$path\" $options>";
}
function a_href( $content,$url,$vars='',$options='')
{
if (!strstr($url,'/') && count(explode('.',$url)) == 3)
$url = "/index.php?menuaction=$url";
return '<a href="'.$this->link($url,$vars).'" '.$options.'>'.$content.'</a>';
}
function bold($content)
{
return '<b>'.$content.'</b>';
}
function italic($content)
{
return '<i>'.$content.'</i>';
}
function hr($width,$options='')
{
if ($width)
$options .= " WIDTH=$width";
return "<hr $options>\n";
}
/*!
@function formatOptions
@abstract formats option-string for most of the above functions
@param $options String (or Array) with option-values eg. '100%,,1'
@param $names String (or Array) with the option-names eg. 'WIDTH,HEIGHT,BORDER'
@example formatOptions('100%,,1','WIDTH,HEIGHT,BORDER') = ' WIDTH="100%" BORDER="1"'
@returns option string
*/
function formatOptions($options,$names)
{
if (!is_array($options)) $options = explode(',',$options);
if (!is_array($names)) $names = explode(',',$names);
while (list($n,$val) = each($options))
if ($val != '' && $names[$n] != '')
$html .= ' '.$names[$n].'="'.$val.'"';
return $html;
}
/*!
@function nextMatchStyles
@abstract returns simple stylesheet for nextmatch row-colors
@returns the classes 'nmh' = nextmatch header, 'nmr0'+'nmr1' = alternating rows
*/
function nextMatchStyles()
{
return $this->style(
".nmh { background: ".$GLOBALS['phpgw_info']['theme']['th_bg']."; }\n".
".nmr1 { background: ".$GLOBALS['phpgw_info']['theme']['row_on']."; }\n".
".nmr0 { background: ".$GLOBALS['phpgw_info']['theme']['row_off']."; }\n"
);
}
function style($styles)
{
return $styles ? "<STYLE type=\"text/css\">\n<!--\n$styles\n-->\n</STYLE>" : '';
}
function label($content,$options='')
{
return "<LABEL $options>$content</LABEL>";
}
}

View File

@ -32,12 +32,12 @@
class soetemplate
{
var $public_functions = array(
'init' => True,
'read' => True,
'save' => True,
'delete' => True,
'dump2setup' => True,
'import_dump' => True,
'init' => True,
'read' => True,
'save' => True,
'delete' => True,
'dump2setup' => True,
'import_dump' => True,
'writeLangFile' => True
);
var $name; // name of the template, e.g. 'infolog.edit'
@ -48,9 +48,18 @@
var $size; // witdh,height,border of table
var $style; // embeded CSS style-sheet
var $db,$db_name = 'phpgw_etemplate'; // DB name
var $db_key_cols = array('et_name' => 'name','et_template' => 'template','et_lang' => 'lang',
'et_group' => 'group','et_version' => 'version');
var $db_data_cols = array('et_data' => 'data','et_size' => 'size','et_style' => 'style');
var $db_key_cols = array(
'et_name' => 'name',
'et_template' => 'template',
'et_lang' => 'lang',
'et_group' => 'group',
'et_version' => 'version'
);
var $db_data_cols = array(
'et_data' => 'data',
'et_size' => 'size',
'et_style' => 'style'
);
var $db_cols;
/*!
@ -147,7 +156,6 @@
{
$this->test_import($this->name); // import updates in setup-dir
}
$pref_lang = $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'];
$pref_templ = $GLOBALS['phpgw_info']['server']['template_set'];
@ -203,7 +211,6 @@
{
$this->$name = $this->db->f($db_col);
}
$this->data = unserialize(stripslashes($this->data));
if ($this->name[0] != '.')
@ -244,7 +251,6 @@
{
return $arr;
}
while (list($key,$val) = each($arr))
{
if (is_array($val))
@ -280,7 +286,6 @@
{
$arr['data'] = serialize($arr['data']);
}
return $arr;
}
@ -312,13 +317,10 @@
{
$this->version = $version;
}
if ($this->name == '')
if ($this->name == '') // name need to be set !!!
{
// name need to be set !!!
return False;
}
$this->delete(); // so we have always a new insert
if ($this->name[0] != '.') // correct up old messed up templates
@ -368,7 +370,6 @@
{
$vals .= ($vals ? ' AND ' : '') . $db_col . "='" . $this->$col . "'";
}
$this->db->query("DELETE FROM $this->db_name WHERE $vals",__LINE__,__FILE__);
return $this->db->affected_rows();
@ -390,7 +391,6 @@
{
return 0;
}
fwrite($f,"<?php\n// eTemplates for Application '$app', generated by etemplate.dump() ".date('Y-m-d H:i')."\n\n");
for ($n = 0; $this->db->next_record(); ++$n)
{
@ -421,13 +421,13 @@
{
while (list($col,$cell) = each($cols))
{
if (!$cell['no_lang'] && strlen($cell['label']) > 1)
if (strlen($cell['label']) > 1)
{
$to_trans[$cell['label']] = $cell['label'];
$to_trans[strtolower($cell['label'])] = $cell['label'];
}
if (strlen($cell['help']) > 1)
{
$to_trans[$cell['help']] = $cell['help'];
$to_trans[strtolower($cell['help'])] = $cell['help'];
}
}
}
@ -466,9 +466,9 @@
*/
function writeLangFile($app,$lang='en',$additional='')
{
if(!$additional)
if (!$additional)
{
$additional = array();
$addtional = array();
}
list($app) = explode('.',$app);
@ -479,21 +479,41 @@
$to_trans = $this->getToTranslateApp($app);
if (is_array($additional))
{
//echo "writeLangFile: additional ="; _debug_array($additional);
reset($additional);
while (list($nul,$msg) = each($additional))
{
$to_trans[$msg] = $msg;
$to_trans[strtolower($msg)] = $msg;
}
}
for ($new = $n = 0; list($message_id,$content) = each($to_trans); ++$n)
{
for ($new = $n = 0; list($message_id,$content) = each($to_trans); ++$n) {
if (!isset($langarr[$content]) && !isset($langarr[$message_id]))
{ // caused by not lowercased-message_id's
$langarr[$message_id] = $langarr[$content];
unset($langarr[$content]);
}
if (!isset($langarr[$message_id]))
{
$langarr[$message_id] = array('message_id' => $message_id,'app_name' => $app,'content' => $content);
$langarr[$message_id] = array(
'message_id' => $message_id,
'app_name' => $app,
'content' => $content
);
++$new;
}
}
ksort($langarr);
$dir = PHPGW_SERVER_ROOT . "/$app/setup";
if (!is_writeable($dir))
{
return "Error: webserver is not allowed to write into '$dir' !!!";
}
$file = "$dir/phpgw_$lang.lang";
if (file_exists($file))
{
rename($file,"$dir/phpgw_$lang.old.lang");
}
$solangfile->write_file($app,$langarr,$lang);
$solangfile->loaddb($app,$lang);
@ -554,4 +574,4 @@
}
return $ret;
}
}
};

View File

@ -30,7 +30,7 @@
class etemplate extends boetemplate
{
var $debug;//='etemplate.editor.edit'; // 1=calls to show and process_show, 2=content after process_show,
// 3=calls to show_cell and process_show_cell, or template-name or cell-type
// 3=calls to show_cell and process_show_cell, or template-name or cell-type
var $html,$sbox; // instance of html / sbox2-class
/*!
@ -41,10 +41,10 @@
function etemplate($name='',$template='default',$lang='default',$group=0,$version='',$rows=2,$cols=2)
{
$this->public_functions += array(
'exec' => True,
'process_exec' => True,
'show' => True,
'process_show' => True,
'exec' => True,
'process_exec' => True,
'show' => True,
'process_show' => True,
);
$this->boetemplate();
$this->html = CreateObject('etemplate.html'); // should be in the api (older version in infolog)
@ -80,15 +80,15 @@
*/
function exec($method,$content,$sel_options='',$readonlys='',$preserv='',$cname='cont')
{
if(!$sel_options)
if (!$sel_options)
{
$sel_options = array();
}
if(!$readonlys)
if (!$readonlys)
{
$readonlys = array();
}
if(!$preserv)
if (!$preserv)
{
$preserv = array();
}
@ -96,15 +96,15 @@
echo parse_navbar();
echo $this->html->nextMatchStyles($this->style)."\n\n". // so they get included once
$this->html->form($this->show($content,$sel_options,$readonlys,$cname),array(
'etemplate_exec[name]' => $this->name,
'etemplate_exec[template]' => $this->template,
'etemplate_exec[lang]' => $this->lang,
'etemplate_exec[group]' => $this->group,
'etemplate_exec[readonlys]' => $readonlys,
'etemplate_exec[cname]' => $cname,
'etemplate_exec[method]' => $method
)+$preserv,'/index.php?menuaction=etemplate.etemplate.process_exec');
$this->html->form($this->show($content,$sel_options,$readonlys,$cname),array(
'etemplate_exec[name]' => $this->name,
'etemplate_exec[template]' => $this->template,
'etemplate_exec[lang]' => $this->lang,
'etemplate_exec[group]' => $this->group,
'etemplate_exec[readonlys]' => $readonlys,
'etemplate_exec[cname]' => $cname,
'etemplate_exec[method]' => $method
)+$preserv,'/index.php?menuaction=etemplate.etemplate.process_exec');
}
/*!
@ -143,7 +143,6 @@
{
return $regs[2] && isset($arr[$regs[1]][$regs[2]]);
}
return isset($arr[$idx]);
}
@ -164,13 +163,14 @@
@param $show_xxx row,col name/index for name expansion
@returns the generated HTML
*/
function show($content,$sel_options='',$readonlys='',$cname='cont',$show_c=0,$show_row=0)
function show($content,$sel_options='',$readonlys='',$cname='cont',
$show_c=0,$show_row=0)
{
if(!$sel_options)
if (!$sel_options)
{
$sel_options = array();
}
if(!$readonlys)
if (!$readonlys)
{
$readonlys = array();
}
@ -182,13 +182,12 @@
{
$content = array(); // happens if incl. template has no content
}
$content += array(
'.c' => $show_c,
$content += array( // for var-expansion in names in show_cell
'.c' => $show_c,
'.col' => $this->num2chrs($show_c-1),
'.row' => $show_row // for var-expansion in names in show_cell
'.row' => $show_row
);
reset($this->data);
reset($this->data);
if (isset($this->data[0]))
{
list($nul,$width) = each($this->data);
@ -205,10 +204,10 @@
$cols = $old_cols; $class = $old_class; $height = $old_height;
list($nul,$cell) = each($cols); reset($cols);
if (!($this->autorepeat_idx($cols['A'],0,$r,$idx,$idx_cname) && $idx_cname) &&
!($this->autorepeat_idx($cols['B'],1,$r,$idx,$idx_cname) && $idx_cname) ||
!$this->isset_array($idx,$content))
!($this->autorepeat_idx($cols['B'],1,$r,$idx,$idx_cname) && $idx_cname) ||
!$this->isset_array($idx,$content))
{
break; // no auto-row-repeat
break; // no auto-row-repeat
}
}
else
@ -220,19 +219,18 @@
for ($c = 0; True /*list($col,$cell) = each($cols)*/; ++$c)
{
$old_cell = $cell;
if (!(list($nul,$cell) = each($cols)))
if (!(list($nul,$cell) = each($cols))) // no further cols
{
// no further cols
$cell = $old_cell;
if (!$this->autorepeat_idx($cell,$c,$r,$idx,$idx_cname,True) ||
!$this->isset_array($idx,$content))
!$this->isset_array($idx,$content))
{
break; // no auto-col-repeat
}
}
$col = $this->num2chrs($c);
$row_data[$col] = $this->show_cell($cell,$content,$sel_options,$readonlys,$cname,
$c,$r,$span);
$c,$r,$span);
if ($row_data[$col] == '' && $this->rows == 1)
{
unset($row_data[$col]); // omit empty/disabled cells if only one row
@ -272,8 +270,8 @@
$GLOBALS['phpgw_info']['etemplate']['styles_included'][$this->name] = True;
}
return "\n\n<!-- BEGIN $this->name -->\n$style\n".
$this->html->table($rows,$this->html->formatOptions($this->size,'WIDTH,HEIGHT,BORDER,CLASS')).
"<!-- END $this->name -->\n\n";
$this->html->table($rows,$this->html->formatOptions($this->size,'WIDTH,HEIGHT,BORDER,CLASS')).
"<!-- END $this->name -->\n\n";
}
/*!
@ -310,16 +308,13 @@
{
$form_name = $cname.'['.$name.']';
}
if ($readonly = $cell['readonly'] || $readonlys[$name] || $readonlys['__ALL__'])
{
$options .= ' READONLY';
}
if ($cell['disabled'] || $cell['type'] == 'button' && $readonly)
{
if ($this->rows == 1)
{
if ($this->rows == 1) {
return ''; // if only one row omit cell
}
$cell = $this->empty_cell(); // show nothing
@ -343,19 +338,21 @@
{
case 'label': // size: [[b]old][[i]talic]
$value = strlen($value) > 1 && !$cell['no_lang'] ? lang($value) : $value;
if ($value != '' && strstr($cell['size'],'b'))
{
$value = $this->html->bold($value);
}
if ($value != '' && strstr($cell['size'],'i'))
{
$value = $this->html->italic($value);
}
if ($value != '' && strstr($cell['size'],'b')) $value = $this->html->bold($value);
if ($value != '' && strstr($cell['size'],'i')) $value = $this->html->italic($value);
$html .= $value;
break;
case 'raw':
$html .= $value;
break;
case 'int': // size: [min][,[max][,len]]
case 'float':
list($min,$max,$cell['size']) = explode(',',$cell['size']);
if ($cell['size'] == '')
{
$cell['size'] = $cell['type'] == 'int' ? 5 : 8;
}
// fall-through
case 'text': // size: [length][,maxLength]
if ($readonly)
{
@ -364,12 +361,12 @@
else
{
$html .= $this->html->input($form_name,$value,'',
$options.$this->html->formatOptions($cell['size'],'SIZE,MAXLENGTH'));
$options.$this->html->formatOptions($cell['size'],'SIZE,MAXLENGTH'));
}
break;
case 'textarea': // Multiline Text Input, size: [rows][,cols]
$html .= $this->html->textarea($form_name,$value,
$options.$this->html->formatOptions($cell['size'],'ROWS,COLS'));
$options.$this->html->formatOptions($cell['size'],'ROWS,COLS'));
break;
case 'date':
if ($cell['size'] != '')
@ -415,7 +412,7 @@
break;
case 'button':
$html .= $this->html->submit_button($form_name,$cell['label'],'',
strlen($cell['label']) <= 1 || $cell['no_lang'],$options);
strlen($cell['label']) <= 1 || $cell['no_lang'],$options);
break;
case 'hrule':
$html .= $this->html->hr($cell['size']);
@ -424,8 +421,7 @@
if ($this->autorepeat_idx($cell,$show_c,$show_row,$idx,$idx_cname) || $cell['size'] != '')
{
if ($span == '' && isset($content[$idx]['span']))
{
// this allows a colspan in autorepeated cells like the editor
{ // this allows a colspan in autorepeated cells like the editor
$span = explode(',',$content[$idx]['span']); $span = $span[0];
if ($span == 'all')
{
@ -438,7 +434,6 @@
{
$cname .= $cname == '' ? $idx_cname : "[$idx_cname]";
}
//echo "<p>show_cell-autorepeat($name,$show_c,$show_row,cname='$cname',idx='$idx',idx_cname='$idx_cname',span='$span'): readonlys[$idx] ="; _debug_array($readonlys);
}
if ($readonly)
@ -456,13 +451,12 @@
elseif (isset($sel_options[$org_name]))
{
$sel_options = $sel_options[$org_name];
}
elseif (isset($content["options-$name"]))
} elseif (isset($content["options-$name"]))
{
$sel_options = $content["options-$name"];
}
$html .= $this->sbox->getArrayItem($form_name.'[]',$value,$sel_options,$cell['no_lang'],
$options,$cell['size']);
$options,$cell['size']);
break;
case 'select-percent':
$html .= $this->sbox->getPercentage($form_name,$value,$options);
@ -493,7 +487,7 @@
break;
case 'image':
$image = $this->html->image(substr($this->name,0,strpos($this->name,'.')),
$cell['label'],lang($cell['help']),'BORDER=0');
$cell['label'],lang($cell['help']),'BORDER=0');
$html .= $name == '' ? $image : $this->html->a_href($image,$name);
break;
default:
@ -502,11 +496,10 @@
}
if ($cell['type'] != 'button' && $cell['type'] != 'image' && (($label = $cell['label']) != '' || $html == ''))
{
if (!$cell['no_lang'] && strlen($label) > 1)
if (strlen($label) > 1)
{
$label = lang($label);
}
$html_label = $html != '' && $label != '';
if (strstr($label,'%s'))
@ -517,7 +510,6 @@
{
$html = '&nbsp;';
}
if ($html_label)
{
$html = $this->html->label($html);
@ -538,15 +530,14 @@
*/
function process_show(&$content,$readonlys='')
{
if(!$readonlys)
if (!$readonlys)
{
$readonlys=array();
$readonlys = array();
}
if (!isset($content) || !is_array($content))
{
return;
}
if ($this->debug >= 1 || $this->debug == $this->name && $this->name)
{
echo "<p>process_show($this->name) start: content ="; _debug_array($content);
@ -575,9 +566,8 @@
for ($c = 0; True /*list($col,$cell) = each($cols)*/; ++$c)
{
$old_cell = $cell;
if (!(list($nul,$cell) = each($cols)))
if (!(list($nul,$cell) = each($cols))) // no further cols
{
// no further cols
$cell = $old_cell;
if (!$this->autorepeat_idx($cell,$c,$r,$idx,$idx_cname,True) ||
$idx_cname == '' || !$this->isset_array($idx,$content))
@ -593,14 +583,13 @@
$name = $this->expand_name($cell['name'],$c,$r);
$readonly = $cell['readonly'] || $readonlys[$name] || $readonlys['__ALL__'] ||
$cell['type'] == 'label' || $cell['type'] == 'image' || $cell['type'] == 'raw' ||
$cell['type'] == 'hrule';
$cell['type'] == 'label' || $cell['type'] == 'image' || $cell['type'] == 'raw' ||
$cell['type'] == 'hrule';
if ($idx_cname == '' && $cell['type'] == 'template') // only templates
{
if ($readonly)
if ($readonly) // can't unset whole content!!!
{
// can't unset whole content!!!
$readonlys['__ALL__'] = True;
}
$this->process_show_cell($cell,$name,$c,$r,$readonlys,$content);
@ -619,7 +608,7 @@
$parent_isset = isset($content[$regs[1]]);
if ($readonly || !$this->process_show_cell($cell,$name,$c,$r,
$readonlys[$regs[1]][$regs[2]],$content[$regs[1]][$regs[2]]))
$readonlys[$regs[1]][$regs[2]],$content[$regs[1]][$regs[2]]))
{
if (!$parent_isset)
{
@ -634,7 +623,7 @@
else
{
if ($readonly || !$this->process_show_cell($cell,$name,$c,$r,
$readonlys[$idx_cname],$content[$idx_cname]))
$readonlys[$idx_cname],$content[$idx_cname]))
{
unset($content[$idx_cname]);
}
@ -665,7 +654,6 @@
{
$cell['type'] = $cell['type'][0];
}
if ($this->debug >= 3 || $this->debug == $this->name || $this->debug == $cell['type'])
{
echo "<p>process_show_cell(c=$c, r=$r, name='$name',type='${cell['type']}) start: isset(value)=".(0+isset($value)).", value=";
@ -680,6 +668,13 @@
}
switch ($cell['type'])
{
case 'int':
case 'float':
list($min,$max) = explode(',',$cell['size']);
/*
* TO DO: number- and range-check, if not enshured by java-script
*/
break;
case 'text':
case 'textarea':
if (isset($value))
@ -724,9 +719,8 @@
}
break;
case 'checkbox':
if (!isset($value))
if (!isset($value)) // checkbox was not checked
{
// checkbox was not checked
$value = 0; // need to be reported too
}
break;
@ -758,4 +752,4 @@
}
return isset($value);
}
}
};

View File

@ -1,5 +1,5 @@
<?php
// eTemplates for Application 'etemplate', generated by etemplate.dump() 2002-02-05 10:21
// eTemplates for Application 'etemplate', generated by etemplate.dump() 2002-02-08 09:56
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.13.004','data' => 'a:8:{i:0;a:1:{s:1:\"A\";s:2:\"5%\";}i:1;a:1:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:4:\"name\";s:3:\"msg\";}}i:2;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}}i:3;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}}i:4;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}}i:5;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}}i:6;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:10:\"CSS-styles\";}}i:7;a:1:{s:1:\"A\";a:5:{s:4:\"type\";s:8:\"textarea\";s:4:\"size\";s:5:\"10,80\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:5:\"style\";s:4:\"help\";s:155:\"embeded CSS styles, eg. \'.red { background: red; }\' (note the \'.\' before the class-name) or \'@import url(...)\' (class names are global for the whole page!)\";}}}','size' => '100%','style' => '',);
@ -7,28 +7,18 @@ $templ_data[] = array('name' => 'etemplate.editor.show','template' => '','lang'
$templ_data[] = array('name' => 'etemplate.editor.delete','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:7:{i:0;a:4:{s:1:\"A\";s:3:\"25%\";s:1:\"B\";s:3:\"30%\";s:1:\"E\";s:3:\"10%\";s:1:\"F\";s:3:\"35%\";}i:1;a:6:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:36:\"Editable Templates - Delete Template\";}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:2;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:3;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}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:4;a:6:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"30\";s:5:\"label\";s:15:\"Delete Template\";s:4:\"name\";s:4:\"name\";s:8:\"readonly\";s:1:\"1\";}s:1:\"C\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:8:\"template\";s:8:\"readonly\";s:1:\"1\";}s:1:\"D\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"name\";s:4:\"lang\";s:8:\"readonly\";s:1:\"1\";}s:1:\"E\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:5:\"label\";s:7:\"Version\";s:4:\"name\";s:7:\"version\";s:8:\"readonly\";s:1:\"1\";}s:1:\"F\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:1:\"?\";}}i:5;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}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:6;a:6:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:3:\"Yes\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:3:\"yes\";}s:1:\"C\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"D\";a:4:{s:4:\"type\";s:6:\"button\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:2:\"No\";s:4:\"name\";s:2:\"no\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.db-tools.cols','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:3:{i:0;a:2:{s:2:\"c1\";s:3:\"nmh\";s:2:\"c2\";s:3:\"nmr\";}i:1;a:11:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:1:\"#\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";}s:1:\"B\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:10:\"ColumnName\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"D\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:9:\"Precision\";}s:1:\"E\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:8:\"Nullable\";}s:1:\"F\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Unique\";}s:1:\"G\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Primary Key\";}s:1:\"H\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Indexed\";}s:1:\"I\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Foreign Key\";}s:1:\"J\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Default\";}s:1:\"K\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Add Column\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:10:\"add_column\";}}i:2;a:11:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:12:\"Row${row}[n]\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:15:\"Row${row}[name]\";s:4:\"help\";s:127:\"need to be unique in the table and no reseved word from SQL, best prefix all with a common 2-digit short for the app, eg. \'et_\'\";}s:1:\"C\";a:4:{s:4:\"type\";s:6:\"select\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:15:\"Row${row}[type]\";s:4:\"help\";s:18:\"type of the column\";}s:1:\"D\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:20:\"Row${row}[precision]\";s:4:\"help\";s:64:\"length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8\";}s:1:\"E\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:19:\"Row${row}[nullable]\";s:4:\"help\";s:32:\"can have sepecial SQL-value NULL\";}s:1:\"F\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[uc]\";s:4:\"help\";s:59:\"DB ensures that every row has a unique value in that column\";}s:1:\"G\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[pk]\";s:4:\"help\";s:52:\"Primary key for the table, gets automaticaly indexed\";}s:1:\"H\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[ix]\";s:4:\"help\";s:81:\"an indexed column speeds up querys using that column (cost space on the disk !!!)\";}s:1:\"I\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[fk]\";s:4:\"help\";s:46:\"name of other table where column is a key from\";}s:1:\"J\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:4:\"name\";s:18:\"Row${row}[default]\";s:4:\"help\";s:54:\"enter \'\' for an empty default, nothing mean no default\";}s:1:\"K\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:13:\"Delete Column\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:12:\"delete[$row]\";}}}','size' => '','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.values','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:3:{i:0;a:2:{s:2:\"c1\";s:3:\"nmh\";s:2:\"c2\";s:3:\"nmr\";}i:1;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:3:\"Key\";}s:1:\"B\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Value\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:8:\"$col$row\";}s:1:\"B\";a:2:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:8:\"$col$row\";}}}','size' => ',,1','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.13.005','data' => 'a:8:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:8:\"DB-Tools\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:8:\"db_tools\";s:4:\"help\";s:21:\"to start the DB-Tools\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:10:\"CSS-styles\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:7;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:8:\"textarea\";s:4:\"size\";s:5:\"10,80\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:5:\"style\";s:4:\"help\";s:155:\"embeded CSS styles, eg. \'.red { background: red; }\' (note the \'.\' before the class-name) or \'@import url(...)\' (class names are global for the whole page!)\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.row_header.top','template' => '','lang' => '','group' => '0','version' => '0.9.13.005','data' => 'a:2:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:13:\"insert_row[0]\";s:4:\"help\";s:37:\"insert new row in front of first Line\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"X\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:19:\"exchange_row[$row_]\";s:4:\"help\";s:22:\"exchange this two rows\";}}}','size' => '100%,100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.row_header','template' => '','lang' => '','group' => '0','version' => '0.9.13.005','data' => 'a:5:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:31:\"etemplate.editor.row_header.top\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Height\";s:5:\"align\";s:6:\"center\";}}i:2;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:4:\".row\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"name\";s:14:\"height[h$row_]\";s:4:\"help\";s:35:\"height of row (in percent or pixel)\";}}i:3;a:2:{s:1:\"A\";a:6:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"-\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:17:\"delete_row[$row_]\";s:4:\"help\";s:33:\"remove Row (can NOT be undone!!!)\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"class\";s:5:\"align\";s:6:\"center\";}}i:4;a:2:{s:1:\"A\";a:6:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:17:\"insert_row[$row_]\";s:4:\"help\";s:29:\"insert new row after this one\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"name\";s:13:\"class[c$row_]\";s:4:\"help\";s:112:\"CSS-class name for this row, preset: \'nmh\' = NextMatch header, \'nmr\' = alternating NM row, \'nmr0\'+\'nmr1\' NM rows\";}}}','size' => ',100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.13.005','data' => 'a:5:{i:0;a:4:{s:2:\"c1\";s:3:\"nmr\";s:2:\"c2\";s:3:\"nmr\";s:2:\"c3\";s:3:\"nmr\";s:2:\"c4\";s:3:\"nmr\";}i:1;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:4:\"type\";s:4:\"help\";s:57:\"type of the field (select Label if field should be empty)\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Size\";}s:1:\"D\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:176:\"Label:[b[old]][i[tylic]] Text:[len][,max] Textarea:[rows][,cols] Radiobutton:value H.Rule:[width] Template:[IndexInContent] Select:[multiselectLines] Date:[values: eg. \'Y-m-d\']\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"span\";s:4:\"help\";s:111:\"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)\";}}i:2;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Label\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:5:\"label\";s:4:\"help\";s:118:\"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)\";}s:1:\"C\";a:6:{s:4:\"type\";s:8:\"checkbox\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:16:\"%s NoTranslation\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:7:\"no_lang\";s:4:\"help\";s:83:\"select if label and other content (depending on fieldtype) should not be translated\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Align\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:5:\"align\";s:4:\"help\";s:48:\"alignment of label and input-field in table-cell\";}}i:3;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Name\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:4:\"name\";s:4:\"help\";s:78:\"index/name of returned content (name of the Template, Link / Method for Image)\";}s:1:\"C\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:1:\"4\";s:4:\"name\";s:26:\"etemplate.editor.cell_opts\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Help\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"50\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:4:\"help\";s:4:\"help\";s:60:\"displayed in statusline of browser if input-field gets focus\";}s:1:\"C\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => ',100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.13.005','data' => 'a:5:{i:0;a:4:{s:2:\"c1\";s:3:\"nmr\";s:2:\"c2\";s:3:\"nmr\";s:2:\"c3\";s:3:\"nmr\";s:2:\"c4\";s:3:\"nmr\";}i:1;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:4:\"type\";s:4:\"help\";s:57:\"type of the field (select Label if field should be empty)\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Size\";}s:1:\"D\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:187:\"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"span\";s:4:\"help\";s:111:\"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)\";}}i:2;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Label\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:5:\"label\";s:4:\"help\";s:118:\"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)\";}s:1:\"C\";a:6:{s:4:\"type\";s:8:\"checkbox\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:16:\"%s NoTranslation\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:7:\"no_lang\";s:4:\"help\";s:82:\"select if content of field should not be translated (label gets always translated)\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Align\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:5:\"align\";s:4:\"help\";s:48:\"alignment of label and input-field in table-cell\";}}i:3;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Name\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:4:\"name\";s:4:\"help\";s:78:\"index/name of returned content (name of the Template, Link / Method for Image)\";}s:1:\"C\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:1:\"4\";s:4:\"name\";s:26:\"etemplate.editor.cell_opts\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Help\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"50\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:4:\"help\";s:4:\"help\";s:60:\"displayed in statusline of browser if input-field gets focus\";}s:1:\"C\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => ',100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.keys','template' => '','lang' => '','group' => '0','version' => '0.9.13.003','data' => 'a:2:{i:0;a:0:{}i:1;a:4:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"30\";s:5:\"label\";s:4:\"Name\";s:4:\"name\";s:4:\"name\";s:4:\"help\";s:75:\"name of the eTemplate, should be in form application.function[.subTemplate]\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:5:\"label\";s:8:\"Template\";s:4:\"name\";s:8:\"template\";s:4:\"help\";s:125:\"name of phpgw-template set (e.g. verdilak): \'\' = default (will read pref. template, us \'default\' to read default template \'\')\";}s:1:\"C\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:5:\"label\";s:4:\"Lang\";s:4:\"name\";s:4:\"lang\";s:4:\"help\";s:162:\"language-short (eg. \'en\' for english) for language-dependent template (\'\' reads your pref. languages or the default, us \'default\' to read the default template \'\')\";}s:1:\"D\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:5:\"label\";s:7:\"Version\";s:4:\"name\";s:7:\"version\";s:4:\"help\";s:116:\"version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros)\";}}}','size' => '','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.show','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:7:{i:0;a:0:{}i:1;a:1:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:34:\"Editable Templates - Show Template\";s:4:\"name\";s:3:\"msg\";}}i:2;a:1:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"hrule\";}}i:3;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}}i:4;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}}i:5;a:1:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"hrule\";}}i:6;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:4:\"cont\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.controls','template' => '','lang' => '','group' => '0','version' => '0.9.13.004','data' => 'a:3:{i:0;a:0:{}i:1;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}}i:2;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}}}','size' => '','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.delete','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:7:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:36:\"Editable Templates - Delete Template\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Delete\";s:5:\"align\";s:5:\"right\";}s:1:\"B\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.keys\";s:8:\"readonly\";s:1:\"1\";}}i:5;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:3:\"Yes\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:3:\"yes\";s:4:\"help\";s:70:\"deletes the above spez. eTemplate from the database, can NOT be undone\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:2:\"No\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:2:\"no\";s:4:\"help\";s:32:\"returns savely, WITHOUT deleting\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.db-tools.ask_save','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:7:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:29:\"Editable Templates - DB-Tools\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:6:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:53:\"Do you want to save the changes you made in table %s?\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:5:\"table\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:3:\"Yes\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:3:\"yes\";s:4:\"help\";s:39:\"saves changes to tables_current.inc.php\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:2:\"No\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:2:\"no\";s:4:\"help\";s:15:\"discard changes\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.row_header','template' => '','lang' => '','group' => '0','version' => '0.9.13.004','data' => 'a:5:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:13:\"insert_row[0]\";s:4:\"help\";s:37:\"insert new row in front of first Line\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Height\";s:5:\"align\";s:6:\"center\";}}i:2;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:4:\".row\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"name\";s:14:\"height[h$row_]\";s:4:\"help\";s:35:\"height of row (in percent or pixel)\";}}i:3;a:2:{s:1:\"A\";a:6:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"-\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:17:\"delete_row[$row_]\";s:4:\"help\";s:33:\"remove Row (can NOT be undone!!!)\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"class\";s:5:\"align\";s:6:\"center\";}}i:4;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:17:\"insert_row[$row_]\";s:4:\"help\";s:29:\"insert new row after this one\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"name\";s:13:\"class[c$row_]\";s:4:\"help\";s:112:\"CSS-class name for this row, preset: \'nmh\' = NextMatch header, \'nmr\' = alternating NM row, \'nmr0\'+\'nmr1\' NM rows\";}}}','size' => ',100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.buttons','template' => '','lang' => '','group' => '0','version' => '0.9.13.003','data' => 'a:2:{i:0;a:0:{}i:1;a:10:{s:1:\"A\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Read\";s:4:\"name\";s:4:\"read\";s:4:\"help\";s:49:\"read eTemplate from database (for the keys above)\";}s:1:\"B\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:14:\"Show (no save)\";s:4:\"name\";s:4:\"show\";s:4:\"help\";s:61:\"shows/displays eTemplate for testing, does NOT save it before\";}s:1:\"C\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:11:\"Show Values\";s:4:\"name\";s:6:\"values\";s:4:\"help\";s:65:\"shows / allows you to enter values into the eTemplate for testing\";}s:1:\"D\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Save\";s:4:\"name\";s:4:\"save\";s:4:\"help\";s:77:\"save the eTemplate under the above keys (name, ...), change them for a SaveAs\";}s:1:\"E\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Edit\";s:4:\"name\";s:4:\"edit\";s:4:\"help\";s:30:\"edit the eTemplate spez. above\";}s:1:\"F\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Delete\";s:4:\"name\";s:6:\"delete\";s:4:\"help\";s:33:\"deletes the eTemplate spez. above\";}s:1:\"G\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Dump4Setup\";s:4:\"name\";s:4:\"dump\";s:4:\"help\";s:88:\"writes a \'etemplates.inc.php\' file (for application in Name) in the setup-dir of the app\";}s:1:\"H\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:14:\"Write Langfile\";s:4:\"name\";s:8:\"langfile\";s:4:\"help\";s:85:\"creates an english (\'en\') langfile from label and helptexts (for application in Name)\";}s:1:\"I\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"J\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:5:\"label\";s:28:\"Width, Height, Border, class\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:95:\"width, height, border-line-thickness of the table / template and CSS-class name (for TABLE tag)\";}}}','size' => '','style' => '',);
@ -41,6 +31,16 @@ $templ_data[] = array('name' => 'etemplate.editor.row_header','template' => '','
$templ_data[] = array('name' => 'etemplate.editor.col_header','template' => '','lang' => '','group' => '0','version' => '0.9.13.003','data' => 'a:2:{i:0;a:4:{s:1:\"A\";s:2:\"5%\";s:1:\"B\";s:2:\"5%\";s:1:\"C\";s:3:\"60%\";s:1:\"D\";s:3:\"30%\";}i:1;a:6:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:13:\"insert_col[0]\";s:4:\"help\";s:33:\"insert new column in front of all\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:3:\">|<\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:17:\"exchange_col[$c_]\";s:4:\"help\";s:25:\"exchange this two columns\";}s:1:\"C\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:4:\".col\";}s:1:\"D\";a:6:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:5:\"label\";s:5:\"Width\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:12:\"width[$col_]\";s:4:\"help\";s:37:\"width of column (in percent or pixel)\";}s:1:\"E\";a:6:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"-\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:15:\"delete_col[$c_]\";s:4:\"help\";s:42:\"delete whole column (can NOT be undone!!!)\";}s:1:\"F\";a:6:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:15:\"insert_col[$c_]\";s:4:\"help\";s:33:\"insert new column behind this one\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.db-tools.edit','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:6:{i:0;a:1:{s:1:\"D\";s:2:\"1%\";}i:1;a:7:{s:1:\"A\";a:6:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:4:\"span\";s:1:\"6\";s:5:\"label\";s:29:\"Editable Templates - DB-Tools\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}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\";}s:1:\"G\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:16:\"eTemplate Editor\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:6:\"editor\";s:4:\"help\";s:29:\"to start the eTemplate editor\";}}i:2;a:7:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:7:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}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\";}s:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:7:{s:1:\"A\";a:6:{s:4:\"type\";s:6:\"select\";s:5:\"label\";s:11:\"Application\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"app\";s:8:\"onchange\";s:1:\"1\";s:4:\"help\";s:21:\"Select an application\";}s:1:\"B\";a:6:{s:4:\"type\";s:6:\"select\";s:5:\"label\";s:9:\"TableName\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:10:\"table_name\";s:8:\"onchange\";s:1:\"1\";s:4:\"help\";s:34:\"Select an table of the application\";}s:1:\"C\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:14:\"new_table_name\";s:4:\"help\";s:20:\"Name of table to add\";}s:1:\"D\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:9:\"Add Table\";s:4:\"name\";s:9:\"add_table\";s:4:\"help\";s:38:\"Create a new table for the application\";}s:1:\"E\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Import\";s:4:\"name\";s:6:\"import\";s:4:\"help\";s:47:\"Import table-definitions from existing db-table\";}s:1:\"F\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Drop Table\";s:4:\"name\";s:10:\"drop_table\";s:8:\"disabled\";s:1:\"1\";s:4:\"help\";s:37:\"Drop a table - this can NOT be undone\";}s:1:\"G\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:12:\"Write Tables\";s:4:\"name\";s:12:\"write_tables\";s:4:\"help\";s:40:\"Write <app>/setup/tables_current.inc.php\";}}i:5;a:7:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:23:\"etemplate.db-tools.cols\";}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\";}s:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.db-tools.ask_save','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:7:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:6:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:29:\"Editable Templates - DB-Tools\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:6:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:53:\"Do you want to save the changes you made in table %s?\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:5:\"table\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:3:\"Yes\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:3:\"yes\";s:4:\"help\";s:39:\"saves changes to tables_current.inc.php\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:2:\"No\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:2:\"no\";s:4:\"help\";s:15:\"discard changes\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.delete','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:7:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:36:\"Editable Templates - Delete Template\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Delete\";s:5:\"align\";s:5:\"right\";}s:1:\"B\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.keys\";s:8:\"readonly\";s:1:\"1\";}}i:5;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:3:\"Yes\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:3:\"yes\";s:4:\"help\";s:70:\"deletes the above spez. eTemplate from the database, can NOT be undone\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:2:\"No\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:2:\"no\";s:4:\"help\";s:32:\"returns savely, WITHOUT deleting\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.13.005','data' => 'a:8:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:8:\"DB-Tools\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:8:\"db_tools\";s:4:\"help\";s:21:\"to start the DB-Tools\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:10:\"CSS-styles\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:7;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:8:\"textarea\";s:4:\"size\";s:5:\"10,80\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:5:\"style\";s:4:\"help\";s:155:\"embeded CSS styles, eg. \'.red { background: red; }\' (note the \'.\' before the class-name) or \'@import url(...)\' (class names are global for the whole page!)\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.show','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:7:{i:0;a:0:{}i:1;a:1:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:34:\"Editable Templates - Show Template\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}}i:2;a:1:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"hrule\";}}i:3;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}}i:4;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}}i:5;a:1:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"hrule\";}}i:6;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:4:\"cont\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:6:{i:0;a:2:{s:1:\"F\";s:2:\"5%\";s:1:\"G\";s:3:\"85%\";}i:1;a:7:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:27:\"Editable Templates - Editor\";}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\";}s:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:7:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:7:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"30\";s:4:\"span\";s:1:\"3\";s:5:\"label\";s:4:\"Name\";s:4:\"name\";s:4:\"name\";}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:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:8:\"Language\";s:4:\"name\";s:4:\"lang\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:5:\"label\";s:7:\"Version\";s:4:\"name\";s:7:\"version\";}s:1:\"G\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:5:\"label\";s:11:\"Group/-User\";s:4:\"name\";s:5:\"group\";}}i:4;a:7:{s:1:\"A\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Read\";s:4:\"name\";s:4:\"read\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:14:\"Show (no save)\";s:4:\"name\";s:4:\"show\";}s:1:\"C\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Save\";s:4:\"name\";s:4:\"save\";}s:1:\"D\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Delete\";s:4:\"name\";s:6:\"delete\";}s:1:\"E\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Dump4Setup\";s:4:\"name\";s:4:\"dump\";}s:1:\"F\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:21:\"Width, Height, Border\";s:4:\"name\";s:4:\"size\";}s:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:7:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.col_header','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:2:{i:0;a:2:{s:1:\"A\";s:3:\"40%\";s:1:\"C\";s:3:\"40%\";}i:1;a:5:{s:1:\"A\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:4:\"name\";s:13:\"insert_col[0]\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"name\";s:4:\".col\";}s:1:\"C\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:5:\"label\";s:5:\"Width\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:11:\"width[$col]\";}s:1:\"D\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"-\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:14:\"delete_col[$c]\";}s:1:\"E\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:14:\"insert_col[$c]\";}}}','size' => '100%','style' => '',);
@ -51,6 +51,8 @@ $templ_data[] = array('name' => 'etemplate.editor.edit_cell','template' => '','l
$templ_data[] = array('name' => 'etemplate.editor.edit','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:3:{i:0;a:1:{s:2:\"c1\";s:3:\"nmh\";}i:1;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"image\";s:5:\"label\";s:8:\"test.gif\";s:5:\"align\";s:6:\"center\";}s:1:\"B\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:8:\"Col$col,\";s:4:\"name\";s:27:\"etemplate.editor.col_header\";}}i:2;a:2:{s:1:\"A\";a:4:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:8:\"Row$row,\";s:4:\"span\";s:4:\",nmh\";s:4:\"name\";s:27:\"etemplate.editor.row_header\";}s:1:\"B\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:8:\"$col$row\";s:4:\"name\";s:21:\"etemplate.editor.cell\";}}}','size' => ',,1,editorEdit','style' => '.editorEdit { border-color: black }',);
$templ_data[] = array('name' => 'etemplate.editor.cell_opts','template' => '','lang' => '','group' => '0','version' => '0.9.13.004','data' => 'a:2:{i:0;a:0:{}i:1;a:4:{s:1:\"A\";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\";}s:1:\"B\";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!)\";}s:1:\"C\";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: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\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:6:{i:0;a:2:{s:1:\"F\";s:2:\"5%\";s:1:\"G\";s:3:\"85%\";}i:1;a:7:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:4:\"name\";s:3:\"msg\";}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\";}s:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:7:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:7:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"30\";s:4:\"span\";s:1:\"3\";s:5:\"label\";s:4:\"Name\";s:4:\"name\";s:4:\"name\";}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:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:8:\"Template\";s:4:\"name\";s:8:\"template\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:5:\"label\";s:4:\"Lang\";s:4:\"name\";s:4:\"lang\";}s:1:\"G\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:5:\"label\";s:7:\"Version\";s:4:\"name\";s:7:\"version\";}}i:4;a:7:{s:1:\"A\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Read\";s:4:\"name\";s:4:\"read\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:14:\"Show (no save)\";s:4:\"name\";s:4:\"show\";}s:1:\"C\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Save\";s:4:\"name\";s:4:\"save\";}s:1:\"D\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Delete\";s:4:\"name\";s:6:\"delete\";}s:1:\"E\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Dump4Setup\";s:4:\"name\";s:4:\"dump\";}s:1:\"F\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:21:\"Width, Height, Border\";s:4:\"name\";s:4:\"size\";}s:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:7:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:1:\"G\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '','style' => '',);
$templ_data[] = array('name' => 'etemplate.editor.col_header','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:2:{i:0;a:0:{}i:1;a:5:{s:1:\"A\";a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:4:\"name\";s:13:\"insert_col[0]\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"name\";s:4:\".col\";}s:1:\"C\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:5:\"label\";s:5:\"Width\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:12:\"width[$col_]\";}s:1:\"D\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"-\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:15:\"delete_col[$c_]\";}s:1:\"E\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:1:\"+\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:15:\"insert_col[$c_]\";}}}','size' => '100%','style' => '',);
@ -69,5 +71,5 @@ $templ_data[] = array('name' => 'etemplate.editor.controls','template' => '','la
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.13.003','data' => 'a:6:{i:0;a:0:{}i:1;a:1:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:4:\"name\";s:3:\"msg\";}}i:2;a:1:{s:1:\"A\";a:1:{s:4:\"type\";s:5:\"hrule\";}}i:3;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}}i:4;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:24:\"etemplate.editor.buttons\";}}i:5;a:1:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}}}','size' => '','style' => '',);
$templ_data[] = array('name' => 'etemplate.db-tools.edit','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:6:{i:0;a:0:{}i:1;a:6:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:4:\"span\";s:1:\"5\";s:5:\"label\";s:29:\"Editable Templates - DB-Tools\";s:4:\"name\";s:3:\"msg\";}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:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:16:\"eTemplate Editor\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:6:\"editor\";s:4:\"help\";s:29:\"to start the eTemplate editor\";}}i:2;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}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:3;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";}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:4;a:6:{s:1:\"A\";a:6:{s:4:\"type\";s:6:\"select\";s:5:\"label\";s:11:\"Application\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"app\";s:8:\"onchange\";s:1:\"1\";s:4:\"help\";s:21:\"Select an application\";}s:1:\"B\";a:6:{s:4:\"type\";s:6:\"select\";s:5:\"label\";s:9:\"TableName\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:10:\"table_name\";s:8:\"onchange\";s:1:\"1\";s:4:\"help\";s:34:\"Select an table of the application\";}s:1:\"C\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:14:\"new_table_name\";s:4:\"help\";s:20:\"Name of table to add\";}s:1:\"D\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:9:\"Add Table\";s:4:\"name\";s:9:\"add_table\";s:4:\"help\";s:38:\"Create a new table for the application\";}s:1:\"E\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Drop Table\";s:4:\"name\";s:10:\"drop_table\";s:8:\"disabled\";s:1:\"1\";s:4:\"help\";s:37:\"Drop a table - this can NOT be undone\";}s:1:\"F\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:12:\"Write Tables\";s:4:\"name\";s:12:\"write_tables\";s:4:\"help\";s:40:\"Write <app>/setup/tables_current.inc.php\";}}i:5;a:6:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:23:\"etemplate.db-tools.cols\";}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\";}}}','size' => '100%','style' => '',);
$templ_data[] = array('name' => 'etemplate.db-tools.cols','template' => '','lang' => '','group' => '0','version' => '0.9.13.001','data' => 'a:3:{i:0;a:2:{s:2:\"c1\";s:3:\"nmh\";s:2:\"c2\";s:3:\"nmr\";}i:1;a:12:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:1:\"#\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";}s:1:\"B\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:10:\"ColumnName\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"D\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:9:\"Precision\";}s:1:\"E\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Scale\";}s:1:\"F\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:8:\"Nullable\";}s:1:\"G\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Unique\";}s:1:\"H\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Primary Key\";}s:1:\"I\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Indexed\";}s:1:\"J\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Foreign Key\";}s:1:\"K\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Default\";}s:1:\"L\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Add Column\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:10:\"add_column\";}}i:2;a:12:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"label\";s:7:\"no_lang\";s:1:\"1\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:12:\"Row${row}[n]\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:15:\"Row${row}[name]\";s:4:\"help\";s:127:\"need to be unique in the table and no reseved word from SQL, best prefix all with a common 2-digit short for the app, eg. \'et_\'\";}s:1:\"C\";a:4:{s:4:\"type\";s:6:\"select\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:15:\"Row${row}[type]\";s:4:\"help\";s:18:\"type of the column\";}s:1:\"D\";a:4:{s:4:\"type\";s:3:\"int\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:20:\"Row${row}[precision]\";s:4:\"help\";s:64:\"length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8\";}s:1:\"E\";a:3:{s:4:\"type\";s:3:\"int\";s:4:\"name\";s:16:\"Row${row}[scale]\";s:4:\"help\";s:15:\"scale for float\";}s:1:\"F\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:19:\"Row${row}[nullable]\";s:4:\"help\";s:31:\"can have special SQL-value NULL\";}s:1:\"G\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[uc]\";s:4:\"help\";s:59:\"DB ensures that every row has a unique value in that column\";}s:1:\"H\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[pk]\";s:4:\"help\";s:52:\"Primary key for the table, gets automaticaly indexed\";}s:1:\"I\";a:4:{s:4:\"type\";s:8:\"checkbox\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[ix]\";s:4:\"help\";s:81:\"an indexed column speeds up querys using that column (cost space on the disk !!!)\";}s:1:\"J\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:13:\"Row${row}[fk]\";s:4:\"help\";s:46:\"name of other table where column is a key from\";}s:1:\"K\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:4:\"name\";s:18:\"Row${row}[default]\";s:4:\"help\";s:54:\"enter \'\' for an empty default, nothing mean no default\";}s:1:\"L\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:13:\"Delete Column\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:12:\"delete[$row]\";}}}','size' => '','style' => '',);

View File

@ -1,157 +1,166 @@
%s Disabled etemplate en %s Disabled
%s No Transl. etemplate en %s No Transl.
%s NoTranslation etemplate en %s NoTranslation
%s Readonly etemplate en %s Readonly
%s onChange etemplate en %s onChange
%s disabled etemplate en %s disabled
%s needed etemplate en %s needed
%s no transl. etemplate en %s No Transl.
%s notranslation etemplate en %s noTranslation
%s onchange etemplate en %s onChange
%s readonly etemplate en %s readonly
../../developer_tools/templates/default/images/navbar.gif etemplate en ../../developer_tools/templates/default/images/navbar.gif
Add Column etemplate en Add Column
Add Table etemplate en Add Table
Align etemplate en Align
CSS-class name for this row, preset: 'nmh' = NextMatch header, 'nmr' = alternating NM row, 'nmr0'+'nmr1' NM rows etemplate en CSS-class name for this row, preset: 'nmh' = NextMatch header, 'nmr' = alternating NM row, 'nmr0'+'nmr1' NM rows
CSS-styles etemplate en CSS-styles
Center etemplate en Center
Checkbox etemplate en Checkbox
ColumnName etemplate en ColumnName
Create a new table for the application etemplate en Create a new table for the application
DB ensures that every row has a unique value in that column etemplate en DB ensures that every row has a unique value in that column
DB-Tools etemplate en DB-Tools
Date etemplate en Date
Date Timestamp etemplate en Date Timestamp
Date m/d/Y etemplate en Date m/d/Y
Default etemplate en Default
Delete etemplate en Delete
Delete Column etemplate en Delete Column
Delete Template etemplate en Delete Template
Disabled etemplate en Disabled
Do you want to save the changes you made in table %s? etemplate en Do you want to save the changes you made in table %s?
Drop Table etemplate en Drop Table
Drop a table - this can NOT be undone etemplate en Drop a table - this can NOT be undone
Dump4Setup etemplate en Dump4Setup
Edit etemplate en Edit
Editable Templates - DB-Tools etemplate en Editable Templates - DB-Tools
Editable Templates - Delete Template etemplate en Editable Templates - Delete Template
Editable Templates - Editor etemplate en Editable Templates - Editor
Editable Templates - Show Template etemplate en Editable Templates - Show Template
Error: Template not found !!! etemplate en Error: Template not found !!!
Error: while saveing !!! etemplate en Error: while saveing !!!
Foreign Key etemplate en Foreign Key
Group/-User etemplate en Group/-User
Height etemplate en Height
Help etemplate en Help
Horizontal Rule etemplate en Horizontal Rule
Image etemplate en Image
Indexed etemplate en Indexed
Key etemplate en Key
L. after etemplate en L. after
Label etemplate en Label
Label:[b[old]][i[tylic]] Text:[len][,max] Textarea:[rows][,cols] Radiobutton:value H.Rule:[width] Template:[IndexInContent] Select:[multiselectLines] Date:[values: eg. 'Y-m-d'] etemplate en Label:[b[old]][i[tylic]] Text:[len][,max] Textarea:[rows][,cols] Radiobutton:value H.Rule:[width] Template:[IndexInContent] Select:[multiselectLines] Date:[values: eg. 'Y-m-d']
Label:[b[old]][i[tylic]] Text:[length][,maxLength] Textarea:[rows][,cols] Radiobutton:valueIfChecked HorizontalRule:[width] Template:[IndexInContent] Select:[multiselectLinesDisplayed] etemplate en Label:[b[old]][i[tylic]] Text:[length][,maxLength] Textarea:[rows][,cols] Radiobutton:valueIfChecked HorizontalRule:[width] Template:[IndexInContent] Select:[multiselectLinesDisplayed]
Lang etemplate en Lang
Language etemplate en Language
Left etemplate en Left
Name etemplate en Name
Name of table to add etemplate en Name of table to add
No etemplate en No
Nullable etemplate en Nullable
Precision etemplate en Precision
Primary Key etemplate en Primary Key
Primary key for the table, gets automaticaly indexed etemplate en Primary key for the table, gets automaticaly indexed
Radiobutton etemplate en Radiobutton
Raw etemplate en Raw
Read etemplate en Read
Readonly etemplate en Readonly
Right etemplate en Right
Save etemplate en Save
Select Access etemplate en Select Access
Select Account etemplate en Select Account
Select Cathegory etemplate en Select Cathegory
Select Country etemplate en Select Country
Select Percentage etemplate en Select Percentage
Select Priority etemplate en Select Priority
Select State etemplate en Select State
Select an application etemplate en Select an application
Select an table of the application etemplate en Select an table of the application
Selectbox etemplate en Selectbox
Show (no save) etemplate en Show (no save)
Show Values etemplate en Show Values
Size etemplate en Size
Span etemplate en Span
Span, Class etemplate en Span, Class
Submitbutton etemplate en Submitbutton
Template etemplate en Template
Template deleted etemplate en Template deleted
Template saved etemplate en Template saved
Text etemplate en Text
Textarea etemplate en Textarea
Type etemplate en Type
Unique etemplate en Unique
Value etemplate en Value
Version etemplate en Version
Width etemplate en Width
Width, Height, Border etemplate en Width, Height, Border
Width, Height, Border, class etemplate en Width, Height, Border, class
Write <app>/setup/tables_current.inc.php etemplate en Write <app>/setup/tables_current.inc.php
Write Langfile etemplate en Write Langfile
Write Tables etemplate en Write Tables
Yes etemplate en Yes
>|< etemplate en >|<
add column etemplate en Add Column
add table etemplate en Add Table
align etemplate en Align
alignment of label and input-field in table-cell etemplate en alignment of label and input-field in table-cell
an indexed column speeds up querys using that column (cost space on the disk !!!) etemplate en an indexed column speeds up querys using that column (cost space on the disk !!!)
can have sepecial SQL-value NULL etemplate en can have sepecial SQL-value NULL
application etemplate en Application
can have special sql-value null etemplate en can have special SQL-value NULL
center etemplate en Center
check if content should only be displayed but not altered (the content is not send back then!) etemplate en check if content should only be displayed but not altered (the content is not send back then!)
check if field has to be filled by user etemplate en check if field has to be filled by user
checkbox etemplate en Checkbox
class etemplate en class
creates an english ('en') langfile from label and helptexts (for application in Name) etemplate en creates an english ('en') langfile from label and helptexts (for application in Name)
delete whole column (can NOT be undone!!!) etemplate en delete whole column (can NOT be undone!!!)
deletes the above spez. eTemplate from the database, can NOT be undone etemplate en deletes the above spez. eTemplate from the database, can NOT be undone
deletes the eTemplate etemplate en deletes the eTemplate
deletes the eTemplate spez. above etemplate en deletes the eTemplate spez. above
columnname etemplate en ColumnName
create a new table for the application etemplate en Create a new table for the application
creates an english ('en') langfile from label and helptexts (for application in name) etemplate en creates an english ('en') langfile from label and helptexts (for application in Name)
css-class name for this row, preset: 'nmh' = nextmatch header, 'nmr' = alternating nm row, 'nmr0'+'nmr1' nm rows etemplate en CSS-class name for this row, preset: 'nmh' = NextMatch header, 'nmr' = alternating NM row, 'nmr0'+'nmr1' NM rows
css-styles etemplate en CSS-styles
date etemplate en Date
db ensures that every row has a unique value in that column etemplate en DB ensures that every row has a unique value in that column
db-tools etemplate en DB-Tools
default etemplate en Default
delete etemplate en Delete
delete column etemplate en Delete Column
delete template etemplate en Delete Template
delete whole column (can not be undone!!!) etemplate en delete whole column (can NOT be undone!!!)
deletes the above spez. etemplate from the database, can not be undone etemplate en deletes the above spez. eTemplate from the database, can NOT be undone
deletes the etemplate etemplate en deletes the eTemplate
deletes the etemplate spez. above etemplate en deletes the eTemplate spez. above
disabled etemplate en Disabled
discard changes etemplate en discard changes
displayed in front of input or input is inserted for a '%s' in the label (label of the Submitbutton or Image-filename) etemplate en displayed in front of input or input is inserted for a '%s' in the label (label of the Submitbutton or Image-filename)
displayed in front of input or input is inserted for a '%s' in the label (label of the Submitbutton) etemplate en displayed in front of input or input is inserted for a '%s' in the label (label of the Submitbutton)
displayed in front of input or input is inserted for a '%s' in the label (label of the submitbutton or image-filename) etemplate en displayed in front of input or input is inserted for a '%s' in the label (label of the Submitbutton or Image-filename)
displayed in statusline of browser if input-field gets focus etemplate en displayed in statusline of browser if input-field gets focus
eTemplate Editor etemplate en eTemplate Editor
edit the eTemplate spez. above etemplate en edit the eTemplate spez. above
embeded CSS styles, eg. '.red { background red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!) etemplate en embeded CSS styles, eg. '.red { background red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!)
embeded CSS styles, eg. '.red { background: red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!) etemplate en embeded CSS styles, eg. '.red { background: red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!)
enable JavaScript onChange submit etemplate en enable JavaScript onChange submit
do you want to save the changes you made in table %s? etemplate en Do you want to save the changes you made in table %s?
drop a table - this can not be undone etemplate en Drop a table - this can NOT be undone
drop table etemplate en Drop Table
dump4setup etemplate en Dump4Setup
edit etemplate en Edit
edit the etemplate spez. above etemplate en edit the eTemplate spez. above
editable templates - db-tools etemplate en Editable Templates - DB-Tools
editable templates - delete template etemplate en Editable Templates - Delete Template
editable templates - editor etemplate en Editable Templates - Editor
editable templates - show template etemplate en Editable Templates - Show Template
embeded css styles, eg. '.red { background: red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!) etemplate en embeded CSS styles, eg. '.red { background: red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!)
enable javascript onchange submit etemplate en enable JavaScript onChange submit
enter '' for an empty default, nothing mean no default etemplate en enter '' for an empty default, nothing mean no default
error: template not found !!! etemplate en Error: Template not found !!!
error: while saveing !!! etemplate en Error: while saveing !!!
etemplate editor etemplate en eTemplate Editor
exchange this two columns etemplate en exchange this two columns
exchange this two rows etemplate en exchange this two rows
floating point etemplate en Floating Point
foreign key etemplate en Foreign Key
group/-user etemplate en Group/-User
height etemplate en Height
height of row (in percent or pixel) etemplate en height of row (in percent or pixel)
help etemplate en Help
horizontal rule etemplate en Horizontal Rule
if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell etemplate en if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell
index/name of returned content (name of the Template) etemplate en index/name of returned content (name of the Template)
index/name of returned content (name of the Template, Link / Method for Image) etemplate en index/name of returned content (name of the Template, Link / Method for Image)
image etemplate en Image
import etemplate en Import
import table-definitions from existing db-table etemplate en Import table-definitions from existing db-table
index/name of returned content (name of the template, link / method for image) etemplate en index/name of returned content (name of the Template, Link / Method for Image)
indexed etemplate en Indexed
insert new column behind this one etemplate en insert new column behind this one
insert new column in front of all etemplate en insert new column in front of all
insert new row after this one etemplate en insert new row after this one
insert new row in front of first Line etemplate en insert new row in front of first Line
insert new row in front of first line etemplate en insert new row in front of first Line
integer etemplate en Integer
key etemplate en Key
l. after etemplate en L. after
label etemplate en Label
label:[b[old]][i[tylic]] text:[len][,max] textarea:[rows][,cols] radiobutton:value h.rule:[width] template:[indexincontent] select:[multiselectlines] date:[values: eg. 'y-m-d'] etemplate en Label:[b[old]][i[tylic]] Text:[len][,max] Textarea:[rows][,cols] Radiobutton:value H.Rule:[width] Template:[IndexInContent] Select:[multiselectLines] Date:[values: eg. 'Y-m-d']
label:[b[old]][i[tylic]] text:[length][,maxlength] textarea:[rows][,cols] radiobutton:valueifchecked horizontalrule:[width] template:[indexincontent] select:[multiselectlinesdisplayed] etemplate en Label:[b[old]][i[tylic]] Text:[length][,maxLength] Textarea:[rows][,cols] Radiobutton:valueIfChecked HorizontalRule:[width] Template:[IndexInContent] Select:[multiselectLinesDisplayed]
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'] etemplate en 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']
lang etemplate en Lang
language etemplate en Language
language-short (eg. 'en' for english) for language-dependent template ('' reads your pref. languages or the default, us 'default to read the default template '') etemplate en language-short (eg. 'en' for english) for language-dependent template ('' reads your pref. languages or the default, us 'default to read the default template '')
language-short (eg. 'en' for english) for language-dependent template ('' reads your pref. languages or the default, us 'default' to read the default template '') etemplate en language-short (eg. 'en' for english) for language-dependent template ('' reads your pref. languages or the default, us 'default' to read the default template '')
left etemplate en Left
length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8 etemplate en length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8
name etemplate en Name
name of other table where column is a key from etemplate en name of other table where column is a key from
name of phpgw-template set (e.g. verdilak): '' = default (will read pref. template, us 'default' to read default template '') etemplate en name of phpgw-template set (e.g. verdilak): '' = default (will read pref. template, us 'default' to read default template '')
name of the eTemplate, should be in form application.function[.subTemplate] etemplate en name of the eTemplate, should be in form application.function[.subTemplate]
need to be unique in the table and no reseved word from SQL, best prefix all with a common 2-digit short for the app, eg. 'et_' etemplate en need to be unique in the table and no reseved word from SQL, best prefix all with a common 2-digit short for the app, eg. 'et_'
name of table to add etemplate en Name of table to add
name of the etemplate, should be in form application.function[.subtemplate] etemplate en name of the eTemplate, should be in form application.function[.subTemplate]
need to be unique in the table and no reseved word from sql, best prefix all with a common 2-digit short for the app, eg. 'et_' etemplate en need to be unique in the table and no reseved word from SQL, best prefix all with a common 2-digit short for the app, eg. 'et_'
no etemplate en No
nullable etemplate en Nullable
number of colums the field/cell should span or 'all' for the remaining columns etemplate en number of colums the field/cell should span or 'all' for the remaining columns
number of colums the field/cell should span or 'all' for the remaining columns, CSS-class name (for the TD tag) etemplate en number of colums the field/cell should span or 'all' for the remaining columns, CSS-class name (for the TD tag)
read eTemplate from database (for the keys above) etemplate en read eTemplate from database (for the keys above)
number of colums the field/cell should span or 'all' for the remaining columns, css-class name (for the td tag) etemplate en number of colums the field/cell should span or 'all' for the remaining columns, CSS-class name (for the TD tag)
only an other version found !!! etemplate en only an other Version found !!!
precision etemplate en Precision
primary key etemplate en Primary Key
primary key for the table, gets automaticaly indexed etemplate en Primary key for the table, gets automaticaly indexed
radiobutton etemplate en Radiobutton
raw etemplate en Raw
read etemplate en Read
read etemplate from database (for the keys above) etemplate en read eTemplate from database (for the keys above)
read template from database (for the keys above) etemplate en read template from database (for the keys above)
remove Row (can NOT be undone!!!) etemplate en remove Row (can NOT be undone!!!)
returns savely, WITHOUT deleting etemplate en returns savely, WITHOUT deleting
save the eTemplate under the above keys (name, ...), change them for a SaveAs etemplate en save the eTemplate under the above keys (name, ...), change them for a SaveAs
save the template under the above keys (name, ...), change them for a SaveAs etemplate en save the template under the above keys (name, ...), change them for a SaveAs
readonly etemplate en Readonly
remove row (can not be undone!!!) etemplate en remove Row (can NOT be undone!!!)
returns savely, without deleting etemplate en returns savely, WITHOUT deleting
right etemplate en Right
save etemplate en Save
save the etemplate under the above keys (name, ...), change them for a saveas etemplate en save the eTemplate under the above keys (name, ...), change them for a SaveAs
save the template under the above keys (name, ...), change them for a saveas etemplate en save the template under the above keys (name, ...), change them for a SaveAs
saves changes to tables_current.inc.php etemplate en saves changes to tables_current.inc.php
scale etemplate en Scale
scale for float etemplate en scale for float
select access etemplate en Select Access
select account etemplate en Select Account
select an application etemplate en Select an application
select an table of the application etemplate en Select an table of the application
select cathegory etemplate en Select Cathegory
select country etemplate en Select Country
select if content of field should not be translated (label gets always translated) etemplate en select if content of field should not be translated (label gets always translated)
select if content should only be displayed but not altered (the content is not send back then!) etemplate en select if content should only be displayed but not altered (the content is not send back then!)
select if label and other content (depending on fieldtype) should not be translated etemplate en select if label and other content (depending on fieldtype) should not be translated
shows / allows you to enter values into the eTemplate for testing etemplate en shows / allows you to enter values into the eTemplate for testing
shows/displays eTemplate for testing, does NOT save it before etemplate en shows/displays eTemplate for testing, does NOT save it before
shows/displays the template for testing, does NOT save it before etemplate en shows/displays the template for testing, does NOT save it before
select percentage etemplate en Select Percentage
select priority etemplate en Select Priority
select state etemplate en Select State
selectbox etemplate en Selectbox
show (no save) etemplate en Show (no save)
show values etemplate en Show Values
shows / allows you to enter values into the etemplate for testing etemplate en shows / allows you to enter values into the eTemplate for testing
shows/displays etemplate for testing, does not save it before etemplate en shows/displays eTemplate for testing, does NOT save it before
shows/displays the template for testing, does not save it before etemplate en shows/displays the template for testing, does NOT save it before
size etemplate en Size
span etemplate en Span
span, class etemplate en Span, Class
submitbutton etemplate en Submitbutton
tablename etemplate en TableName
template etemplate en Template
template deleted etemplate en Template deleted
template saved etemplate en Template saved
test.gif etemplate en test.gif
to start the DB-Tools etemplate en to start the DB-Tools
to start the eTemplate editor etemplate en to start the eTemplate editor
text etemplate en Text
textarea etemplate en Textarea
to start the db-tools etemplate en to start the DB-Tools
to start the etemplate editor etemplate en to start the eTemplate editor
type etemplate en Type
type of the column etemplate en type of the column
type of the field (select Label if field should be empty) etemplate en type of the field (select Label if field should be empty)
value is key for an other table etemplate en value is key for an other table
type of the field (select label if field should be empty) etemplate en type of the field (select Label if field should be empty)
unique etemplate en Unique
value etemplate en Value
version etemplate en Version
version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros) etemplate en version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros)
width etemplate en Width
width of column (in percent or pixel) etemplate en width of column (in percent or pixel)
width, height and border-line-thickness of the table / template etemplate en width, height and border-line-thickness of the table / template
width, height, border-line-thickness of the table / template and CSS-class name (for TABLE tag) etemplate en width, height, border-line-thickness of the table / template and CSS-class name (for TABLE tag)
writes a 'etemplates.inc.php' file (for application in Name) in the setup-dir of the app etemplate en writes a 'etemplates.inc.php' file (for application in Name) in the setup-dir of the app
width, height, border etemplate en Width, Height, Border
width, height, border, class etemplate en Width, Height, Border, class
width, height, border-line-thickness of the table / template and css-class name (for table tag) etemplate en width, height, border-line-thickness of the table / template and CSS-class name (for TABLE tag)
write <app>/setup/tables_current.inc.php etemplate en Write <app>/setup/tables_current.inc.php
write langfile etemplate en Write Langfile
write tables etemplate en Write Tables
writes a 'etemplates.inc.php' file (for application in name) in the setup-dir of the app etemplate en writes a 'etemplates.inc.php' file (for application in Name) in the setup-dir of the app
yes etemplate en Yes