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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie erreichen alle Ihre Anforderungen durch spielen mit den Einstellungen im system - > Konfiguration - > web -
Erste, was ich probieren würde, ist das setzen der Basis-url (sichere und unsichere, wenn nötig) zu /(Schrägstrich) und dann system - > cache-management > rebuild catalog url schreibt.
Wenn das nicht funktioniert, spielen Sie mit den Einstellungen, Wette, Sie können es zu arbeiten. Aber sei gewarnt, es wird magento setzen Sie relative urls in google base feeds etc = schlecht! Also tun Sie es nicht in der Produktion.
Mein dev-Kopie ist bei der Arbeit, inacessible von hier aus, also können nicht für dich versuchen.
Auch für das obige Skript, die Sie könnten versuchen:
(Sie können nicht auf die html-bit am Ende, hängt von deiner config)