pixelpoems/silverstripe-selection-field

Silverstripe 模块,为 CMS 提供选择字段。

安装: 173

依赖: 1

建议: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

1.1.0 2024-04-16 13:17 UTC

This package is auto-updated.

Last update: 2024-09-08 07:43:29 UTC


README

stability-beta

本模块提供了一个基于 heyday 的颜色调色板字段的选项字段。

需求

安装

composer require pixelpoems/silverstripe-selection-field

使用

基于: SilverStripe\Forms\OptionsetFieldHeyday\ColorPalette\Fields\ColorPaletteField

private static $db = [
    'Alignment' => 'Varchar',
];

private static $defaults = [
    'Alignment' => 'left',
];

public function getCMSFields()
{
    $fields = parent::getCMSFields();

    $fields->addFieldsToTab('Root.Main', [

        SelectionField::create(
           $name = 'Alignment',
           $title = 'Alignment',
           $source = [
                'left' => [
                    'Value' => 'left',
                    'Title' => _t('LayoutOptions.Left', "Left"),
                    'ShowTitle' => true,
                    'Icon' => 'align-left'
                ],
                'center' => [
                    'Value' => 'center',
                    'Title' => _t('LayoutOptions.Center', "Center"),
                    'ShowTitle' => true,
                    'Icon' => 'align-center'
                ],
                'right' => [
                    'Value' => 'right',
                    'Title' => _t('LayoutOptions.Right', "Right"),
                    'ShowTitle' => true,
                    'Icon' => 'align-right'
                ],
                $value = 'left'
        );

    ]);
}

example-alignment-fa.png

要显示图标,您需要引用 Font Awesome 图标(免费 & Solid):https://fontawesome.com 使用不带 fa- 前缀的图标名称。例如,align-left 用于 fa-align-left

如果数组中没有定义图标,则框将显示标题!您可以在选项中定义“内容”时定义替代框内容。此外,您可以定义图像链接

'medium' => [
    'Value' => 'medium',
    'Title' => _t('LayoutOptions.Medium', 'Medium'),
    'ShowTitle' => true,
    'Content' => 'M',
    'ImgLink' => '/assets/medium.png'
],

如果您定义了图标和图像链接,则图像链接将被忽略。根据层次结构,首先显示图标,然后显示图像链接,然后显示内容 - 如果没有定义任何内容,则显示标题。

如果您使用 ImgLink,则可以让用户上传到预定义的文件夹中的图像。您可以使用本模块附带的服务 - Icon Selection Service,为用户提供图像。您可以使用以下代码提供图像

private static array $db = [
    'IconID' => 'Varchar'
];

public function getCMSFields()
{
    $fields = parent::getCMSFields();

    $fields->addFieldsToTab('Root.Main', [
        SelectionField::create('IconID', 'Icon', IconSelectionService::getIconOptions())
    ]);

    return $fields;
}

报告问题

如果您发现了任何错误,或者缺少某些功能,请 创建一个问题

致谢

图标来自 Font Awesome
选择字段基于 Heyday 的颜色调色板字段