siteation / magento2-module-storeinfo
1.2.1
2022-12-15 19:46 UTC
Requires
- magento/framework: ^102.0|^103.0
- magento/module-directory: ^100.3|^100.4
- magento/module-store: ^101.0|^101.1
README
此 Magento 2 模块添加了轻松获取商店信息的选项。
因此,您可以从“商店 > 配置”中获取商店电话号码。而不是使用静态块或在模板中直接硬编码它。
安装
通过以下方式安装包;
composer require siteation/magento2-storeinfo bin/magento module:enable Siteation_StoreInfo
注意 此模块需要 Magento 2.3 或更高版本!有关更多要求,请参阅
composer.json
。
如何使用
默认情况下,此模块不加载任何内容。
使用以下示例之一开始。
添加地址块
我们创建了一个使用商店信息的地址块。它还包含 schema 标签 以丰富联系信息。
要加载默认的商店地址块,请将以下 XML 示例之一放入模板中。
Hyva - XML 示例
<referenceBlock name="footer-content"> <block name="footer.store.info" as="footer-store-info" template="Siteation_StoreInfo::hyva/store-address.phtml" /> </referenceBlock>
Luma - XML 示例
<referenceContainer name="footer"> <block name="footer.store.info" as="footer-store-info" template="Siteation_StoreInfo::luma/store-address.phtml"> <arguments> <argument name="viewModelStoreInfo" xsi:type="object">Siteation\StoreInfo\ViewModel\StoreInfo</argument> </arguments> </block> </referenceContainer>
在自己的块中获取商店信息
首先在模板中获取 viewModal。
Hyva - Sample Phtml 文件头
<?php declare(strict_types=1); use Hyva\Theme\Model\ViewModelRegistry; use Magento\Framework\View\Element\Template; use Magento\Framework\Escaper; use Siteation\StoreInfo\ViewModel\StoreInfo; /** @var ViewModelRegistry $viewModels */ /** @var Template $block */ /** @var Escaper $escaper */ /** @var StoreInfo $storeInfo */ $storeInfo = $viewModels->require(StoreInfo::class);
Luma - Sample Phtml 文件头
对于 Luma 模板, 请参阅之前的示例,了解加载 viewModal 所需的 XML。
<?php declare(strict_types=1); use Magento\Framework\View\Element\Template; use Magento\Framework\Escaper; /** @var Template $block */ /** @var Escaper $escaper */ /** @var Siteation\StoreInfo\ViewModel\StoreInfo $storeInfo */ $storeInfo = $block->getData('viewModelStoreInfo');
之后,您可以在 phtml 中以文本形式加载任何 Magento StoreInfo 字段;
<?php // Get specific predefined store info field $storeInfo->getPostcode(); $storeInfo->getSalesEmail(); // Get the same as above, using the global functions $storeInfo->getStoreInfo('postcode'); // 'general/store_information/%s' $storeInfo->getStoreEmail('email', 'ident_sales'); // 'trans_email/%2$s/%1$s'