Автоматический вывод модуля в статье

  • 23 Ответов
  • 282 Просмотров

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

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Здравствуйте, подскажите как сделать автоматический вывод модуля в статье. То есть где то в шаблоне прописать код, что бы при создание статьи, модуль выводился сам, без добавлений всяких лоуд модуль и т.д. Модуль для рекламы и желательно что он разделял контент и появлялся например сразу после интро текста.

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
В этой теме http://joomlaforum.ru/index.php/topic,334942.0.html нашел подходящий ответ, а именно
Цитировать
Можно сделать проще, опубликовать модуль где нибудь на сайте так, чтобы сам блок был изначально скрыт и добавить немного jquery
Код
// вставить что-то после чего то
// модуль после второго абзаца
var p2 = $(".item-page p:nth-of-type(2)");
if (p2) {
   var user8content = $('#user8').html(); // получили HTML модуля по заданному ID или классу можно и вставили после 2-го абзаца материала
   $(p2).after('<div id="loadmod_wrapper">'+user8content+'<div class="clear"></div></div>');
}
не понятно куда вставлять этот код? В шаблон статьи или в отдельный модуль? И где и что нужно подставлять:
user8content - что это, менять или оставить?
#user8 - это позиция или имя модуля? можно ли там прописать свою позицию не существующею, на которую привязан модуль, то есть #zzzz или же его ID #272
loadmod_wrapper - это что такое?

*

Sergeyy

В шаблонe статьи
Код
<?php echo JHtml::_('content.prepare', '{loadposition reklama}'); ?>
reklama - новая позиция
joomla 2.5

*

Septdir

  • *******
  • 2101
  • [+]106 / [-]0
  • JoomlaZen
Можно воспользоваться старым добрым loadRenderer('modules').
Ну к примеру так можно вывести модули из позиции position_name со стилем модуля default
Код: php
<?php 
$doc = JFactory::getDocument();
$modules = $doc->loadRenderer('modules');
?>
<?php if (!empty($modules->render('position_name'))): ?>
<?php echo $modules->render('position_name', array('style' => 'default')); ?>
<?php endif; ?>
Погуглите в общем
« Последнее редактирование: 05.02.2017, 14:04:46 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
В шаблонe статьи
Код
<?php echo JHtml::_('content.prepare', '{loadposition reklama}'); ?>
reklama - новая позиция
Простите, а можно по подробней. я поставил вашу строку в шаблон, а дальше? Код который я привел выше вставлять в модуль. Мне ведь надо что бы он вставлялся после второго абзаца.

*

SeBun

Зайдите в менеджер шаблонов, далее "Шаблоны", "Параметры", "Создать переопределение". Создайте переопределение вашего шаблона, отвечающего за вывод материала, это "com_content/article". После этого вы можете изменить макет вашего шаблона. Переопределение будет расположено в папке "ваш_шаблон/html/com_content/article/default.php". Найдите место, где хотите вывести рекламный блок и вставляйте его туда. Никаких модулей и правки самого шаблона делать не нужно. Надоела реклама - просто удалите переопределение, шаблон останется целым.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Sergeyy

Код который я привел выше вставлять в модуль. Мне ведь надо что бы он вставлялся после второго абзаца.
Мой код вставляйте в то место шаблона материала(предпологаю com_content/views/article/tmpl/default.php), где нужно отобразить модуль( рекламу). Да, как сказано выше, шаблон лучше переопределить.

Далее (если реклама содержит javascript, Google или Яндекс-РТБ допустим) создаем модуль html-код и вставляем код рекламы, отключив редактор!

Публикуем модуль в позицию "reklama"

Если ваш код рекламы содержит php, то ответ от SeBun или писать свой модуль.

joomla 2.5

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Мой код вставляйте в то место шаблона материала(предпологаю com_content/views/article/tmpl/default.php), где нужно отобразить модуль( рекламу). Да, как сказано выше, шаблон лучше переопределить.

Далее (если реклама содержит javascript, Google или Яндекс-РТБ допустим) создаем модуль html-код и вставляем код рекламы, отключив редактор!

Публикуем модуль в позицию "reklama"

Если ваш код рекламы содержит php, то ответ от SeBun или писать свой модуль.


Вы чет не слышете или не понимате че я спрашиваю)) Нету в шаблоне места для вставке ПОСЛЕ ВТОРГО АБЗАЦА. То что вы предлагаете я могу воткнуть только либо перед контентом, либо после него. А мне нужно воткнуть внутрь.

*

Sergeyy

Модуль для рекламы и желательно что он разделял контент и появлялся например сразу после интро текста.
Вставляйте после introtext
joomla 2.5

*

SeBun

Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Вставляйте после introtext
Да спасибо, сейчас так и стоит. Но хотелось бы что бы после конкретного абзаца

*

SeBun

Вот еще тема
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Почитайте


Вы просто спамите чтоли? Я знаю как просто вставить рекламу в статью, как модулем и .тд. Мне нужно после конкретного абзаца и автоматически.

*

SeBun

А почему вы говорите, что знаете, но даже не удосужились почитать то, что я даю? Там были ответы на ваши вопросы. Вот последняя ссылка. Разжовано досконально и с картинками. Читайте внимательно, я сам этот модуль одно время использовал. Реклама - в абсолютно любом месте материала.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Septdir

  • *******
  • 2101
  • [+]106 / [-]0
  • JoomlaZen
Вы просто спамите чтоли? Я знаю как просто вставить рекламу в статью, как модулем и .тд. Мне нужно после конкретного абзаца и автоматически.
Как автоматически? если хотите тобы вам помогли то пишите логику. Как вариант так написать js и после выгрузки стать через append ставить рекламный блок куда нужно по селектору. Можно вообще считат ькол-во азацев и если их больше X то после N добавлять.
Можно написать контент прагин который будет вставлять рекламный блок в определенное место по шорткоду.
Можно написать компонент в котором будут храниться разные рекламы а вы будете по id через плагин выводить где нужно.
.... Все приход кончился...
Все упирается в вашу фантазию
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

Sergeyy

в шаблоне кстати нету $item->introtext
он в com_content/views/article/view.html.php
joomla 2.5

*

SeBun

в шаблоне кстати нету $item->introtext
Ну а что мешает после интротекста в материале написать, к примеру,  {loadmodule me_good_molule} ?
Или в начале основного текста материала? И вместо этой строки будет выведен рекламный баннер.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Sergeyy

Ну не в каждом же материале вставлять?
joomla 2.5

*

Sergeyy

Как вариант отключить интро в настройках и вствить перед text
Код
<?php echo $this->item->text; ?>
introtext
Код
<?php echo $this->item->introtext; ?>

Ну или считать символы, строки, абзацы
joomla 2.5

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Как автоматически? если хотите тобы вам помогли то пишите логику. Как вариант так написать js и после выгрузки стать через append ставить рекламный блок куда нужно по селектору. Можно вообще считат ькол-во азацев и если их больше X то после N добавлять.
Можно написать контент прагин который будет вставлять рекламный блок в определенное место по шорткоду.
Можно написать компонент в котором будут храниться разные рекламы а вы будете по id через плагин выводить где нужно.
.... Все приход кончился...
Все упирается в вашу фантазию
Я же привел пример того кода который мне нужен
Код
var p2 = $(".item-page p:nth-of-type(2)");
if (p2) {
   var user8content = $('#user8').html(); // получили HTML модуля по заданному ID или классу можно и вставили после 2-го абзаца материала
   $(p2).after('<div id="loadmod_wrapper">'+user8content+'<div class="clear"></div></div>');
}
Но я не знаю как им пользоваться

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Ну не в каждом же материале вставлять?
ну так переопределений сколько угодно можно сделать

*

axel030392

  • ***
  • 80
  • [+]0 / [-]0
  • ЯБлог тут нет
Как вариант отключить интро в настройках и вствить перед text
Код
<?php echo $this->item->text; ?>
introtext
Код
<?php echo $this->item->introtext; ?>

Ну или считать символы, строки, абзацы
Интро нужно, а вот на счет считать символы или строки и абзацы, так так, мы у цели)) можно поподробней об этом

*

Sergeyy

Интро ни куда не денется!
Отключите в настройках интро
Вставьте в шаблоне материала перед
Код
<?php echo $this->item->text; ?>

Код
<?php echo $this->item->introtext; ?>

будет и интро и фулл.
А между ними позицию модуля
joomla 2.5