【问题标题】:Magento: adding query string to end of product url?Magento:将查询字符串添加到产品网址的末尾?
【发布时间】:2011-02-24 14:32:08
【问题描述】:

您好!

我正在寻找一种更好的方法来进行修改.. 我在产品 url 的末尾添加了一个查询字符串。例如,网址看起来像

http://demo.magentocommerce.com/coalesce-functioning-on-impatience-t-shirt.html?flagged=yes

注意 ?flagged=yes。

我目前正在通过将以下代码添加到 list.phtml 文件来执行此操作:

$query = '?flagged='.$answer;

然后我将这个查询字符串添加到产品网址的末尾:

$_product->getProductUrl().$query

我真的很喜欢尝试不修改模板文件。我知道可能有更好的方法来做到这一点。我已经尝试了我能想到的一切,但没有运气,所以如果有人有任何想法,那就太好了!理想的情况是设置一个观察者,然后将查询字符串添加到产品 url。

非常感谢任何想法或帮助!

【问题讨论】:

    标签: php zend-framework magento magento-1.4


    【解决方案1】:
    $product->getUrlModel()->getUrl($product, array('_query' => array(
        'show_offers' => '1'
    )))
    

    【讨论】:

      【解决方案2】:

      您可以使用此方法创建助手:

      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'));

      这就够了。

      【讨论】:

        【解决方案3】:

        试试这个http_build_query

        【讨论】:

        • 我已经建立了查询,我只需要一种方法将其添加到产品的产品网址中。
        【解决方案4】:

        没有办法做到这一点。仅覆盖产品模型并扩展 getProductUrl()

        function getProductUrl($params, $useSid = null) {
        $url = pagent::getProductUrl($useSid);
        // now parse url, add our parameters from array $params
        // generate new url
        return $url
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-03
          • 2023-04-02
          • 2021-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多