Комментарии

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

Rate this item
(2 votes)

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

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

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

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

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

View the embedded image gallery online at:
http://radiuspro.net/j-m-l1/item/26-binding#sigFreeIda57a625eae

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

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

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

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

Смотрим:

View the embedded image gallery online at:
http://radiuspro.net/j-m-l1/item/26-binding#sigFreeId1b1c4939e6

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

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

Смотрим:

View the embedded image gallery online at:
http://radiuspro.net/j-m-l1/item/26-binding#sigFreeId7d48ac64c6

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

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

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

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

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

View the embedded image gallery online at:
http://radiuspro.net/j-m-l1/item/26-binding#sigFreeIdc93331b36e

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

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

Read 13109 times

Комментарии   

0 #32 Ksawier Dmowski 07.07.2017 09:09
I am really grateful to the owner of this web site who has shared
this wonderful paragraph at at this time.
Цитировать
0 #31 Remigiusz Pytka 07.07.2017 04:29
What's up, this weekend is fastidious designed for me, since this point in time i am reading this enormous informative article here at my house.
Цитировать
0 #30 Alex Kaluża 06.07.2017 21:04
I'm truly enjoying the design and layout of your blog.

It's a very easy on the eyes which makes it
much more pleasant for me to come here and visit more often.
Did you hire out a designer to create your theme? Exceptional work!
Цитировать
0 #29 Roman Żadlo 06.07.2017 18:22
Peculiar article, exactly what I needed.
Цитировать
0 #28 Bruno Brzostowski 06.07.2017 09:49
I am regular reader, how are you everybody? This piece of writing posted at this web page is really nice.
Цитировать
0 #27 Radomil Kosinski 06.07.2017 04:00
Awesome post.
Цитировать
0 #26 Konstanty Konefal 05.07.2017 21:31
Great info. Lucky me I found your website by accident (stumbleupon).
I've bookmarked it for later!
Цитировать
0 #25 Jordan Jurek 05.07.2017 16:10
hello!,I really like your writing very so much! proportion we be in contact
extra about your post on AOL? I need an expert in this area to resolve my problem.
May be that is you! Having a look ahead to see you.
Цитировать
0 #24 Serafin Nocun 05.07.2017 09:34
Hello are using Wordpress for your site platform? I'm new to the blog world but I'm trying to get started and set up my own. Do you need
any coding knowledge to make your own blog? Any help would be greatly appreciated!
Цитировать
0 #23 Rudolf Brodzinski 05.07.2017 05:56
Wow, awesome blog layout! How long have you been blogging for?
you made blogging look easy. The overall look of your website is
fantastic, as well as the content!
Цитировать

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


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