Zoomx получить данные родителя на странице товара
Здравствуйте!
Кто нибудь в этой игре «Zoomx» проходил квест: «Получить данные родителя на странице товара»? в шаблоне product.tpl?
Да, можно попробовать вывести через «pdoCrumbs», или другие… А что-нибудь попроще, как например на fenom?
Вроде:
или
Кто нибудь в этой игре «Zoomx» проходил квест: «Получить данные родителя на странице товара»? в шаблоне product.tpl?
Да, можно попробовать вывести через «pdoCrumbs», или другие… А что-нибудь попроще, как например на fenom?
Вроде:
{7 | resource: 'tv_name'}
или
{set $parent_id = $_modx->resource.parent} //Получаем id родителя
{set $grand_parent_id = $parent_id | resource : 'parent' } //Получаем id дедушки
{$grand_parent_id | resource : 'pagetitle'} //выводим заголовок
Комментарии: 6
Для получения данных родителя на странице товара в шаблоне `product.tpl` с использованием Fenom, вы можете использовать следующий код:
1. Получает ID родителя текущего ресурса.
2. Использует этот ID для получения ID «дедушки» (родителя родителя).
3. Выводит заголовок страницы «дедушки» по его ID.
Этот способ достаточно прост и позволяет получить необходимые данные без использования дополнительных сниппетов.
Если у вас есть вопросы или нужна дополнительная информация, пожалуйста, обращайтесь.
{set $parent_id = $_modx->resource.parent}
{set $grand_parent_id = $parent_id | resource : 'parent'}
{$grand_parent_id | resource : 'pagetitle'}
Данный код выполняет следующие действия:1. Получает ID родителя текущего ресурса.
2. Использует этот ID для получения ID «дедушки» (родителя родителя).
3. Выводит заголовок страницы «дедушки» по его ID.
Этот способ достаточно прост и позволяет получить необходимые данные без использования дополнительных сниппетов.
Если у вас есть вопросы или нужна дополнительная информация, пожалуйста, обращайтесь.
ты бот что-ли? Или это так гпт ответил? Вопрос был не в том, как на феноме вывести, а как вывести в шаблоне с использованием smarty (без fenom).
На данный момент, я смог получить id родителя, но как его использовать далее, чтобы получить pagetitle у родителя например, пока не пойму. Мб, заработался…
На данный момент, я смог получить id родителя, но как его использовать далее, чтобы получить pagetitle у родителя например, пока не пойму. Мб, заработался…
{$parent_id = 'parent'|resource} //Получаем id родителя
{$parent_id} // id родителя
{set $parent_id = $_modx->resource.parent}
{set $grand_parent_id = $parent_id | resource : 'parent'}
{$grand_parent_id | resource : 'pagetitle'}
чем ответ не устроил? Или чисто к словую smarty претензия?
никаких претензий нет. Smarty не поддерживает "set" у него немного все иначе.
Вы пишите мне в ответе то, что я написал в сообщении, в тексте вопроса. Я знаю как вывести это используя fenom, а как на smarty — нет.
Вы пишите мне в ответе то, что я написал в сообщении, в тексте вопроса. Я знаю как вывести это используя fenom, а как на smarty — нет.
{$parent_id = 'parent'|resource} //Получаем id родителя
{$grand_parent_id = $parent_id|field:'parent'} //Получаем id дедушки
{$grand_parent_id|field:'pagetitle'} //выводим заголовок
Не тестил, но должно работать. Как добавить модификатор field modzone.ru/blog/2020/12/19/zoomx-creating-smarty-plugins/
Перед и после | в смарти нельзя ставить пробелы.
Да, спасибо! Оно.
Нужно было создать файл «modifier.field.php» и положить его в папку:
«core/components/zoomx/smarty/plugins/» и все заработало.
Содержимое файла «modifier.field.php»:
или
(продублирую на всякий случай)
Нужно было создать файл «modifier.field.php» и положить его в папку:
«core/components/zoomx/smarty/plugins/» и все заработало.
Содержимое файла «modifier.field.php»:
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Файл: modifier.field.php
* Тип: modifier
* Имя: field
* Назначение: Get a field of the specified resource.
* -------------------------------------------------------------
*/
function smarty_modifier_field($id, $field)
{
global $modx;
$id = (int)$id;
if ($id && $resource = $modx->getObject('modResource', ['id' => $id])) {
return $resource->{$field};
}
return null;
}
или
<?php
// Плагин
// Событие OnModxInit
if ($modx->context->key !== 'mgr') {
function fieldModifier($id, $field)
{
global $modx;
$id = (int)$id;
if ($id && $resource = $modx->getObject('modResource', ['id' => $id])) {
return $resource->{$field};
}
return null;
}
// Регистрируем функцию модификатора
$smarty = parserx();
$smarty->registerPlugin("modifier","field", "fieldModifier");
}
(продублирую на всякий случай)
{5|field:"pagetitle"}
// Можно вернуть дефолтное значение
{5|field:"pagetitle"|default:"Ресурс не найден!"}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.