Добавляем позицию модуля в код любого компонента Joomla 2.5 - 3.x

Рекомендую хостинг которым я пользуюсь

В одной из прошлых статей я Вам поведал о том как вставить модуль в материал Joomla 2.5-3.x

В этой статье я расскажу Вам как вставить модель не просто в материал, а вообще в любое место компонентов Joomla 2.5-3.x будь то стандартный компонент материалов Joomla, Joomshopping или Virtuemart... не имеет значение что это будет за компонент.

Каждый найдет свое применение этой информации, я, например, использовал этот метод вставки модуля рекламы Google Adwords в область сразу после заголовка статьи и непосредственно перед выводом комментариев.

Вы можете сказать что Вам это не нужно, и вам вполне хватает возможности вставлять модуль внутрь материала вставками типа {loadposition myposition}. Но, представьте что у Вас, уже имеется несколько десятков или сотен опубликованных ранее материалов и вы только сейчас решили разместить в них рекламу, попробуйте оценить сколько времени вам понадобиться чтобы все их отредактировать.

В общем каждый найдет свои причины использования этого метода вставки модуля, или не найдет и отвергнет его как нечто бесполезное.

Для тех кого интересует возможность вставки модуля в код любого компонента Joomla 2.5-3.x и пишется эта статья.

Хорош болтать. Начнем вставлять модуль в компонент джумле )))

Ну что ж друзья, давайте наконец-то
вставим Джумле модуль  😀 

Вставку модуля в компонент мы будем рассматривать на примере стандартного компонента материалов COM_CONTENT. Но вставкой модуля в материал Joomla мы заниматься не будем. Я придумал задачку чуток поинтереснее. Давайте вставим наш модуль с рекламой в блог после каждого третьего материала.

Для нашего эксперимента я создал обычный текстовый модуль и задал ему, несуществующую в активном шаблоне, позицию position-748

Вид модуля в админке

Далее, откроем в текстовом редакторе файл

/components/com_content/views/category/tmpl/blog.php

или если Вы все всегда делаете правильно, тот наверняка вы переопределили шаблоны вывода компонента и нужный файл уже будет по адресу

/templates/ВАШ_ШАБЛОН/html/com_content/category/blog.php

Необходимый нам код шаблона вывода материалов блога выглядит так:

Выводить наш модуль мы будем когда в переменную будут попадать числа кратные трем: 3, 6, 9, 12 и так далее. Чтобы определить эти моменты воспользуемся такой арифметической операцией как деление по модулю.

Для определения момента когда нужно выводить наш модуль, мы будем использовать переменную $leadingcount, которая как раз содержит порядковый номер выводимого материала. Начальное значение этой переменной нужно выставить равным единице, в противном случае первый раз модуль у нас будет выведен после первого материала, а второй раз не после 3-го а после 4-го.

Код условия для вывода модуля будет выглядеть следующим образом:

 

Теперь давайте перейдем непосредственно к коду, который и будет выводить наш модуль.
Для этих целей мы будем использовать стандартный Joomla PHP класс JModuleHelper и его методы getModules и renderModule.

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

Код вывода позиции модуля с одним, опубликованным в ней модулем:

 

Код вывода позиции модуля с несколькими опубликованными в ней модулями:

Так как у нас в позиции position-748 опубликован всего один модуль, то мы будем использовать первый вариант кода и в итоге после внесения правок код нашего модуля будет выглядеть следующим образом:

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

Результат внесения правок

Статья написана по материалам сайта http://site-on.net/create/cms/20-jmodulehelper

автор: Руслан Овчинников
Оценка: 1Оценка: 2Оценка: 3Оценка: 4Оценка: 5 (10 оценок, в среднем: 4,70 из 5)
Загрузка...