Intellect Board Pro
Расширяемый движок форума с разделами разных типов
Объявление
Вышла версия 3.05 с фотогалереей и поддержкой PostgreSQL и SQLite.
Перейти к скачиванию
Привет, гость!

Вспомогательные блоки

Блоки позволяют добавлять новые элементы почти в любое место форума без изменения основного кода

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Одна страница
Распечатать
4X_Pro
Основатель проекта
Всего сообщений: 401
Зарегистрирован: 22 сент. 2014 г., 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 15
#1
В версии 3.02 в Intellect Board были добавлены вспомогательные блоки (также называемые subactions). Для управления ими в Центре Администрирования имеется одноименный раздел. Блоки предназначены для того, чтобы практически в любое место форума можно было добавить какие-то дополнительные элементы без изменения основного кода. Для каждого блока задаются условия, при которых он выводится: название модуля, название действия, номер раздела, номер темы. Можно также указать, что блок выводится для всех модулей или действий (в этом случае ставится *) или не зависит от номера раздела или темы (в этом случае ставится 0). Далее указывается имя для вывода блока в шаблоне, а также название библиотеки и функции в ней, которая будет вызвана.
Библиотеки — это обычные библиотеки IntB, которые располагаются в каталоге ./lib и должны содержать класс Library_имя (где имя совпадает с именем файла). Рекомендуется, чтобы название функции для вывода блока начиналось на block_, но это требование не является жестким. Функция должна возвращать либо false (если выводить ничего не требуется), либо массив из двух элементов. В первом указывается имя шаблона для отображения вспомогательного блока (по правилам, аналогичным возвращаемым значениям из actions, т.е. относительно каталога шаблона), во втором — хеш с данными, которые будут переданы в этот шаблон. В нем они будут доступны как элементы массива data.
В основном шаблоне в том месте, где нужно вывести блок с определенным именем, вставляется вот такой макрос:
{{ macros.sub_block(IntB_subactions['название блока']) }}
В блоке с одним именем может выводиться несколько элементов. Порядок их вывода определяется приоритетом, указываемом в настройках.
Также в настройках можно задавать набор параметров, передаваемый в функцию, отвечающую за обработку блока, в виде строки.

Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.

4X_Pro
Основатель проекта
Всего сообщений: 401
Зарегистрирован: 22 сент. 2014 г., 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 15
#2
В шаблоне def, используемом по умолчанию, прописано несколько блоков:
header — в конце заголовка, после forum_description
welcome_start — в начале блока приветствия (где выводится аватар пользователя и ссылки на настройки профиля, подписки и т.п.)
pm_notify — в том месте, где раньше выводилась ссылка на личные сообщения (с версии 3.02 она стала выводиться с помощью блока)
welcome_end — в конце блока приветствия
page_top — перед началом блока content, в который выводится результат выполнения действия
page_bottom — после окончания блока content
action_start — прописан в шаблонах вывода раздела и темы (action_view_forum и action_view_topic) для всех видов разделов. Блок выводится после заглавия раздела и служебной информации (такой, как форма выбора параметров отображения), перед основным контентом (таблицей тем или первым сообщением).
action_end — аналогично action_start, но выводится после основного контента.

В дистрибутиве версии 3.02 имеется библиотека block.php, которая содержит несколько функций для вывода типовых вспомогательных блоков:
block_dummy — включает шаблон, имя которого передано в параметре. Полезно в том случае, когда нужно добавить блок со статичным HTML.
block_announce — отображает объявления форума. В качестве параметра принимает режим работы: 0 — вывод только главного объявления , 1 — вывод объявления раздела, если оно задано, и главного объявления в противном случае, 2 — вывод только объявлений раздела
block_is_online — выводит время последнего онлайна для пользователей, id которых указаны через запятую в параметре. Полезно для личных страниц или показа присутствия админов или каких-то еще важных для форума лиц.
block_pm_unread — выводит количество личных сообщений
block_microblog — выводит последние сообщения из микроблога или блога с указанным в параметре id
block_premoderate — выводит общее количество сообщений на премодерации (только для админов, в остальных случаях возвращает false)
block_forum_views — выводит количество просмотров раздела
block_tag_count — подсчитывает количество тегов, используемых в разделе (номер раздела может передаваться в параметре, если нет, то берется текущий раздел)
block_tag_list — выводит облако тегов. В качестве параметра можно указать максимальное количество и, через запятую, номер раздела (если не указан, берется текущий).

Также с версии 3.02 список присутствующих онлайн тоже выводится с помощью блоков. Для этого вызывается функция get_online_users из библиотеки online. В качестве параметров передается режим работы: 0 — считаются показатели для форума в целом, 1 — показатели для текущего раздела, если блок показывается в разделе, 2 — показатели для текущей темы, если блок показывается в теме, иначе — аналогично режиму 1.

Также имеется библиотека instagram, позволяющая выводить несколько последних фотографий из аккаунта Instagram. Она находится в библиотеке instagram, и для ее работы нужно вызывать функцию block_instagram. Для корректной подгрузки данных необходимо также, чтобы был включено и настроено задание планировщика, вызывающее функцию cron_getdata из этой же библиотеки. В качестве параметра планировщику должен передаваться Instagram-токен. Внимание: в отличие от предыдущих блоков, Instagram по умолчанию не прописан, вам необходимо будет создать такой блок самостоятельно.

Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.

Одна страница
Распечатать

У вас нет прав для отправки сообщений в эту тему.