Модуль "Менеджер Блоков" - маленькие хитрости

Функциональность модуля описана здесь: livestreet.ru/blog/addons/2378.html
Сложного там ничего нет, но т.к. в последнее время получаю однотипные вопросы про этот модуль, то решил ответить на некоторые из них.
На самом деле это никакие не хитрости, а просто я решил уточнить некоторые нюансы, которые, в общем-то, уже были расписаны и в топике про модуль, и в комментариях в кофиг-файле к модулю. Но вопросы все равно возникают, поэтому решил свести сюда ответы на них.

1. Итак, самое главное замечание: Менеджер Блоков не создает блоки, а лишь позволяет манипулировать теми блоками, которые уже созданы и находятся в папке /classes/blocks/ (а шаблоны для них соответсвенно в папке /templates/skin/_текущий_скин_/).

2. По умолчанию в файле конфигурации модуля задано:
$CFG['admin_blocks']['clear_blocks'] = false
В этом случае алгоритм такой: сначала выводятся блоки, которые заданы в экшенах через $this->Viewer_AddBlocks(...), и только потом уже блоки, заданные в кофигурации модуля. Поэтому в такой конфигурации блоки, выводимые через этот модуль всегда будут ниже других.

3. Если есть желание полностью управлять порядком вывода блоков на всех страницах, то надо в конфиг-файле указать:
$CFG['admin_blocks']['clear_blocks'] = true
В этом случае все установки блоков во всех экшенах полностью игнорируются, и выводятся только те блоки и в том порядке, как это задано в конфиг-файле.

4. Но чаще всего возникает ситуация, когда админу хочется рулить блоками самостоятельно, кроме нескольких страниц, на которых надо бы оставить все, как есть. Обычно это страницы с админкой, со списком людей и с профайлом. В этом случае параметр clear_blocks задается так:
$CFG['admin_blocks']['clear_blocks'] = array('exclude'=>'admin, people, profile');
Т.е. тут мы указываем, что надо сбросить стандартные настройки во всех экшенах, кроме указаных трех. В них все остается, как есть, а на всех остальных страницах будут выводится блоки, заданные в конфиге.

И в заключение: читайте комментарии в конфиг-файле — там есть примеры.

2 комментария

avatar
Менеджер Блоков не создает блоки, а лишь позволяет манипулировать теми блоками, которые уже созданы и находятся в папке /classes/blocks/
У меня на сайте блоков больше, чем в упомянутой папке. Например, есть блок «Чат», «ТОР пользователей» и др. Есть возможность изменить их порядок? Хоть при помощи этого модуля или без него.

p.s.: не могу понять где они разбросаны по папкам и как узнать имя блока. Например, указываю «chat», или «useronline», или «online» в массиве и получаю фатальную ошибку; указываю «usertop» — ошибки не получаю, но и блок не выводится.

Можете мне что-то посоветовать?
См.:
$this->Viewer_AddBlocks('right',array('useronline','stream','blogs','usertop','tags'));


Мой список блоков (в нужном порядке):
1. Кто на сайте
2. Чат
3. Активность
4. Блоги
5. Топ пользователей
6. Теги
avatar
Не все сказал для ясности.
В файле ActionIndex.class.php стороки $this->Viewer_AddBlocks сейчас нет. В файле config.local.php описан только один блок — «usersonline» (на первой странице он выводится вторым). Файлы sidebar.tpl и sidebar_right.tpl — стандартные.

При таких настройках блок «Чат» выводится первым (надо — вторым). Где он подставляется? «Кто на сайте» — выводится вторым, а должен — первым.

Буду признателен за подсказки.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.