Лучший Ответ 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