У меня задача сделать рекомендуемые товары. Не получается вывести картинки и название ссылки по указанным id. Выводит информацию только по текущему id страницы. Адреса ссылок выводит правильные. Подскажите пож. как сниппете это сделать. У меня TV поле с id страниц через запятую. И вызов скиппета. <?php
/* ShowDropdown сниппет */
$items = $modx->getOption('items', $scriptProperties, 'Нет данных для показа');
$multiple = $modx->getOption('multiple', $scriptProperties, false);
/* Задать Tpl для каждого вывода опции */
$tpl = '<a href="[[~[[+item]]]]">[[*pagetitle]]</a><img src="[[*image]]"}" title="[[*pagetitle]]" style="max-height:230px; max-width:175px;" align=""/><br />';
if($items){
/* Конвертировать значения через запятую в массив */
$items = explode(',', $scriptProperties['items']);
/* Создание внутреннего HTML */
foreach ($items as $item) {
$output .= "\n" . str_replace('[[+item]]', trim($item), $tpl);
}
}
/* возвратить законченный HTML */
return $output;
Код скиппета http://joxi.ru/Vm6vDwqh4vNYmZ
Чтобы вы знали, теги типа [[* - это всегда только текущий документ. 2. Учите MODX-синтаксис.
Николай правильно написал, как modx поймет, что image и pagetitle надо для страниц с id равным items выводить? вам надо для каждого ресурса с соответствующем id image и pagetitle получить.
спасибо за подсказки. буду пробовать)
ааа)) ура ура все получись)) А то я совсем уже отчаялась. Думала что совсем все неправильно). Я как и посоветовали по каждому id все вывела через $modx->getObject('modResource', trim($item)); Почтила немного док и вывела tvs через getObject('modTemplateVarResource'. Еще раз всем спасибо))
Хорошо, что получилось, но рано еще останавливаться, код надо еще оптимизировать. Для начала в этом: Я как и посоветовали по каждому id все вывела через $modx->getObject('modResource', trim($item)); Почтила немного док и вывела tvs через getObject('modTemplateVarResource'. Еще раз всем спасибо)) 1. Получаем объект документа. $doc = $modx->getObject('modResource', trim($item)); 2. С этим объектом можно не только его поля получить (типа $doc->id, $doc->pagetitle и т.п.), но и значения TV-полей. $value = $doc->getTVValue($tv_id or $tv_name);
Ок спасибо за подсказку. Поняла)
Пожалуйста.