Где воздух гор - там тишина снегов, молчание камней и дремлет сила

Программирование Web

Программная установка CSS стиля с помощью PHP/Smarty

2018-03-09 06:16:15








В современных  Web проектах  разработчик сталкивается с проблемой  совмещения программного кода и дизайна. Задачи такого очень разнообразные, практически в каждом проекте что-то встречается что-то свое… Однако, зачастую алгоритм решения проблем часто бывает сходный. Здесь  мы научимся  устанавливать свойство CSS стиля  при помощи  Smarty.
       Предположим, в нашем проекте необходимо, чтобы выводился список ссылок, из которых первая всегда была с определенным  свойством стиля. Это первое правило. А после того, как пользователь выбрал какую либо ссылку   из списка, данное свойство переходило на эту ссылку. Это второе требование к коду. Итак, допустим, наш стиль ссылки будет называться “active” .Шаблон Smarty получает из базы данных список ссылок и выводить их в виде списка, что в  Smarty делается с использованием так называемых секций (как один из вариантов)
{section name=num loop=$lists}
Далее нам нужно убедиться, что  наш элемент секции первый и что эта ссылка  не получена как GET объект, то есть была не  выбрана пользователем. Открываем в нашем шаблоне  {if}:
{if $smarty.section.num.first && $smarty.get.curlist_id eq 0   }
Если оба эти утверждения верны, то  выводим наш список с установленной  на первой ссылке CSS классом  “active”:
<li>><a class=active href=mylists.php?culist_id={$lists[num].list_id}>{$lists[num].list_title}</a></li>
В обратной ситуации мы устанавливаем это же свойство для ссылки типа GET:
{elseif $lists[num].list_id eq $smarty.get.curlist_id}
<li>><a class=active href=mylists.php?curlist_id={$lists[num].list_id}>{$lists[num].list_title}</a></li>
И на конец, во всех остальных ситуациях, ссылка отображается без  CSS стиля
{else}
<li>><a  href=mylists.php?curlist_id={$lists[num].list_id}>{$lists[num].list_title}</a></li>
Закрываем {if} и секцию.
 
{/if}
{/section}
</ul>
 
Как видите, все достаточно просто.:-) Ниже полный код шаблона Smarty:
 
<ul>
{sectionname=numloop=$lists}
{if $smarty.section.num.first && $smarty.get.curlist_ideq 0   }
<li>><aclass=activehref=mylists.php?culist_id={$lists[num].list_id}>{$lists[num].list_title}</a></li>
{elseif $lists[num].list_id eq $smarty.get.curlist_id}
<li>><a class=active href=mylists.php?curlist_id={$lists[num].list_id}>{$lists[num].list_title}</a></li>
{else}
<li>><a  href=mylists.php?curlist_id={$lists[num].list_id}>{$lists[num].list_title}</a></li>
 {/if}
{/section}
</ul>

Здесь нет комментариев


Новый комментарий:
























Яндекс.Метрика