Magento: extern relative URL ' s für Kategorien

Baue ich eine website und installiert Magento in das /shop/- Unterverzeichnis. Ich würde gerne integrieren die top-Kategorien in das Menü von meinem nicht-Magento-Website, so können Sie navigieren direkt in die Kategorie. Dafür brauche ich den Namen der Kategorien und URLs.

Magento Kategorien:

  • Vorlagen
    • Farbe
    • Thema
    • Allgemeinen
  • Andere Produkte

Ich zuerst brauchte, um eine Liste der Kategorien unten die Vorlagen der obersten Ebene, also schrieb ich den folgenden code. Es ist mein Erster Versuch mit der Integration mit Magento, so sanft sein 🙂 :

<?php
require_once dirname(__FILE__).'/shop/app/Mage.php';
umask(0);
Mage::app('default');

$helper     = Mage::helper('catalog/category');
$collection = $helper->getStoreCategories();
foreach ($collection as $catalogArray) {
    if ($catalogArray->getName() == "Templates") {
        foreach (explode(",", $catalogArray->getChildren()) as $category) {
            $_category = Mage::getModel('catalog/category')->load($category);
            if($_category->getIsActive()) {
                $caturl = $_category->getUrl();
                $catname = $_category->getName();
            }
            echo "<pre>";
            var_dump($caturl);
            echo "</pre>";

            echo "<pre>";
            var_dump($catname);
            echo "</pre>";
        }
    }
}
?>

Diese richtig, bekommt die Namen und die Kategorien, aber die URL ' s die es gibt sind volle, absolute URLs, wie "http://example.com/shop/templates/theme.html".

Erstens, wie Kriege ich die relative URL ' s aus Magento?

Zweitens, die generierte URL scheint nur korrekt sein, wenn ich die web/unsecure/base_url Einstellung der http://example.com/shop/. Wenn ich diese auf {{base_url}} statt (die wir bevorzugen während der Entwicklung seit dem Einsatz von virtual-hosting-basierten svn-Arbeitskopien), die /shop/Teil fehlt, also: "http://example.com/templates/theme.html".

Ahnung warum?

Schreibe einen Kommentar