forked from extern/egroupware
fixed set_cell_attribute, get_cell_attribute and disable_cells to search [vh]box for its contained cells too
This commit is contained in:
parent
20e1983d37
commit
c8e57526d2
@ -343,55 +343,75 @@
|
|||||||
*/
|
*/
|
||||||
function get_cell_attribute($name,$attr)
|
function get_cell_attribute($name,$attr)
|
||||||
{
|
{
|
||||||
reset($this->data);
|
return $this->set_cell_attribute($name,$attr,NULL);
|
||||||
while(list($row,$cols) = each($this->data))
|
|
||||||
{
|
|
||||||
while(list($col,$cell) = each($cols))
|
|
||||||
{
|
|
||||||
if ($cell['name'] == $name)
|
|
||||||
{
|
|
||||||
reset($this->data);
|
|
||||||
return $this->data[$row][$col][$attr];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
reset($this->data);
|
|
||||||
|
|
||||||
return False;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@function set_cell_attribute
|
@function set_cell_attribute
|
||||||
@syntax set_cell_attribute( $name,$attr,$val )
|
@syntax set_cell_attribute( $name,$attr,$val )
|
||||||
@author ralfbecker
|
@author ralfbecker
|
||||||
@abstract set an attribute in a named cell
|
@abstract set an attribute in a named cell if val is not NULL else return the attribute
|
||||||
@result the number of changed cells
|
@param $name sting name of the cell
|
||||||
|
@param $attr attribute-name
|
||||||
|
@param $val if not NULL sets attribute else returns it
|
||||||
|
@result the number of changed cells or False, if none changed
|
||||||
*/
|
*/
|
||||||
function set_cell_attribute($name,$attr,$val)
|
function set_cell_attribute($name,$attr,$val)
|
||||||
{
|
{
|
||||||
//echo "<p>set_cell_attribute(tpl->name=$this->name, name='$name', attr='$attr',val='$val')</p>\n";
|
//echo "<p>set_cell_attribute(tpl->name=$this->name, name='$name', attr='$attr',val='$val')</p>\n";
|
||||||
|
|
||||||
$n = 0;
|
$n = False;
|
||||||
foreach($this->data as $row => $cols)
|
foreach($this->data as $row => $cols)
|
||||||
{
|
{
|
||||||
foreach($cols as $col => $cell)
|
foreach($cols as $col => $cell)
|
||||||
{
|
{
|
||||||
if ($cell['name'] == $name)
|
if ($cell['name'] == $name)
|
||||||
{
|
{
|
||||||
|
if (is_null($val))
|
||||||
|
{
|
||||||
|
return $cell[$attr];
|
||||||
|
}
|
||||||
$this->data[$row][$col][$attr] = $val;
|
$this->data[$row][$col][$attr] = $val;
|
||||||
++$n;
|
++$n;
|
||||||
}
|
}
|
||||||
if ($cell['type'] == 'template' && (is_object($cell['obj']) || $cell['name'][0] != '@'))
|
switch($cell['type'])
|
||||||
|
{
|
||||||
|
case 'template':
|
||||||
|
if (is_object($cell['obj']) || $cell['name'][0] != '@')
|
||||||
{
|
{
|
||||||
if (!is_object($cell['obj']))
|
if (!is_object($cell['obj']))
|
||||||
{
|
{
|
||||||
$this->data[$row][$col]['obj'] = CreateObject('etemplate.etemplate',$cell['name']);
|
$this->data[$row][$col]['obj'] = CreateObject('etemplate.etemplate',$cell['name']);
|
||||||
}
|
}
|
||||||
$n += $this->data[$row][$col]['obj']->set_cell_attribute($name,$attr,$val);
|
$ret = $this->data[$row][$col]['obj']->set_cell_attribute($name,$attr,$val);
|
||||||
|
if (is_int($ret))
|
||||||
|
{
|
||||||
|
$n += $ret;
|
||||||
|
}
|
||||||
|
elseif ($ret !== False && is_null($val))
|
||||||
|
{
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'vbox':
|
||||||
|
case 'hbox':
|
||||||
|
for ($i = 0; $i < (int)$cell['size']; ++$i)
|
||||||
|
{
|
||||||
|
if ($cell[$i]['name'] == $name)
|
||||||
|
{
|
||||||
|
if (is_null($val))
|
||||||
|
{
|
||||||
|
return $cell[$attr];
|
||||||
|
}
|
||||||
|
$this->data[$row][$col][$i][$attr] = $val;
|
||||||
|
++$n;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $n;
|
return $n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user