mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-26 00:29:38 +01:00
big performance improvment by using references (droped php3 compatibility)
This commit is contained in:
parent
abfa5b6785
commit
ed81de3f86
@ -269,13 +269,13 @@
|
||||
$this->data[$row][$col][$attr] = $val;
|
||||
++$n;
|
||||
}
|
||||
if ($cell['type'] == 'template' && (is_object($cell['name']) || $cell['name'][0] != '@'))
|
||||
if ($cell['type'] == 'template' && (is_object($cell['obj']) || $cell['name'][0] != '@'))
|
||||
{
|
||||
if (!is_object($cell['name']))
|
||||
if (!is_object($cell['obj']))
|
||||
{
|
||||
$this->data[$row][$col]['name'] = CreateObject('etemplate.etemplate',$cell['name']);
|
||||
$this->data[$row][$col]['obj'] = CreateObject('etemplate.etemplate',$cell['name']);
|
||||
}
|
||||
$n += $this->data[$row][$col]['name']->set_cell_attribute($name,$attr,$val);
|
||||
$n += $this->data[$row][$col]['obj']->set_cell_attribute($name,$attr,$val);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -297,15 +297,15 @@
|
||||
|
||||
/*!
|
||||
@function loadExtension
|
||||
@syntax loadExtension( $name,$ui='' )
|
||||
@syntax loadExtension( $type )
|
||||
@author ralfbecker
|
||||
@abstact trys to load the Extension / Widget-class from the app or etemplate
|
||||
@param $name name of the extension, the classname should be class.${name}_widget.inc.php
|
||||
@discussion the $name might be "$name.$app" to give a app-name (default is the current app,or template-name)
|
||||
*/
|
||||
function loadExtension($name,&$parent,$ui='html')
|
||||
function loadExtension($type)
|
||||
{
|
||||
list($class,$app) = explode('.',$name);
|
||||
list($class,$app) = explode('.',$type);
|
||||
$class .= '_widget';
|
||||
|
||||
if ($app == '')
|
||||
@ -322,19 +322,71 @@
|
||||
}
|
||||
if (!file_exists(PHPGW_SERVER_ROOT."/$app/inc/class.$class.inc.php"))
|
||||
{
|
||||
return $this->extension[$name] = False;
|
||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type] = False;
|
||||
}
|
||||
$this->extension[$name] = CreateObject($app.'.'.$class,$ui);
|
||||
$GLOBALS['phpgw_info']['etemplate']['extension'][$type] = CreateObject($app.'.'.$class,$ui='html');
|
||||
|
||||
if(floor(phpversion()) >= 4)
|
||||
{
|
||||
$this->extension[$name]->et = &$parent;
|
||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->human_name;
|
||||
}
|
||||
else
|
||||
|
||||
function haveExtension($type,$function='')
|
||||
/*
|
||||
@function haveExtension
|
||||
@syntax haveExtension($type)
|
||||
@abstract checks if extension is loaded and load it if it isnt
|
||||
*/
|
||||
{
|
||||
$this->extension[$name]->et = $parent;
|
||||
return ($GLOBALS['phpgw_info']['etemplate']['extension'][$type] || $this->loadExtension($type,$ui)) &&
|
||||
($function == '' || $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->public_functions[$function]);
|
||||
}
|
||||
return $this->extension[$name];
|
||||
|
||||
function extensionPreProcess(&$cell,&$value,&$readonlys)
|
||||
/*
|
||||
@function extensionPreProcess
|
||||
@syntax extensionPreProcess(&$cell,&$value,&$readonlys)
|
||||
@param &$cell table-cell on which the extension operates
|
||||
@param &$value value of the extensions content(-array)
|
||||
@param &$readonlys value of the extensions readonly-setting(-array)
|
||||
@abstract executes the pre_process-function of the extension $cell[]type]
|
||||
*/
|
||||
{
|
||||
if (!$this->haveExtension($type = $cell['type']))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->pre_process($cell,$value,
|
||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$type][$cell['name']],$readonlys,$this);
|
||||
}
|
||||
|
||||
function extensionPostProcess(&$cell,&$value)
|
||||
/*
|
||||
@function extensionPostProcess
|
||||
@syntax extensionPostProcess(&$cell,&$value)
|
||||
@abstract executes the post_process-function of the extension $cell[type]
|
||||
*/
|
||||
{
|
||||
if (!$this->haveExtension($type = $cell['type'],'post_process'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->post_process($cell,$value,
|
||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$type][$cell['name']],
|
||||
$GLOBALS['phpgw_info']['etemplate']['loop'],$this);
|
||||
}
|
||||
|
||||
function extensionRender(&$cell,$form_name,&$value,$readonly)
|
||||
/*
|
||||
@function extensionRender
|
||||
@syntax extensionRender(&$cell,$form_name,&$value,$readonly)
|
||||
@abstract executes the render-function of the extension $cell[type]
|
||||
*/
|
||||
{
|
||||
if (!$this->haveExtension($type = $cell['type'],'render'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$name]->render($cell,$form_name,$value,$readonly,
|
||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$type][$cell['name']],$this);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -375,16 +427,16 @@
|
||||
//echo "set_array: $code = '$val'\n";
|
||||
}
|
||||
|
||||
function get_array(&$arr,$idx)
|
||||
function &get_array(&$arr,$idx)
|
||||
{
|
||||
if (ereg('^([^[]*)(\\[.*\\])$',$idx,$regs)) // idx contains array-index
|
||||
{
|
||||
eval($code = str_replace(']',"']",str_replace('[',"['",'$val = $arr['.$regs[1].']'.$regs[2].';')));
|
||||
eval($code = str_replace(']',"']",str_replace('[',"['",'$val = &$arr['.$regs[1].']'.$regs[2].';')));
|
||||
//echo "get_array: $code = '$val'\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$val = $arr[$idx];
|
||||
$val = &$arr[$idx];
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@
|
||||
);
|
||||
var $human_name = 'Date'; // this is the name for the editor
|
||||
|
||||
function date_widget($ui)
|
||||
function date_widget($ui='')
|
||||
{
|
||||
switch($ui)
|
||||
{
|
||||
@ -44,7 +44,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
function pre_process(&$cell,&$value,&$extension_data,&$readonlys)
|
||||
function pre_process(&$cell,&$value,&$extension_data,&$readonlys,&$tmpl)
|
||||
{
|
||||
if ($cell['size'] != '')
|
||||
{
|
||||
@ -67,14 +67,17 @@
|
||||
return True; // extra Label is ok
|
||||
}
|
||||
|
||||
function render($cell,$form_name,$value,$readonly)
|
||||
function render(&$cell,$form_name,&$value,$readonly,&$extension_data,&$tmpl)
|
||||
{
|
||||
$func = 'render_'.$this->ui;
|
||||
|
||||
return $this->$func($cell,$form_name,$value,$readonly);
|
||||
if (!method_exists($this,$func))
|
||||
return False;
|
||||
|
||||
return $this->$func($cell,$form_name,$value,$readonly,$tmpl);
|
||||
}
|
||||
|
||||
function post_process(&$cell,&$value,&$extension_data,&$loop)
|
||||
function post_process(&$cell,&$value,&$extension_data,&$loop,&$tmpl)
|
||||
{
|
||||
if (!isset($value))
|
||||
{
|
||||
@ -117,12 +120,12 @@
|
||||
return True;
|
||||
}
|
||||
|
||||
function render_html($cell,$form_name,$value,$readonly)
|
||||
function render_html($cell,$form_name,$value,$readonly,&$tmpl)
|
||||
{
|
||||
if ($readonly)
|
||||
{
|
||||
return $GLOBALS['phpgw']->common->dateformatorder($value[0],$value[1],$value[2],True);
|
||||
}
|
||||
return $this->et->sbox->getDate($form_name.'[Y]',$form_name.'[m]',$form_name.'[d]',$value,$options);
|
||||
return $tmpl->sbox->getDate($form_name.'[Y]',$form_name.'[m]',$form_name.'[d]',$value,$options);
|
||||
}
|
||||
}
|
@ -30,7 +30,7 @@
|
||||
{
|
||||
}
|
||||
|
||||
function pre_process(&$cell,&$value,&$extension_data,&$readonlys)
|
||||
function pre_process(&$cell,&$value,&$extension_data,&$readonlys,&$tmpl)
|
||||
{
|
||||
if ($cell['size'] != '')
|
||||
{
|
||||
@ -69,7 +69,7 @@
|
||||
return True; // extra Label is ok
|
||||
}
|
||||
|
||||
function post_process(&$cell,&$value,&$extension_data,&$loop)
|
||||
function post_process(&$cell,&$value,&$extension_data,&$loop,&$tmpl)
|
||||
{
|
||||
if (!isset($value))
|
||||
{
|
||||
|
@ -592,6 +592,7 @@
|
||||
|
||||
function show($post_vars='')
|
||||
{
|
||||
echo "this->etemplate->data = "; _debug_array($this->etemplate->data);
|
||||
if ($this->debug)
|
||||
{
|
||||
echo "<p>etemplate.editor.show: content="; _debug_array($post_vars);
|
||||
@ -641,7 +642,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$show->data[$show->rows]['A']['name'] = $this->etemplate;
|
||||
$show->data[$show->rows]['A']['obj'] = &$this->etemplate;
|
||||
$vals = $post_vars['vals'];
|
||||
$olds = $post_vars['olds'];
|
||||
|
||||
@ -673,7 +674,7 @@
|
||||
if (ereg('class\\.([a-zA-Z0-9_]*)_widget.inc.php',$file,$regs) &&
|
||||
($ext = $this->etemplate->loadExtension($regs[1].'.'.$app,$this->etemplate)))
|
||||
{
|
||||
$extensions[$regs[1]] = $ext->human_name;
|
||||
$extensions[$regs[1]] = $ext;
|
||||
}
|
||||
}
|
||||
return $extensions;
|
||||
|
@ -25,7 +25,7 @@
|
||||
'pre_process' => True,
|
||||
'post_process' => True
|
||||
);
|
||||
var $human_name = 'Nextmatch Widget'; // this is the name for the editor
|
||||
var $human_name = 'Nextmatch'; // this is the name for the editor
|
||||
|
||||
function nextmatch_widget($ui)
|
||||
{
|
||||
@ -42,7 +42,7 @@
|
||||
$total = $value['total'] = $obj->$method($value,$value['rows'],$readonlys['rows']);
|
||||
if ($value['start'] > $total)
|
||||
{
|
||||
$value['start'] = 0;
|
||||
$extension_data['start'] = $value['start'] = 0;
|
||||
$total = $obj->$method($value,$value['rows'],$readonlys['rows']);
|
||||
}
|
||||
$extension_data['total'] = $total;
|
||||
@ -54,6 +54,7 @@
|
||||
$value['template'] = new etemplate($value['template'],$tmpl->as_array());
|
||||
|
||||
$nextmatch = new etemplate('etemplate.nextmatch_widget');
|
||||
|
||||
if ($value['no_cat'])
|
||||
{
|
||||
$nextmatch->disable_cells('cat_id');
|
||||
@ -77,7 +78,8 @@
|
||||
|
||||
$cell['type'] = 'template';
|
||||
$cell['size'] = $cell['name'];
|
||||
$cell['name'] = $nextmatch;
|
||||
$cell['obj'] = &$nextmatch;
|
||||
$cell['name'] = $nextmatch->name;
|
||||
$cell['label'] = $cell['help'] = '';
|
||||
|
||||
return False; // NO extra Label
|
||||
|
@ -180,7 +180,7 @@
|
||||
$this->init($name,$template,$lang,$group,$version);
|
||||
if ($this->debug == 1 || $this->debug == $this->name)
|
||||
{
|
||||
echo "<p>soetemplate::read('$this->name','$this->template','$this->lang','$this->version')</p>\n";
|
||||
echo "<p>soetemplate::read('$this->name','$this->template','$this->lang',$this->group,'$this->version')</p>\n";
|
||||
}
|
||||
if ($GLOBALS['phpgw_info']['server']['eTemplate-source'] == 'files' && $this->readfile())
|
||||
{
|
||||
@ -438,6 +438,14 @@
|
||||
*/
|
||||
function save($name='',$template='.',$lang='.',$group='',$version='.')
|
||||
{
|
||||
if (is_array($name))
|
||||
{
|
||||
$template = $name['template'];
|
||||
$lang = $name['lang'];
|
||||
$group = $name['group'];
|
||||
$version = $name['version'];
|
||||
$name = $name['name'];
|
||||
}
|
||||
if ($name != '')
|
||||
{
|
||||
$this->name = $name;
|
||||
@ -462,6 +470,10 @@
|
||||
{
|
||||
return False;
|
||||
}
|
||||
if ($this->debug > 0 || $this->debug == $this->name)
|
||||
{
|
||||
echo "<p>soetemplate::save('$this->name','$this->template','$this->lang',$this->group,'$this->version')</p>\n";
|
||||
}
|
||||
$this->delete(); // so we have always a new insert
|
||||
|
||||
if ($this->name[0] != '.') // correct up old messed up templates
|
||||
@ -717,7 +729,7 @@
|
||||
|
||||
if ($time = @filemtime($path))
|
||||
{
|
||||
$templ = new etemplate(".$app",'','##');
|
||||
$templ = new soetemplate(".$app",'','##');
|
||||
if ($templ->lang != '##' || $templ->data[0] < $time) // need to import
|
||||
{
|
||||
$ret = $this->import_dump($app);
|
||||
|
@ -51,11 +51,13 @@
|
||||
{
|
||||
// save selected tab in persistent extension_data to use it in post_process
|
||||
$extension_data = $selected_tab = $name;
|
||||
$tcell['name'] = $tab_active;
|
||||
$tcell['obj'] = &$tab_active;
|
||||
$tcell['name'] = $tab_active->name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$tcell['name'] = $tab;
|
||||
$tcell['obj'] = &$tab;
|
||||
$tcell['name'] = $tab->name;
|
||||
}
|
||||
$tcell['type'] = 'template';
|
||||
$tcell['size'] = "_tab_widget[$name]";
|
||||
@ -73,7 +75,8 @@
|
||||
|
||||
if (!isset($selected_tab))
|
||||
{
|
||||
$tab_row['A']['name'] = $tab_active;
|
||||
$tab_row['A']['obj'] = &$tab_active;
|
||||
$tcell['name'] = $tab_active->name;
|
||||
$extension_data = $selected_tab = $names[0];
|
||||
}
|
||||
$tabs->data[1] = $tab_row;
|
||||
@ -82,12 +85,14 @@
|
||||
$tabs->size = ',,,,0';
|
||||
|
||||
$tab_widget = new etemplate('etemplate.tab_widget');
|
||||
$tab_widget->set_cell_attribute('@tabs','name',$tabs);
|
||||
$tab_widget->set_cell_attribute('@body','name',
|
||||
$tmpl->tpls_in_file > 1 ? new etemplate($selected_tab,$tmpl->as_array()) : $selected_tab);
|
||||
$tab_widget->set_cell_attribute('@tabs','obj',$tabs);
|
||||
if ($tmpl->tpls_in_file > 1)
|
||||
$tab_widget->set_cell_attribute('@body','obj',new etemplate($selected_tab,$tmpl->as_array()));
|
||||
else
|
||||
$tab_widget->set_cell_attribute('@body','name',$selected_tab);
|
||||
|
||||
$cell['type'] = 'template';
|
||||
$cell['name'] = $tab_widget;
|
||||
$cell['obj'] = &$tab_widget;
|
||||
$cell['label'] = $cell['help'] = '';
|
||||
|
||||
return False; // NO extra Label
|
||||
|
@ -33,7 +33,6 @@
|
||||
var $debug; // 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
|
||||
var $html,$sbox; // instance of html / sbox2-class
|
||||
var $loop = 0; // set by process_show if an other Exec-ProcessExec loop is needed
|
||||
|
||||
/*!
|
||||
@function etemplate
|
||||
@ -215,7 +214,7 @@
|
||||
reset($this->data);
|
||||
if (isset($this->data[0]))
|
||||
{
|
||||
list($nul,$width) = each($this->data);
|
||||
list(,$width) = each($this->data);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -223,11 +222,8 @@
|
||||
}
|
||||
for ($r = 0; $row = 1+$r /*list($row,$cols) = each($this->data)*/; ++$r)
|
||||
{
|
||||
$old_cols = $cols; $old_class = $class; $old_height = $height;
|
||||
if (!(list($nul,$cols) = each($this->data))) // no further row
|
||||
if (!(list($r_key) = each($this->data))) // no further row
|
||||
{
|
||||
$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($content,$idx))
|
||||
@ -237,22 +233,26 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$height = $this->data[0]["h$row"];
|
||||
$class = $this->data[0]["c$row"];
|
||||
$cols = &$this->data[$r_key];
|
||||
$height = &$this->data[0]["h$row"];
|
||||
$class = &$this->data[0]["c$row"];
|
||||
}
|
||||
reset ($cols);
|
||||
$row_data = array();
|
||||
for ($c = 0; True /*list($col,$cell) = each($cols)*/; ++$c)
|
||||
{
|
||||
$old_cell = $cell;
|
||||
if (!(list($nul,$cell) = each($cols))) // no further cols
|
||||
if (!(list($c_key) = each($cols))) // no further cols
|
||||
{
|
||||
$cell = $old_cell;
|
||||
if (!$this->autorepeat_idx($cell,$c,$r,$idx,$idx_cname,True) ||
|
||||
!$this->isset_array($content,$idx))
|
||||
{
|
||||
break; // no auto-col-repeat
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$cell = &$cols[$c_key];
|
||||
}
|
||||
$col = $this->num2chrs($c);
|
||||
$row_data[$col] = $this->show_cell($cell,$content,$sel_options,$readonlys,$cname,
|
||||
$c,$r,$span);
|
||||
@ -317,7 +317,7 @@
|
||||
}
|
||||
list($span) = explode(',',$cell['span']); // evtl. overriten later for type template
|
||||
|
||||
if ($cell['name'][0] == '@')
|
||||
if ($cell['name'][0] == '@' && $cell['type'] != 'template')
|
||||
{
|
||||
$cell['name'] = $this->get_array($content,substr($cell['name'],1));
|
||||
}
|
||||
@ -353,12 +353,11 @@
|
||||
}
|
||||
$extra_label = True;
|
||||
|
||||
if (!$this->types[$cell['type']] &&
|
||||
(isset($this->extension[$cell['type']]) || $this->loadExtension($cell['type'],$this)))
|
||||
if (!$this->types[$cell['type']] && $this->haveExtension($cell['type']))
|
||||
{
|
||||
$extra_label = $this->extension[$cell['type']]->pre_process($cell,$value,
|
||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$cell['type']][$cell['name']],
|
||||
$readonlys[$name],$this);
|
||||
$type = $cell['type'];
|
||||
$extra_label = $this->extensionPreProcess($cell,$value,$readonlys[$name]);
|
||||
//echo "<p>$type::pre_process"; _debug_array($cell);
|
||||
if (strstr($name,'|'))
|
||||
{
|
||||
$content = $this->complete_array_merge($content,$value);
|
||||
@ -468,6 +467,34 @@
|
||||
$html .= $this->html->hr($cell['size']);
|
||||
break;
|
||||
case 'template': // size: index in content-array (if not full content is past further on)
|
||||
if (is_object($cell['name']))
|
||||
{
|
||||
$cell['obj'] = &$cell['name'];
|
||||
unset($cell['name']);
|
||||
$cell['name'] = 'was Object';
|
||||
echo "<p>Object in Name in tpl '$this->name': "; _debug_array($this->data);
|
||||
}
|
||||
$obj_read = 'already loaded';
|
||||
if (!is_object($cell['obj']))
|
||||
{
|
||||
if ($cell['name'][0] == '@')
|
||||
{
|
||||
$cell['obj'] = $this->get_array($content,substr($cell['name'],1));
|
||||
$obj_read = is_object($cell['obj']) ? 'obj from content' : 'obj read, obj-name from content';
|
||||
if (!is_object($cell['obj']))
|
||||
{
|
||||
$cell['obj'] = new etemplate($cell['obj'],$this->as_array());
|
||||
}
|
||||
}
|
||||
else
|
||||
{ $obj_read = 'obj read';
|
||||
$cell['obj'] = new etemplate($cell['name'],$this->as_array());
|
||||
}
|
||||
}
|
||||
if ($this->debug >= 3 || $this->debug == $cell['type'])
|
||||
{
|
||||
echo "<p>show_cell::template(tpl=$this->name,name=$cell[name]): $obj_read</p>\n";
|
||||
}
|
||||
if ($this->autorepeat_idx($cell,$show_c,$show_row,$idx,$idx_cname) || $cell['size'] != '')
|
||||
{
|
||||
if ($span == '' && isset($content[$idx]['span']))
|
||||
@ -490,8 +517,7 @@
|
||||
{
|
||||
$readonlys['__ALL__'] = True;
|
||||
}
|
||||
$templ = is_object($cell['name']) ? $cell['name'] : new etemplate($cell['name'],$this->as_array());
|
||||
$html .= $templ->show($content,$sel_options,$readonlys,$cname,$show_c,$show_row);
|
||||
$html .= $cell['obj']->show($content,$sel_options,$readonlys,$cname,$show_c,$show_row);
|
||||
break;
|
||||
case 'select': // size:[linesOnMultiselect]
|
||||
if (isset($sel_options[$name]))
|
||||
@ -548,13 +574,13 @@
|
||||
"enctype=\"multipart/form-data\" onSubmit=\"set_element2(this,'$path','$form_name')\"";
|
||||
break;
|
||||
default:
|
||||
if (!isset($this->extension[$cell['type']]))
|
||||
if ($this->haveExtension($cell['type']))
|
||||
{
|
||||
$html .= "<i>unknown type '$cell[type]'</i>";
|
||||
$html .= $this->extensionRender($cell,$form_name,$value,$readonly);
|
||||
}
|
||||
else
|
||||
{
|
||||
$html .= $this->extension[$cell['type']]->render($cell,$form_name,$value,$readonly);
|
||||
$html .= "<i>unknown type '$cell[type]'</i>";
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -613,11 +639,9 @@
|
||||
}
|
||||
for ($r = 0; True /*list($row,$cols) = each($this->data)*/; ++$r)
|
||||
{
|
||||
$old_cols = $cols;
|
||||
if (!(list($nul,$cols) = each($this->data))) // no further row
|
||||
if (!(list($r_key) = each($this->data))) // no further row
|
||||
{
|
||||
$cols = $old_cols;
|
||||
list($nul,$cell) = each($cols); reset($cols);
|
||||
//list($nul,$cell) = each($cols); reset($cols);
|
||||
if ((!$this->autorepeat_idx($cols['A'],0,$r,$idx,$idx_cname) ||
|
||||
$idx_cname == '' || !$this->isset_array($content,$idx)) &&
|
||||
(!$this->autorepeat_idx($cols['B'],1,$r,$idx,$idx_cname) ||
|
||||
@ -626,13 +650,18 @@
|
||||
break; // no auto-row-repeat
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$cols = &$this->data[$r_key];
|
||||
}
|
||||
$row = 1+$r;
|
||||
reset($cols);
|
||||
for ($c = 0; True /*list($col,$cell) = each($cols)*/; ++$c)
|
||||
{
|
||||
$old_cell = $cell;
|
||||
if (!(list($nul,$cell) = each($cols))) // no further cols
|
||||
//$old_cell = $cell;
|
||||
if (!(list($c_key/*,$cell*/) = each($cols))) // no further cols
|
||||
{
|
||||
$cell = $old_cell;
|
||||
//$cell = $old_cell;
|
||||
if (!$this->autorepeat_idx($cell,$c,$r,$idx,$idx_cname,True) ||
|
||||
$idx_cname == '' || !$this->isset_array($content,$idx))
|
||||
{
|
||||
@ -641,6 +670,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$cell = &$cols[$c_key];
|
||||
$this->autorepeat_idx($cell,$c,$r,$idx,$idx_cname,True); // get idx_cname
|
||||
}
|
||||
$col = $this->num2chrs($c);
|
||||
@ -741,16 +771,13 @@
|
||||
echo "'$value'</p>\n";
|
||||
}
|
||||
}
|
||||
if ((isset($this->extension[$cell['type']]) || $this->loadExtension($cell['type'],$this)) &&
|
||||
isset($this->extension[$cell['type']]->public_functions['post_process']))
|
||||
if ($this->haveExtension($cell['type'],'post_process'))
|
||||
{
|
||||
if ($this->debug > 1 || $this->debug && $this->debug == $this->name)
|
||||
{
|
||||
echo "<p>value for $cell[type]::post_process: "; _debug_array($value);
|
||||
}
|
||||
$this->extension[$cell['type']]->post_process($cell,$value,
|
||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$cell['type']][$cell['name']],
|
||||
$GLOBALS['phpgw_info']['etemplate']['loop'],$this);
|
||||
$this->extensionPostProcess($cell,$value);
|
||||
|
||||
if ($this->debug > 1 || $this->debug && $this->debug == $this->name)
|
||||
{
|
||||
@ -788,13 +815,12 @@
|
||||
}
|
||||
break;
|
||||
case 'template':
|
||||
$templ = is_object($cell['name']) ? $cell['name'] : new etemplate($cell['name'],$this->as_array());
|
||||
$templ->process_show($value,$readonlys);
|
||||
if ($templ->loop)
|
||||
if (!is_object($cell['obj']))
|
||||
{
|
||||
$this->loop = True;
|
||||
//echo "<p>".$this->name.": loop set in process_show(".$templ->name.")</p>\n";
|
||||
$cell['obj'] = new etemplate($cell['name'],$this->as_array());
|
||||
}
|
||||
//$templ = is_object($cell['name']) ? $cell['name'] : new etemplate($cell['name'],$this->as_array());
|
||||
$cell['obj']->process_show($value,$readonlys);
|
||||
break;
|
||||
case 'select':
|
||||
case 'select-cat':
|
||||
|
Loading…
Reference in New Issue
Block a user