You are here

class HamlElementNode in Sassy 7

HamlElementNode class. Represents an element. @package PHamlP @subpackage Haml.tree

Hierarchy

Expanded class hierarchy of HamlElementNode

File

phamlp/haml/tree/HamlElementNode.php, line 21

View source
class HamlElementNode extends HamlNode {
  public $isBlock;
  public $isSelfClosing;
  public $attributes;
  public $whitespaceControl;
  public $escapeHTML;
  public function render() {
    $renderer = $this->renderer;
    $this->output = $renderer
      ->renderOpeningTag($this);
    $close = $renderer
      ->renderClosingTag($this);
    if ($this->whitespaceControl['outer']['left']) {
      $this->output = ltrim($this->output);
      $close = rtrim($close);
      $this->parent->output = rtrim($this->parent->output);
    }
    foreach ($this->children as $index => $child) {
      $output = $child
        ->render();
      $output = $this->whitespaceControl['inner'] ? trim($output) : $output;
      if ($index && $this->children[$index - 1] instanceof HamlElementNode && $this->children[$index - 1]->whitespaceControl['outer']['right']) {
        $output = ltrim($output);
      }
      $this->output .= $output;
    }

    // foreach
    return $this
      ->debug($this->output . (isset($child) && $child instanceof HamlElementNode && $child->whitespaceControl['outer']['right'] ? ltrim($close) : $close));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
HamlElementNode::$attributes public property
HamlElementNode::$escapeHTML public property
HamlElementNode::$isBlock public property
HamlElementNode::$isSelfClosing public property
HamlElementNode::$whitespaceControl public property
HamlElementNode::render public function Overrides HamlNode::render
HamlNode::$children protected property *
HamlNode::$content public property *
HamlNode::$output protected property *
HamlNode::$parent protected property *
HamlNode::$root protected property *
HamlNode::$showOutput public property *
HamlNode::$showSource public property *
HamlNode::$token public property *
HamlNode::$_o private property *
HamlNode::$_r private property *
HamlNode::debug protected function
HamlNode::getChildren public function * Returns the node's children *
HamlNode::getContent public function * Returns the node's content and that of its child nodes *
HamlNode::getFilename private function * Returns the filename for this node *
HamlNode::getLastChild public function * Returns the last child node of this node. *
HamlNode::getLevel private function * Returns the indent level of this node. *
HamlNode::getLine private function * Returns the source for this node *
HamlNode::getOptions public function * Returns the options. *
HamlNode::getParent public function * Returns the node's parent *
HamlNode::getRenderer public function * Returns the renderer. *
HamlNode::getSource private function * Returns the source for this node *
HamlNode::hasChildren public function * Returns a value indicating if this node has children *
HamlNode::hasParent public function * Return a value indicating if this node has a parent *
HamlNode::setLevel private function * Sets the indent level of this node. * Used during rendering to give correct indentation. *
HamlNode::showSource protected function * Adds a comment with source debug information for the current line to the output. * The debug information is: * + source file (relative to the application path) * + line number * + indent level * + source code *
HamlNode::__construct public function 4
HamlNode::__get public function * Getter. *
HamlNode::__set public function * Setter. *