我正在使用Virtuemart 2.0.4和Joomla 2.5。我不是Joomla的明星!
我还使用手风琴模块来显示Virtuemart类别。现在,我只想在加载Virtuemart时显示手风琴,换句话说:当您在网上商店页面,类别列表和特定产品页面时。
我已经设法为首页制作了if else语句,如下所示:
// IF IS HOMEPAGE
$menu = JSite::getMenu(); if ($menu->getActive() == $menu->getDefault()) {
} else {
}
我认为如果装载了virtmart,我也可以这样做,例如:
if ( $pageoption != 'com_virtuemart' ) { ?>
DONT LOAD ACCORDION MENU
<?php } else { ?>
LOAD ACCORDION MENU
<?php } ?>
但这似乎不起作用。
你们是否知道如何完成这样的事情? TY
答案 0 :(得分:1)
一个很好的解决方案是使用MetaMod。它具有用于检测不同VM页面类型的内置功能,并且可以使用它来触发其他模块(或不使用)。您无需更改模板,因为它适用于任何模板。然后逻辑进入MetaMod,它决定何时包含其他模块。
您可以使用一段PHP代码完成此操作,并将其放入MetaMod中,并返回要显示的模块的模块ID。
e.g。检测VM中的任何页面,并显示模块:
if ($option == 'com_virtuemart') return XXX;
// replace XXX with the module id of the module to show.
您还可以检测特定的VM页面类型,如下所示:
$vm = JomGenius("virtuemart");
if ($vm->check("pagetype = shop.product_details")) return XXX;
// shop.product_details is for VM1.x. Use "productdetails" for VM2.x.
if ($vm->check("pagetype startswith checkout")) return XXX;
// e.g. checkout.index#1-4, checkout.result, etc
您可以在JomGenius page上找到所有页面类型以及您可以查询的许多其他内容,例如检测某物品的类别,以前的购买历史,制造商,正在展示的产品的特定细节,购物车内容等。还有更多例子here。