Joomla 3 Показать разные модули в одной позиции в зависимости от переключателя

Есть моя проблема:

У меня есть раздел переключателей. В этом разделе должен отображаться динамический контент в зависимости от нажатого триггера. Так, например. при нажатии "поддержка" должна быть предоставлена ​​некоторая контактная информация / средство загрузки, при нажатии "поиск" - окно поиска и т. д.

Мой вопрос заключается в том, возможно ли решить эту проблему только с одной позицией модуля или требуется одна позиция для каждого триггера?

Надеюсь описать это понятно =)

Любая помощь приветствуется.

Спасибо

Alex

UPD: попробую объяснить с помощью кода:

Положение модуля:

   if ($this->countModules('pos-1')) : 
        $module = JModuleHelper::getModules( 'pos-1' );
        foreach($modules as $m) : ?>
            <section class="mod_%echo $m->title%">
                <jdoc:include type="modules" name="pos-1" style="xhtml" />
            </section>
        endforeach;
    endif;

И Триггер:

if ($this->countModules('pos-1')) : 
    $module = JModuleHelper::getModules( 'pos-1' ); 
    foreach($module as $m) :
        <a class="btn-collapse collapsed" role="button" data-toggle="collapse" data-parent="#accordion" 
        href="#echo $m->title;" aria-expanded="true" aria-controls=" echo $m->title;">
            <i class="fa fa-building-o"></i> <? echo $m->title; ?>
        </a>                        
    endforeach;
endif;

Поэтому я добавил два модуля CustomHTML к этой позиции.

Результат:

<section ... class="mod_title1">
    content mod_one
    content mod_two
</section>
<section ... class="mod_title2">
    content mod_one
    content mod_two
</section>

<a ... href="#mod_title1" ...>  mod_title1 </a>
<a ... href="#mod_title2" ...>  mod_title2 </a>

И должно быть:

<section ... class="mod_title1">
    content mod_one
</section>
<section ... class="mod_title2">
    content mod_two
</section>

<a ... href="#mod_title1" ...>  mod_title1 </a>
<a ... href="#mod_title2" ...>  mod_title2 </a>

Так что я думаю, что это невозможно, поскольку только одна позиция должна решаться многими.

Пожалуйста, поправьте меня, если я ошибаюсь.

UPD2: я был не прав. Это возможно, но не только с помощью шаблона - также модуль chrome tempalte должен быть расширен с помощью собственной функции, чтобы сделать его правильным.

2 ответа

Решение

Это может быть сделано. Вы должны добавить отдельный класс для каждого модуля (назначенный той же позиции модуля) под:

Module Settings -> Advanced -> Module Class Suffix

Так что, если вы добавили suff1 а также suff2 классы, которые вы можете переключать их, используя:

jQuery(document).ready(function() {
  jQuery("div.suff1, div.suff2").on("click", function() {
    jQuery(this).parent().children().toggle();
  });
});
div {
  width: 180px;
  height: 100px;
  color: white;
}
div.suff1 {
  background: orange;
  display: none;
}
div.suff2 {
  background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <div class="suff1">Module 1</div>
  <div class="suff2">Module 2</div>
</div>

Не уверен, что понял ваш вопрос, но если ваши триггеры являются пунктами меню, вы можете указать, чтобы ваши модули отображались только при выборе этих пунктов меню.
Зайдите в Расширения -> Диспетчер модулей, выберите нужный модуль, а затем на вкладке Назначение модуля -> Назначение модуля выберите "только на выбранных страницах" и выберите нужные пункты меню.
Вы можете позволить модулям в том же положении. Ваши модули будут отображаться в этой позиции только тогда, когда назначенный пункт меню активен.
НТН

Другие вопросы по тегам