bitpolar / categoryimgwidget
带有可选缩略图的Magento2分类列表小部件
1.1.0
2019-09-02 14:18 UTC
Requires
- php: ~7.1.3||~7.2.0
README
基于
https://github.com/studioraz/magento2-category-image
https://github.com/MageMontreal/magento2-category-list-widget
#功能
- 将分类列表作为小部件添加
- 管理输出图像大小
- 分配自定义父分类
- 或列出任何分类
- 添加并使用额外的缩略图作为预览图像
- 图像被调整大小并缓存到用户定义的大小
- 使用占位符图像作为默认图像
Composer 安装说明
composer require bitpolar/categoryimgwidget
启用 Bitpolar/CategoryImgWidget 模块
要启用此模块,您需要按照以下步骤操作-
启用模块
bin/magento module:enable Bitpolar_CategoryImgWidget
-
运行升级设置
bin/magento setup:upgrade
-
重新编译(如果已启用编译)
bin/magento setup:di:compile
如何添加新的分类图像?
该模块已创建一个名为 缩略图 的图像字段。
如果您需要额外的图像字段,请按照以下步骤操作
- 创建一个升级数据脚本以创建新的分类图像属性。
- 通过复制粘贴文件 Controller/Adminhtml/Category/Thumbnail/Upload.php 创建新的上传类。更改类名和以下行
$result = $this->imageUploader->saveFileToTmpDir('{image-attribute-code}');
- 在 view/adminhtml/ui_component/category_form.xml 中将新字段添加到管理员HTML分类表单,并更改:字段名、标签和上传器URL
<field name="{image-attribute-code}"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">string</item> <item name="source" xsi:type="string">category</item> <item name="label" xsi:type="string" translate="true">{Image Label}</item> <item name="visible" xsi:type="boolean">true</item> <item name="formElement" xsi:type="string">fileUploader</item> <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item> <item name="previewTmpl" xsi:type="string">Magento_Catalog/image-preview</item> <item name="required" xsi:type="boolean">false</item> <item name="sortOrder" xsi:type="number">41</item> <item name="uploaderConfig" xsi:type="array"> <item name="url" xsi:type="url" path="categoryimage/category_thumbnail/{upload-class-file-name}"/> </item> </item> </argument> </field>
- 将新图像属性代码添加到帮助类 Helper/Category.php 第16行
public function getAdditionalImageTypes() { return array('thumbnail', '{image-attribute-code}'); }
- 在 Controller/Adminhtml/Category/Save.php 控制器类中重复步骤4的第18行
protected function getAdditionalImages() { return array('thumbnail', '{image-attribute-code}'); }
如果一切顺利,您应该在“内容”组下看到新的字段。您还应该能够成功上传、保存和删除图像文件。
如何在前端显示新的图像?
该模块包含一个可以在前端分类页面上打印任何新图像字段的块。只需将以下XML块添加到您希望图像出现的容器/block下。
<block class="Bitpolar\CategoryImgWidget\Block\Image" name="bitpolar.category.image" template="Bitpolar_CategoryImgWidget::image.phtml"> <arguments> <argument name="image_code" xsi:type="string">{image-attribute-code}</argument> <argument name="css_class" xsi:type="string">{div-css-class}</argument> </arguments> </block>
上述块只能在分类页面上打印分类图像,因为它假设核心注册中已存储分类模型。如果您需要在其他页面上打印图像,请使用以下代码片段。
$category = 'load a category model class here'; // the decision how to load category model object is up to you. $helper = $this->helper('Bitpolar\CategoryImgWidget\Helper\Category'); $imageUrl = $helper->getImageUrl($category->getData('image-attribute-code'));