Модуль в компоненте instantcms 1.10.7

InstantCMS 1.X
#1 20 сентября 2018 в 10:02
Здравствуйте!

Есть задача, выводить модуль только в определенном компоненте (статьи или форум или объявления)

Как можно ее решить? Может уже есть готовые решения?
#2 20 сентября 2018 в 10:21

Как можно ее решить? Может уже есть готовые решения?

@IRIPUS
/forum/thread30312-1.html#296005 и т.д. (используйте поиск на сайте форума).
#3 20 сентября 2018 в 10:29
DeDja, спасибо за ответ, но по ссылке нет ответа на интересующую меня тему.

Мне нужно знать, как можно назначить модуль КОМПОНЕНТУ!
Например:
— есть множество разделов статей (около 100)
— чтобы не создавать 100 меню со ссылкой на каждый раздел, я написал простой модуль, который выводит списком все категории.
— на сайте есть форум, объявления, content
— нужно этот модуль повесить на content

чтобы когда открываешь статьи (разделы и статьи) модуль выводится в нужной мне позиции
проще говоря,

Если content то выводим позицию модуля mod_content (например)
#4 20 сентября 2018 в 13:09
так воткните его в com_content_view.tpl и com_content_read.tpl
#5 20 сентября 2018 в 13:27
Tamatoa, Да, это было бы очевидным решением, если бы не мой трехколоночный шаблон
который содержит и другие модули =(

я знаю, что в системе предусмотрена функция вывода только в компоненте, но… знать бы как реализовать
#6 20 сентября 2018 в 18:09
Можно сделать простым костылем.
* Открываем файл вашего шаблона "template.php"
* В нужное место вывода шаблона вставляем такой код
  1.  
  2. <?php if($inCore->component == 'content'){ $this->printModules('poziciya'); } ?>
  3.  
* если нужно что бы модуль отображался только на странице категорий и не отображался на странице статьи, дописываем условие на проверку действия и получаем
  1.  
  2. <?php if($inCore->component == 'content' && $inCore->do == 'view'){ $this->printModules('poziciya'); } ?>
  3.  
#7 20 сентября 2018 в 22:10
Возможно это подойдёт
#8 21 сентября 2018 в 15:19
AtlantisWeb, спасибо, ваш вариант подходит.

мой template.php от шаблона dezerit

и там правая колонка выводится как-то так:

  1.  
  2. <?php if ($col['right_col']) { ?>
  3. <div id="right_column">
  4. <div id="content_r_box" class="main_column">
  5. <div class="column_wrap">
  6. <?php $this->printModules('right'); ?>
  7. </div>
  8. </div>
  9. </div>
  10. <?php } ?>
  11.  
а в самом верху файла как-то так:

  1.  
  2.  
  3. <?php
  4.  
  5. $col['right_col']=0;
  6. $col['left_col']=0;
  7. $col['side_col']=0;
  8.  
  9. if($this->countModules('left')){ $col['left_col']=1; }
  10. if($this->countModules('right') && $inCore->component == 'content'){ $col['right_col']=1; }
  11. if($this->countModules('sidebar')){ $col['side_col']=1; }
  12.  
  13. ?>
  14.  
Вставить получилось, оно работает с костылем
но как-бы его в шаблон влепить…
#9 21 сентября 2018 в 15:30
сделал так, вроде работает =)

  1. $col['right_col']=0;
  2. $col['left_col']=0;
  3. $col['side_col']=0;
  4.  
  5. if($this->countModules('left')){ $col['left_col']=1; }
  6. if($inCore->component == 'content' && $this->countModules('right_content')){ $col['right_col']=1; }
  7. if($this->countModules('right')){ $col['right_col']=1; }
  8. if($this->countModules('sidebar')){ $col['side_col']=1; }
спасибо
#10 21 сентября 2018 в 22:29
Следующий вопрос

на сайте есть форма поиска (стандартный модуль)

можно ли, заставить его искать только в том разделе, где сейчас находится пользователь? НАпример, на форуме — ищем только на форуме, в объявлениях — объявления и т.п.? кнопку "параметры поиска" отменять не нужно

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