问候!
我正在寻找一种更好的方法来进行修改.. 我将查询字符串添加到产品网址的末尾。例如,网址看起来像
http://demo.magentocommerce.com/coalesce-functioning-on-impatience-t-shirt.html?flagged=yes
注意?flagged = yes。
我目前正在通过将以下代码添加到list.phtml文件来执行此操作:
$query = '?flagged='.$answer;
然后我通过这样做将此查询字符串添加到产品网址的末尾:
$_product->getProductUrl().$query
我真的想尝试将修改从模板文件中删除。我知道可能有更好的方法。我已经尝试了所有我能想到的没有运气的东西,所以如果有人有任何想法,这将是伟大的!理想情况是设置观察者并将查询字符串添加到产品URL中。
我非常感谢任何想法或帮助!
答案 0 :(得分:3)
$product->getUrlModel()->getUrl($product, array('_query' => array(
'show_offers' => '1'
)))
答案 1 :(得分:1)
您可以使用此方法创建帮助程序:
public function getProductUrl($urlModel, $product, $query = array(), $useSid = null)
{
if ($useSid === null) {
$useSid = Mage::app()->getUseSessionInUrl();
}
if (!$useSid) {
$params['_nosid'] = true;
}
if (!empty($query)) {
$params['_query'] = $query;
}
return $product->getUrlModel()->getUrl($product, $params);
}
调用辅助方法:
getProductUrl($_product, array('flagged' => 'YES'));
这应该足够了。
答案 2 :(得分:0)
试试这个http_build_query
答案 3 :(得分:0)
没办法做到。仅覆盖产品模型并扩展getProductUrl()
function getProductUrl($params, $useSid = null) {
$url = pagent::getProductUrl($useSid);
// now parse url, add our parameters from array $params
// generate new url
return $url
}