كيفية الحصول على تكوين المتجر داخل قالب سمة
-
29-09-2020 - |
سؤال
أحاول إضافة إعداد رقم هاتف المتجر في المخازن > التكوين > عام > عام > معلومات المتجر إلى الرأس في موضوعي.في وحدة أعتقد أن هذا يمكن القيام به باستخدام getValue()
في \Magento\Framework\App\Config\ScopeConfigInterface
ولكن لا أستطيع أن أرى طريقة كيفية استخدام هذا داخل موضوع.حتى الآن لقد أضفت هذا إلى الافتراضي.شمل
<referenceContainer name="header-wrapper">
<block class="Magento\Framework\View\Element\Template" name="store.phone.number" template="Magento_Theme::phone.phtml" />
</referenceContainer>
لكنني لا أعرف كيفية الحصول على رقم الهاتف في الداخل phone.phtml
المحلول
أقترح عليك إنشاء كتلة الخاصة بك ، والتي سوف تمتد Magento\Framework\View\Element\Template
صف دراسي.
كما Magento\Framework\App\Config\ScopeConfigInterface
هو جزء من Magento\Framework\View\Element\AbstractBlock
(الوالد من Template
الطبقة) أعلن في $_scopeConfig
, ، يمكنك إضافة الوظيفة التالية إلى الكتلة المخصصة الخاصة بك:
public function getConfig()
{
return $this->_scopeConfig;
}
ثم في القالب الخاص بك يمكنك القيام به:
$block->getConfig()->getValue('value/you/need');
لا تنس تحديث التخطيط الخاص بك مثل هذا:
<referenceContainer name="header-wrapper">
<block class="Vendor\Module\Block\View\Element\Template" name="store.phone.number" template="Magento_Theme::phone.phtml" />
</referenceContainer>
نصائح أخرى
يمكننا الحصول مباشرة على تكوين مخزن في القالب عن طريق الحصول على مثيل Magento\Framework\App\Config\ScopeConfig
:
\Magento\Framework\App\ObjectManager::getInstance()
->get('Magento\Framework\App\Config\ScopeConfigInterface')
->getValue('value/you/need');
من الناحية الفنية ، عندما يسأل شخص ما عن مثيل Magento\Framework\App\Config\ScopeConfigInterface
, ، سوف نعطيها مثالا على Magento\Framework\App\Config\ScopeConfig
.على سبيل المثال ، يمكننا الحصول على الإعداد الافتراضي لوضع الشبكة أو القائمة:
$productListMode = \Magento\Framework\App\ObjectManager::getInstance()
->get('Magento\Framework\App\Config\ScopeConfigInterface')
->getValue('catalog/frontend/list_mode');
ملاحظة: تجنب استخدام مدير الكائنات مباشرة.يجب أن نحافظ على قوالبنا نظيفة.حاول إضافة التكوين إلى الكتلة.يجب أن تتبع @رافائيل الجواب.
جرب هذا على كتلة ، وأنها تعمل بالنسبة لي بعد العديد من البحث
is إيسنابلد = \ الماجنتو \ الإطار \ أب\أوبجكتماناجر:: جيتينستانس()
- >الحصول على('الماجنتو \ الإطار \ التطبيق \ التكوين \ سكوبيكونفيجينتيرفاس') - > جيتفالو ('القسم / المجموعة / الحقل');