[решение] pdoResources вывод родительских ссылок
Использую pdoResources для вывода данных, возникла потребность вывести "категория / подкатегория" текущего документа, выискивал решения, но все неработающие.
Собственно требуется вывести их в виде ссылки с названием.
Возможно кто-то уже это реализовывал и знает готовое решение?
— Моё решение задачи:
Самописный сниппет getWayFild
Примеры использования:
Возможно кому нибудь пригодится :-)
Собственно требуется вывести их в виде ссылки с названием.
Возможно кто-то уже это реализовывал и знает готовое решение?
— Моё решение задачи:
Самописный сниппет getWayFild
<?php
/**
* Доступные значения:
* &id - id документа
* &fild - желаемые данные
* &uri - по желанию, формирует ссылку с доп значениями:
* &title - выводит в title 'pagetitle', 'longtitle' или значение переменной
* &class - выводит в class значение переменной
* &tag - выводит значение переменной
*/
$page = $modx->getObject('modResource', $id);//значение &id
$output = $page->get($fild);//значение &fild
if ($uri != false) {//значение &uri
$uri = $page->get('uri');//получение uri
$title = ($title == 'pagetitle' || $title == 'longtitle' ?$page->get($title):$title);
$title = ($title != false ? ' title="'.$title.'"' : '');//значение &title
$class = ($class != false ? ' class="'.$class.'"' : '');//значение &class
$tag = ($tag != false ? ' '.$tag : '');//значение &tag
$result = '<a href="'.$uri.'"'.$title.$class.$tag.'>'.$output.'</a>';//результат
return $result;
} else {
return $output;
}Примеры использования:
- Выводим заголовок родителя текущего документа
[[!getWayFild? &id=`[[*parent]]` &fild=`pagetitle`]] - Выводим родителя текущего документа в виде ссылки с тайтлом "заголовок" родителя
[[!getWayFild? &id=`[[*parent]]` &fild=`pagetitle` &uri=`1` &title=`pagetitle`]] - Выводим родителя текущего документа в виде ссылки с тайтлом "расширенного заголовка" родителя
[[!getWayFild? &id=`[[*parent]]` &fild=`pagetitle` &uri=`1` &title=`longtitle`]] - Выводим родителя текущего документа в виде ссылки с классом и дополнительным тегом
[[!getWayFild? &id=`[[*parent]]` &fild=`pagetitle` &uri=`1` &class=`my_class` &tag=`id="my_id_tag"`]] - Выводим прародителя и родителя текущего документа в виде ссылок с тайтлами их заголовков
[[!getWayFild? &id=`[[getWayFild? &id=`[[+parent]]` &fild=`id`]]` &fild=`pagetitle` &uri=`1` &title=`pagetitle`]] / [[!getWayFild? &id=`[[*parent]]` &fild=`pagetitle` &uri=`1` &title=`pagetitle`]] - Выводим прародителя и родителя текущего документа в виде ссылок с тайтлами их заголовков, но в шаблоне для pdoResources или getResources
[[!getWayFild? &id=`[[getWayFild? &id=`[[~[[+parent]]]]` &fild=`id`]]` &fild=`pagetitle` &uri=`1` &title=`pagetitle`]] / [[!getWayFild? &id=`[[+parent]]` &fild=`pagetitle` &uri=`1` &title=`pagetitle`]]
Возможно кому нибудь пригодится :-)
Комментарии: 16
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
но выводит только id прародителя
Он построит хлебные крошки, но не обещаю, что это будет быстро.
Я вычитал, что разметка PHx достаточно ограничена в MODx Revolution, возможно временно, но это жалко, придется искать сниппет или что-то подобное.
— Спасибо за ответ.
PHx тут не при чем, да и не для того он придуман. Вы можете вызывать свой собственный сниппет в чанке, который выполнит ту же работу, что и Breadcrumb, только быстрее.
Другого решения я не вижу.
Пока не знаю как это решить, вообще хотел всё сделать по другому, чтобы не выводить одно в другом, но пока не выходит -__-
Работает довольно быстро. Например у меня в поиске вывод навигации у каждой строки добавляет всего 0.15 — 0.2 сек для страницы.
Параметры примерно совместимы с BreadCrumb.
Потестируй, если все окей — буду выпускать.
Выводжу так:
получаю пустоту.
Еще выводил:
собственно без изменений, пусто.
Подскажите пример. Я вывожу данные на главной странице, последние новости/изменения.
Это не я придумал — это хлебные крошки строятся, как бы, от корня к ресурсу.
и еще вопрос, как заменить стрелочку (которая меж ними)?
Я и так уже все сделал, давай дальше сам?