lots of fixes and additions:

- load_via works now in boetemplate::read
- included templates are relative to the includeing tpl, if they contain no '.'
- xul_io is alway writing the comple/absolute name
- HBox gets width=100% if alignment other then left set (new!)
- added links as 2. option to label
- added header function to uietemplate
This commit is contained in:
Ralf Becker 2002-10-14 00:39:47 +00:00
parent 23edad505e
commit e7048b5fb5
13 changed files with 504 additions and 244 deletions

View File

@ -43,7 +43,7 @@
'html' => 'Html', // Raw html in $content[$cell['name']]
'file' => 'FileUpload', // show an input type='file', set the local name as ${name}_path
'vbox' => 'VBox', // a (vertical) box to contain widgets in rows, size = # of rows
'hbox' => 'HBox' // a (horizontal) box to contain widgets in cols, size = # of cols
'hbox' => 'HBox' // a (horizontal) box to contain widgets in cols, size = # of cols
);
/*!
@function boetemplate
@ -106,6 +106,10 @@
*/
function expand_name($name,$c,$row,$c_='',$row_='',$cont='')
{
if (strstr($name,'$') === False)
{
return $name;
}
if (!$cont)
{
$cont = array();
@ -564,10 +568,22 @@
*/
function read($name,$template='default',$lang='default',$group=0,$version='',$load_via='')
{
if (is_array($name) && empty($name['name']) || empty($name))
if (is_array($name)) {
$pname = &$name['name'];
}
else
{
$pname = &$name;
}
if (empty($pname))
{
return False;
}
$parent = is_array($load_via) ? $load_via['name'] : $load_via;
if (strstr($pname,'.') === False && !empty($parent))
{
$pname = $parent . '.' . $pname;
}
if (!$this->read_from_cache($name,$template,$lang,$group,$version))
{
if (!soetemplate::read($name,$template,$lang,$group,$version))

View File

@ -165,21 +165,6 @@
case 'vbox':
case 'hbox':
$cell['cell_tpl'] = '.vbox';
if ($cell['size'] < 2)
{
$cell['size'] = 2;
}
for ($n = 1; $n <= $cell['size']; ++$n) // create new rows
{
if (!isset($cell[$n]) || !is_array($cell[$n]))
{
$cell[$n] = $this->etemplate->empty_cell();
}
}
while (isset($cell[$n])) // unset not longer used rows
{
unset($cell[$n++]);
}
break;
}
$content[$col.$row] = $cell;
@ -251,7 +236,30 @@
$row = 1; $col = 0;
while (isset($content[$name = $this->etemplate->num2chrs($col) . $row]))
{
$row_data[$this->etemplate->num2chrs($col++)] = $content[$name];
$cell = &$content[$name];
switch ($cell['type'])
{
case 'vbox':
case 'hbox':
if ($cell['size'] < 2)
{
$cell['size'] = 2;
}
for ($n = 1; $n <= $cell['size']; ++$n) // create new rows
{
if (!isset($cell[$n]) || !is_array($cell[$n]))
{
$cell[$n] = $this->etemplate->empty_cell();
}
}
while (isset($cell[$n])) // unset not longer used rows
{
unset($cell[$n++]);
}
break;
}
$row_data[$this->etemplate->num2chrs($col++)] = $cell;
if (!isset($content[$name = $this->etemplate->num2chrs($col) . $row])) // try new row
{
if ($col > $cols)

View File

@ -173,6 +173,7 @@ class html
$vars = implode('&',$v);
}
list($url,$v) = explode('?',$url); // url may contain additional vars
if ($url == '') $url = '/index.php';
if ($v)
$vars .= ($vars ? '&' : '') . $v;
@ -274,7 +275,12 @@ class html
{
if (!strstr($url,'/') && count(explode('.',$url)) == 3)
$url = "/index.php?menuaction=$url";
if (is_array($url))
{
$vars = $url;
$url = '/index.php';
}
return '<a href="'.$this->link($url,$vars).'" '.$options.'>'.$content.'</a>';
}

View File

@ -707,7 +707,10 @@
$solangfile = CreateObject('developer_tools.solangfile');
$langarr = $solangfile->load_app($app,$lang);
if (!is_array($langarr))
{
$langarr = array();
}
$to_trans = $this->getToTranslateApp($app);
if (is_array($additional))
{
@ -721,13 +724,12 @@
unset($to_trans['']);
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]))
{
if (isset($langarr[$content])) // caused by not lowercased-message_id's
{
unset($langarr[$content]);
}
$langarr[$message_id] = array(
'message_id' => $message_id,
'app_name' => $app,

View File

@ -58,6 +58,20 @@
$this->stable = $a <= 0 && $b <= 9 && $c <= 14;
}
/*!
@function header
@abstract Abstracts a html-header call
@discussion In other UI's than html this needs to call the methode, defined by menuaction or
@discussion open a browser-window for any other links.
*/
function header($vars='')
{
Header('Location: ' . $this->html->link(is_array($vars) ? '/index.php' : $vars,
is_array($vars) ? $vars : ''));
$GLOBALS['phpgw']->common->phpgw_exit();
}
/*!
@function exec
@abstract Generats a Dialog from an eTemplate - abstract the UI-layer
@ -204,7 +218,7 @@
}
$result = count($vals) == 1 ? $val != '' : $val == $check_val;
if ($not) $result = !$result;
echo "<p>check_disabled: '".($not?'!':'')."$disabled' = '$val' ".(count($vals) == 1 ? '' : ($not?'!':'=')."= '$check_val'")." = ".($result?'True':'False')."</p>\n";
//echo "<p>check_disabled: '".($not?'!':'')."$disabled' = '$val' ".(count($vals) == 1 ? '' : ($not?'!':'=')."= '$check_val'")." = ".($result?'True':'False')."</p>\n";
return $result;
}
@ -339,6 +353,10 @@
$row_data[".$col"] .= $this->html->formatOptions($cell['align'],'ALIGN');
list(,$cl) = explode(',',$cell['span']);
$cl = isset($this->class_conf[$cl]) ? $this->class_conf[$cl] : $cl;
if (strstr($cl,'$') !== False)
{
$cl = $this->expand_name($cl,$c,$r,'','',$content);
}
$row_data[".$col"] .= $this->html->formatOptions($cl,'CLASS');
}
$rows[$row] = $row_data;
@ -449,15 +467,17 @@
list($type,$sub_type) = explode('-',$cell['type']);
switch ($type)
{
case 'label': // size: [[b]old][[i]talic]
case 'label': // size: [[b]old][[i]talic][,link]
if (is_array($value))
break;
list($style,$extra_link) = explode(',',$cell['size']);
$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($style,'b')) $value = $this->html->bold($value);
if ($value != '' && strstr($style,'i')) $value = $this->html->italic($value);
$html .= $value;
break;
case 'html':
$extra_link = $cell['size'];
$html .= $value;
break;
case 'int': // size: [min][,[max][,len]]
@ -663,7 +683,8 @@
$image = $value != '' ? $value : $name;
$image = $this->html->image(substr($this->name,0,strpos($this->name,'.')),
$image,strlen($label) > 1 && !$cell['no_lang'] ? lang($label) : $label,'BORDER="0"');
$html .= $cell['size'] == '' ? $image : $this->html->a_href($image,$cell['size']);
$html .= $image;
$extra_link = $cell['size'];
$extra_label = False;
break;
case 'file':
@ -703,7 +724,10 @@
}
if ($box_anz > 1) // a single cell is NOT placed into a table
{
$html = "\n\n<!-- BEGIN $cell[type] -->\n\n".$this->html->table($rows)."\n\n<!-- END $cell[type] -->\n\n";
$html = "\n\n<!-- BEGIN $cell[type] -->\n\n".
$this->html->table($rows,$this->html->formatOptions($cell['size'],',CELLPADDING,CELLSPACING').
($cell['align'] ? ' WIDTH="100%"' : '')). // alignment only works if table has full width
"\n\n<!-- END $cell[type] -->\n\n";
}
break;
default:
@ -742,6 +766,14 @@
$html = '&nbsp;';
}
}
if ($extra_link)
{
if ($extra_link[0] == '@')
{
$extra_link = $this->get_array($content,substr($extra_link,1));
}
return $this->html->a_href($html,$extra_link,'',$help != '' ? 'TITLE="'.lang($help).'"' : '');
}
return $html;
}

View File

@ -121,22 +121,13 @@
}
}
function cell2widget($cell,&$spanned,$etempl,&$root,$embeded_too=True)
function cell2widget($cell,&$spanned,$etempl,&$root,&$embeded_too)
{
$type = $cell['type'];
if (is_array($type))
{
list(,$type) = each($type);
}
if ($type == 'template' && $cell['name'][0] != '@' && $embeded_too)
{
$embeded = new etemplate();
if ($embeded->read($embeded->expand_name($cell['name'],0,0),'default','default',0,'',$etempl->as_array()))
{
$this->etempl2grid($embeded,&$root,$embeded_too);
}
unset($embeded);
}
if (substr($type,0,6) == 'select')
{
$type = $cell['size'] > 1 ? 'select-multi' : 'select';
@ -168,7 +159,11 @@
{
case 'nextmatch':
$embeded = new etemplate($cell['size'],$etempl->as_array());
$this->etempl2grid($embeded,&$root,$embeded_too);
if ($embeded_too)
{
$this->etempl2grid($embeded,&$root,$embeded_too);
}
$cell['size'] = $embeded->name;
unset($embeded);
break;
case 'tabbox':
@ -183,7 +178,10 @@
$child->add_node($tab);
$embeded = new etemplate($names[$n],$etempl->as_array());
$this->etempl2grid($embeded,&$root,$embeded_too);
if ($embeded_too)
{
$this->etempl2grid($embeded,&$root,$embeded_too);
}
$grid = new xmlnode('grid');
$grid->set_attribute('id',$embeded->name);
$child2->add_node($grid);
@ -205,12 +203,26 @@
break;
case 'vbox':
case 'hbox':
for ($n = 1; $n <= $cell['size']; ++$n)
list($anz,$options) = split(',',$cell['size'],2);
for ($n = 1; $n <= $anz; ++$n)
{
$widget->add_node($this->cell2widget($cell[$n],$no_span,$etempl,$root,$embeded_too));
unset($cell[$n]);
}
unset($cell['size']);
$cell['size'] = $options;
break;
case 'grid':
if ($cell['name'][0] != '@' && $embeded_too)
{
$embeded = new etemplate();
if ($embeded->read($name=$embeded->expand_name($cell['name'],0,0),'default','default',0,'',$etempl->as_array()))
{
$this->etempl2grid($embeded,&$root,$embeded_too);
}
$cell['name'] = $embeded->name;
unset($embeded);
}
break;
}
while (list($attr,$val) = each($cell))
@ -240,8 +252,21 @@
return $widget;
}
function etempl2grid($etempl,&$root,$embeded_too=True)
function etempl2grid($etempl,&$root,&$embeded_too)
{
if (is_array($embeded_too))
{
if (isset($embeded_too[$etempl->name]))
{
return; // allready embeded
}
}
else
{
$embeded_too = array();
}
$embeded_too[$etempl->name] = True;
$xul_grid = new xmlnode('grid');
$xul_grid->set_attribute('id',$etempl->name);
$xul_grid->set_attribute('template',$etempl->template);
@ -304,7 +329,8 @@
$xul_overlay = new xmlnode('overlay');
$this->etempl2grid($etempl,&$xul_overlay);
$embeded_too = True;
$this->etempl2grid($etempl,&$xul_overlay,$embeded_too);
$doc->add_root($xul_overlay);
$xml = $doc->export_xml();
@ -337,7 +363,7 @@
else
{
$pcell = &$box[$node_level-1];
$pcell[++$pcell['size']] = $cell;
$pcell[++$pcell['anz']] = $cell;
}
}
@ -506,7 +532,10 @@
}
else
{
$this->add_cell($etempl,$box[$node['level']],&$box,&$col,$node['level']);
$cell = &$box[$node['level']];
$cell['size'] = $cell['anz'] . ($cell['size'] != '' ? ','.$cell['size'] : '');
unset($cell['anz']);
$this->add_cell($etempl,$cell,&$box,&$col,$node['level']);
unset($box[$node['level']]);
}
break;

View File

@ -1,13 +1,17 @@
<?php
// eTemplates for Application 'etemplate', generated by etemplate.dump() 2002-10-12 17:26
// eTemplates for Application 'etemplate', generated by etemplate.dump() 2002-10-14 02:46
/* $Id$ */
$templ_data[] = array('name' => 'etemplate.editor.buttons','template' => '','lang' => '','group' => '0','version' => '0.9.13.004','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:\"20\";s:5:\"label\";s:46:\"Width, Height, Border, class, Spacing, Padding\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:93:\"width, height, border-line-thickness, CSS-class name, Celspacing, Cellpadding (for TABLE tag)\";}}}','size' => '','style' => '','modified' => '1034517479',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:5:{i:0;a:1:{s:1:\"A\";s:3:\"250\";}i:1;a:2:{s:1:\"A\";a:4:{s:4:\"type\";s:4:\"text\";s:5:\"label\";s:7:\"Surname\";s:4:\"name\";s:7:\"surname\";s:4:\"help\";s:7:\"Surname\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:5:\"label\";s:10:\"Familyname\";s:4:\"name\";s:10:\"familyname\";s:4:\"help\";s:10:\"Familyname\";}}i:2;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:3:\"tab\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:16:\"Privat|Work|Note\";s:4:\"name\";s:16:\"privat|work|note\";s:4:\"help\";s:42:\"privat address|work address|free note-text\";}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:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Save\";s:4:\"name\";s:4:\"save\";s:4:\"help\";s:12:\"Save changes\";}s:1:\"B\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Cancel\";s:4:\"name\";s:6:\"cancel\";s:4:\"help\";s:26:\"Cancel, discarding changes\";}}}','size' => '','style' => '','modified' => '1033814007',);
$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:\"50%\";s:1:\"D\";s:3:\"40%\";}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:14:\"Width, Disable\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:12:\"width[$col_]\";s:4:\"help\";s:122:\"width of col (in % or pixel), disable col: [! = not]<value>[=<check>] eg: \'!@data\' disable col if content of data is empty\";}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' => '','modified' => '1034241893',);
$templ_data[] = array('name' => 'etemplate.editor.col_header','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:2:{i:0;a:4:{s:1:\"A\";s:2:\"5%\";s:1:\"B\";s:2:\"5%\";s:1:\"C\";s:3:\"50%\";s:1:\"D\";s:3:\"40%\";}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:15:\"Width, Disabled\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:12:\"width[$col_]\";s:4:\"help\";s:122:\"width of col (in % or pixel), disable col: [! = not]<value>[=<check>] eg: \'!@data\' disable col if content of data is empty\";}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' => '','modified' => '1034242288',);
$templ_data[] = array('name' => 'etemplate.editor.col_header','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:2:{i:0;a:4:{s:1:\"A\";s:2:\"5%\";s:1:\"B\";s:2:\"5%\";s:1:\"C\";s:3:\"50%\";s:1:\"D\";s:3:\"40%\";}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:\"8\";s:5:\"label\";s:15:\"Width, Disabled\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:12:\"width[$col_]\";s:4:\"help\";s:122:\"width of col (in % or pixel), disable col: [! = not]<value>[=<check>] eg: \'!@data\' disable col if content of data is empty\";}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' => '','modified' => '1034540589',);
$templ_data[] = array('name' => 'etemplate.editor.buttons','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:2:{i:0;a:0:{}i:1;a:11:{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:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Export XML\";s:4:\"name\";s:10:\"export_xml\";s:4:\"help\";s:43:\"export the loaded eTemplate into a xml-file\";}s:1:\"J\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"K\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:5:\"label\";s:46:\"Width, Height, Border, class, Spacing, Padding\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:93:\"width, height, border-line-thickness, CSS-class name, Celspacing, Cellpadding (for TABLE tag)\";}}}','size' => '','style' => '','modified' => '1034517530',);
$templ_data[] = array('name' => 'etemplate.editor.row_header','template' => '','lang' => '','group' => '0','version' => '0.9.15.003','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:34:\"etemplate.editor.row_header.button\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:16:\"Height, Disabled\";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:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:14:\"height[h$row_]\";s:4:\"help\";s:123:\"height of row (in % or pixel), disable row: [! = not]<value>[=<check>] eg: \'!@data\' disable row if content of data is empty\";}}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:13:\"class, Valign\";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:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:5:\"align\";s:6:\"center\";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' => '','modified' => '1034242259',);
@ -95,8 +99,6 @@ $templ_data[] = array('name' => 'etemplate.datefield','template' => '','lang' =>
$templ_data[] = array('name' => 'etemplate.datefield','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:2:{i:0;a:0:{}i:1;a:5:{s:1:\"A\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,,6\";s:4:\"name\";s:2:\"f1\";s:4:\"help\";s:5:\"@help\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"name\";s:3:\"sep\";}s:1:\"C\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,,6\";s:4:\"name\";s:2:\"f2\";s:4:\"help\";s:5:\"@help\";}s:1:\"D\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"name\";s:3:\"sep\";}s:1:\"E\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,,6\";s:4:\"name\";s:2:\"f3\";s:4:\"help\";s:5:\"@help\";}}}','size' => ',,,,0','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.editor.buttons','template' => '','lang' => '','group' => '0','version' => '0.9.13.004','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:\"20\";s:5:\"label\";s:46:\"Width, Height, Border, class, Spacing, Padding\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:96:\"width, height, border-line-thickness, CSS-class name, Celspaceing, Cellpadding (for TABLE tag), \";}}}','size' => '','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.privat','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:6:{i:0;a:6:{s:1:\"A\";s:3:\"100\";s:2:\"c1\";s:3:\"nmr\";s:2:\"c2\";s:3:\"nmr\";s:2:\"c3\";s:3:\"nmr\";s:2:\"c4\";s:3:\"nmr\";s:2:\"c5\";s:3:\"nmr\";}i:1;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Street\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"40\";s:4:\"name\";s:5:\"p_str\";s:4:\"help\";s:6:\"Street\";}}i:2;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"8\";s:5:\"label\";s:4:\"city\";s:4:\"name\";s:5:\"p_zip\";s:4:\"help\";s:8:\"ZIP Code\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"40\";s:4:\"name\";s:6:\"p_city\";s:4:\"help\";s:4:\"City\";}}i:3;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Telefon\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:9:\"p_telefon\";s:4:\"help\";s:13:\"Telefonnumber\";}}i:4;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:3:\"Fax\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:5:\"p_fax\";s:4:\"help\";s:9:\"Faxnumber\";}}i:5;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:8:\"Birthday\";}s:1:\"B\";a:4:{s:4:\"type\";s:9:\"datefield\";s:4:\"size\";s:5:\"Y-m-d\";s:4:\"name\";s:8:\"geb_date\";s:4:\"help\";s:7:\"Birtday\";}}}','size' => '100%','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.work','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:7:{i:0;a:7:{s:1:\"A\";s:3:\"100\";s:2:\"c1\";s:3:\"nmr\";s:2:\"c2\";s:3:\"nmr\";s:2:\"c3\";s:3:\"nmr\";s:2:\"c4\";s:3:\"nmr\";s:2:\"c5\";s:3:\"nmr\";s:2:\"c6\";s:3:\"nmr\";}i:1;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Companyname\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"40\";s:4:\"name\";s:7:\"company\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:6:\"Street\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"40\";s:4:\"name\";s:5:\"w_str\";s:4:\"help\";s:6:\"Street\";}}i:3;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"8\";s:5:\"label\";s:4:\"city\";s:4:\"name\";s:5:\"w_zip\";s:4:\"help\";s:8:\"ZIP Code\";}s:1:\"B\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"40\";s:4:\"name\";s:6:\"w_city\";s:4:\"help\";s:4:\"City\";}}i:4;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Telefon\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:9:\"w_telefon\";s:4:\"help\";s:13:\"Telefonnumber\";}}i:5;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:3:\"Fax\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:5:\"w_fax\";s:4:\"help\";s:9:\"Faxnumber\";}}i:6;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Founded\";}s:1:\"B\";a:4:{s:4:\"type\";s:9:\"datefield\";s:4:\"size\";s:5:\"Y-m-d\";s:4:\"name\";s:7:\"founded\";s:4:\"help\";s:28:\"when was the company founded\";}}}','size' => '100%','style' => '','modified' => '1032907904',);
@ -109,8 +111,6 @@ $templ_data[] = array('name' => 'etemplate.editor.list_result','template' => '',
$templ_data[] = array('name' => 'etemplate.editor.list_result.list','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:3:{i:0;a:2:{s:2:\"c1\";s:3:\"nmh\";s:2:\"c2\";s:3:\"nmr\";}i:1;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Name\";}s:1:\"B\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:8:\"Template\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Lang\";}s:1:\"D\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Version\";s:5:\"align\";s:6:\"center\";}s:1:\"E\";a:6:{s:4:\"type\";s:6:\"button\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:6:\"Search\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:6:\"search\";s:4:\"help\";s:38:\"start new search for the above pattern\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}i:2;a:6:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:15:\"${row}[et_name]\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:19:\"${row}[et_template]\";}s:1:\"C\";a:3:{s:4:\"type\";s:5:\"label\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:15:\"${row}[et_lang]\";}s:1:\"D\";a:3:{s:4:\"type\";s:5:\"label\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:18:\"${row}[et_version]\";}s:1:\"E\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Edit\";s:4:\"name\";s:10:\"read[$row]\";s:4:\"help\";s:34:\"load this template into the editor\";}s:1:\"F\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Delete\";s:4:\"name\";s:12:\"delete[$row]\";s:4:\"help\";s:21:\"delete this eTemplate\";}}}','size' => '','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.editor.buttons','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:2:{i:0;a:0:{}i:1;a:11:{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:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Export XML\";s:4:\"name\";s:10:\"export_xml\";s:4:\"help\";s:43:\"export the loaded eTemplate into a xml-file\";}s:1:\"J\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"K\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"20\";s:5:\"label\";s:46:\"Width, Height, Border, class, Spacing, Padding\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:96:\"width, height, border-line-thickness, CSS-class name, Celspaceing, Cellpadding (for TABLE tag), \";}}}','size' => '','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.editor.buttons','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:2:{i:0;a:0:{}i:1;a:11:{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:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Export XML\";s:4:\"name\";s:10:\"export_xml\";s:4:\"help\";s:43:\"export the loaded eTemplate into a xml-file\";}s:1:\"J\";a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Import XML\";s:4:\"name\";s:10:\"import_xml\";s:4:\"help\";s:35:\"import an eTemplate from a xml-file\";}s:1:\"K\";a:3:{s:4:\"type\";s:4:\"file\";s:4:\"name\";s:4:\"file\";s:4:\"help\";s:18:\"xml-file to import\";}}}','size' => '','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:9:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:8:\"DB-Tools\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:8:\"db_tools\";s:4:\"help\";s:21:\"to start the DB-Tools\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:29:\"etemplate.editor.edit-buttons\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:46:\"Width, Height, Border, class, Spacing, Padding\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:94:\"width, height, border-line-thickness, CSS-class name, Celspaceing, Cellpadding (for TABLE tag)\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:7;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:10:\"CSS-styles\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:8;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:8:\"textarea\";s:4:\"size\";s:5:\"10,80\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:5:\"style\";s:4:\"help\";s:155:\"embeded CSS styles, eg. \'.red { background: red; }\' (note the \'.\' before the class-name) or \'@import url(...)\' (class names are global for the whole page!)\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%','style' => '','modified' => '1032907904',);
@ -185,13 +185,19 @@ $templ_data[] = array('name' => 'etemplate.link_widget.search','template' => '',
$templ_data[] = array('name' => 'etemplate.editor.row_header','template' => '','lang' => '','group' => '0','version' => '0.9.15.004','data' => 'a:5:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:4:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"2\";i:1;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\";}i:2;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:36:\"exchange this row with the one above\";}}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:16:\"Height, Disabled\";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:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:14:\"height[h$row_]\";s:4:\"help\";s:123:\"height of row (in % or pixel), disable row: [! = not]<value>[=<check>] eg: \'!@data\' disable row if content of data is empty\";}}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:13:\"class, Valign\";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:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"6\";s:5:\"align\";s:6:\"center\";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' => '','modified' => '1034428465',);
$templ_data[] = array('name' => 'etemplate.date-test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:2:{i:0;a:0:{}i:1;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:4:\"date\";s:4:\"size\";s:7:\"Y-m-d,1\";s:4:\"name\";s:4:\"date\";}}}','size' => '','style' => '','modified' => '1034459028',);
$templ_data[] = array('name' => 'etemplate.editor.cell.vbox','template' => '','lang' => '','group' => '0','version' => '0.9.15.003','data' => 'a:3:{i:0;a:1:{s:2:\"c1\";s:2:\"th\";}i:1;a:1:{s:1:\"A\";a:10:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"8\";i:1;a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}i:2;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)\";}i:3;a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Cells\";s:5:\"align\";s:6:\"center\";}i:4;a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"5\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:57:\"number of rows/cols in a V/HBox, Cellpadding, Cellspacing\";}i:5;a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}i:6;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:7;a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Align\";}i:8;a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:5:\"align\";s:4:\"help\";s:45:\"Alignment of the V/HBox containing table-cell\";}}}i:2;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:4:\"$row\";s:4:\"name\";s:21:\"etemplate.editor.cell\";}}}','size' => ',100%,1','style' => '','modified' => '1034515604',);
$templ_data[] = array('name' => 'etemplate.editor.cell.vbox','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:3:{i:0;a:1:{s:2:\"c1\";s:2:\"th\";}i:1;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:4:\"type\";s:4:\"help\";s:57:\"type of the field (select Label if field should be empty)\";}s:1:\"C\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Options\";s:5:\"align\";s:6:\"center\";}s:1:\"D\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:187:\"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"span\";s:4:\"help\";s:111:\"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)\";}}i:2;a:6:{s:1:\"A\";a:4:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:4:\"$row\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.cell\";}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%,1','style' => '','modified' => '1034414740',);
$templ_data[] = array('name' => 'etemplate.editor.edit','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:3:{i:0;a:1:{s:2:\"c1\";s:2:\"th\";}i:1;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"image\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:10:\"navbar.gif\";}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:3:\",th\";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:44:\"etemplate.editor.cell$col_row_cont[cell_tpl]\";}}}','size' => ',,1,editorEdit','style' => '.editorEdit { border-color: black }','modified' => '1034432936',);
$templ_data[] = array('name' => 'etemplate.vbox.test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:3:{i:0;a:2:{s:2:\"c1\";s:7:\"row,top\";s:2:\"c2\";s:3:\"row\";}i:1;a:3:{s:1:\"A\";a:5:{s:4:\"type\";s:4:\"vbox\";s:4:\"size\";s:1:\"2\";s:4:\"span\";s:4:\"2,th\";i:1;a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Hallo\";}i:2;a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Ralf\";}}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:2:\"C1\";}}i:2;a:3:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:2:\"A2\";}s:1:\"B\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:2:\"B2\";}s:1:\"C\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:2:\"C2\";}}}','size' => ',,1','style' => '','modified' => '1034420647',);
$templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:5:{i:0;a:4:{s:2:\"c1\";s:3:\"row\";s:2:\"c2\";s:3:\"row\";s:2:\"c3\";s:3:\"row\";s:2:\"c4\";s:3:\"row\";}i:1;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:4:\"type\";s:4:\"help\";s:57:\"type of the field (select Label if field should be empty)\";}s:1:\"C\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Options\";s:5:\"align\";s:6:\"center\";}s:1:\"D\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:187:\"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"span\";s:4:\"help\";s:111:\"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)\";}}i:2;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Label\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:5:\"label\";s:4:\"help\";s:118:\"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)\";}s:1:\"C\";a:6:{s:4:\"type\";s:8:\"checkbox\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:16:\"%s NoTranslation\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:7:\"no_lang\";s:4:\"help\";s:82:\"select if content of field should not be translated (label gets always translated)\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Align\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:5:\"align\";s:4:\"help\";s:48:\"alignment of label and input-field in table-cell\";}}i:3;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Name\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:4:\"name\";s:4:\"help\";s:78:\"index/name of returned content (name of the Template, Link / Method for Image)\";}s:1:\"C\";a:7:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"4\";s:4:\"span\";s:1:\"4\";i:1;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:9:\"%s needed\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:6:\"needed\";s:4:\"help\";s:39:\"check if field has to be filled by user\";}i:2;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:11:\"%s readonly\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:8:\"readonly\";s:4:\"help\";s:94:\"check if content should only be displayed but not altered (the content is not send back then!)\";}i:3;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:11:\"%s disabled\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:8:\"disabled\";s:4:\"help\";s:96:\"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell\";}i:4;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:11:\"%s onChange\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:8:\"onchange\";s:4:\"help\";s:33:\"enable JavaScript onChange submit\";}}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Help\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"50\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:4:\"help\";s:4:\"help\";s:60:\"displayed in statusline of browser if input-field gets focus\";}s:1:\"C\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => ',100%','style' => '','modified' => '1034432902',);
$templ_data[] = array('name' => 'etemplate.editor.cell','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:5:{i:0;a:4:{s:2:\"c1\";s:3:\"row\";s:2:\"c2\";s:3:\"row\";s:2:\"c3\";s:3:\"row\";s:2:\"c4\";s:3:\"row\";}i:1;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}s:1:\"B\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:4:\"type\";s:4:\"help\";s:57:\"type of the field (select Label if field should be empty)\";}s:1:\"C\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:7:\"Options\";s:5:\"align\";s:6:\"center\";}s:1:\"D\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:187:\"Label:[bold][italic] Text:[len][,max] Numbers:[min][,[max][,len]] T.area:[rows][,cols] Radiob.:value H.Rule:[width] Templ.:[IndexInContent] Select:[multiselect] Date:[values: eg. \'Y-m-d\']\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"10\";s:4:\"name\";s:4:\"span\";s:4:\"help\";s:111:\"number of colums the field/cell should span or \'all\' for the remaining columns, CSS-class name (for the TD tag)\";}}i:2;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Label\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:5:\"label\";s:4:\"help\";s:118:\"displayed in front of input or input is inserted for a \'%s\' in the label (label of the Submitbutton or Image-filename)\";}s:1:\"C\";a:6:{s:4:\"type\";s:8:\"checkbox\";s:4:\"span\";s:1:\"2\";s:5:\"label\";s:16:\"%s NoTranslation\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:7:\"no_lang\";s:4:\"help\";s:82:\"select if content of field should not be translated (label gets always translated)\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Align\";s:5:\"align\";s:6:\"center\";}s:1:\"F\";a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:5:\"align\";s:4:\"help\";s:48:\"alignment of label and input-field in table-cell\";}}i:3;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Name\";}s:1:\"B\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:4:\"name\";s:4:\"help\";s:78:\"index/name of returned content (name of the Template, Link / Method for Image)\";}s:1:\"C\";a:7:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"4\";s:4:\"span\";s:1:\"4\";i:1;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:9:\"%s needed\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:6:\"needed\";s:4:\"help\";s:39:\"check if field has to be filled by user\";}i:2;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:11:\"%s readonly\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:8:\"readonly\";s:4:\"help\";s:94:\"check if content should only be displayed but not altered (the content is not send back then!)\";}i:3;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:11:\"%s disabled\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:8:\"disabled\";s:4:\"help\";s:96:\"if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell\";}i:4;a:5:{s:4:\"type\";s:8:\"checkbox\";s:5:\"label\";s:11:\"%s onChange\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:8:\"onchange\";s:4:\"help\";s:33:\"enable JavaScript onChange submit\";}}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:6:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Help\";}s:1:\"B\";a:5:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:2:\"50\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:4:\"help\";s:4:\"help\";s:60:\"displayed in statusline of browser if input-field gets focus\";}s:1:\"C\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"D\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"E\";a:1:{s:4:\"type\";s:5:\"label\";}s:1:\"F\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => ',100%','style' => '','modified' => '1034540913',);
$templ_data[] = array('name' => 'etemplate.editor.cell.vbox','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:3:{i:0;a:1:{s:2:\"c1\";s:2:\"th\";}i:1;a:1:{s:1:\"A\";a:10:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"6\";i:1;a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:4:\"Type\";}i:2;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)\";}i:3;a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Cells\";s:5:\"align\";s:6:\"center\";}i:4;a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:1:\"3\";s:4:\"name\";s:4:\"size\";s:4:\"help\";s:42:\"number of rows in a VBox or cols in a HBox\";}i:5;a:3:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:11:\"Span, Class\";s:5:\"align\";s:6:\"center\";}i:6;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:7;a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Align\";}i:8;a:3:{s:4:\"type\";s:6:\"select\";s:4:\"name\";s:5:\"align\";s:4:\"help\";s:43:\"horizontal alignment of cells in the V/HBox\";}}}i:2;a:1:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:4:\"$row\";s:4:\"name\";s:21:\"etemplate.editor.cell\";}}}','size' => ',100%,1','style' => '','modified' => '1034432196',);
$templ_data[] = array('name' => 'etemplate.editor','template' => '','lang' => '','group' => '0','version' => '0.9.15.004','data' => 'a:9:{i:0;a:0:{}i:1;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:2:\"bi\";s:5:\"label\";s:27:\"Editable Templates - Editor\";s:7:\"no_lang\";s:1:\"1\";s:4:\"name\";s:3:\"msg\";}s:1:\"B\";a:5:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:8:\"DB-Tools\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:8:\"db_tools\";s:4:\"help\";s:21:\"to start the DB-Tools\";}}i:2;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"hrule\";s:4:\"span\";s:3:\"all\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:3;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.keys\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:4;a:2:{s:1:\"A\";a:12:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"9\";s:4:\"span\";s:3:\"all\";i:1;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Read\";s:4:\"name\";s:4:\"read\";s:4:\"help\";s:49:\"read eTemplate from database (for the keys above)\";}i:2;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s: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\";}i:3;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Save\";s:4:\"name\";s:4:\"save\";s:4:\"help\";s:77:\"save the eTemplate under the above keys (name, ...), change them for a SaveAs\";}i:4;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Delete\";s:4:\"name\";s:6:\"delete\";s:4:\"help\";s:33:\"deletes the eTemplate spez. above\";}i:5;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Dump4Setup\";s:4:\"name\";s:4:\"dump\";s:4:\"help\";s:88:\"writes a \'etemplates.inc.php\' file (for application in Name) in the setup-dir of the app\";}i:6;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:14:\"Write Langfile\";s:4:\"name\";s:8:\"langfile\";s:4:\"help\";s:85:\"creates an english (\'en\') langfile from label and helptexts (for application in Name)\";}i:7;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Export XML\";s:4:\"name\";s:10:\"export_xml\";s:4:\"help\";s:43:\"export the loaded eTemplate into a xml-file\";}i:8;a:4:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:10:\"Import XML\";s:4:\"name\";s:10:\"import_xml\";s:4:\"help\";s:35:\"import an eTemplate from a xml-file\";}i:9;a:3:{s:4:\"type\";s:4:\"file\";s:4:\"name\";s:4:\"file\";s:4:\"help\";s:18:\"xml-file to import\";}}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:5;a:2:{s:1:\"A\";a:4:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:7:\"options\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:24:\"etemplate.editor.options\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:6;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:8:\"template\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:21:\"etemplate.editor.edit\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:7;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"span\";s:3:\"all\";s:5:\"label\";s:10:\"CSS-styles\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}i:8;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:8:\"textarea\";s:4:\"size\";s:5:\"10,80\";s:4:\"span\";s:3:\"all\";s:4:\"name\";s:5:\"style\";s:4:\"help\";s:155:\"embeded CSS styles, eg. \'.red { background: red; }\' (note the \'.\' before the class-name) or \'@import url(...)\' (class names are global for the whole page!)\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%,100%','style' => '','modified' => '1034436796',);

View File

@ -12,9 +12,11 @@ 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
alignment of the v/hbox containing table-cell etemplate en Alignment of the V/HBox containing 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 !!!)
application etemplate en Application
application name needed to write a langfile !!! etemplate en Application name needed to write a langfile !!!
array etemplate en Array
border etemplate en Border
border-line-thickness for the table-tag etemplate en Border-line-thickness for the table-tag
can have special sql-value null etemplate en can have special SQL-value NULL
@ -37,7 +39,6 @@ creates an english ('en') langfile from label and helptexts (for application in
css class for the table-tag etemplate en CSS class for the table-tag
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
datefield etemplate en DateField
day etemplate en Day
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
@ -148,6 +149,7 @@ 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)
number of rows in a vbox or cols in a hbox etemplate en number of rows in a VBox or cols in a HBox
number of rows/cols in a v/hbox, cellpadding, cellspacing etemplate en number of rows/cols in a V/HBox, Cellpadding, Cellspacing
of etemplate en of
only an other version found !!! etemplate en only an other Version found !!!
optional note about the link etemplate en optional note about the Link
@ -239,7 +241,7 @@ width, height, border, class, cellspacing, cellpadding etemplate en Width, Heigh
width, height, border, class, spacing, padding etemplate en Width, Height, Border, class, Spacing, Padding
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)
width, height, border-line-thickness, css-class name, celspaceing, cellpadding (for table tag) etemplate en width, height, border-line-thickness, CSS-class name, Celspaceing, Cellpadding (for TABLE tag)
width, height, border-line-thickness, css-class name, celspaceing, cellpadding (for table tag), etemplate en width, height, border-line-thickness, CSS-class name, Celspaceing, Cellpadding (for TABLE tag),
width, height, border-line-thickness, css-class name, celspacing, cellpadding (for table tag) etemplate en width, height, border-line-thickness, CSS-class name, Celspacing, Cellpadding (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

View File

@ -34,7 +34,7 @@
<description value="Name"/>
<textbox id="name" statustext="index/name of returned content (name of the Template, Link / Method for Image)"/>
<hbox span="4">
<checkbox label="%s needed" align="right" id="needed" statustext="check if field has to be filled by user"/>
<checkbox label="%s needed" align="center" id="needed" statustext="check if field has to be filled by user"/>
<checkbox label="%s readonly" align="center" id="readonly" statustext="check if content should only be displayed but not altered (the content is not send back then!)"/>
<checkbox label="%s disabled" align="center" id="disabled" statustext="if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell"/>
<checkbox label="%s onChange" align="center" id="onchange" statustext="enable JavaScript onChange submit"/>
@ -46,7 +46,7 @@
</row>
</rows>
</grid>
<grid id="etemplate.editor.cell.vbox" template="" lang="" group="" version="0.9.15.002" height="100%" border="1">
<grid id="etemplate.editor.cell.vbox" template="" lang="" group="" version="0.9.15.003" height="100%" border="1">
<columns>
<column/>
</columns>
@ -58,9 +58,13 @@
<menupopup id="type" statustext="type of the field (select Label if field should be empty)"/>
</menulist>
<description value="Cells" align="center"/>
<textbox size="3" id="size" statustext="number of rows in a VBox or cols in a HBox"/>
<textbox size="5" id="size" statustext="number of rows/cols in a V/HBox, Cellpadding, Cellspacing"/>
<description value="Span, Class" align="center"/>
<textbox size="10" id="span" statustext="number of colums the field/cell should span or 'all' for the remaining columns, CSS-class name (for the TD tag)"/>
<description value="Align"/>
<menulist>
<menupopup id="align" statustext="Alignment of the V/HBox containing table-cell"/>
</menulist>
</hbox>
</row>
<row>

View File

@ -17,7 +17,7 @@
</row>
</rows>
</grid>
<grid id="etemplate.editor.options" template="" lang="" group="0" version="0.9.15.001">
<grid id="etemplate.editor.edit-buttons" template="" lang="" group="0" version="0.9.15.002">
<columns>
<column/>
<column/>
@ -26,18 +26,20 @@
<column/>
<column/>
<column/>
<column/>
<column/>
</columns>
<rows>
<row>
<textbox size="8" label="Width" id="width" statustext="Width of the table in % or pixels for the table-tag and (optional) div"/>
<textbox size="8" label="Height" id="height" statustext="Height of the table in % or pixels for the table-tag and (optional) div"/>
<menulist>
<menupopup label="Overflow" no_lang="1" id="overflow" statustext="what happens with overflowing content: visible (default), hidden, scroll, auto (browser decides)"/>
</menulist>
<int label="Border" id="border" statustext="Border-line-thickness for the table-tag"/>
<textbox size="12" label="Class" id="class" statustext="CSS class for the table-tag"/>
<int label="Spacing" id="spacing" statustext="Cellspacing for the table-tag"/>
<int label="Padding" id="padding" statustext="Cellpadding for the table-tag"/>
<button label="Read" id="read" statustext="read eTemplate from database (for the keys above)"/>
<button label="Show (no save)" id="show" statustext="shows/displays eTemplate for testing, does NOT save it before"/>
<button label="Save" id="save" statustext="save the eTemplate under the above keys (name, ...), change them for a SaveAs"/>
<button label="Delete" id="delete" statustext="deletes the eTemplate spez. above"/>
<button label="Dump4Setup" id="dump" statustext="writes a 'etemplates.inc.php' file (for application in Name) in the setup-dir of the app"/>
<button label="Write Langfile" id="langfile" statustext="creates an english ('en') langfile from label and helptexts (for application in Name)"/>
<button label="Export XML" id="export_xml" statustext="export the loaded eTemplate into a xml-file"/>
<button label="Import XML" id="import_xml" statustext="import an eTemplate from a xml-file"/>
<file id="file" statustext="xml-file to import"/>
</row>
</rows>
</grid>
@ -55,7 +57,7 @@
<button label="+" no_lang="1" id="insert_col[0]" statustext="insert new column in front of all"/>
<button label="&gt;|&lt;" no_lang="1" id="exchange_col[$c_]" statustext="exchange this two columns"/>
<description options="b" no_lang="1" align="center" id=".col"/>
<textbox size="5" label="Width, Disabled" align="right" id="width[$col_]" statustext="width of col (in % or pixel), disable col: [! = not]&lt;value&gt;[=&lt;check&gt;] eg: '!@data' disable col if content of data is empty"/>
<textbox size="8" label="Width, Disabled" align="right" id="width[$col_]" statustext="width of col (in % or pixel), disable col: [! = not]&lt;value&gt;[=&lt;check&gt;] eg: '!@data' disable col if content of data is empty"/>
<button label="-" no_lang="1" align="right" id="delete_col[$c_]" statustext="delete whole column (can NOT be undone!!!)"/>
<button label="+" no_lang="1" align="right" id="insert_col[$c_]" statustext="insert new column behind this one"/>
</row>
@ -121,7 +123,7 @@
<description value="Name"/>
<textbox id="name" statustext="index/name of returned content (name of the Template, Link / Method for Image)"/>
<hbox span="4">
<checkbox label="%s needed" align="right" id="needed" statustext="check if field has to be filled by user"/>
<checkbox label="%s needed" align="center" id="needed" statustext="check if field has to be filled by user"/>
<checkbox label="%s readonly" align="center" id="readonly" statustext="check if content should only be displayed but not altered (the content is not send back then!)"/>
<checkbox label="%s disabled" align="center" id="disabled" statustext="if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell"/>
<checkbox label="%s onChange" align="center" id="onchange" statustext="enable JavaScript onChange submit"/>
@ -145,14 +147,14 @@
</row>
<row>
<grid content="Row$row," class="th" id="etemplate.editor.row_header"/>
<grid content="$col$row" id="etemplate.editor.cell$col_row_cont[cell_tpl]"/>
<grid content="$col$row" id="etemplate.editor.cell"/>
</row>
</rows>
<styles>
.editorEdit { border-color: black }
</styles>
</grid>
<grid id="etemplate.editor" template="" lang="" group="" version="0.9.15.004" width="100%" height="100%">
<grid id="etemplate.editor" template="" lang="" group="" version="0.9.15.002" width="100%">
<columns>
<column/>
<column/>
@ -169,20 +171,10 @@
<grid span="all" id="etemplate.editor.keys"/>
</row>
<row>
<hbox span="all">
<button label="Read" id="read" statustext="read eTemplate from database (for the keys above)"/>
<button label="Show (no save)" id="show" statustext="shows/displays eTemplate for testing, does NOT save it before"/>
<button label="Save" id="save" statustext="save the eTemplate under the above keys (name, ...), change them for a SaveAs"/>
<button label="Delete" id="delete" statustext="deletes the eTemplate spez. above"/>
<button label="Dump4Setup" id="dump" statustext="writes a 'etemplates.inc.php' file (for application in Name) in the setup-dir of the app"/>
<button label="Write Langfile" id="langfile" statustext="creates an english ('en') langfile from label and helptexts (for application in Name)"/>
<button label="Export XML" id="export_xml" statustext="export the loaded eTemplate into a xml-file"/>
<button label="Import XML" id="import_xml" statustext="import an eTemplate from a xml-file"/>
<file id="file" statustext="xml-file to import"/>
</hbox>
<grid span="all" id="etemplate.editor.edit-buttons"/>
</row>
<row>
<grid content="options" span="all" id="etemplate.editor.options"/>
<textbox span="all" label="Width, Height, Border, class, Spacing, Padding" id="size" statustext="width, height, border-line-thickness, CSS-class name, Celspaceing, Cellpadding (for TABLE tag)"/>
</row>
<row>
<grid span="all" id="etemplate.editor.edit"/>

View File

@ -26,6 +26,7 @@
'readAddr' => True,
'anzSubs' => True,
'readIdArray' => True,
'get_rows' => True,
'accountInfo' => True, // in class boinfolog (this class)
'addr2name' => True,
'attach_file' => True,
@ -229,7 +230,7 @@
function read($info_id)
{
$this->so->read($info_id);
$err = $this->so->read($info_id) === False;
if ($this->so->data['info_subject'] ==
(substr($this->so->data['info_des'],0,60).' ...'))
@ -241,7 +242,7 @@
{
$this->so->data['info_from'] = '';
}
return $this->so->data;
return $err ? False : $this->so->data;
}
function delete($info_id)

View File

@ -265,28 +265,40 @@
{
//echo "<p>soinfolog.readIdArray(action='$action',action_id='$action_id')</p>\n";
$action2app = array(
'addr' => 'addressbook',
'proj' => 'projects',
'event' => 'calendar'
'addr' => 'addressbook',
'addressbook' => 'addressbook',
'proj' => 'projects',
'projects' => 'projects',
'event' => 'calendar',
'calendar' => 'calendar'
);
if ($action != '' && $action2app[$action] != '')
if ($action != '' && isset($action2app[$action]))
{
$links = $this->links->get_links($action2app[$action],$action_id);
$ids = array();
while (list($nul,$link) = each($links))
$total = count($links);
if ($start > $total)
{
$ids[''.$link['id']] = 0;
$start = 0;
}
$ids = array();
while (list($n,$link) = each($links) &&
$n < $start+$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'])
{
if ($n >= $start)
{
$ids[''.$link['id']] = 0;
}
}
//echo "<p>soinfolog.readIdArray($action,$action_id) ids ="; _debug_array($ids);
return $ids;
}
if ($order)
{
$ordermethod = 'order by ' . $order . ' ' . $sort;
$ordermethod = 'ORDER BY ' . $order . ' ' . $sort;
}
else
{
$ordermethod = 'order by info_datemodified desc'; // newest first
$ordermethod = 'ORDER BY info_datemodified DESC'; // newest first
}
$filtermethod = $this->aclFilter($filter);
$filtermethod .= $this->statusFilter($filter);
@ -297,6 +309,7 @@
{
$filtermethod .= " AND info_cat='$cat_id' ";
}
/* not longer used
switch ($action)
{
case 'addr': $filtermethod .= " AND info_addr_id=$action_id ";
@ -306,10 +319,11 @@
case 'event': $filtermethod .= " AND info_event_id=$action_id ";
break;
}
*/
if ($query) // we search in _from, _subject and _des for $query
{
$sql_query = "AND (info_from like '%$query%' OR info_subject ".
"like '%$query%' OR info_des like '%$query%') ";
"LIKE '%$query%' OR info_des LIKE '%$query%') ";
}
$pid = 'AND info_id_parent='.($action == 'sp' ? $action_id : 0);
@ -327,8 +341,8 @@
{
$start = 0;
}
$this->db->limit_query("SELECT info_id,info_id_parent FROM phpgw_infolog WHERE $filtermethod $pid $sql_query $ordermethod",$start,__LINE__,__FILE__);
$this->db->limit_query($sql="SELECT info_id,info_id_parent FROM phpgw_infolog WHERE $filtermethod $pid $sql_query $ordermethod",$start,__LINE__,__FILE__);
$ids = array( );
while ($this->db->next_record())
{

View File

@ -17,14 +17,15 @@
{
var $public_functions = array
(
'get_list' => True,
//'get_list' => True,
'index' => True,
'edit' => True,
'delete' => True,
'get_file' => True,
'add_file' => True,
'admin' => True,
'preferences' => True
'preferences' => True,
'writeLangFile' => True
);
var $icons;
@ -71,14 +72,292 @@
$this->messages = array(
'edit' => 'InfoLog - Edit',
'add' => 'InfoLog - New',
'add_sub' => 'InfoLog - New Subproject'
'add_sub' => 'InfoLog - New Subproject',
'sp' => '- Subprojects from',
're' => 'Re:'
);
$this->html = CreateObject('etemplate.html');
$this->categories = CreateObject('phpgwapi.categories');
$this->nextmatchs = CreateObject('phpgwapi.nextmatchs');
//$this->html = CreateObject('etemplate.html');
//$this->categories = CreateObject('phpgwapi.categories');
//$this->nextmatchs = CreateObject('phpgwapi.nextmatchs');
$this->link = CreateObject('infolog.uilink');
$this->tmpl = CreateObject('etemplate.etemplate');
$this->html = &$this->tmpl->html;
}
function get_info($id,&$readonlys,$action='',$action_id='')
{
$info = $this->bo->read($id);
$info['anzSubs'] = $this->bo->anzSubs($id);
$info += $this->formatInfo($info,$action,$action_id);
$readonlys["edit[$id]"] = !$this->bo->check_access($id,PHPGW_ACL_EDIT);
$readonlys["delete[$id]"] = !$this->bo->check_access($id,PHPGW_ACL_DELETE);
$readonlys["sp[$id]"] = !$this->bo->check_access($id,PHPGW_ACL_ADD);
$readonlys["view[$id]"] = $info['anzSubs'] < 1;
$readonlys['view[0]'] = True; // no parent
return $info;
}
function get_rows($query,&$rows,&$readonlys)
{
//echo "<p>uiinfolog.get_rows(start=$query[start],search='$query[search]',filter='$query[filter]',cat_id=$query[cat_id],action='$query[action]/$query[action_id]')</p>\n";
$ids = $this->bo->readIdArray($query['order'],$query['sort'],$query['filter'],$query['cat_id'],
$query['search'],$query['action'],$query['action_id'],$query['ordermethod'],
$query['start'],$total);
if (!is_array($ids))
{
$ids = array( );
}
$rows = array( $total );
$readonlys = array();
while (list($id,$parent) = each($ids))
{
$rows[] = $this->get_info($id,$readonlys,$query['action'],$query['action_id']);
}
//echo "<p>readonlys = "; _debug_array($readonlys);
reset($rows);
return $total;
}
function delete($values=0,$referer='')
{
$info_id = is_array($values) ? $values['info_id'] : $values;
$referer = is_array($values) ? $values['referer'] : $referer;
if (is_array($values) || $info_id <= 0)
{
if ($values['delete'] && $info_id > 0 && $this->bo->check_access($info_id,PHPGW_ACL_DELETE))
{
$this->bo->delete($info_id);
}
return $referer ? $this->tmpl->header($referer) : $this->index();
}
$readonlys = $values = array();
$values['main'][1] = $this->get_info($info_id,&$readonlys['main']);
$this->tmpl->read('infolog.delete');
$values['main']['no_actions'] = True;
$persist['info_id'] = $info_id;
$persist['referer'] = $referer;
$this->tmpl->exec('infolog.uiinfolog.delete',$values,'',$readonlys,$persist);
}
function index($values = 0,$action='',$action_id='',$referer=0)
{
$referer = is_array($values) ? $values['referer'] : $referer;
if (!is_array($values))
{
$values = array('nm' => $GLOBALS['phpgw']->session->appsession('session_data','infolog'));
}
$action = $action ? $action : $values['nm']['action'];
$action_id = $action_id ? $action_id : $values['nm']['action_id'];
if ($values['add'] || $values['cancel'] || isset($values['nm']['rows']) || isset($values['main']))
{
$data = $values['nm'];
unset($data['rows']);
$GLOBALS['phpgw']->session->appsession('session_data','infolog',$data);
if ($values['add'])
{
list($type) = each($values['add']);
return $this->edit(0,$values['nm']['action'],$values['nm']['action_id'],$type,$referer);
}
else
{
list($action,$action_id) = isset($values['main']) ? each($values['main']) : @each($values['nm']['rows']);
list($action_id) = @each($action_id);
//echo "<p>infolog::index: action='$action', id='$action_id'</p>\n";
switch($action)
{
case 'edit':
return $this->edit($action_id,'','','',$referer);
case 'delete':
return $this->delete($action_id,$referer);
case 'sp':
return $this->edit(0,$action,$action_id,'',$referer);
case 'view':
$value = array();
$action = 'sp';
break;
default:
$value = array();
$action = '';
$action_id = 0;
break;
}
}
}
switch ($action)
{
case 'sp':
if (!$this->bo->read($action_id))
{
$action = '';
$action_id = 0;
break;
}
$values['main'][1] = $this->get_info($action_id,&$readonlys['main']);
$values['appheader'] = $this->messages['sp'];
break;
}
$readonlys['cancel'] = $action != 'sp';
$this->tmpl->read('infolog.index');
$values['nm']['options-filter'] = $this->filters;
$values['nm']['get_rows'] = 'infolog.uiinfolog.get_rows';
$values['nm']['no_filter2'] = True;
$persist['nm']['action'] = $values['nm']['action'] = $action;
$persist['nm']['action_id'] = $values['nm']['action_id'] = $action_id;
$persist['referer'] = $referer;
$GLOBALS['phpgw']->session->appsession('session_data','infolog',$values['nm']);
$this->tmpl->exec('infolog.uiinfolog.index',$values,'',$readonlys,$persist);
}
/*!
@function edit
@syntax edit( $content=0,$action='',$action_id=0,$type='' )
@author ralfbecker
@abstract Edit/Create an InfoLog Entry
@param $content Content from the eTemplate Exec call or info_id on inital call
@param $action Name of an app of 'sp' for a infolog-sub
@param $action_id Id of app-entry to which a link is created
@param $type Type of log-entry: note,todo,task
*/
function edit($content = 0,$action = '',$action_id=0,$type='',$referer='')
{
$referer = is_array($content) ? $content['referer'] : $referer;
if (is_array($values) || $info_id < 0)
{
if ($values['delete'] && $info_id > 0 && $this->bo->check_access($info_id,PHPGW_ACL_DELETE))
{
$this->bo->delete($info_id);
}
return $referer ? $this->tmpl->header($referer) : $this->index();
}
if (is_array($content))
{
$info_id = $content['info_id'];
$action = $content['action'];
$action_id = $content['action_id'];
if ($content['save'] || $content['delete'] || $content['cancel'])
{
if ($content['save'] && (!$info_id || $this->bo->check_access($info_id,PHPGW_ACL_EDIT)))
{
$this->bo->write($content);
if (!$info_id && is_array($content['link_to']['to_id']))
{
$this->link->link('infolog',$this->bo->so->data['info_id'],$content['link_to']['to_id']);
}
}
elseif ($content['delete'] && $info_id > 0)
{
return $this->delete($info_id,$referer); // checks ACL first
}
return $referer ? $this->tmpl->header($referer) : $this->index();
}
}
else
{
//echo "<p>uiinfolog::edit: info_id=$info_id, action='$action', action_id='$action_id', type='$type', referer='$referer'</p>\n";
$action = $action ? $action : get_var('action', array('POST','GET'));
$action_id = $action_id ? $action_id : get_var('action_id',array('POST','GET'));
$info_id = $content ? $content : get_var('info_id', array('POST','GET'));
$type = $type ? $type : get_var('type', array('POST','GET'));
$referer = ''.$referer != '' ? $referer : get_var('HTTP_REFERER','SERVER');
//echo "<p>uiinfolog::edit: info_id=$info_id, action='$action', action_id='$action_id', type='$type', referer='$referer'</p>\n";
if (!isset($this->bo->enums['type'][$type]))
{
$type = 'note';
}
$this->bo->read( $action == 'sp' && $action_id > 0 ? $action_id : $info_id );
$content = $this->bo->so->data;
if ($action_id && $action == 'sp') // new SubProject
{
if (!$this->bo->check_access($action_id,PHPGW_ACL_ADD))
{
return $referer ? $this->tmpl->header($referer) : $this->index();
}
$parent = $this->bo->so->data;
$content['info_id'] = $info_id = 0;
$content['info_owner'] = $GLOBALS['phpgw_info']['user']['account_id'];
$content['info_id_parent'] = $parent['info_id'];
/*
if ($parent['info_type']=='task' && $parent['info_status']=='offer')
{
$content['info_type'] = 'confirm'; // confirmation to parent
$content['info_responsible'] = $parent['info_owner'];
}
*/
$content['info_status'] = 'ongoing';
$content['info_confirm'] = 'not';
$content['info_subject']=lang($this->messages['re']).' '.$parent['info_subject'];
$content['info_des'] = '';
$content['info_lastmodified'] = '';
}
else
{
if ($info_id && !$this->bo->check_access($info_id,PHPGW_ACL_EDIT))
{
return $referer ? $this->tmpl->header($referer) : $this->index();
}
}
$content['links'] = $content['link_to'] = array(
'to_id' => $info_id,
'to_app' => 'infolog'
);
switch ($action)
{
case 'sp':
break;
case 'addressbook':
case 'projects':
case 'calendar':
$this->link->link('infolog',$content['link_to']['to_id'],$action,$action_id);
case 'new':
$content['info_type'] = $type;
break;
default:
$action = '';
break;
}
if (!isset($this->bo->enums['type'][$content['info_type']]))
{
$content['info_type'] = 'note';
}
}
$readonlys['delete'] = $action != '';
$content['appheader'] = $this->messages[$action ? ($action == 'sp' ? 'add_sub' : 'add') : 'edit'];
//echo "<p>uiinfolog.edit(info_id=$info_id,mode=$mode) content = "; _debug_array($content);
$this->tmpl->read('infolog.edit');
$this->tmpl->exec('infolog.uiinfolog.edit',$content,array(
'info_type' => $this->bo->enums['type'],
'info_pri' => $this->bo->enums['priority'],
'info_confirm' => $this->bo->enums['confirm'],
'info_status' => $this->bo->status[$content['info_type']]
),$readonlys,array(
'info_id' => $info_id,
'info_id_parent' => $content['info_id_parent'],
'action' => $action,
'action_id' => $action_id,
'referer' => $referer
));
}
function menuaction($action = 'get_list',$app='infolog')
@ -131,7 +410,7 @@
$css_class = $info['info_pri'].($done ? '_done' : '');
$subject = "<span class=$css_class>";
/*
if (($action_id != ($proj_id = $info['info_proj_id']) || $action != 'proj') &&
$proj = $this->bo->readProj($proj_id))
{
@ -184,7 +463,7 @@
'action_id' => $event_id
)
));
}
} */
if (($from = $info['info_from']) && (!$addr || !strstr($addr,$from)))
{
if ($addr || $event) $subject .= '<br>';
@ -232,7 +511,7 @@
{
$owner = "<span class=private>$owner</span>";
}
/*
// add the links to the files which corrospond to this entry
$attachments = $this->bo->list_attached($info['info_id']);
while (list($name,$comment) = @each($attachments))
@ -245,7 +524,7 @@
),'target=_blank');
if ($comment) $links .= ' (' . $comment . ')';
}
*/
return array(
'type' => $this->icon('type',$info['info_type']),
'status' => $this->icon('status',$info['info_status']),
@ -695,135 +974,6 @@
$GLOBALS['phpgw']->template->fp('phpgw_body','info_add_file');
}
function index()
{
$this->get_list();
}
/*!
@function edit
@syntax edit( $content=0,$action='',$action_id=0,$type='' )
@author ralfbecker
@abstract Edit/Create an InfoLog Entry
@param $content Content from the eTemplate Exec call or info_id on inital call
@param $action Name of an app of 'sp' for a infolog-sub
@param $action_id Id of app-entry to which a link is created
@param $type Type of log-entry: note,todo,task
*/
function edit($content = 0,$action = '',$action_id=0,$type='')
{
if (is_array($content))
{
$info_id = $content['info_id'];
$action = $content['action'];
$action_id = $content['action_id'];
if ($content['save'] || $content['delete'] || $content['cancel'])
{
if ($content['save'] && (!$info_id || $this->bo->check_access($info_id,PHPGW_ACL_EDIT)))
{
$this->bo->write($content);
if (!$info_id && is_array($content['link_to']['to_id']))
{
$this->link->link('infolog',$this->bo->so->data['info_id'],$content['link_to']['to_id']);
}
}
elseif ($content['delete'] && $info_id > 0 && $this->bo->check_access($info_id,PHPGW_ACL_DELETE))
{
return $this->delete($info_id);
}
return $this->index();
}
}
else
{
$action = $action ? $action : get_var('action', array('POST','GET'));
$action_id = $action_id ? $action_id : get_var('action_id',array('POST','GET'));
$info_id = $content ? $content : get_var('info_id', array('POST','GET'));
$type = $type ? $type : get_var('type', array('POST','GET'));
if (!isset($this->bo->enums['type'][$type]))
{
$type = 'note';
}
$this->bo->read( $info_id );
$content = $this->bo->so->data;
if ($info_id && $action == 'sp') // new SubProject
{
if (!$this->bo->check_access($info_id,PHPGW_ACL_ADD))
{
return $this->index();
Header('Location: ' . $this->html->link($referer));
$GLOBALS['phpgw']->common->phpgw_exit();
}
$parent = $this->bo->so->data;
$content['info_id'] = $info_id = 0;
$content['info_owner'] = $GLOBALS['phpgw_info']['user']['account_id'];
$content['info_id_parent'] = $parent['info_id'];
/*
if ($parent['info_type']=='task' && $parent['info_status']=='offer')
{
$content['info_type'] = 'confirm'; // confirmation to parent
$content['info_responsible'] = $parent['info_owner'];
}
*/
$content['info_status'] = 'ongoing';
$content['info_confirm'] = 'not';
$content['info_subject']=lang('Re:').' '.$parent['info_subject'];
$content['info_des'] = '';
$content['info_lastmodified'] = '';
}
else
{
if ($info_id && !$this->bo->check_access($info_id,PHPGW_ACL_EDIT))
{
return $this->index();
Header('Location: ' . $this->html->link($referer));
$GLOBALS['phpgw']->common->phpgw_exit();
}
}
$content['links'] = $content['link_to'] = array(
'to_id' => $info_id,
'to_app' => 'infolog'
);
switch ($action)
{
case 'sp':
break;
case 'addressbook':
case 'projects':
case 'calendar':
$this->link->link('infolog',$content['link_to']['to_id'],$action,$action_id);
case 'new':
$content['info_type'] = $type;
break;
default:
$action = '';
break;
}
if (!isset($this->bo->enums['type'][$content['info_type']]))
{
$content['info_type'] = 'note';
}
}
$readonlys['delete'] = $action != '';
$content['appheader'] = $this->messages[$action ? ($action == 'sp' ? 'add_sub' : 'add') : 'edit'];
//echo "<p>uiinfolog.edit(info_id=$info_id,mode=$mode) content = "; _debug_array($content);
$this->tmpl->read('infolog.edit');
$this->tmpl->exec('infolog.uiinfolog.edit',$content,array(
'info_type' => $this->bo->enums['type'],
'info_pri' => $this->bo->enums['priority'],
'info_confirm' => $this->bo->enums['confirm'],
'info_status' => $this->bo->status[$content['info_type']]
),$readonlys,array(
'info_id' => $info_id,
'action' => $action,
'action_id' => $action_id
));
}
function old_edit( )
{
global $action,$info_id,$save,$add,$query_addr,$query_project;
@ -1154,7 +1304,7 @@
$GLOBALS['phpgw']->template->fp('phpgw_body','info_edit');
}
function delete( $id=0 )
function old_delete( $id=0 )
{
global $info_id,$confirm,$to_del;
//echo "<p>delete(id=$id): info_id='$info_id', confirm='$confirm', to_del='$to_del'</p>\n";
@ -1361,8 +1511,6 @@
*/
function writeLangFile()
{
$il = new uiinfolog(False); // no lang on messages
$this->tmpl->writeLangFile('et_media','en',$il->messages);
$this->tmpl->writeLangFile('infolog','en',$this->messages);
}
}