如何创建仅包含模块而不包含组件的页面?


10

在joomla中,我需要将每个页面链接到组件视图。如何创建一个没有组件输出的页面

示例:在我的主页上,我只需要一个模块输出。为此,我可以将主页链接到“空文章”,但是有没有更好的方法而不使用第三方扩展?


2
您使用的是自定义模板还是商业模板?我问,因为其中许多人可以选择完全关闭组件区域。
Brian Peat 2014年

@BrianPeat我正在使用自定义模板
web-tiki

啊好吧。好了,这里有几个不错的答案应该起作用:)
Brian Peat 2014年

Answers:


15

没有比这更好的方法了。

唯一的其他选择是检查您是否在模板文件的主页上。要检查您是否在首页上,可以使用此处文档中所述的方法:

http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

并执行类似的操作:

<?php
$menu = JFactory::getApplication()->getMenu();

if ($menu->getActive() != $menu->getDefault()) { ?>
        <jdoc:include type="component" />
<?php } ?>

这样一来,您就永远不会在主页上包含组件


1
请注意这种方法:如果您的首页链接没有转到其他页面,那么如果该链接加载到首页菜单项下,则显示为损坏!注意任何类似的链接,example.com/component/com_name/view因为它将在默认菜单项下加载,并且不会显示组件的输出。
大卫·弗里奇

您可能要添加更多的检查,以确保当前组件和视图(JFactory::getApplication()->input->get('view'))也是不一样的菜单的视图($menu->getActive()->view
大卫·弗里奇

@DavidFritsch:我认为$ menu-> getActive()-> view应该是$ menu-> getActive()-> query ['view'];
FFrewin


4

您的索引文件中可以有多个模板布局。

<!--Layout 1-->
<?php if ($BConfig->html=='layoutA') : ?>

<jdoc:include type="component" />

<?php endif; ?>  <!--End Layout 1-->

<!--Dynamically Generated Layout 2-->
<?php if ($BConfig->html=='layoutB') : ?>

<jdoc:include type="modules" name="your-module"/>

<?php endif; ?> <!--End Layout 2-->

然后确保您的templateDetails文件包含选项B。然后在您的Joomla中!模板,则可以使用布局b设置其他模板。转到主菜单项,选择该模板。该组件不会加载,但您的模块会加载。


2

愚蠢,非常相似,但相当简单的解决方案:

  1. 创建文章类别
  2. 不加任何内容(文章)
  3. 创建菜单链接
  4. 将模块分配给该菜单链接

您可能需要关闭一些详细信息,以便在类别和/或菜单项参数中对该类别隐藏。


1
这基本上与使用空文章相同。
web-tiki 2014年

1

您可以创建一个空组件。因此,在com_menus组件中,您可以选择仅空组件来决定页面是否必须没有输出。在该组件中,您需要创建一个视图和一个带有default.xml文件的空default.php模板,因此在com_menus组件中选择该组件时将看到此选项。


1

RocketThemes具有方便的功能,可以隐藏com_content精选文章。

我经常发布一个空类别以最小化输出,并使用一些CSS样式将其隐藏。


1

复制模板,删除jdoc组件,然后将该样式分配给不需要该组件的任何菜单项。


0

Joomla!3.x您可以执行以下操作:

  • 首先创建您的模块,
  • 在主网站的新文章中创建一个新类别,
  • 检查您是否启用了插件内容-加载模块

默认情况下,Joomla!包含一个名为Bootstrap v2.3.2的库,因此您可以在该库中使用CSS,例如网格系统http : //getbootstrap.com/2.3.2/scaffolding.html#gridSystem

  • 从这里的文章中,您可以看到一个名为Module的按钮,只需创建一个简单或非常复杂的网格并将模块分配给每个块。

使用这种方法可以获得的好处是,可以用更少的位置和更少的php,js和css代码获得更多的模板,因此,如果不需要很多功能,则可以自己创建

问候。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.