Magento: خارجيًا ، احصل على عنوان URL النسبي إلى الفئات
-
21-08-2019 - |
سؤال
أنا أقوم ببناء موقع ويب ، وقمت بتثبيت Magento في / suble / subdirectory. أرغب في دمج الفئات العليا في قائمة موقعي غير الماجينتو ، حتى تتمكن من الانتقال مباشرة إلى الفئة. لهذا أحتاج إلى أسماء الفئات وعنوان 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".
أولاً ، كيف يمكنني استرداد عنوان URL النسبي من Magento؟
ثانياً ، يبدو أن عنوان URL الذي تم إنشاؤه صحيحًا فقط إذا قمت بتعيين إعداد الويب/UNSECURE/BASE_URL إلى http://example.com/shop/. إذا قمت بتعيين هذا على {{base_url}} بدلاً من ذلك (وهو ما نفضله أثناء التطوير لأننا نستخدم نسخ عمل SVN القائمة على الاستضافة الافتراضية) ، فإن / متجر / جزء مفقود ، أي: "http://example.com/templates/theme.html".
أي فكرة لماذا؟
المحلول
أعتقد أنه يمكنك تحقيق جميع متطلباتك من خلال اللعب مع الإعدادات في النظام> التكوين> الويب
أول شيء سأحاوله هو تعيين عنوان URL الأساسي (آمن وغير آمن إذا لزم الأمر) إلى / (مائل إلى الأمام) ، ثم الذهاب إلى نظام التخزين المؤقت> إعادة بناء عنوان URL للكتالوج.
إذا لم ينجح ذلك ، فابحث عن الإعدادات ، رهان أنه يمكنك تشغيله. كن حذرًا ، سيجعل Magento وضع عناوين URL النسبية في خلاصات قاعدة Google وما إلى ذلك = سيئة! لذلك لا تفعل ذلك في الإنتاج.
نسخة DEV الخاصة بي في العمل ، غير قابلة للتطبيق من هنا ، لذلك لا يمكنني المحاولة لك.
أيضا ، لنصلك أعلاه ، يمكنك المحاولة:
$url = "/shop/" . $_category->getUrlKey() . '.html';
(قد لا تحتاج إلى بت HTML في النهاية ، يعتمد على التكوين الخاص بك)