Magento: خارجيًا ، احصل على عنوان URL النسبي إلى الفئات

StackOverflow https://stackoverflow.com/questions/1068535

  •  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 في النهاية ، يعتمد على التكوين الخاص بك)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top