[[+pagetitle]] или [[*pagetitle]] в чанке
Здравствуйте.
Я хочу использовать один чанк в 2-х случаях: как шаблон для getResources при выводе нескольких записей, а также как просто кусок шаблона при выводе одного документа. При этом получается, что надо в одном случае выводить поля ресурса через [[+pagetitle]], а в другом — через [[*pagetitle]].
Варианты у меня есть следующие, но что-то они мне не очень нравятся:
1. Использовать getResources и для вывода самого себя, тогда все поля документа передадутся как аргументы и можно будет использовать плэйсхолдеры.
2. Писать [[+pagetitle:default=`[[*pagetitle]]`
3. Сделать копи-паст чанков, которые будут отличаться только символами * и + в тэгах.
Я хочу использовать один чанк в 2-х случаях: как шаблон для getResources при выводе нескольких записей, а также как просто кусок шаблона при выводе одного документа. При этом получается, что надо в одном случае выводить поля ресурса через [[+pagetitle]], а в другом — через [[*pagetitle]].
Варианты у меня есть следующие, но что-то они мне не очень нравятся:
1. Использовать getResources и для вывода самого себя, тогда все поля документа передадутся как аргументы и можно будет использовать плэйсхолдеры.
2. Писать [[+pagetitle:default=`[[*pagetitle]]`
3. Сделать копи-паст чанков, которые будут отличаться только символами * и + в тэгах.
Комментарии: 8
Хе-хе. Вот еще 4-й способ придумал:
4. [[[[+token]]pagetitle]]
Как это все с точки зрения производительности будет? Если, скажем, будет выводиться getResources по 10 документов, в каждом из которых по 10-20 вот таких вот полей будет.
4. [[[[+token]]pagetitle]]
Как это все с точки зрения производительности будет? Если, скажем, будет выводиться getResources по 10 документов, в каждом из которых по 10-20 вот таких вот полей будет.
1. Крайне не советую
2. Удобно
3. Лучший вариант, самый быстрый.
2. Удобно
3. Лучший вариант, самый быстрый.
а 4-й? по скорости, наверно, примерно как и 2-й будет?
Примерно, да. Даже, наверное, чуть быстрее.
У мя со 2м способом были проблемы в свое время, плейсхолдер формировался после того, как формировался чанк head, где и использовал этот холдер, соответственно, всегда и везде плейсхолдер был пустой. Валентин Расулов объяснял мне тогда с чем это может быть связано, но я уже забыл. И у себя я реализовал через 2 чанка, т.е. 3 способ :)
Есть еще один вариант — на странице вывода одного документа вызывать чанк с параметром:
[[$tpl.resource? &pagetitle=`[[*pagetitle]]`]]
Тогда в чанк будет передан плейсхолдер [[+pagetitle]], в котором будет значение текущего [[*pagetitle]]
Да, я уже тоже про него успел подумать )
скажу 1 привызове гет ресурса в гетресурсе он начинает глючить) проверенно ))))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.