anubarak/craft-seeder

Craft CMS 的简单条目生成器

安装: 168

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 3

类型:craft-plugin

5.0.0.7 2024-08-14 07:52 UTC

README

使用方法

生成器允许您通过命令行快速创建模拟条目。完成网站建设后,您可以轻松删除模拟数据。安装插件后,运行 php craft element-seeder/generate/entries 创建条目

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的 Craft 项目

     cd /path/to/project
    
  2. 然后告诉 Composer 加载插件

     composer require anubarak/craft-seeder
    
  3. 在控制面板中,转到设置 → 插件,并点击 "Seeder" 的 "安装" 按钮。

条目(部分 ID/handle,数量)

使用以下命令,后跟 --section 选项和您想要创建的条目数量(如果省略,默认为 20)。此命令适用于部分 ID 和 handle。

php craft element-seeder/generate/entries --section=news --count=15

清理

完成网站建设后,插件提供了一种简单的方法来删除模拟数据(条目、资产、类别和用户)。这可以通过 CP(点击侧边栏的 Seeder 部分)或通过以下命令行操作完成:

php craft element-seeder/clean-up

配置选项

您可以为每个布局包含自定义配置

<?php

use anubarak\seeder\models\EntryConfig;
use anubarak\seeder\models\FieldCallback;
use anubarak\seeder\models\Settings;
use craft\base\ElementInterface;
use craft\base\FieldInterface;

$config = (new Settings())
    ->fieldsConfig([
        new EntryConfig(
            'news',
            null,
            [
                (new FieldCallback('date'))
                    ->setCallable(
                        static function(
                            \Faker\Generator $faker,
                            FieldInterface   $field,
                            ElementInterface $element
                        ) {
                            return new DateTime();
                        }
                    ),
                (new FieldCallback('date2'))
                    ->setCallable(
                        static function(
                            \Faker\Generator $faker,
                            FieldInterface   $field,
                            ElementInterface $element
                        ) {
                            $date = (clone $element->getFieldValue('date'));
                            $date->modify('+1 day');

                            return $date;
                        }
                    ),
                (new FieldCallback('headline'))
                    ->setFakerMethod('text'),
            ]
        )
    ]);

// required for Craft 4 since they'll do an array_merge
return $config->toArray([], ['fieldsConfig'], false);

在为 news 部分的条目字段 datedate2text 进行生成时,会创建一个自定义回调。文本将调用 Faker 函数 $faker->text,而 datedate2 将调用回调函数以填充字段并满足自定义条件