Как вывести заголовок нужного ресурса?
я пробовал [[*pagetitle? &id=`4`]] — не работает
заранее извиняюсь за дурацкие вопросы
заранее извиняюсь за дурацкие вопросы
Комментарии: 15
Задача такая: хочу сделать главное меню, и включить туда некоторые ресурсы. И получается нужно вывести чтото типа этого
<ul id="navitab"> <li><a href="[[++site_url]]">Главная</a></li> <li><a href="[[~4]]"> Заголовок ресрса с ID=4</a></li> <li><a href="[[~25]]"> Заголовок ресрса с ID=25</a></li> </ul>
Лучше попробуй для меню вот это — Wayfinder, в сети есть много примеров по использованию.
Wayfinder посмотрю, но я пока что пытаюсь разобраться с синтаксисом.
Хочу понять алгоритм работы.
Вообще, так можно сделать в Modx Revo ??
Хочу понять алгоритм работы.
Вообще, так можно сделать в Modx Revo ??
В сети много сайтов про MODX для начинающих. Советую знакомство с системой начать именно с них. Тогда не будет возникать таких вопросов. Для меню лучше использовать Wayfinder и не изобретать велосипед. Именно для этого этот сниппет и был придуман. Поближе познакомится можно здесь:
Как использовать Wayfinder
Как использовать Wayfinder
rtfm.modx.com/display/ADDON/getResourceField
Но каждый его вызов — это запрос в БД, поэтому подумайте, прежде чем делать таким способом меню.
Но каждый его вызов — это запрос в БД, поэтому подумайте, прежде чем делать таким способом меню.
Спасибо и за это!
Надеюсь, есть более элегантное решение?
Надеюсь, есть более элегантное решение?
Я так понял, такую задачу можно решить только сниппетами. Системно это не предусмотрено.
Вот, предложили еще такой, интересный вариант:
компонент fastField
конструкция такая:
[[#1.pagetitle]]
[[#1.tv.myTV]]
[[#POST.name]] то же $_POST['name']
[[!#get.name]] то же $_GET['name'] (применимо к $_GET, $_POST, $_REQUEST, $_SERVER, $_FILES, $_COOKIE, $_SESSION)
еще есть фильтрация [[#3.pagetitle:ucase:default=`[[*pagetitle:ucase]]`]]
Вот, предложили еще такой, интересный вариант:
компонент fastField
конструкция такая:
[[#1.pagetitle]]
[[#1.tv.myTV]]
[[#POST.name]] то же $_POST['name']
[[!#get.name]] то же $_GET['name'] (применимо к $_GET, $_POST, $_REQUEST, $_SERVER, $_FILES, $_COOKIE, $_SESSION)
еще есть фильтрация [[#3.pagetitle:ucase:default=`[[*pagetitle:ucase]]`]]
Один недостаток fastField (причем значительный) — сайт стал сильно тормозить
А можно поинтересоваться, какая конструкция приводит к тормозам? По всем тестам fastField работает быстрее getResourceField и кешируется лучше.
[[#4.pagetitle]] — я пробовал это, сайт стал заметно медленнее работать, при минимуме HTML и CSS (js вообще нет)
Такая ссылка генерится порядка 0,01с, непонятно откуда могут быть тормоза :( Но, конечно, меню это не тот случай, где следует применять такие вещи.
Для меню конечно правильнее делать с помощью Wayfinder, но раз уж хочется так вручную каждый раздел выводить, то можно использовать getResourceField, и выводить так:
<ul id="navitab">
<li><a href="[[++site_url]]">[[!getResourceField? &id=`1` &field=`pagetitle`]]</a></li>
<li><a href="[[~4]]"> [[!getResourceField? &id=`4` &field=`pagetitle`]]</a></li>
<li><a href="[[~25]]"> [[!getResourceField? &id=`25` &field=`pagetitle`]]</a></li>
</ul>
Спасибо с getResourceField уже разобрался
Кстати, если уж вы только начали разбираться с MODX, учитесь сразу вызывать сниппеты стандартно, то есть кешированными. Убирайте восклицательные знаки в вызове getResourceField (как и других сниппетов — Wayfinder, getResources и пр.). У MODX сильная система кеширования и если сниппеты вызываются так: [[snippet]], то повторного запроса не будет
Спасибо! ) учту
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.