Magento: добавление строки запроса в конец URL продукта? - PullRequest
1 голос
/ 24 февраля 2011

Привет!

Я ищу лучший способ сделать модификацию .. Я добавляю строку запроса в конец URL продукта. Например, URL будет выглядеть как

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

обратите внимание на? Отмечено = да.

В настоящее время я делаю это, добавив следующий код в файл list.phtml:

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

затем я добавляю эту строку запроса в конец URL продукта, выполнив это:

$_product->getProductUrl().$query

Мне действительно нравится пытаться оставить изменения вне файла шаблона. Я знаю, что, возможно, есть лучший способ сделать это. Я перепробовал все, что могу придумать, но без удачи, так что если у кого-то есть идеи, это было бы здорово! Идеальная ситуация - установить наблюдателя и добавить строку запроса в URL продукта.

Я очень ценю любые идеи или помощь!

Ответы [ 4 ]

3 голосов
/ 17 мая 2016
$product->getUrlModel()->getUrl($product, array('_query' => array(
    'show_offers' => '1'
)))
1 голос
/ 02 марта 2011

Вы можете создать помощника с помощью этого метода:

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

И этого должно быть достаточно.

0 голосов
/ 25 февраля 2011

Нет способа сделать это.Переопределяет только модель продукта и расширяет getProductUrl ()

function getProductUrl($params, $useSid = null) {
$url = pagent::getProductUrl($useSid);
// now parse url, add our parameters from array $params
// generate new url
return $url
}
0 голосов
/ 24 февраля 2011

Попробуйте это http_build_query

...