1

我的问题是:

我有一些切换部分。此部分应根据单击的触发器显示动态内容。所以例如。点击“支持”,应该有一些联系信息/下载支持工具,点击“搜索” - 搜索框等。

我的问题是是否有可能只用一个模块位置来解决这个问题,或者每个触发器需要一个位置?

希望描述这个可以理解=)

任何帮助表示赞赏。

谢谢

亚历克斯

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 也应该使用自己的函数进行扩展以正确呈现它。

4

2 回答 2

1

这是可以做到的。您必须为每个模块(分配给相同的模块位置)添加一个单独的类:

Module Settings -> Advanced -> Module Class Suffix

因此,如果您添加了suff1suff2类,您可以使用以下方法切换它们:

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>

于 2015-07-20T11:07:02.577 回答
0

不确定是否理解您的问题,但如果您的触发器是菜单条目,您可以告诉您的模块仅在选择这些菜单条目时显示。
进入扩展 -> 模块管理器,选择所需的模块,然后在模块分配选项卡 -> 模块分配中选择“仅在所选页面上”并选择所需的菜单条目。
你可以让模块在同一个位置。只有当指定的菜单条目处于活动状态时,您的模块才会显示在该位置。
高温高压

于 2015-07-17T10:44:00.990 回答