"; public $minus = " "; public $point = " "; /** * Tree * * @param array $xmlnode default value NULL * * @return void */ public function __construct($xmlnode = null) { if (!isset($xmlnode)) { return; } if (isset($xmlnode->attributes['nodeType'])) { $this->nodeType = $xmlnode->attributes['nodeType']; } foreach ($xmlnode as $key => $value) { if ($key === 'children') { foreach ($xmlnode->children as $key => $value) { $this->children[$key] = new PmTree($value->toTree()); } } elseif ($key === 'attributes') { foreach ($xmlnode->attributes as $key => $value) { $this->{$key} = $value; } } else { $this->{$key} = $value; } } } /** * &addChild * * @param string $name * @param string $label * @param array $attributes * * @return object(Tree) $newNode */ public function &addChild($name, $label, $attributes = array()) { $newNode = new PmTree(new Xml_Node($name, 'open', $label, $attributes)); $this->children[] = & $newNode; return $newNode; } /** * printPlus * * @return string '...' */ public function printPlus() { $plus = 'none'; $minus = 'none'; $point = 'none'; if ($this->showSign) { if ((sizeof($this->children) > 0) && ($this->contracted)) { $plus = ''; } elseif ((sizeof($this->children) > 0) && (!$this->contracted)) { $minus = ''; } else { $point = ''; } } return "{$this->plus}" . "{$this->minus}" . "{$this->point}"; } /** * printLabel * * @return $this->value */ public function printLabel() { return $this->value; } /** * printContent * * @return string $html */ public function printContent() { $html = ''; $row = 0; foreach ($this->children as $child) { if ($row) { $child->nodeClass = 'treeNodeAlternate'; } $html .= $child->render(); $row = ($row + 1) % 2; } return $html; } /** * render * * @return $obj->printObject( array( 'node' => &$this ) ) */ public function render() { $obj = new objectTemplate($this->template); return $obj->printObject(array('node' => &$this)); } }