我正在構建網站,並在/ shop /子目錄中安裝了Magento。我想將頂級類別整合到我的非Magento網站的菜單中,以便您可以直接導航到該類別。爲此,我需要類別名稱和網址。Magento:從外部獲取相對URL的類別
Magento的類別是:
- 模板
- 顏色
- 主題
- 一般
- 其他產品
我首先需要獲取模板頂層以下的類別列表,所以我編寫了以下代碼。這是我第一次嘗試與Magento的整合,所以,請溫柔:-):
<?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>";
}
}
}
?>
這正確獲取名稱和類別,但URL的返回是絕對完整的URL的,如「http://example.com/shop/templates/theme.html」。
首先,如何從Magento中檢索相對URL?
其次,如果我將web/unsecure/base_url設置爲http://example.com/shop/,生成的URL似乎只是正確的。如果我將其設置爲{{base_url}}(我們在開發過程中更喜歡使用基於虛擬主機的svn工作副本),則缺少/ shop/part,即:「http://example.com/templates/theme.html」。
任何想法爲什麼?
我設法得到它的工作通過將/ shop/in base_url,但正如你提到的,Magento不喜歡相關的網址。例如,與Ogone支付服務提供商的集成也需要一個絕對URL。所以Magento迫使我放棄我的相對網址目標,這在開發環境中是一種恥辱。 感謝您指引我在正確的方向。 – 2009-08-25 08:04:59