Войти

Все для создания сайта

Начало » Статьи » UcoZ - сервисы » Конструктор шаблонов.

Глобальные коды конструктора шаблонов.
В конструкторе шаблонов под полем ввода кода есть описание глобальных кодов. Как уже говорилось в статье, описывающей конструктор шаблонов, эти коды есть логическое обозначение именем (переменной) определенного кода, для которого есть необходимость и смысл в таком наименовании. То есть, к примеру, $SITE_NAME$ - имя сайта (с англ. site - сайт,а name - имя), при указании этого кода будет выведено имя сайта. $HOME_PAGE_LINK$ - означает главную страницу сайта, то есть для этого сайта будет "http://design.ucoz.ru" и для того,чтобы написать из любого модуля ссылку на главную страницу сайта, достаточно использовать код: <a href="$HOME_PAGE_LINK$">Главная</a>. Это очень удобное решение, так как, например, при смене имени сайта, не потребуется делать это вручную на всех страницах, система автоматически все сама проделает.
Если говорить о шаблонах, то можно заметить, что все глобальные коды синтаксически строятся согласно одному стандарту, а именно, $код$, функционально они делятся на коды, которые можно использовать в операторах %IF($код$)%%ELSE%%ENDIF% и те, что нельзя. Если возле кода стоит значок *, то это означает, что данный код корректно будет отработан в операторе %IF($код$)%%ELSE%%ENDIF%. Обратите внимание, в конструкторе шаблонов глобальные коды расширены и они уже являются как бы прообразом для глобальных кодов в шаблонах. Синтаксически имеют вид: [код]. Интерпретируются при создании шаблонов в более локальные коды относительно глобальных кодов каркаса (но в то же время эти коды являются глобальными относительно шаблонов).
Рассмотрим пример, чтобы все наглядно стало ясно. Возьмем код [CALENDAR]. Встречая этот код, конструктор обрабатывает его и выводит в шаблон уже локальный $NEWS_CALENDAR$ для новостей, либо $CALENDAR$ для модуля "Дневник". Если такого свойства как календарь в модуле нету, то ничего не выводит (вспомните или прочтите об этом в первой статье этой категории). Заметьте, что этот код взят в оператор {IF} ... {ENDIF} именно чтобы сказать конструктору о необходимости проверки наличия этого свойства у модуля. Изучите внимательнейшим образом все описание этих кодов, они предоставляют воистину мощнейшие возможности.
Давайте рассмотрим практический пример. Допустим, нам нужно вывести описание модулей. Скажем, в модуле "Статьи" описать какие интересные и тематические у нас статьи, модуль "Дневник" прокомментировать тоже особым образом, в модуле "Файлы" прорекламировать хранимую информацию. Можно сделать это несколькими способами, как вариант, прописать вручную div-ми, к примеру. Или глобальные блоки создать в разделе "Управление блоком "Друзья сайта"" и вставить их в необходимое место каждого модуля. Но давайте поразмыслим. Есть что-то общее между всеми этими манипуляциями. То есть для каждого модуля один и тот же блок, в одном и том же месте (так как функция у этого блока одна - пользователь уже будет ждать для каждого модуля его в одном месте - ага, как собака Павлова:-)). Было бы неплохо сделать это все в каркасе - только чтобы система различала для какого модуля какой блок выводить. Есть глобальный код для конструктора шаблонов - зовется он $MODULE_ID$. Этот код несет в себе идентификатор модуля. На данный момент в описание его не включили, возможно включат позже. Этот код может принимать следующие значения (попробуйте прописать эту переменную в код каркаса и примените каркас ко всем модулям - так Вы сами увидите какие значения будут в каждом из модулей, должно получиться следующее): "Новости" - news, "Редактор страниц" - index, "Фотоальбом" - photo, "Каталог файлов" - load, "Дневник" - blog, "Каталог статей" - publ, "Каталог сайтов" - dir, "Доска объявлений" - board, "Гостевая книга" - gb, FAQ(вопрос/ответ) - faq. Если на момент прочтения статьи в системе появились новые модули, можно узнать название вышеуказанным методом лимбо догадаться по аналогии. Теперь у нас все есть для достижения цели. Создадим глобальный блок (с главной страницы панели управления зайдите в раздел "Управление блоком "Друзья сайта""), назовем его INFO_MODULE, код вызова будет $GLOBAL_INFO_MODULE$. Вставим в каркасе этот код в желаемое место и применим к шаблонам этот каркас. В $GLOBAL_INFO_MODULE$ пропишем следующий код:
%IF($MODULE_ID$=photo)%Это фотоальбом, здесь пользователи могут оставлять свои фото в упорядоченном хранилище. %ELSE%%IF($MODULE_ID$=blog)%Тут можно вести записи и получать на них комментарии.%ENDIF%%ENDIF%
В результате работы этого кода мы получим вывод на всех страницах фотоальбома надпись - "Это фотоальбом, здесь пользователи могут оставлять свои фото в упорядоченном хранилище.", а вот надпись "Тут можно вести записи и получать на них комментарии." выведется на каждой странице модуля "Дневник". Далее, используя глобальный код $PAGE_ID$ можно дополнительно указать на каких именно страницах выводить. Код %IF($PAGE_ID$=main)%%ENDIF% даст гарантию вывода информации лишь на главной странице каждого модуля, а объединение условий даст нужный результат (вернее их сложение). Перепишем код.
%IF($MODULE_ID$=photo)%%IF($PAGE_ID$=main)%Это фотоальбом,здесь пользователи могут оставлять свои фото в упорядоченном хранилище.%ENDIF%%ELSE%%IF($MODULE_ID$=blog)%%IF($PAGE_ID$=main)%Тут можно вести записи и получать на них комментарии.%ENDIF%%ENDIF%%ENDIF%
Теперь мы получили то, что хотели. Наглядную реализацию всего сказанного можно узреть вот тут. Сайт полностью управляется системой UcoZ и являет собой реализацию ее возможностей.
Категория: Конструктор шаблонов. | Добавил: design (22.12.06) | Автор: evra
Просмотров: 10892 | Комментарии: 6 | Рейтинг: 4.0 |
Комментарии
Всего комментариев: 6
6 09.01.07, 13:33 от Cooluck
Просто постарайтесь поделить текст на логические абзацы, каждому абзацу дать заголовок (h1)
"А скроллы мне нравятся", двойной скролл неудобен, где-то читал, и сам так считаю...
тяжело сказать что лучше, пока текст не структурирован...
Ответ: Может в будущем.

5 08.01.07, 17:55 от Cooluck
Теперь место не пустует, но читать текст всё равно сложно...
Ответ: Расширю место между строчками еще. Или само изложение? Если стиль написания, то читайте несколько раз - это я не смогу изменить, это то, как я мыслю smile А скроллы мне нравятся smile Вам больше нравится на всю страницу? Может тогда голосование в будущем, в смысле опрос.

4 08.01.07, 12:57 от Cooluck
Согласен с Павлом, возможно необходимо разбить на несколько абзацев, и убрать скрол, потому что на разрешении 1280*1024 место справа от скрола пустует(около 300 пикселей)
Двойной скрол на странице крайне неудобен
Ответ: Посмотрите, пожалуйста, сейчас. Скролл пока что оставила - может позже уберу, а пока скажите как с пустым местом там :-)

3 08.01.07, 01:40 от Glintwine
Очень полезная статья, её бы на форуме гденибудь гвоздем прибить, раз описание оператора в админке нет ...
Еще раз спасибо очень помогло ... Успехов ...
Ответ: Буквально сегодня пришла та же мысль.

2 08.01.07, 00:52 от Glintwine
Спасибо ... а откуда узнали про это $MODULE_ID$ или это я пропустил где в админке...?
Ответ: Нет, не пропустили. Понадобилось такое сделать - UcoZ подсказал.

1 08.01.07, 00:31 от ПАвел
Очень сложно читать Ваши тексты.
Подумайте о визуальном облегчении его(текста)
Ответ: Подумаю, когда время пройдет - и смогу посмотреть со стороны. Совет - читайте несколько раз. Просто такие инструкции сложно усваиваются мозгом с 1-ого раза. По себе знаю.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]