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: