Как вывести виджет сразу же после материала? 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 444
Друзья, помогите советом. Нужно вывести виджет внизу страницы, стандартным методом можно только после "тела страницы", получается - после комментариев. Нужно, что бы виджет отображался до комментариев, внизу статьи.

Можно ли это сделать прямой вставкой кода. Все нужные файлы знаю, таким образом выводил после статей соц.кнопки и рекламу, не знаю как правильно и что вставить для вывода виджета на данной позиции. Ерунда получается, когда похожие новости и т.т. можно отобразить только после комментариев.
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1363
Pasechnik, если рекламу вставить то берите http://addons.instantcms.ru/addons/blocks-for-instantcms.html
или просто виджет вывести?
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 444
kirkr:
или просто виджет вывести?
Именно виджет. Рекламный код я вставляю напрямую в файлы, хотелось бы таким образом вставить и виджет.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1930
Вот тут было об этом: http://instantcms.ru/forum/thread26150-2.html#250958
Посетитель
small user social cms
Медаль
Сообщений: 444
DK, спасибо!

Использовал:
Код PHP:
  1. <?php
  2. cmsCore::getInstance()->runWidgets();
  3. $this->widgets('main-bottom');
  4. unset($this->widgets);
  5. ?>
Теперь виджеты дублируются. Как запретить вывод виджета "по умолчанию" на конкретно взятой странице?
Редактировалось: 1 раз (Последний: 14 декабря 2016 в 12:32)
Посетитель
small user social cms
Сообщений: 41
можно ещё заменить функцию runWidgets (/system/core/core.php строка 736):

Код PHP:
  1.  
  2. /**
  3.   * Запускает все виджеты, привязанные к текущей странице
  4.   */
  5. public function runWidgets($pos=array()){
  6.  
  7. // в админке нам виджеты не нужны
  8. if ($this->controller == 'admin') { return; }
  9.  
  10. $widgets_model = cmsCore::getModel('widgets');
  11. $pages = $widgets_model->getPages();
  12.  
  13. $matched_pages = $this->detectMatchedWidgetPages($pages);
  14.  
  15. if (!is_array($matched_pages)) { return; }
  16. if (sizeof($matched_pages)==0) { return; }
  17.  
  18. $widgets_list = $widgets_model->getWidgetsForPages($matched_pages, cmsTemplate::getInstance()->getName());
  19.  
  20. if (is_array($widgets_list)){
  21.  
  22. // если указаны позиции
  23. if(is_array($pos) && !empty($pos)) {
  24. foreach ($widgets_list as $widget){
  25. if(!empty($widget['controller']) && !cmsController::enabled($widget['controller'])){
  26. continue;
  27. }
  28. if(in_array($widget['position'], $pos)) {
  29. $this->runWidget($widget);
  30. }
  31. }
  32. } else {
  33. foreach ($widgets_list as $widget){
  34. if(!empty($widget['controller']) && !cmsController::enabled($widget['controller'])){
  35. continue;
  36. }
  37. $this->runWidget($widget);
  38. }
  39. }
  40.  
  41. }
  42.  
  43. }
  44.  
в шаблоне вызвать
Код PHP:
  1. cmsCore::getInstance()->runWidgets(array(
  2. 'main-bottom'
  3. ));
дальше уже как обычно вставляете в нужном месте :
Код PHP:
  1. <?php $this->widgets('main-bottom', false, 'wrapper_plain');?>
Редактировалось: 2 раз (Последний: 14 декабря 2016 в 16:50)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1930
Pasechnik:
Теперь виджеты дублируются. Как запретить вывод виджета "по умолчанию" на конкретно взятой странице?
Вроде как нельзя запретить. Можно только разрешить всем, кроме конкретной страницы - пользовательские страницы, положительные и отрицательные маски...
Посетитель
small user social cms
Медаль
Сообщений: 444
taleh, спасибо! Возьму на заметку.

DK:
положительные и отрицательные маски...
Маска запретить показ и дубля, и виджета.

Решил удалением из шаблона, места вывода обозначил только в нужных файлах.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1930
Pasechnik:
места вывода обозначил только в нужных файлах
Так вообще-то так и имелось ввиду)) В теме, на которую отправлял Вас, шел разговор о том, как добавить виджет под аватаром в профиле. Т.е., на конкретной странице.

Хорошо, что всё получилось))
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.