我正在从事某人已经在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( '&', '&', $url );
}
因此将其设置为false至少不会str_replace&(这是我在两种情况下都能看到的唯一关键区别)...
我知道有替换它的理由,但是...好吧...如果您使用的是utf8,我想这应该不是问题...
我的意思是……另一件事,绝对是奇怪的是,JRoute似乎出于任何原因都翻转了选项和ordertype-parameter。
希望我至少可以在这个:D中提供一些意见
问候