| 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: |