Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

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

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

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

Спасибо

Отредактировано Orb* (2012-05-06 09:08:27)

Вне форума

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

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

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

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

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

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

Вне форума

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

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

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

vitaly пишет:

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

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

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

Ну всетаки  это временный костыль нежели правильное решение, я просто не пойму почему нельзя добавить в парсер еще одну переменную?
Вроде бы сложностей не должно быть? Ваще решение 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 (мухи отдельно котлеты отдельно) :)

Вне форума

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

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

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) - высота превьюшки картинки

Оно? :)

Вне форума

#5 2012-05-06 16: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 17:25:05)

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.012 сек, 7 запросов выполнено - Использовано памяти: 529.44 Кбайт (Пик: 550.14 Кбайт) ]