Вызов [[~[[+id]]]] в чанке
Например выводим список новостей:
[[pdoResources? &tpl=`news` &limit=`20`]]
Внутри чанка news видим:
Тогда как просто можно сделать так:
[[pdoResources? &tpl=`news` &limit=`20`]]
Внутри чанка news видим:
<a href="[[~[[+id]]]]">[[+pagetitle]]</a>
Получается что делается 1 запрос к базе сниппетом и еще каждый раз запрос для вывод url и в итоге имеем 21 запрос к базе?Тогда как просто можно сделать так:
<a href="[[+uri]]">[[+pagetitle]]</a>
Или тут есть какая то особенность? Комментарии: 8
Нету особенностей. Использовать uri гораздо лучше и быстрее.
Особенность ровно одна — при вызове [[+uri]] на главной страничке с ID=[[+site_start]] uri будет не верным
Это почему? Поясните
s5427.h5.modhost.pro/
на страничке находится:
s5427.h5.modhost.pro/manager/
Логин s5427
Пароль imDXyqss4B6A
вывод:
хотя должен быть просто адрес хоста и схема http, вот так:
http://s5427.h5.modhost.pro/
на страничке находится:
uri - [[++url_scheme]][[++http_host]]/[[*uri]]
[ [ ~ [ [ ++site_start ] ] ] ] - [[~[[++site_start]]]]
доступ:s5427.h5.modhost.pro/manager/
Логин s5427
Пароль imDXyqss4B6A
вывод:
uri - http://s5427.h5.modhost.pro/home.html
[ [ ~ [ [ ++site_start ] ] ] ] - http://s5427.h5.modhost.pro/
С использованием URI у нас адрес получается с ненужной припиской /home.htmlhttp://s5427.h5.modhost.pro/home.html
хотя должен быть просто адрес хоста и схема http, вот так:
http://s5427.h5.modhost.pro/
И при переходе по s5427.h5.modhost.pro/home.html ты редиректишься на s5427.h5.modhost.pro/.
Так что, нет тут никакой проблемы, не выдумывай.
Так что, нет тут никакой проблемы, не выдумывай.
ну тут суть не в том что это проблема а в том что это особенность
Вообще я и при переходе по ссылке s5427.h5.modhost.pro/index.php?id=1 буду редиректиться на s5427.h5.modhost.pro/, однако почему-то никто не использует ссылки вида
Вообще я и при переходе по ссылке s5427.h5.modhost.pro/index.php?id=1 буду редиректиться на s5427.h5.modhost.pro/, однако почему-то никто не использует ссылки вида
<a href="/index.php?id=[[+id]]">[[+pagetitle]]</a>
В чем же дело?
Первый способ можно использовать, когда получить ссылку на страницу можно только зная ID. Например — при использовании TV — поля с динамической генерацией ID ресурсов через биндинг @EVAL return $modx->runSnippet()
Я указал конкретный пример, самый распространенный где обычно люди и допускают подобную ошибку, вопрос был в этом. Понятно что [[~[[+tv.customID]]]] имеет место.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.