Лучший Ответ SmetDenis , 14 February 2015 - 20:27
Сделайте проверку element на пустоту перед вызовом data() Перейти к сообщению
Лучший Ответ SmetDenis , 14 February 2015 - 20:27
Сделайте проверку element на пустоту перед вызовом data() Перейти к сообщению
Отправлено 07 February 2015 - 18:30
Доброго времени суток!
Разрабатываю элемент для отображения всех элементов на карте яндекс.
Сейчас возник вопрос, как в самом элементе в шаблоне edit.php получить доступ к параметрам из xml?
Пробовал такую конструкцию:
$params = $this->app->data->create($params); $width_default = $params->get('width_default');
Отправлено 08 February 2015 - 18:49
Можете подробней пояснить? Не получается... ((
Я делаю на основе элемента jbrelatedauto
В xml файле я добавил: http://c2n.me/3c3iHyn.png
<param name="width_default" type="text" default="100%" label="Ширина" description="Ширина блока карты по умолчанию" />
И мне нужно получить значение width_default
В настройках я задаю значения - http://c2n.me/3c3i9Vc.png
В основном файле элемента метод edit сейчас выглядит так - http://c2n.me/3c3ituZ.png
Я пробовал писать так
public function edit($params = array()) { //return $this->app->html->_('select.booleanlist', $this->getControlName('value'), '', $this->get('value', 1)); if ($layout = $this->getLayout('edit.php')) { return $this->renderLayout($layout, $params); } return null; }
<? // no direct access defined('_JEXEC') or die('Restricted access'); $doc = JFactory::getDocument(); $doc->addScript("http://api-maps.yandex.ru/2.1/?load=package.full&lang=ru_RU&coordorder=longlat"); $params = $this->app->data->create($params); $width_default = $params->get('width_default');
Отправлено 10 February 2015 - 17:05
Ребят, ну пните меня - что я делаю не так?
Отправлено 10 February 2015 - 21:59
Сама передача понятна. Не работает получение параметров в функции edit:
public function edit($params = array()) { if ($layout = $this->getLayout('edit.php')) { $params = $this->app->data->create($params); $width_default = $params->get('width_default'); // ТУТ ПУСТО... return self::renderLayout( $layout, array( 'width_default' => $width_default ) ); } return null; }
public function render($params = array()) { // init vars $params = $this->app->data->create($params); $width_default = $params->get('width_default'); echo "TEST ".$width_default; // ТУТ ВОЗВРАЩАЕТ РЕЗУЛЬТАТ $items = $this->_getRelatedAutoYandex($params); $renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $this->_item->getApplication()->getTemplate()->getPath()));
В чем может быть дело?
Отправлено 10 February 2015 - 22:36
В общем пока вопрос снимаю, сделал так:
В xml перенес в секцию <params>, не в группу render
В функции edit заменил на $this->config->get('width_default');
Просьба тему пока не закрывать, может еще какие вопросы будут... хоты бы пару дней...
Отправлено 14 February 2015 - 10:45
Можно ли как-то отследить, есть ли в $item элемент с определенным идентификатором?
Проблема в следующем:
В цикле
foreach ($items as $item) {
$element = $item->getElement($this->identifier);
$data = (array)$element->data(); - ТУТ ОШИБКА
...
}
когда попадается элемент, где нет такого идентификатора, то сайт просто "ложится"... Можно ли это как-то обработать?
Отправлено 14 February 2015 - 20:27 Лучший Ответ
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 14 February 2015 - 21:36
И действительно, ведь ларчик просто открывался, чет я тупанул... )) Спасибо.
Сообщение отредактировал Giadastar: 14 February 2015 - 21:45