Как изменить вывод каждой второй статьи в Textpattern

Опубликовано
Комментарии Нет

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 в этом случае, можно добиться разного эффекта: можно менять, как в моем примере, вывод только изображений, а можно менять отображение полностью целиком всей статьи. Тут у кого на что фантазии хватит.

Автор

Комментарии

Нет комментариев к данной статье.

Комментарии

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





← Старые Новые →