bitpolar/categoryimgwidget

带有可选缩略图的Magento2分类列表小部件

1.1.0 2019-09-02 14:18 UTC

This package is auto-updated.

Last update: 2024-09-04 19:02:45 UTC


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

如何添加新的分类图像?

该模块已创建一个名为 缩略图 的图像字段。

如果您需要额外的图像字段,请按照以下步骤操作

  1. 创建一个升级数据脚本以创建新的分类图像属性。
  2. 通过复制粘贴文件 Controller/Adminhtml/Category/Thumbnail/Upload.php 创建新的上传类。更改类名和以下行
  $result = $this->imageUploader->saveFileToTmpDir('{image-attribute-code}');
  1. 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>
  1. 将新图像属性代码添加到帮助类 Helper/Category.php 第16行
public function getAdditionalImageTypes()
    {
        return array('thumbnail', '{image-attribute-code}');
    }
  1. 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'));