Ich glaube nicht, dass es einen "eingebauten" Weg gibt, um dies zu erreichen.
Die Methode Mage_Catalog_Model_Url::getUrl()
akzeptiert keine Parameter. Sie können die Methode überschreiben, aber es sei denn, Sie benötigen für alle Kategorien etwas Ähnliches. Ich sehe keinen Grund, dies zu tun.
Ich denke, der billigste Weg ist, die Parameter direkt hinzuzufügen.
$params = array('param1' => 'myparam1','param2' => 'myparam2');
$categoryUrl = Mage::getModel('catalog/category')->load(1)->getUrl();
$urlParams = array();
foreach ($params as $name=>$value){
$urlParams[] = $name.'='.urlencode($value);
}
$urlParams = implode('&', $urlParams);
if ($urlParams){
$glue = '?';
if (strpos($categoryUrl, $glue) !== false){//this should never happen - but just in case
$glue = '&';
}
$categoryUrl .= $glue.$urlParams;
}
Sie können dies zu einer Methode in einem Helfer machen, um zu vermeiden, dass der Code jedes Mal geschrieben wird, wenn Sie ihn benötigen.
Für jede andere URL, die Sie Mage::getUrl()
erstellen, können Sie Abfrageparameter wie diesen übergeben:
$url = Mage::getUrl('module/controller/action', array('param1'=>'val1', '_query'=>array('p1'=>'v1', 'p2'=>'v2')));
Der obige Code generiert Folgendes:
http://meinewebsite.com/module/controller/action/param1/val1/?p1=v1&p2=v2