我正在从事某人已经在joomla中完成的项目。我必须在那里修复一些问题。
他们在joomla 3.0中具有一个下订单组件。主页上有两个选项。一种是发出常规订单,另一种是特殊订单。它们以单选按钮形式给出。在每个按钮上都有如下编写的onclick函数

onclick='window.location.href=("<?php echo JRoute::_('index.php?option=com_order'); ?>")'

onclick='window.location.href=("<?php echo JRoute::_('index.php?option=com_order&ordertype=2'); ?>")'


第一个按钮将按如下所示形成网址。

index.php?option=com_order&view=form&layout=edit&Itemid=516&lang=en


但是对于第二个,URL不正确,并给出了一些错误。

index.php?ordertype=2&option=com_order&Itemid=516&lang=en


请注意,第二个网址缺少参数view = form&layout = edit。我怎样才能解决这个问题?我应该添加一个新的菜单项。如果是,什么类型?或者只是直接在window.location.href中对网址进行硬编码?

最佳答案

这只是一个随机的镜头,但是如果您查看JRoute-Definition here,它会显示三个选项:_($url, $xhtml=true, $ssl=null)

第二个听起来对我来说很有趣:


  $ xhtml用&替换&,用于xml编译


也许将此选项设置为false,以查看链接会发生什么?

触发的代码部分如下所示:

if($xhtml) {
    $url = str_replace( '&', '&amp;', $url );
}


因此将其设置为false至少不会str_replace&(这是我在两种情况下都能看到的唯一关键区别)...
我知道有替换它的理由,但是...好吧...如果您使用的是utf8,我想这应该不是问题...

我的意思是……另一件事,绝对是奇怪的是,JRoute似乎出于任何原因都翻转了选项和ordertype-parameter。

希望我至少可以在这个:D中提供一些意见

问候

08-25 22:17