Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2012-05-04 20:57:26

Orb*
Участник
Зарегистрирован: 2012-05-04
Сообщений: 5
Рейтинг :   

Как создать свою новую переменную в шаблоне?

В шаблоне news.table.tpl есть такая замечательная переменная как {category.alt} - альтернативное имя категории, как сделать/добавить такую же в news.short.tpl. Мне это нужно чтобы можно было вешать разные css стили присущее только конкретной категории, пример, есть три категория красная,синия и зеленая, при клике на красную загружаются все краткие  новости с красными заголовками/подложками, при клике на синию -синие и тд. с помощью {category.alt} как раз таки и буду различать где у меня красные а где синии.

Спасибо

Изменено Orb* (2012-05-06 10:08:27)

Не в сети

#2 2012-05-05 21:17:34

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как создать свою новую переменную в шаблоне?

Orb*, в SVN версии есть решение - воспользоваться шаблонизатором TWIG, он доступен в штатном шаблонизаторе при использовании блока [TWIG]..[/TWIG]:

[TWIG]{% if isCategory('red, blue') %}ЭТО БУДЕТ ВЫВОДИТЬСЯ ТОЛЬКО В КАТЕГОРИЯХ с альт. именем "red" или "blue"{% endif %}[/TWIG]

Такой вариант подходит? smile

Не в сети

#3 2012-05-06 10:23:38

Orb*
Участник
Зарегистрирован: 2012-05-04
Сообщений: 5
Рейтинг :   

Re: Как создать свою новую переменную в шаблоне?

vitaly пишет:

Orb*, в SVN версии есть решение - воспользоваться шаблонизатором TWIG, он доступен в штатном шаблонизаторе при использовании блока [TWIG]..[/TWIG]:

[TWIG]{% if isCategory('red, blue') %}ЭТО БУДЕТ ВЫВОДИТЬСЯ ТОЛЬКО В КАТЕГОРИЯХ с альт. именем "red" или "blue"{% endif %}[/TWIG]

Такой вариант подходит? smile

Ну всетаки  это временный костыль нежели правильное решение, я просто не пойму почему нельзя добавить в парсер еще одну переменную?
Вроде бы сложностей не должно быть? Ваще решение vitaly не совсем подходит и вот почему: У меня много категорий и каждой категории соответствует свой стиль чтобы применить ваш вариант придеться делать следующие:

[TWIG]{% if isCategory('red') %}ЭТО БУДЕТ ВЫВОДИТЬСЯ ТОЛЬКО В КАТЕГОРИЯХ с альт. именем "red" {% endif %}[/TWIG]
[TWIG]{% if isCategory('blue') %}ЭТО БУДЕТ ВЫВОДИТЬСЯ ТОЛЬКО В КАТЕГОРИЯХ с альт. именем "blue" {% endif %}[/TWIG]

т.е получает некий аналог конструкции switch При создании новой категории мне снова придеться лезть в код и добавлять еще одну строчку.

<td id=[TWIG]{% if isCategory('red, blue') %}ЭТО БУДЕТ ВЫВОДИТЬСЯ ТОЛЬКО В КАТЕГОРИЯХ с альт. именем "red" или "blue"{% endif %}[/TWIG]>  [link]{title}[/link]</td>

Уточню проблему хочу так в news.short.tpl:

<td id={category.alt}> [link]{title}[/link]</td>

И тогда все сложиться, не нужно будет лезть в шаблон каждый раз, при добавлении новой категории, в css добавляем новый стиль #{category.alt} {....} Строго следуем концепции MVC (мухи отдельно котлеты отдельно) smile

Не в сети

#4 2012-05-06 12:59:42

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как создать свою новую переменную в шаблоне?

Orb*, расширил возможности функции isCategory(), теперь она может выдавать данные о текущей категории.
Обновление лежит в SVN.

+ К TWIG функции isCategory() добавлены модификаторы, позволяющие получать данные о текущей категории.
isCategory() - возвращает true в случае, если пользователь находится в какой-либо категории
isCategory(':id') - возвращает ID категории
isCategory(':alt') - возвращает альт. имя категории
isCategory(':name') - возвращает название категории
isCategory(':icon') - возвращает true если категории назначена иконка
isCategory(':icon.url') - URL иконки
isCategory(':icon.url.width') - ширина катринки
isCategory(':icon.url.height) - высота картинки
isCategory(':icon.preview') - возвращает true если у иконки категории есть превьюшка
isCategory(':icon.preview.url') - URL превьюшки иконки
isCategory(':icon.preview.url.width') - ширина превьюшки катринки
isCategory(':icon.preview.url.height) - высота превьюшки картинки

Оно? smile

Не в сети

#5 2012-05-06 17:15:46

Orb*
Участник
Зарегистрирован: 2012-05-04
Сообщений: 5
Рейтинг :   

Re: Как создать свою новую переменную в шаблоне?

Скачал из svn, написал вот такое в news.shot.tpl

[TWIG]{% if isCategory() %} {{ isCategory(':alt') }} {% endif %}[/TWIG]

и получил то что нужно, Спасибо vitaly

ЗЫ. Проверил только isCategory(':alt') , остальные не тестил т.к только это пока интересовало, ну думаю с другим проблем недолжно возникнуть

Изменено Orb* (2012-05-06 18:25:05)

Не в сети

Подвал раздела

Работает на FluxBB