Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 仅在某些页面上使用Virtuemart手风琴_If Statement_Joomla_Virtuemart - Fatal编程技术网

If statement 仅在某些页面上使用Virtuemart手风琴

If statement 仅在某些页面上使用Virtuemart手风琴,if-statement,joomla,virtuemart,If Statement,Joomla,Virtuemart,我正在使用Virtuemart 2.0.4和Joomla 2.5。我不是Joomla的明星 我还使用一个手风琴模块来显示Virtuemart类别。现在,我只想在加载Virtuemart时显示手风琴,换句话说:当您在Webshop页面、categorylist和特定产品页面上时 我已经为frontpage做了一个if-else语句,如下所示: // IF IS HOMEPAGE $menu = JSite::getMenu(); if ($menu->getActive() == $

我正在使用Virtuemart 2.0.4和Joomla 2.5。我不是Joomla的明星

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

我已经为frontpage做了一个if-else语句,如下所示:

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

}
我想如果加载了virtuemart,我也可以这样做,比如:

if ( $pageoption != 'com_virtuemart' )   { ?>
    DONT LOAD ACCORDION MENU
<?php } else { ?>
    LOAD ACCORDION MENU
<?php } ?>
if($pageoption!=“com\u virtuemart”){?>
不要加载手风琴菜单
加载手风琴菜单
但这似乎不起作用


你们知道如何实现这一点吗?Ty

一个很好的解决方案就是使用它。它具有检测不同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

您可以在上找到所有页面类型,以及许多其他您可以查询的内容,例如,检测某物属于哪个类别、以前的购买历史记录、制造商、所显示产品的特定详细信息、购物车内容等。还有更多示例。

一个很好的解决方案是使用。它具有用于检测不同的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

您可以在上找到所有页面类型,以及许多其他您可以查询的内容,例如检测某物属于哪个类别、以前的购买历史记录、制造商、所显示产品的特定详细信息、购物车内容等。还有更多示例。

我对听到PHP解决方案感兴趣,您可能希望将其添加到但是,jQuery搜索主id,然后使用.remove()可以解决这个问题如果为真。您可以将其作为一个扩展来工作,不会改变Joomla中的PHP,并在更新时节省一些麻烦。-此外,您可以在模板中仅为此菜单创建一个新的模块位置,然后为该模块位置包装条件代码。这将至少简化一半的选择。如果使用pre-Package,请小心ged模板..他们喜欢在更新中重写您的代码。我对听到一个PHP解决方案很感兴趣,您可能希望将其添加到标记中。但是,jQuery搜索主id然后使用.remove()有一个解决方法如果为真。您可以将其作为一个扩展来工作,不会改变Joomla中的PHP,并在更新时节省一些麻烦。-此外,您可以在模板中仅为此菜单创建一个新的模块位置,然后为该模块位置包装条件代码。这将至少简化一半的选择。如果使用pre-Package,请小心ged模板..他们喜欢在更新中重写你的代码。