承接 moritz-sauer-13/silverstripe-iconfield 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

moritz-sauer-13/silverstripe-iconfield

最新稳定版本:1.0.0

Composer 安装命令:

composer require moritz-sauer-13/silverstripe-iconfield

包简介

A flexible icon picker field for SilverStripe CMS with support for multiple icon libraries

README 文档

README

Ein flexibles Icon-Auswahl-Feld für SilverStripe CMS mit Unterstützung für verschiedene Icon-Bibliotheken.

Screenshot 2026-01-26 145306

Features

  • Visueller Icon-Picker: Ansprechendes Grid-Layout mit Icon-Vorschau
  • Suchfunktion: Schnelles Filtern von Icons nach Name
  • Erweiterbar: Unterstützung für verschiedene Icon-Bibliotheken durch das IconProviderInterface
  • Bootstrap Icons: Standardmäßig mit Bootstrap Icons (2000+ Icons)
  • Automatisches Parsing: Icons werden automatisch aus der CSS-Datei geparst
  • Intelligentes Caching: Geparste Icons werden für 1 Woche gecached
  • Responsive: Funktioniert auf allen Bildschirmgrößen

Installation

Das Modul ist als lokales Modul im Projekt eingebunden.

composer update

Nach der Installation:

vendor/bin/sake dev/build flush=all

Verwendung

In DataObjects oder Pages

use MoritzSauer\IconField\Forms\IconField;

class MyPage extends Page
{
    private static $db = [
        'Icon' => 'Varchar(100)',
    ];

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();
        
        $fields->addFieldToTab(
            'Root.Main',
            IconField::create('Icon', 'Icon auswählen')
        );
        
        return $fields;
    }
}

Im Template

<% if $Icon %>
    <i class="bi $Icon"></i>
<% end_if %>

Automatisches Icon-Parsing

Der BootstrapIconProvider lädt die Icons automatisch aus der Bootstrap Icons CSS-Datei. Die Icons werden geparst und für 1 Woche gecached, um die Performance zu optimieren.

Cache manuell aktualisieren

Falls Sie den Icon-Cache manuell aktualisieren möchten:

use MoritzSauer\IconField\IconProvider\BootstrapIconProvider;

$provider = new BootstrapIconProvider();
$provider->refreshCache();

Eigene Icon-Provider erstellen

Sie können eigene Icon-Provider erstellen, indem Sie das IconProviderInterface implementieren:

namespace MyVendor\MyModule\IconProvider;

use MoritzSauer\IconField\IconProvider\IconProviderInterface;

class FontAwesomeProvider implements IconProviderInterface
{
    public function getIcons(): array
    {
        return [
            'fa-home' => 'Home',
            'fa-user' => 'User',
            // ...
        ];
    }

    public function getIconPrefix(): string
    {
        return 'fa';
    }

    public function getCdnUrl(): ?string
    {
        return 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css';
    }

    public function getName(): string
    {
        return 'Font Awesome';
    }

    public function renderIcon(string $iconIdentifier): string
    {
        return sprintf('<i class="%s %s"></i>', $this->getIconPrefix(), $iconIdentifier);
    }
}

Provider in der Konfiguration registrieren

# app/_config/iconfield.yml
SilverStripe\Core\Injector\Injector:
  MoritzSauer\IconField\IconProvider\IconProviderInterface:
    class: MyVendor\MyModule\IconProvider\FontAwesomeProvider

Konfiguration

Standard-Provider ändern

In app/_config/iconfield.yml:

SilverStripe\Core\Injector\Injector:
  MoritzSauer\IconField\IconProvider\IconProviderInterface:
    class: MoritzSauer\IconField\IconProvider\BootstrapIconProvider

Cache-Konfiguration

Der Icon-Cache ist bereits konfiguriert. Falls Sie die Cache-Einstellungen anpassen möchten:

# app/_config/iconfield.yml
SilverStripe\Core\Injector\Injector:
  Psr\SimpleCache\CacheInterface.iconfield:
    factory: SilverStripe\Core\Cache\CacheFactory
    constructor:
      namespace: 'iconfield'

Lizenz

BSD-3-Clause

统计信息

  • 总下载量: 34
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2026-01-26

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固