asdoria/sylius-product-document-plugin

Asdoria 产品文档

0.1.3 2023-03-14 10:24 UTC

This package is auto-updated.

Last update: 2024-09-14 14:26:21 UTC


README

Example of a product's documents customization

Asdoria 产品文档插件

一个用于创建、分组和将文档与产品关联的插件

功能

  • 创建文档类型
  • 从产品配置页面轻松自定义要显示的文档
  • 文档将在产品商店页面自动显示并可下载

Example of a product's documents customization

在产品编辑页面创建文档类型并自定义其内容。 产品文档自定义示例

安装

  1. 运行 composer require asdoria/sylius-product-document-plugin

  2. config/bundles.php 中添加捆绑包。您必须将其放在 SyliusGridBundle 之上

Asdoria\SyliusProductDocumentPlugin\AsdoriaSyliusProductDocumentPlugin::class => ['all' => true],
[...]
Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],
  1. config/routes.yaml 中导入路由
asdoria_product_document:
    resource: "@AsdoriaSyliusProductDocumentPlugin/Resources/config/routing.yaml"
  1. config/packages/_sylius.yaml 中导入配置
imports:
    - { resource: "@AsdoriaSyliusProductDocumentPlugin/Resources/config/app/config.yaml"}
  1. src/Entity/Product/Product.php 中。导入以下类、特性和方法。
use Asdoria\SyliusProductDocumentPlugin\Model\Aware\ProductDocumentsAwareInterface;
use Asdoria\SyliusProductDocumentPlugin\Model\ProductDocumentInterface;
use Asdoria\SyliusProductDocumentPlugin\Traits\ProductDocumentsTrait;
use Sylius\Component\Product\Model\ProductTranslationInterface;

class Product extends BaseProduct implements  ProductDocumentsAwareInterface
{
    use ProductDocumentsTrait;

    public function __construct()
    {
        parent::__construct();
        $this->initializeProductDocumentsCollection();
    }
    
    /**
     * @param ProductDocumentInterface $productDocument
     */
    public function addProductDocument(ProductDocumentInterface $productDocument): void
    {
        if (!$this->hasProductDocument($productDocument)) {
            $productDocument->setProduct($this);
            $this->productDocuments->add($productDocument);
        }
    }

    /**
     * @param ProductDocumentInterface $productDocument
     */
    public function removeProductDocument(ProductDocumentInterface $productDocument): void
    {
        if ($this->hasProductDocument($productDocument)) {
            $productDocument->setProduct(null);
            $this->productDocuments->removeElement($productDocument);
        }
    }    
}
  1. 运行 php bin/console do:mi:mi 更新数据库模式

  2. Gaufrette 已不再被 Sylius 使用,取而代之的是 Flysystem。如果您想在项目中使用 Gaufrette,您需要在您的 config/packages/_sylius.yaml 文件中设置。

    asdoria_sylius_product_document:
        filesystem:
            adapter: gaufrette

演示

您可以通过以下链接查看用户的示例结果: 这里
如果您想尝试创建文档,请访问 管理员认证页面 并使用以下凭据连接:

登录: asdoria
密码: asdoria

然后转到 后台办公室中的“文档类型” 并遵循以下使用说明。

请注意,我们为 Sylius 开发了其他几个开源插件,其演示和文档列在 以下页面 上。

使用方法

  1. 在后台办公室中,在 目录 下,进入 文档类型。使用唯一代码创建文档类型。
  2. 转到产品编辑页面,然后在侧边栏中点击 文档 选项卡。在这里,您可以添加文档类型,然后上传要显示的每个文档。