私はウェブサイトを構築していて、Magentoを/ shop /サブディレクトリにインストールしました。トップカテゴリーをMagento以外のサイトのメニューに統合して、カテゴリーに直接ナビゲートすることができます。このためには、カテゴリ名とURLが必要です。Magento:外部から相対的なURLを取得する
の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のそれのリターンは「http://example.com/shop/templates/theme.html」など、URLの完全な絶対です:それはとても穏やか:-)こと、Magentoのと統合すると私の最初の試みです。
まず、Magentoから相対URLを取得するにはどうすればよいですか?
第2に、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は、相対URLが非常に好きではないと言いました。たとえば、Ogone支払いサービスプロバイダとの統合には絶対URLが必要です。だからMagentoは、開発環境では残念な私の相対URLの目標を放棄するように強制しました。 私は正しい方向に向いてくれてありがとう。 –