Комментарии

Привязка модулей и многошаблонность Joomla 2.5

Rate this item
(2 votes)

Сегодня мы уже умеем устанавливать Joomla 2.5, рассмотрели особенности структуры и файлов конфигурации, пробежались по настройкам и разобрали процесс установки расширений.

В принципе можно уже начать работать, но... До начала непосредственно создания сайта хочу остановится на одной очень важной теме - на привязке. Говоря о привязке мы подразумеваем шаблоны (если их используется 2 и более на сайте) и модули (этих по любому больше одного).

Итак, что же такое привязка по своей сути. Простыми словами, привязка - это управление отображением отдельных объектов (или сценария в целом) на страницах сайта. То есть, если у нас есть модуль (а он у нас есть и не один) мы можем отображать его на всех страницах или только на избранных. Тоже самое с шаблонами, Мы можем каждой странице назначить свой шаблон.

На практике это выглядит так: создается меню, создаются пункты этого меню, пункты меню и являются элементами привязки. Вновь созданные модули имеют привязку ко ВСЕМ пунктам меню (куда не ткни везде этот модуль) и для того, чтобы исключить его отображение на определенных страницах нужно задать привязку к пунктам меню.

Казалось бы чего здесь сложного? Все действительно просто, но нюансы всегда есть и рассмотреть их необходимо.

Мы создали два меню, пункты  в них  и для отображения обоих создали модули. Я не просто так показал два способа создания меню. Дело в том, что бывает так, что одно и то же меню отображается на разных страницах в разных местах (позициях). Для одного и того же меню можно создать несколько модулей и, привязав их к разным пунктам меню задать каждому свою позицию. Это очень важно, особенно, когда используются несколько шаблонов со своим набором позиций.

Для примера поставим следующую задачу.

Имеем два меню - горизонтальное "Main Menu" (далее "Главное") в верхней части сайта с тремя пунктами в и вертикальное  "Первое меню"  (далее "Левое") вертикальное с четырьмя пунктами в левой части сайта.

Условие: Левое меню отображается только на главной странице (пункт Главного меню "Главная") и на всех страницах "своих пунктов меню". Главное меню отображается только на страницах "своих пунктов меню" и исчезает при переходе в любой из пунктов Левого меню. Сейчас нам неважно, что и как будут отображать пункты меню, касательно привязки - это вообще никакого значения не имеет.

Смотрим:

В данном примере привязка простая.

Усложним задачу. Предыдущие условия остаются в силе, но теперь, Левое меню  должно подниматься на место Главного, когда то не отображается. Просто так этого не сделать, ведь модуль отображения меню уже выводится в определенной позиции. Что делать?

Смотрим:

Да, действительно, необходимо создать дополнительный модуль для отображения того же самого меню, но уже в другой позиции (в нашем случае в той же самой, что и Главное меню). В данном примере у нас получается, что Левое меню отображается только на главной, а на остальных (заданных) страницах - другой модуль.  При этом мы задали параметр "Скрыть заголовок" и ВСЕ работает!

Касательно модулей все не так уж и сложно, главное понять логику. Теперь шаблоны... С шаблонами ситуация схожа, но процесс привязки более трудоемкий, ведь нам нужно думать еще и о модулях. Дело в том, что информация о самих позициях записывается в базу данных. Эта информация содержит назначенную позицию и используемый шаблон.  Кроме того позиции модулей в разных шаблонах могут по просту отличаться по названию.

Еще больше усложним нашу задачу.

Допустим, нам необходимо назначить пункту "Первый" "Главного меню" второй шаблон (не важно какой, главное, чтобы он был установлен). Главное меню  отображается на всех страницах, кроме страницы со вторым шаблоном. Левое меню  также должно отображаться в своей левой позиции на всех страницах, только на странице со вторым шаблоном оно должно выводиться вместо Главного меню.

Смотрим как это сделать:

На самом деле при привязке модулей не обязательно "развязывать" их с пунктами меню, которым назначен "другой" шаблон, все равно вывода не произойдет (позиции и применяемые шаблоны прописаны в базе данных). Но, для того, чтобы  просто избежать путаницы лучше явно привязывать модули куда надо.

И еще...  Позицию модуля можно прописать вручную, поле ввода это позволяет. Но... Я настоятельно рекомендую использовать кнопку “Выбор позиции”. Если внести позицию вручную, то в базу данных может записаться (тем более если названия позиций разных шаблонов идентичны )  шаблон “по умолчанию”, и система будет выводить модуль именно в него....  модуль уже привязан к пункту меню, а пункт - к шаблону, результат - “потеря” модуля.

Read 15166 times

Добавить комментарий


Защитный код
Обновить