سؤال

لقد أنشأت مؤخرا متغيرا مخصصا اسمه storecount - الذي سأكون زيادة برمجيا لكل مخزن التي يتم إضافتها إلى متجري محدد البرنامج المساعد.

أرغب في إظهار ذلك في مواقع مختلفة بما في ذلك أوصاف المنتج والفئة ، لذلك عندما نضيف متجرا جديدا ، لا يتعين علينا العثور على كل تكرار لعدد المتجر وزيادته يدويا بمقدار 1.

باستخدام {{customVar code=storecount}} لا يعمل في أوصاف الفئة.هل هناك أي طريقة يمكنني الحصول على هذا المتغير دون القرصنة الأساسية الماجنتو إلى أشلاء?

هل كانت مفيدة؟

المحلول

أسهل طريقة للقيام بذلك ، هو استخدام نفس معالج القالب لوصف الفئة كما يتم استخدامه لكتل كمس ومحتوى الصفحات.واحد من وحدة القطعة.
لهذا تحتاج إلى تمديد.دعنا نسميها StackExchange_Catalog.
سوف تحتاج إلى الملفات التالية.

app/etc/modules/StackExchange_Catalog.xml - ملف الإعلان

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Catalog>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Catalog />
                <Mage_Cms />
                <Mage_Widget />
            </depends>
        </StackExchange_Catalog>
    </modules>
</config>

app/code/local/StackExchange/Catalog/etc/config.xml - ملف التكوين

<?xml version="1.0"?>
<config>
    <global>
        <catalog>
             <content>
                <tempate_filter>widget/template_filter</tempate_filter>
            </content>
        </catalog>
    </global>
</config>

امسح ذاكرة التخزين المؤقت وحاول مرة أخرى.

نصائح أخرى

دون القرصنة magento الأساسية، نعم؛بدون رمز، لا.

يمكنك كتابة مراقب يستمع إلى الحدث والتخلص من وصف الفئة هناك.

/ edit: عند حفظ الفئة ذات الوصف الذي تم تغييرها، سيتم حفظ المتغير المخصص أيضا، لذلك هذا ليس حلا رائعا.

هناك طريقة أخرى تتمثل في إضافة ملفك storecount متغير إلى ملف قالب مع إما:

// To get the TEXT value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');

// To get the HTML value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');

إذا كنت تتساءل عن القالب، قم بتشغيله تلميحات مسار القالب ويجب أن تكون قادرًا على العثور على مكان إضافته إلى ملف القالب.لا تتجاوز القالب الأساسي، وانسخه إلى دليل القالب الخاص بك، لذا قم بعمل نسخة منه في مكان ما app/design/frontend/[Your Design Package]/[Your Theme]/template/catalog/category/view.phtml.إذا لم تتبع هذه الممارسة، فسوف تفقد عملك عند ترقية Magento.

من المحتمل ممارسة أفضل ل قم بإنشاء كتل CMS وإضافتها إلى ملفات القالب الخاصة بك بحيث يكون من السهل تعديلها وإيقاف تشغيلها.

قم بإنشاء كتلة CMS الخاصة بك مع المحتوى الخاص بك بما في ذلك {{customVar code=storecount}}وأضفه حيث تريد في ملفات القالب الخاصة بك باستخدام:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_cms_block_identifier')->toHtml() ?>

تحديثمجرد إلقاء نظرة مناسبة على الجواب ماريوس - يبدو حله أنيقًا جدًا ويضيف الدستورية التي تحتاجها إلى Magento.

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