Invision Power Board 3
Содержание раздела
- Введение в разработку
- Каркас приложения на PHP 5
- Делая шаблоны проще
- Расширяя механизмы авторизации
- Дизайн
- Каркас для пользовательских приложений
- Ревизия системы BBCode
- Управление заблокированными пользователями
- Приоткрывая завесу над ipsRegistry
- Теги шаблонов, перезагрузка
- Управление языками в IP.Board 3
- Глобальный поиск в IP.Board 3
- Глобальные права доступа
- Делая интеграцию проще
- Система жалоб на сообщения
- Дополнения и хуки
- Система репутации
- Такой новый модуль вывода
- Обновление стиля
- Обзор механизма пометки прочитанности тем
- Улучшения системы обработки ошибок
- Наконец-то, дружественные URL'ы!
- Личные беседы
- Взаимосвязь с внешними приложениями
- Оптимизация для поисковых систем
- Улучшение ядра системы
- Упрощение администрирования
- IP.Blog, IP.Gallery и IP.Downloads
- Прочие возможности
Делая шаблоны проще
HTML логика была особенностью Invision Power Board в течение довольно продолжительного времени. Хотя мы и не применяли обширно тег "<foreach>" для сохранения обратной совместимости со старыми версиями, логика с использованием <if> <else /> применялась достаточно удачно. Теперь, когда мы с чистого листа создаем версию 3.0, мы можем сделать реальные позитивные изменения в системе шаблонов.
Invision Power Board 3.0 продолжит использовать существующую HTML логику и добавит новые возможности. Эти новшества позволят существенно изменять внешний вид без изменения PHP кода. Там, где это возможно, "вид" (например, список форумов, тем, просмотр темы) имеет один шаблон. В предыдущей версии для создания подобного "вида" объединялось несколько шаблонов (до 30!). Это означало, что некоторые элементы интерфейса были жестко закреплены за определенной позицией и не могли быть перенесены в другое место страницы. Например, на главной странице не было возможности перенести статистику выше списка форумов. Аналогичным образом было невозможно перенести активных пользователей ниже статистики. (здесь не имеется ввиду возможность переноса без изменения в коде)
Теперь все это возможно. Вы можете переносить любую сущность в любую позицию в пределах "вида" без правки PHP файлов. Это откроет новые перспективы для творчества и позволит создавать действительно уникальные шаблоны.
Еще одним шагом вперед для Invision Power Board 3 является возможность использования в шаблонах логики отображения. Естественно, мы всегда можем использовать <if> и <else />, но теперь можно использовать следующие стандартные теги.
Тег 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
Примеры:
<parse expression="sprintf( "14", "There are %s apples in the bag" )" /> <parse expression="substr( $data['name'], 0, 10 )" />
Данный тег позволяет создавать немедленный синтаксический анализ с использованием 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"%}
Первый пример фактически создаст полный <a href = "...> ... </a> кусок HTML, тогда как второй пример возвратит только форматированный URL. Целью создания такого тега было предотвращение hardcoded (жестко прописанных) URL в шаблонах. В IPB 2.3 использовались записи в шаблонах вида
<a href='{$this->ipsclass->base_url}&act=login'>Log In</a>
В новой версии данная ссылка уже будет выглядеть так:
<a href='{%url="act=login"|base="public"%}'>Log In</a>
Но, конечно, основное преимущество данного подхода — это возможность применения определенного формата к URL. Таким образом, функция formatURL(), возвращающая форматированный URL, может создавать дружественные URL'ы (ЧПУ), если данная опция включена в АЦ, или создавать обычные URL, если опция отключена.
Тег Variable
Пример:
<variable key="tdColor" default="blue" /> <variable key="tdColor" oncondition="$foo == "green"" value="green" /> <variable key="tdColor" oncondition="$foo == "black"" value="black" /> <span style='color:<variable="tdColor" />'>Hello World!</span>
В данном примере при помощи тега variable вводится переменная tdColor со значением по-умолчанию "blue". Значение переменной tdColor так же зависит от значения переменной $foo, которая является внешней. Таким образом, если переменная $foo будет иметь значение "green", то весь этот блок кода в результате будет заменен шаблонизатором на
<span style='color:green'>Hello World!</span>
Этот тег позволяет вводить переменные в шаблон без изменения PHP кода. Тег будет широко использоваться в повторяющихся блоках, в которых необходимо чередование цветов (например, при выводе списка тем, сообщений).
Пользовательские теги.
Теги шаблонизатора будут выделены в отдельные плагины, которые и будут заниматься реализацией поведения тега. Таким образом, вы сможете изменять поведение существующих тегов, а так же создавать свои.
← Предыдущая · Следующая →