1: | <?php |
2: | |
3: | namespace Zippy\Html; |
4: | |
5: | /** |
6: | * Базовый компонент для создания реализаций с пользовательским рендерингом. |
7: | */ |
8: | abstract class CustomComponent extends HtmlComponent |
9: | { |
10: | /** |
11: | * @see HtmlComponent |
12: | */ |
13: | final public function RenderImpl() { |
14: | $HtmlTag = $this->getTag(); |
15: | $attributes = []; //атрибуты с шаблона |
16: | foreach($HtmlTag->attributes as $a){ |
17: | $attributes[$a->nodeName] =$a->nodeValue; |
18: | }; |
19: | $html= $this->getContent($attributes); |
20: | $HtmlTag->html($html); |
21: | // $HtmlTag->follow($html); |
22: | // $HtmlTag->destroy(); |
23: | } |
24: | |
25: | /** |
26: | * Метод перегружаемый в пользовательской реализации |
27: | * Возвращает HTML содержание |
28: | * для работы с HTTP запросами необходимо реализовать соответствующие |
29: | * интерфейсы типа Requestable и т.д. |
30: | * Список аттрибутов HTML тэга (как правило, DIV элемента) доступен |
31: | * через поле attributes |
32: | * |
33: | * @return string |
34: | */ |
35: | abstract public function getContent($attributes); |
36: | } |
37: |