Joomla МodulesAnywhereСовсем недавно при смене шаблона своего блога столкнулся с проблемой отсутствия дополнительных размеченных мест под различные модули Joomla в только что установленном шаблоне, а также с необходимостью внедрить модульные позиции в сторонние компоненты, в которых старая добрая уловка loadposition естественно не работает. Решение было как обычно найдено на сайте ребят из NoNumber - это плагин ModulesAnywhere. Что это такое, как его правильно едят и наглядный пример с моего блога, читаем и комментируем под катом этого поста.

 

Ну сначала нам нужно скачать данный плагин, кстати поэтому этот пост я добавил в раздел "плагины". Сделать это можно на официальном сайте разработчиков nonumber.nl


1. Установка и настройка.

Архив нужно сначала распаковать. Там вы обнаружите 2 файла. Один собственно файл нашего плагина, а второй это его русская локализация. Устанавливаем оба файла как обычные расширения для Joomla через Расширения - Установить \ Удалить. Если все прошло гладко, то Joomla сообщит что все тип-топ подобными сообщениями, как на скриншотах:

ModulesAnywhere для Joomla 1.5

ModuleAnywhere для Joomla

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

alt

Ну после чего можно пойти и ознакомиться с настройками самого супер-пупер плагина щелкнув по его названию. Нашему взгляду откроется вот такое вот меню настроек ModulesAnywhere (соответственно на русском, если вы установили 2й файл из архива), нажмите клавишу F для просмотра скриншота в нормальном разрешении:

Настройки плагина ModulesAnywhere для Joomla

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

В общем страница настроек в самом начале включает мини руководство к действию, теперь же давай-те попробуем перейти к практике. Укажем дополнительное модульное место под нижний баннер в компоненте который называется DocMan и на котором собственно и работает мой файловый архив (сам модуль я заранее создал и опубликовал в несуществующей пока позиции bottom-banners).

alt

Что нам для этого нужно? Просто в нужном месте указать специальный тег modulepos (в примерах ниже я изменил на свой - moduleposition) c указанием названием места. Я назвал его соответственно bottom-banners. Т.е. нужно вставить вот такой тег с указанием позиции:

{CODE type:php;} {moduleposition bottom-banners} {/CODE}

2. Встраиваем модульную позицию в сторонний компонент - на примере DocMan.

Куда вставлять уже требует от нас кое-каких представлений о структуре самого компонента, куда мы хотим запихнуть сие чудо. Так как компонент DocMan использует так называемые темы, а использую я стандартную, то я как раз и пошел копать ее самую. Так как я хотел добавить дополнительное место под модуль в самый них категорий компонента, я нашел файл отвечающий за это. Им я оказался некий list.tpl.php в папке components/com_docman/themes/default/templates/categories. Я добавил в 44 строку файла (в самый низ) нашу строчку:

{CODE type:php; first-line: 44;} {moduleposition bottom-banners} {/CODE}

3. Встраиваем новую позицию модуля в "Еще статьи" Joomla.

Далее мне захотелось что бы этот же баннер отображался уже внизу страниц моего блога над блоком "Еще статьи...", которые отображаются как раз в формате blog, т.е. это непосредственно главная страница, а также все страницы категорий из левого меню топики. Это уже не какой-то другой компонент, а сама Joomla. Точнее мой шаблон, который использует свои файлы разметки (многие современные используют свои, находятся они в папке шаблона в директории html/com_content/).

Открываем файл default.php в папке templates/ваш_шаблон/html/com_content/frontpage и экспериментируем со вставкой нашего кода в разные места, дабы модуль отобразился именно там, где нам нужно. У меня в шаблоне JA_Zinc получилось вставить код в конец 83 строки, после чего на главной странице сайта внизу появился мой баннер. Что же касается отображение на страницах категорий в формате блога, то тут уже нужно было подредактировать файл blog.php в папке templates/ваш_шаблон(у меня ja_zinc)/html/com_content/category/ и в конец 86й строки добавить строку плагина, после чего и на страницах категорий баннер аккуратно начал появлятся.

Если у вашего шаблона нет своих html файлов разметки, то он использует стандартные, поэтому нужно будет аналогично поизучать папочку components/com_content/views.

Из общих советой по добавлению строки плагина в код есть один, но очень важный, старайтесь чтобы {moduleposition} находился до или после открывающих или закрывающих тегов php. Дерзайте и у вас обязательно все получится!

Комментарии  

0 #2 Ягнёнок 07.11.2014 20:20
Цитирую Урал:
Доброго времени суток, подскажите пожалуйста. Можно ли один модуль встроить в другой? Проблема в том что есть позиция в футере с установленном в нем модуле, нужно другой модуль встроить в существующий, модуль занимает всю ширину страницы(кот.стоит) и в нем текст с левой стороны а справа есть небольшое пространство куда может влезть модуль ссылок соц.сетей(кот.хочу встроить).

с помощью компонента modules anywhere можно встроить модуль хоть куда http://www.nonumber.nl/
Цитировать
0 #1 Урал 07.11.2014 09:38
Доброго времени суток, подскажите пожалуйста. Можно ли один модуль встроить в другой? Проблема в том что есть позиция в футере с установленном в нем модуле, нужно другой модуль встроить в существующий, модуль занимает всю ширину страницы(кот.ст оит) и в нем текст с левой стороны а справа есть небольшое пространство куда может влезть модуль ссылок соц.сетей(кот.х очу встроить).
Цитировать

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

Вы можете оставить комментарий авторизовавшись через любую из представленных социальных сетей ниже:

                 


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