Убрать {if} из template.

0xHH

Новичок
Убрать {if} из template.

Дано: страница с выводом сообщений. Авторизированный user может оценить сообщения. Нельзя оценивать свои сообщения. Есть template с выводом сообщений.

В template на текущий момент есть следующее:
PHP:
{if $logintype eq LOGIN_NORMAL} | Оценить: <a href="rate.php?mid={$msg->Message_ID}&amp;rate=-2" title="Ужасно">-2</a>
	<a href="rate.php?mid={$msg->Message_ID}&amp;rate=-1" title="Плохо">-1</a>
	<a href="rate.php?mid={$msg->Message_ID}&amp;rate=0" title="Удалить оценку">x</a>
	<a href="rate.php?mid={$msg->Message_ID}&amp;rate=1" title="Хорошо">1</a>
	<a href="rate.php?mid={$msg->Message_ID}&amp;rate=2" title="Отлично">2</a>
	{/if}
Сейчас нужно добавлять ещё одно условие проверки имени usera.

Хочется всё это убрать с template, оставив чистый вывод без никаких условий.

-~{}~ 15.07.06 19:49:

Понятно, что можно создать два template: с возможностью оценки и без. В скрипте добавить флаг к сообщению возможности оценки и грузить соотв. template.
 

Фанат

oncle terrible
Команда форума
ничего убирать не надо.
и "чистого вывода" не бывает
 

0xHH

Новичок
Но тут есть одно но. Template содержит {foreach} для вывода сообщений.
 

Фанат

oncle terrible
Команда форума
вообще, человек, испольщующий смарти, и стыдящийся какого-то там ифа - это нонсенс

-~{}~ 15.07.06 20:00:

Template начинает обрастать условиями.
слушай.
сделай доброе дело.
найди какой-нибудь ШАБЛОН на XSLT, зацени, и после этого перестань комплексовать и задаваться дурацкими вопросами.
 

0xHH

Новичок
Вроде уже знаю как сделать. Можно обойтись без {if}. В php коде строится array c allowratemessage, unallowshowratemessage, этот array загоняется в assign, а потом

{foreach from=$modules item=module}
{include file="$module"}
{/foreach}
 

0xHH

Новичок
Фанат
Спасибо.

Добавил в $msg поле AllowRate и заменил условие на {if $msg->AllowRate}.
 
Сверху