Пытаюсь настроить вывод альтернативного названия материала в ZOO item. Обычное поле «текст» не подходит, так как с альтернативного названия должна вести ссылка на материал.
Попытался создать новый элемент на основе копии itemlink, согласно этой инструкции:
http://www.yootheme.com/zoo/documentation/developers/create-a-custom-elementОн отображается в админке, поле альтернативного названия можно заполнить, но при сохранении значение поля "обнуляется".
Вот, что я сделал:
*примечание: использую приложение JBZoо, но логика скорее всего будет одинаковой для любого другого (blog, page и т.д.)Создал папку: media\zoo\applications\jbuniversal\elements\namealt, и 2 файла в ней:
namealt.php:
<?php
class ElementNamealt extends Element {
public function edit() {
$html = array();
$html[] = $this->app->html->_('control.editrow', JText::_('namealt'), $this->app->html->_('control.text', $this->getControlName('namealt'), $this->get('namealt'), 'size="60" maxlength="255"'));
return implode("\n", $html);
}
public function render($params = array()) {
return '<a href="' . $this->app->route->item($this->_item). '">' . $this->get('namealt') . '</a>';
}
public function hasValue($params = array()) {
$namealt = $this->get('namealt');
return !empty($namealt);
}
}
namealt.xml:
<?xml version="1.0" encoding="utf-8"?>
<element type="namealt" group="JBZoo">
<name>Item name alt</name>
<author>YOOtheme</author>
<creationDate>August 2011</creationDate>
<copyright>Copyright (C) YOOtheme GmbH</copyright>
<authorEmail>info@yootheme.com</authorEmail>
<authorUrl>http://www.yootheme.com</authorUrl>
<version>2.5.0</version>
<description>Item name alt</description>
<params group="render">
</params>
</element>
В связи с этим обращаюсь к тем, кто хорошо знаком с PHP и логикой ZOO:
в чем может быть причина? И правильно ли я вообще создал элемент?