Seditio Source
Root |
./othercms/dotclear-2.22/inc/libs/clearbricks/template/class.tplnode.php
<?php
/**
 * @class tplNode
 * @brief Template nodes, for parsing purposes
 *
 * Generic list node, this one may only be instanciated once for root element
 *
 * @package Clearbricks
 * @subpackage Template
 *
 * @copyright Olivier Meunier & Association Dotclear
 * @copyright GPL-2.0-only
 */
class tplNode
{
   
# Basic tree structure : links to parent, children forrest
   
protected $parentNode;
    protected
$children;

    public function
__construct()
    {
       
$this->children   = new ArrayObject();
       
$this->parentNode = null;
    }

   
// Returns compiled block
   
public function compile(template $tpl)
    {
       
$res = '';
        foreach (
$this->children as $child) {
           
$res .= $child->compile($tpl);
        }

        return
$res;
    }

   
# Add a children to current node
   
public function addChild($child)
    {
       
$this->children[] = $child;
       
$child->setParent($this);
    }

   
# Set current node children
   
public function setChildren($children)
    {
       
$this->children = $children;
        foreach (
$this->children as $child) {
           
$child->setParent($this);
        }
    }

   
# Defines parent for current node
   
protected function setParent($parent)
    {
       
$this->parentNode = $parent;
    }

   
# Retrieves current node parent.
    # If parent is root node, null is returned
   
public function getParent()
    {
        return
$this->parentNode;
    }

   
# Current node tag
   
public function getTag()
    {
        return
'ROOT';
    }
}