Форум IP.Board

Делая шаблоны проще

HTML логика была особенностью Invision Power Board в течение довольно продолжительного времени. Хотя мы и не применяли обширно тег «» для сохранения обратной совместимости со старыми версиями, логика с использованием применялась достаточно удачно. Теперь, когда мы с чистого листа создаем версию 3.0, мы можем сделать реальные позитивные изменения в системе шаблонов.

Invision Power Board 3.0 продолжит использовать существующую HTML логику и добавит новые возможности. Эти новшества позволят существенно изменять внешний вид без изменения PHP кода. Там, где это возможно, «вид» (например, список форумов, тем, просмотр темы) имеет один шаблон. В предыдущей версии для создания подобного «вида» объединялось несколько шаблонов (до 30!). Это означало, что некоторые элементы интерфейса были жестко закреплены за определенной позицией и не могли быть перенесены в другое место страницы. Например, на главной странице не было возможности перенести статистику выше списка форумов. Аналогичным образом было невозможно перенести активных пользователей ниже статистики. (здесь не имеется ввиду возможность переноса без изменения в коде)

Теперь все это возможно. Вы можете переносить любую сущность в любую позицию в пределах «вида» без правки PHP файлов. Это откроет новые перспективы для творчества и позволит создавать действительно уникальные шаблоны.

Еще одним шагом вперед для Invision Power Board 3 является возможность использования в шаблонах логики отображения. Естественно, мы всегда можем использовать

и

, но теперь можно использовать следующие стандартные теги.

Тег Date

Примеры:

{%date="now"|format="long"|relative="false"%}
{%date="1210012321"|format="manual{d m Y}"%}
{%date="-1 day"|format="long"%}

Вы можете точно задавать формат даты, требуемый в данном случае. Тег работает как с UNIX ‘timestamp’, так и с человекопонятным представлением вида ‘now’, ‘-1 day’, ‘tomorrow’, и подобными. Формат может быть задан как предустановленными форматами даты в IPB (ong, short, joined), так и PHP форматом.

Тег Parse

Примеры:


Данный тег позволяет создавать немедленный синтаксический анализ с использованием PHP кода. Тег заменяется значением, возвращенным PHP после выполнения параметра expression тега.

Тег URL

Примеры:

{%url="foo=1&bar=2"|label="Click Me"|base="public"|id="myLink"|class="linkCSS"|onclick="this.function()"%}
{%url="foo=1&bar=2"|base="public"%}

Первый пример фактически создаст полный

Log In

В новой версии данная ссылка уже будет выглядеть так:

Log In

Но, конечно, основное преимущество данного подхода — это возможность применения определенного формата к URL. Таким образом, функция formatURL(), возвращающая форматированный URL, может создавать дружественные URL’ы (ЧПУ), если данная опция включена в АЦ, или создавать обычные URL, если опция отключена.

Тег Variable

Пример:



Hello World!

В данном примере при помощи тега variable вводится переменная tdColor со значением по-умолчанию «blue». Значение переменной tdColor так же зависит от значения переменной $foo, которая является внешней. Таким образом, если переменная $foo будет иметь значение «green», то весь этот блок кода в результате будет заменен шаблонизатором на

Hello World!

Этот тег позволяет вводить переменные в шаблон без изменения PHP кода. Тег будет широко использоваться в повторяющихся блоках, в которых необходимо чередование цветов (например, при выводе списка тем, сообщений).

Пользовательские теги.

Теги шаблонизатора будут выделены в отдельные плагины, которые и будут заниматься реализацией поведения тега. Таким образом, вы сможете изменять поведение существующих тегов, а так же создавать свои.

Back to top button