سؤال

أحاول إضافة إعداد رقم هاتف المتجر في المخازن > التكوين > عام > عام > معلومات المتجر إلى الرأس في موضوعي.في وحدة أعتقد أن هذا يمكن القيام به باستخدام 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 إيسنابلد = \ الماجنتو \ الإطار \ أب\أوبجكتماناجر:: جيتينستانس()
- >الحصول على('الماجنتو \ الإطار \ التطبيق \ التكوين \ سكوبيكونفيجينتيرفاس') - > جيتفالو ('القسم / المجموعة / الحقل');

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