Делая шаблоны проще
HTML логика была особенностью Invision Power Board в течение довольно продолжительного времени. Хотя мы и не применяли обширно тег «
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 кода. Тег будет широко использоваться в повторяющихся блоках, в которых необходимо чередование цветов (например, при выводе списка тем, сообщений).
Пользовательские теги.
Теги шаблонизатора будут выделены в отдельные плагины, которые и будут заниматься реализацией поведения тега. Таким образом, вы сможете изменять поведение существующих тегов, а так же создавать свои.