Если Вы используете в настройках форума вывод информации в блоке Объявление, то не всегда удобно, что оно отображается на всех страницах форума. Особенно, если информации в объявлении достаточно много и оно занимает место по высоте. Например, Вы хотите, чтобы объявление показывалось только на центральной странице форума, а при просмотре тем, сообщений и на других страницах - не выводилось или отображалось в свернутом виде, тогда данный код поможет Вам. Как вариант использования данной возможности можно отметить тот случай, когда, необходимо показывать блок Объявление лишь на некоторых страницах (например, выводить Правила или предупреждения лишь на странице отправки сообщения).
Скрипт управления имеет две основные переменные:
1. Anonce=flag; // Данная переменная - ОБЯЗАТЕЛЬНА! Если переменная не задана, то любые остальные настройки - игнорируются.
где flag - одно из 3-х значений, которое Вы устанавливаете, чтобы задать способ отображения по-умолчанию для всех страниц форума:
=-1 вообще не показывать блок Объявления (полностью скрывается)
= 0 отображается в свернутом виде, пользователю доступна ссылка, по которой он может развернуть\свернуть блок, чтобы прочитать инфо.
= 1 отображается в развернутом (обычном виде)
Пример:
Anonce=-1; //вообще не показывать блок везде
2. Вторая переменная определяет исключения (или более конкретный способ отображения для различных страниц форума).
AnonceOn=[s1,s2,s3.......]; Массив строк с отдельными указаниями способа отображения для отдельных страниц форума.
То есть, используя первый параметр Anonce=х - Вы устанавливаете сперва общий способ отображения для всех страниц форума, а затем уже можете задать отдельные способы отображения блока на некоторых страницах.
Строки (элементы) данного массива должны иметь формат: 'page:flag'
где page - условное имя типа страниц форума (см. таблицу - ниже) и через двоеточие flag - одно из трех значений для способа отображения блока именно на данной странице.
Например:
Вы установили Anonce=-1; То есть, по умолчанию не отображать блок вообще на всех страницах форума, но задав массив с двумя строками
AnonceOn=['userlist:0','profile:1']
указываете, что делаете исключения для двух типов страниц:
на странице "Участники" 0 - хотите отображать блок, но в свернутом виде
на странице "Профиль" 1 - хотите отображать блок полностью
Для указания типа страниц используйте следующую таблицу:
--- тип страниц --------- | Название страниц(ы) |
userlist | Участники |
search | Поиск |
profile | Профиль |
messages | Сообщения |
viewforum | Просмотр форума (список тем) |
viewtopic | Просмотр темы |
post | Новая тема |
poll | Новый опрос |
misc | Подписаться и отслеживать тему |
delete | Удалить сообщение |
edit | Редактировать |
new | Сообщения:новое сообщение |
show_new | Новые сообщения |
show_24h | Активные темы |
show_unanswered | Темы без ответов |
show_user | Мои сообщения |
show_subscriptions | Подписка |
markread | Все прочитано |
---------------------------------------------------------------------------------
Пример кода:
<SCRIPT> Anonce=0; //для всех страниц по-умолчанию показывать блок в свернутом виде //указываем конкретно как и для какой страницы показывать по-другому // для страниц Профиль - развернуто. // для страниц Участники, Просмотр форума, Просмотр темы - вообще не показывать. AnonceOn=[ 'userlist:-1', 'profile:1', 'viewforum:-1', 'viewtopic:-1', ]; </SCRIPT>
Куда вставлять код? Идем в: Администрирование >> Настройки - Основные - HTML верх
Дополнительные возможности скрипта.
Если Вы хотите изменить текст заголовка ("Объявление") на другой, используйте дополнительную переменную, указав свой текст заголовка:
AnonceText='Мой заголовок блока!';
Данная возможность удобна, если Вы хотите, чтобы блок отображал новости форума, тогда уместно будет использовать заголовок:
AnonceText='Новости нашего форума';
Для изменения цвета заголовка используйте переменную:
AnonceTextColor='green'; // зеленым цветом
В качестве значения можно указывать как название цвета, так и его запись в HEX формате (='#008000').
Особо отметим, что если переменной AnonceText присвоить пустую строку, то есть: AnonceText=''; ,то строка с заголовком вообще не будет отображаться. В этом режиме блок информации (сам текст объявления) в настройках форума можно использовать в качестве "подшапки" форума, настроив оформление с таблицами, фонами, своими ссылками и т.д. Ведь поле ввода текста объявления допускает полноценное применение HTML кода! Это является хорошей альтернативой на тот случай, если добавление своей шапки над основным меню - Вас не устраивает, а необходимо разместить блок оформления под основным навигационным меню форума.
Замечания.
У данного скрипта есть небольшой недостаток, связанный с тем, что работа скрипта по изменению параметров блока возможна только после полной загрузки страницы. На некоторых страницах, например, при просмотре тем и страницах с формой ответа - полная загрузка "затягивается" из-за необходимости загрузки большого числа смайликов (40-100 шт.), которые потом доступны для вставки в сообщение в режиме редактирования. В совокупности загрузка страницы может длиться порядка 2-5 и более секунд. Все это время блок "Объявление" виден в шапке данных страниц в "первозданном" виде, т.е. с неизмененным текстом заголовка, "родным" цветом и в развернутом виде. И лишь по окончанию догрузки всех элементов страницы - за долю секнды происходит работа по его сворачиванию (если задан режим отображения в свернутом виде), по замене текста и цвета или полное скрытие блока.
Данный эффект "задержки" не очень приятен, но его можно минимизировать,
добавив в Администрирование >> Настройки - Основные - HTML верх следующее описание для стиля блока "Объявления":
<STYLE>
#pun-announcement {visibility:hidden;}
</STYLE>Если у вас уже есть блок <STYLE>....</STYLE>, нет необходимости добавлять еще один блок с данной строкой. Просто добавьте саму строку в свой блок.
Скрипт управления блоком "Объявление" предусматривает то, что видимость данного блока может быть выключена и производит все необходимые действия по модификации блока, а затем включает видимость. В результате, в процессе загрузки "первозданный" вид блока - не виден, а сразу же включается результат по окончанию полной загрузки страницы.