Overview

Namespaces

  • Thelia
    • Action
    • Config
    • Controller
    • Core
      • Bundle
      • DependencyInjection
        • Compiler
        • Loader
      • Event
      • EventListener
      • Template
        • BaseParam
    • Exception
    • Log
      • Destination
    • Model
      • map
      • om
    • Routing
      • Matcher
    • Tools
    • Tpex
      • BaseParam
      • Element
        • Loop
        • TestLoop
      • Event
      • Exception
      • Filter
      • Tokenizer

Classes

  • BaseElement
  • ConditionalLoopElement
  • ConditionalVarLoopElement
  • ElementCollection
  • RepeatLoopElement
  • SimpleLoopElement
  • TestLoopElement
  • TextElement
  • VariablesTemplate
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: /*************************************************************************************/
 3: /*                                                                                   */
 4: /*      Thelia                                                                       */
 5: /*                                                                                   */
 6: /*      Copyright (c) OpenStudio                                                     */
 7: /*  email : info@thelia.net                                                      */
 8: /*      web : http://www.thelia.net                                                  */
 9: /*                                                                                   */
10: /*      This program is free software; you can redistribute it and/or modify         */
11: /*      it under the terms of the GNU General Public License as published by         */
12: /*      the Free Software Foundation; either version 3 of the License                */
13: /*                                                                                   */
14: /*      This program is distributed in the hope that it will be useful,              */
15: /*      but WITHOUT ANY WARRANTY; without even the implied warranty of               */
16: /*      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                */
17: /*      GNU General Public License for more details.                                 */
18: /*                                                                                   */
19: /*      You should have received a copy of the GNU General Public License            */
20: /*      along with this program. If not, see <http://www.gnu.org/licenses/>.     */
21: /*                                                                                   */
22: /*************************************************************************************/
23: 
24: namespace Thelia\Tpex\Element;
25: 
26: use Thelia\Tpex\TpexToken;
27: 
28: class ElementCollection extends BaseElement
29: {
30:     /**
31:      * @var array BaseElement
32:      */
33:     protected $elements = array();
34:     protected $idx = 0;
35:     protected $lastType = -1;
36: 
37:     public function addElement(BaseElement $element)
38:     {
39:         if ($this->idx > 0 && $this->lastType === TpexToken::TPEX_TEXT && $element->type() === TpexToken::TPEX_TEXT) {
40:             $this->elements[$this->idx-1]->addContent($element->content);
41:         } else {
42:             $this->elements[] = $element;
43:             $this->lastType = $element->type();
44: 
45:             $this->idx++;
46:         }
47: 
48:     }
49: 
50:     public function addContent($content){}
51: 
52:     public function exec($substitutions = array())
53:     {
54:         $res = "";
55:         foreach ($this->elements as $element) {
56:             $res .= $element->exec($substitutions);
57:         }
58: 
59:         return $res;
60:     }
61: 
62:     public function type()
63:     {
64:         return TpexToken::TPEX_CONTENT;
65:     }
66: 
67:     public function getElements()
68:     {
69:         return $this->elements;
70:     }
71: }
72: 
thelia API documentation generated by ApiGen 2.8.0