1

我将 Virtuemart 2.0.4 与 Joomla 2.5 一起使用。我不是 Joomla 的明星!

我还使用手风琴模块来显示 Virtuemart 类别。现在,我只想在加载 Virtuemart 时显示手风琴,换句话说:当您在 Webshop 页面、categorylist 和特定产品页面时。

我已经设法为首页制作了 if else 语句,如下所示:

// IF IS HOMEPAGE 
   $menu = JSite::getMenu(); if ($menu->getActive() == $menu->getDefault()) {
} else {

}

我想如果加载了 mercurialt,我可以做同样的事情,比如:

if ( $pageoption != 'com_virtuemart' )   { ?>
    DONT LOAD ACCORDION MENU
<?php } else { ?>
    LOAD ACCORDION MENU
<?php } ?>

但这似乎不起作用。

你们知道如何完成这样的事情吗?泰

4

1 回答 1

1

一个很好的解决方案是使用MetaMod。它具有用于检测不同 VM 页面类型的内置功能,并且可以使用它来触发(或不触发)其他模块。您不必更改模板,因为它适用于任何模板。然后逻辑进入 MetaMod,它决定何时包含其他模块。

您可以使用放入 MetaMod 的 PHP 代码片段来完成此操作,返回您要显示的模块的模块 ID。

例如检测 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 页面上找到所有页面类型,以及您可以查询的许多其他内容,例如检测某物所在的类别、以前的购买历史、制造商、所显示产品的特定详细信息、购物车内容等。这里有更多的例子。

于 2012-11-21T21:59:57.947 回答