Textpattern очень мощный движок для создания сайтов и основное его достоинство – это простота всех изменений. Хотя, оценить это могут только люди, которым слова HTML, CSS, PHP и JS не кажутся странными.
Вот, к примеру, в отдельных случаях необходимо сделать так, чтобы при выводе списка всех опубликованных статей в одной секции, четные были оформлены по одному способу, а нечетные по второму.
И в Textpattern сделать это достаточно просто. Нужно только немного подумать.
Отступление от темы
Я себя давно ловлю на мысли, что некоторые вещи, которые приходится реализовывать в Textpattern`е при создании сайтов, я делаю сложным способом, прибегая к PHP. Но после того, как все уже написано, смотрю на код, и понимаю, что все это можно сделать средствами самого TXP. Переписывать все конечно же не решаюсь, но каждый раз корю себя за это.
Реализация
Изменить вывод каждой второй статьи в Textpattern можно несколькими способами, но я выбрал тот, который позволяет это делать внутренними средствами.
Помочь в этом могут так называемые variable (переменные), которыми редко кто пользуется в TXP. До последнего времени я даже и не задумывался о них, что могу где-то их использовать, но как оказалось – это очень удобный инструмент, которым можно решить некоторые нетривиальные задачи.
Алгоритм работы этого когда заключается в простой проверке на четность. В самом начале переменной (у меня это stat), при выводе первой статьи, присваивается значение 1. При выводе каждой последующей статьи идет проверка этой переменной и выводиться статья с противоположным оформлением. После каждого вывода переменная меняется на противоположное значение.
К примеру, нам нужно в каждой нечетной статье (1, 3, 5 и т.д.) — выводить изображение статьи с лево, а в каждой четной статье (2, 4, 6 и т.д.) — выводить изображение статьи справа. Тогда код будет иметь вид вот такой:
<txp:title />
<txp:if_variable name="stat">
<txp:if_variable name="stat" value="1">
<txp:variable name="stat" value="2" />
<txp:else />
<txp:variable name="stat" value="1" />
<txp:article_image />
</txp:if_variable>
<txp:else />
<txp:variable name="stat" value="1" />
</txp:if_variable>
<txp:body />
Благодаря умелому использованию variable в этом случае, можно добиться разного эффекта: можно менять, как в моем примере, вывод только изображений, а можно менять отображение полностью целиком всей статьи. Тут у кого на что фантазии хватит.
Комментарии
Нет комментариев к данной статье.
Комментарии