Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 25108 Просмотров
*

igol

  • Новичок
  • *
  • 4
  • 0
Нужно вставить несколько модулей в одну статью. Сейчас вставлен 1 через loadposition, если добавить таким же методом еще один, то не отображается вообще никакой модуль. Опубликовать на странице модуль стандартным методом нельзя, потому что статья не включена в меню.

http://atoll1.me-sto.ru/katalog/92-stoly-i-tumby
Joomla 1.7

Подобной темы не нашел. Не исключено что плохо смотрел, но все же нужен ответ)
« Последнее редактирование: 29.08.2013, 11:56:12 от b2z »
*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: Несколько модулей в 1 статье
« Ответ #1 : 29.05.2012, 14:34:56 »
Синтаксис плагина Content - Load Modules
{loadposition user1} выводит все модули опубликованные в позиции user1 их может быть несколько
{loadmodule mod_login} выводит один модуль в данном случае mod_login
Вы можете привязать статью к меню, а меню не публиковать, привязать модули к меню
Вы можете создать альтернативный шаблон документа (Alternative Layout) и указать в настройках данного материала, тогда модули нужно выводить в шаблоне материала примерно так:
Вывод позиции модуля
Код: php-brief
<?php //вывод позиции модулей
$document   = JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'user1';
echo $renderer->render($position, $options, null);
?>
или
Код: php-brief
<?php
$modules =JModuleHelper::getModules('position-0');
foreach ($modules as $module){
   echo JModuleHelper::renderModule($module);
}
?>
Вывод одного модуля
Код: php-brief
<?php //Вывод одного модуля
$document   = JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_custom_banners');
$module->params    = "heading=2\nlimit=10"; //как видим даже параметры задавать
echo $renderer->render($module, $options);
?>
или
Код: php-brief
<?php
$module = JModuleHelper::getModule('mod_banners');
echo JModuleHelper::renderModule($module);
?>
Вывод модуля по id
Код: php-brief
<?php //выводим модуль по id
$document = JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$params = array('style'=>'xhtml');
$dbo = JFactory::getDBO();
//получить модуль как объект
$dbo->setQuery("SELECT * FROM #__modules WHERE id='111' ");
$module = $dbo->loadObject();
//убрать предупреждение
$module->user = '';
echo $renderer->render($module, $params);
 ?>
Или те-же {loadposition user1} и {loadmodule mod_login}
Данный синтаксис приведен для любых компонентов Joomla
Если по каким-то причинам компонент не обрабатывает плагин строку{loadposition user1}, то тогда смотрите здесь как подключить плагин к компоненту.
Вы можете передавать параметры в модули - описание как передать параметры.
Вы можете привязать вывод модулей используя различные условия в шаблонах Joomla
*

igol

  • Новичок
  • *
  • 4
  • 0
Re: Несколько модулей в 1 статье
« Ответ #2 : 29.05.2012, 14:50:03 »
Допустим если будет статей и каждой нужно вывести 2 модуля. Соответственно содержимое их будет разное. Тогда придется делать 10 альтернативных шаблонов?
*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: Несколько модулей в 1 статье
« Ответ #3 : 29.05.2012, 15:01:40 »
Если модули одни и те-же то только один шаблон(Или передавать какие то параметры для генерации разного контента).
Также можно использовать плагин Sourcerer. Тогда php код можно добавлять прямо в материале и прямо в материале передавать параметры для вызова модулей
*

Shustry

  • Группа развития
  • *****
  • 6426
  • 733
  • Рисую дизайны
Re: Несколько модулей в 1 статье
« Ответ #4 : 29.05.2012, 15:36:54 »
...
Вывод одного модуля
Код
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_custom_banners');
$module->params    = "heading=2\nlimit=10"; //как видим даже параметры задавать
echo $renderer->render($module, $options);
...
Так работало ещё в J1.5. Для 2.5 надо так:
Код: php
$params = json_decode( $module->params );
$params->ajparam = JRequest::getVar('ajparam'); //тут оверрайдим наш параметр.
$module->params = json_encode( $params );
Мопед не мой, но сам регулярно использую. Автрор - всем-известный-программер: http://old.nonumber.nl/component/kunena/12-modules-anywhere/16652-overriding-parameters-problem-in-joomla-16
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: Несколько модулей в 1 статье
« Ответ #5 : 29.05.2012, 15:46:51 »
Цитировать
Так работало ещё в J1.5. Для 2.5 надо так:
Shustry приведенный мною код работает в 1.5 и 2.5
Смотрите подробнее в теме как передать параметры модулю еще на один мой велосипед неописанный в документации
*

Shustry

  • Группа развития
  • *****
  • 6426
  • 733
  • Рисую дизайны
Re: Несколько модулей в 1 статье
« Ответ #6 : 29.05.2012, 16:07:44 »
Shustry приведенный мною код работает в 1.5 и 2.5
Смотрите подробнее в теме как передать параметры модулю еще на один мой велосипед неописанный в документации
Да мне вообще нравятся Ваши велосипеды. Но в конкретном, данном случае, я немного неверно написал. Ваше решение рабочее но нерациональное.
Код
$module->params    = "heading=2\nlimit=10"; //как видим даже параметры задавать
Здесь Вы затираете оригинальные параметры. Т.е. необходимо прописать ВСЕ параметры модуля, кроме того, который нужно заменить. А их может быть 20-30... и более.
Логичнее раскодировать из джейсона в объект, поменять только то, что нам надо, обратно закодить. Удобнее же.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

ecolora

  • Живу я здесь
  • ******
  • 1410
  • 168
  • творец
Re: Несколько модулей в 1 статье
« Ответ #7 : 29.05.2012, 17:10:04 »
Modules Anywhere

Вам и бесплатной хватит за глаза.
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!
*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: Несколько модулей в 1 статье
« Ответ #8 : 29.05.2012, 17:56:42 »
ecolora Вы считаете, что использование плагина с регулярными выражениями парсящий весь контент сайта. Решением лучше прямого вызова в коде модуля. Приведенный вами плагин делает все то-же, что и описано выше. Но это громоздкий комбайн. И у меня возникают сомнения при использовании плагина от nonumber и безопасностью. Скажем пользователь с фронта разрешено статьи писать постить и т. д. Специально подобранная комбинация символов позволит сработать плагину и вывести желаемый результат. Или я не прав.
*

ecolora

  • Живу я здесь
  • ******
  • 1410
  • 168
  • творец
Re: Несколько модулей в 1 статье
« Ответ #9 : 29.05.2012, 18:02:35 »
Специально подобранная комбинация символов позволит сработать плагину и вывести желаемый результат. Или я не прав.
С большей загруженностью согласен. Удобство в том, что не надо править код и не надо его еще раз править после апдейтов и потом еще раз... кто знает какие файлы накатит апдейт?

Про комбинацию... не понял я что Вы имеете в виду. Приведите пример.
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!
*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: Несколько модулей в 1 статье
« Ответ #10 : 29.05.2012, 18:08:41 »
Цитировать
и не надо его еще раз править после апдейтов
Зачем править после обновления, здесь мы рассматривали альтернативные макеты вывода. Они останутся после обновления.
Про комбинацию. {module 3} с фронта или в посте напишу.
*

midav

  • Живу я здесь
  • ******
  • 927
  • 113
Re: Несколько модулей в 1 статье
« Ответ #11 : 30.05.2012, 01:05:11 »
Нужно вставить несколько модулей в одну статью. Сейчас вставлен 1 через loadposition, если добавить таким же методом еще один, то не отображается вообще никакой модуль.
А как Вы вставляете ? Нормально должны отображаться модули из разных позиций , вставленые через loadposition .
Ответы на вопросы по CSS . Откройте для себя Firebug
*

Gatispan

  • Новичок
  • *
  • 9
  • 0
Re: Несколько модулей в 1 статье
« Ответ #12 : 02.03.2013, 11:03:06 »
Здравствуйте.
Подскажите пожалуйста, а как можно совместить вывод модулей по ID 
Код
<?php //выводим модуль по id
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$params = array('style'=>'xhtml');
$dbo = JFactory::getDBO();
//получить модуль как объект
$dbo->setQuery("SELECT * FROM #__modules WHERE id='100' ");
$module = $dbo->loadObject();
//убрать предупреждение
$module->user = '';
echo $renderer->render($module, $params);
 ?>
с их выводом в шаблоне Yootheme?
Код
<?php if ($this['modules']->count('sidebar-b')) : ?>
<aside id="sidebar-b" class="grid-box"><?php echo $this['modules']->render('sidebar-b', array('layout'=>'stack')); ?></aside>
<?php endif; ?>
В принципе, вывод работает, но стили не соблюдаются. Подскажате пожалуйста, кто силен.
*

borro

  • Живу я здесь
  • ******
  • 1272
  • 21
  • желаю вам счастья
Re: Несколько модулей в 1 статье
« Ответ #13 : 03.03.2013, 17:28:11 »
Благодарю, разобрался
« Последнее редактирование: 03.03.2013, 17:31:19 от borro »
*

rostis

  • Захожу иногда
  • **
  • 10
  • 2
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #14 : 04.09.2013, 02:16:33 »
Прошу помощи! Проблема похожая, а найти решение не могу.
Joomla 1.7. Нужно вывести несколько модулей в одной статье.
Прописываю:
{loadposition position-1}
{loadposition position-2}
Но вместо того, чтобы показать в статье модули из двух разных позиций, плагин почему-то дважды выводит один из модулей - тот, который был создан раньше.
Перевернул форум, но ни у кого не было подобной проблемы.
В общем, нужна помощь, сам не осилю.
П.С. Интересно, что на 1.5 все работает, как положено. Подскажите хоть где копать.
« Последнее редактирование: 04.09.2013, 03:28:43 от rostis »
*

rostis

  • Захожу иногда
  • **
  • 10
  • 2
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #15 : 06.09.2013, 17:07:57 »
Решение предыдущей проблемы, как это часто бывает, оказалось лежало на поверхности.  ^-^
Любую проблему с выводом модулей можно решить благодаря кодам вывода, опубликованным во втором посте этой темы от Fedor Vlasenko. Нужно только поработать с файлом фаблона: templates/ваш шаблон/html/com_content/article/default.php
Открываем файл, вставляем нужный код из этой темы в нужное место, не забывая указать свои позицию или имя модуля, сохраняем файл шаблона под другим именем и задаем его в параметрах материала. И - вуаля! Все выводится хоть вдоль, хоть поперек!
Спасибо, Fedor Vlasenko!  *DRINK*
*

seva01020304

  • Новичок
  • *
  • 1
  • 0
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #16 : 07.09.2013, 14:56:32 »
Здравствуйте, уважаемый друзья!
столкнулся с одной задачей, никак не могу убрать меню слева (Modul) при просмотре товара VirtueMart.

у меня Joomla 2.5 VirtueMart 2.. version и вот позиция моего шаблона  templates/ot_sexyqueen/index.php

Код
<div class="oMainBlock">
<div class="container">

<?php echo $omg->includeSidebarsAndComponent("sidebar", "standard", "standard"); ?>


</div>
</div>
PS (только в просмотре товара)
Primer http://recmg.com/butik/index.php/shop-store/view/productdetails/virtuemart_product_id/47/virtuemart_category_id/25

с уважением Azad
*

Roinmana

  • Осваиваюсь на форуме
  • ***
  • 87
  • 1
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #17 : 07.10.2014, 00:17:06 »

Вывод позиции модуля
Код: php-brief
<?php
$modules =JModuleHelper::getModules('position-0');
foreach ($modules as $module){
   echo JModuleHelper::renderModule($module);
}
?>
Вывожу таким образом позицию и привязываю к ней модуль "Метки". Одна беда - не выводится название модуля (хотя в настройках указано "Отображать"). При вставке модуля в обычном режиме название присутствует. Как доработать, чтобы отображалось название?
*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #18 : 07.10.2014, 00:33:45 »
а если в  так попробовать
Код: php-brief
<?php
$modules =JModuleHelper::getModules('position-0');
$html = '';
foreach ($modules as $module){
$html .= '<h3>' . $module->title. '</h3>' . JModuleHelper::renderModule($module);
}
echo html;
?>
*

midav

  • Живу я здесь
  • ******
  • 927
  • 113
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #19 : 07.10.2014, 01:04:43 »
Вывожу таким образом позицию и привязываю к ней модуль "Метки". Одна беда - не выводится название модуля (хотя в настройках указано "Отображать"). При вставке модуля в обычном режиме название присутствует. Как доработать, чтобы отображалось название?
По умолчанию модули выводятся со стилем 'none' . Чтобы добавить другой стиль вывода, нужно указать его в массиве параметров :
Код: php
$modules =JModuleHelper::getModules('position-0');
$attr = array('style' => 'xhtml');
foreach ($modules as $module){
   echo JModuleHelper::renderModule($module, $attr);
}
Стиль можно указать любой, который нужно . 'xhtml' это один из стилей вывода модулей по умолчанию . Вывод заголовка в нем предусмотрен .
« Последнее редактирование: 07.10.2014, 01:11:02 от midav »
Ответы на вопросы по CSS . Откройте для себя Firebug
*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #20 : 22.12.2014, 05:08:52 »
<?php //Вывод одного модуля
$document   = JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_custom_banners');
$module->params    = "heading=2\nlimit=10"; //как видим даже параметры задавать
echo $renderer->render($module, $options);
?>

а как быть если мне нужно вывести материалы из двух категорий?
Как это нужно задать в параметрах $module->params ?
Как правильно указать несколько категорий, материалы из которых нужно выводить в модуле?
Пробовал перечислять категории через запятую (\nlimit=10, 11) - не работает. Подскажите пожалуйста, как это можно реализовать
*

Roinmana

  • Осваиваюсь на форуме
  • ***
  • 87
  • 1
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #21 : 07.03.2016, 00:11:02 »
По умолчанию модули выводятся со стилем 'none' . Чтобы добавить другой стиль вывода, нужно указать его в массиве параметров :
Код: php
$modules =JModuleHelper::getModules('position-0');
$attr = array('style' => 'xhtml');
foreach ($modules as $module){
   echo JModuleHelper::renderModule($module, $attr);
}
Стиль можно указать любой, который нужно . 'xhtml' это один из стилей вывода модулей по умолчанию . Вывод заголовка в нем предусмотрен .
Работает!