silverware/font-icons

SilverWare 字体图标模块。

安装次数: 6,615

依赖关系: 4

建议者: 0

安全性: 0

星标: 8

关注者: 2

分支: 5

公开问题: 2

类型:silverstripe-vendormodule

1.2.0 2018-06-12 06:46 UTC

This package is not auto-updated.

Last update: 2024-09-13 09:34:59 UTC


README

Latest Stable Version Latest Unstable Version License

提供了一种新的表单字段和数据库字段类型,用于引用字体图标。旨在与SilverWare一起使用,但此模块也可以安装到常规SilverStripe v4项目中。该模块提供Font Awesome的后端。

内容

背景

字体图标很方便。它们在所有设备上都看起来很好,而且通过HTML和CSS引用起来非常简单。然而,像Font Awesome这样的字体图标库提供了大量的图标,我们无法期望用户记住图标的名称、代码或需要查阅作弊表。

我们可以提供一个标准的选择字段列出所有可用的图标,但用户需要知道图标的样子。这就是这个模块提供的FontIconField的作用。它是SilverWare的Select2AjaxField类的扩展,提供了一个由配置的后端提供的Ajax驱动的可搜索图标列表,以及每个图标的预览。

要求

安装

通过Composer进行安装

$ composer require silverware/font-icons

配置

与所有SilverStripe模块一样,配置是通过YAML进行的。使用SilverStripe依赖注入器配置字体图标后端。默认配置为Font Awesome。

SilverStripe\Core\Injector\Injector:
  FontIconBackend:
    class: SilverWare\FontIcons\Backends\FontAwesomeBackend
    properties:
      version: 4.7.0
      classes:
        icon: fa-%s
        list-item: fa-li
        fixed-width: fa-fw

您可以通过更改version属性来指定正在使用的Font Awesome版本。在刷新后,后端将从GitHub下载完整的图标列表并缓存结果,直到下一次刷新。

使用

字段类型

要在您的代码中使用字体图标,您可以在$db数组中引用字段类型

use SilverStripe\ORM\DataObject;

class MyObject extends DataObject
{
    private static $db = [
        'Icon' => 'FontIcon'
    ];
}

您还可以在类文件中使用字段类型,并直接引用字段类型

use SilverStripe\ORM\DataObject;
use SilverWare\FontIcons\ORM\FieldType\DBFontIcon;

class MyObject extends DataObject
{
    private static $db = [
        'Icon' => DBFontIcon::class
    ];
}

表单字段

在您的getCMSFields方法中,创建一个FontIconField以允许用户选择图标

FontIconField::create('Icon', $this->fieldLabel('Icon'));

别忘了在类文件头部首先use这个字段

use SilverWare\FontIcons\Forms\FontIconField;

数据扩展

该模块还附带一个数据扩展类,可以轻松地将字体图标添加到SilverStripe中的数据对象。扩展添加了一个FontIcon数据库字段,并在CMS中添加了一个包含FontIconField的新图标选项卡。

要应用扩展到您的类,请使用YAML配置

MyNamespace\MyObject:
  extensions:
    - SilverWare\FontIcons\Extensions\FontIconExtension

问题

请使用GitHub问题跟踪器报告错误和功能请求。

待办事项

  • 测试

贡献

我们热烈欢迎您的贡献,以帮助使此项目变得更好。有关更多信息,请参阅贡献

归属

维护者

许可

BSD-3-Clause © Praxis Interactive