Virtuemart手风琴仅适用于某些页面

时间:2012-04-19 08:25:49

标签: if-statement joomla virtuemart

我正在使用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

1 个答案:

答案 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