12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- /* SVN FILE: $Id: HamlElementNode.php 83 2010-05-17 16:35:54Z chris.l.yates $ */
- /**
- * HamlElementNode class file.
- * @author Chris Yates <chris.l.yates@gmail.com>
- * @copyright Copyright (c) 2010 PBM Web Development
- * @license http://phamlp.googlecode.com/files/license.txt
- * @package PHamlP
- * @subpackage Haml.tree
- */
- require_once('HamlRootNode.php');
- require_once('HamlNodeExceptions.php');
- /**
- * HamlElementNode class.
- * Represents an element.
- * @package PHamlP
- * @subpackage Haml.tree
- */
- 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));
- }
- }
|