0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 31741 Просмотров
*

igol

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

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

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Несколько модулей в 1 статье
« Ответ #1 : 29.05.2012, 12: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 / 0
Re: Несколько модулей в 1 статье
« Ответ #2 : 29.05.2012, 12:50:03 »
Допустим если будет статей и каждой нужно вывести 2 модуля. Соответственно содержимое их будет разное. Тогда придется делать 10 альтернативных шаблонов?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Несколько модулей в 1 статье
« Ответ #3 : 29.05.2012, 13:01:40 »
Если модули одни и те-же то только один шаблон(Или передавать какие то параметры для генерации разного контента).
Также можно использовать плагин Sourcerer. Тогда php код можно добавлять прямо в материале и прямо в материале передавать параметры для вызова модулей
*

Shustry

  • Гуру
  • 6434
  • 744 / 3
Re: Несколько модулей в 1 статье
« Ответ #4 : 29.05.2012, 13: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
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Несколько модулей в 1 статье
« Ответ #5 : 29.05.2012, 13:46:51 »
Цитировать
Так работало ещё в J1.5. Для 2.5 надо так:
Shustry приведенный мною код работает в 1.5 и 2.5
Смотрите подробнее в теме как передать параметры модулю еще на один мой велосипед неописанный в документации
*

Shustry

  • Гуру
  • 6434
  • 744 / 3
Re: Несколько модулей в 1 статье
« Ответ #6 : 29.05.2012, 14:07:44 »
Shustry приведенный мною код работает в 1.5 и 2.5
Смотрите подробнее в теме как передать параметры модулю еще на один мой велосипед неописанный в документации
Да мне вообще нравятся Ваши велосипеды. Но в конкретном, данном случае, я немного неверно написал. Ваше решение рабочее но нерациональное.
Код
$module->params    = "heading=2\nlimit=10"; //как видим даже параметры задавать
Здесь Вы затираете оригинальные параметры. Т.е. необходимо прописать ВСЕ параметры модуля, кроме того, который нужно заменить. А их может быть 20-30... и более.
Логичнее раскодировать из джейсона в объект, поменять только то, что нам надо, обратно закодить. Удобнее же.
*

ecolora

  • Завсегдатай
  • 1527
  • 171 / 2
  • творец
Re: Несколько модулей в 1 статье
« Ответ #7 : 29.05.2012, 15:10:04 »
Modules Anywhere

Вам и бесплатной хватит за глаза.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Несколько модулей в 1 статье
« Ответ #8 : 29.05.2012, 15:56:42 »
ecolora Вы считаете, что использование плагина с регулярными выражениями парсящий весь контент сайта. Решением лучше прямого вызова в коде модуля. Приведенный вами плагин делает все то-же, что и описано выше. Но это громоздкий комбайн. И у меня возникают сомнения при использовании плагина от nonumber и безопасностью. Скажем пользователь с фронта разрешено статьи писать постить и т. д. Специально подобранная комбинация символов позволит сработать плагину и вывести желаемый результат. Или я не прав.
*

ecolora

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

Про комбинацию... не понял я что Вы имеете в виду. Приведите пример.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Несколько модулей в 1 статье
« Ответ #10 : 29.05.2012, 16:08:41 »
Цитировать
и не надо его еще раз править после апдейтов
Зачем править после обновления, здесь мы рассматривали альтернативные макеты вывода. Они останутся после обновления.
Про комбинацию. {module 3} с фронта или в посте напишу.
*

midav

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

Gatispan

  • Новичок
  • 9
  • 0 / 0
Re: Несколько модулей в 1 статье
« Ответ #12 : 02.03.2013, 09: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

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

rostis

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

rostis

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

seva01020304

  • Новичок
  • 1
  • 0 / 0
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #16 : 07.09.2013, 12: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

  • Захожу иногда
  • 108
  • 2 / 0
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #17 : 06.10.2014, 22:17:06 »

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #18 : 06.10.2014, 22: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

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

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #20 : 22.12.2014, 03: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

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

kilnart

  • Захожу иногда
  • 205
  • 0 / 0
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #22 : 22.12.2017, 00:23:14 »
подскажите, как в item.php k2 в основной части статьи <?php echo $this->item->fulltext; ?> после каждого H2 добавить модуль?
*

kilnart

  • Захожу иногда
  • 205
  • 0 / 0
Re: [FAQ] Несколько модулей в 1 статье
« Ответ #23 : 22.12.2017, 11:13:06 »
Нашел вот такой код, но он выводится после заданного мною количества абзацев.

Код
<?php function addContent($addTo, $add, $cntRep, $after = '</p>', $openTag = '<div align="center">', $closeTag = '</div>')
{
$posAfter = 0;
for ($i=0; $i < $cntRep; $i++) {
$pos = stripos($addTo, $after, $posAfter);
$posAfter = $pos+strlen($after);
if($pos===FALSE){
return $addTo;
}
}
$beforeAdding = substr($addTo, 0, $posAfter);
$afterAdding = substr($addTo, $posAfter);
$result = $beforeAdding . $openTag . $add . $closeTag . $afterAdding;
return $result;
}
// конец addContent
 
$this->item->fulltext = addContent($this->item->fulltext,'<div>любой код</div>',5);
 
echo $this->item->fulltext;
?>

В моем случае хочу добавить модуль 1, после каждого H2 и модуль 2, после каждого Н3 встречающегося в $this->item->fulltext. Как это сделать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не отображаются позиции модулей при вводе /?tp=1

Автор mor4eGG

Ответов: 9
Просмотров: 2717
Последний ответ 22.10.2021, 13:29:37
от yevrowl
несколько цен для товара

Автор abonnent

Ответов: 0
Просмотров: 781
Последний ответ 20.10.2017, 12:16:07
от abonnent
Кнопка в статье сайта

Автор Vit_51

Ответов: 1
Просмотров: 911
Последний ответ 24.01.2017, 12:55:19
от effrit
Как пагинировать материал(создать несколько страниц из одного материала)?

Автор borro

Ответов: 26
Просмотров: 7706
Последний ответ 31.10.2015, 08:32:56
от KKAAZZOO
Делясь новостью в соц. сетях прикрепляется и выдается текст со сторонних модулей

Автор Igoritaly

Ответов: 0
Просмотров: 1000
Последний ответ 25.09.2015, 09:14:06
от Igoritaly