PHPackages                             moritz-sauer-13/silverstripe-iconfield - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. moritz-sauer-13/silverstripe-iconfield

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

moritz-sauer-13/silverstripe-iconfield
======================================

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

1.0.0(5mo ago)0361BSD-3-ClausePHP

Since Jan 26Pushed 5mo agoCompare

[ Source](https://github.com/moritz-sauer-13/silverstripe-iconfield)[ Packagist](https://packagist.org/packages/moritz-sauer-13/silverstripe-iconfield)[ RSS](/packages/moritz-sauer-13-silverstripe-iconfield/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (1)

SilverStripe IconField
======================

[](#silverstripe-iconfield)

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

[![Screenshot 2026-01-26 145306](https://private-user-images.githubusercontent.com/43135946/540524875-e0e51bbb-aed6-430a-b867-212d14ed841a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODE3ODI1MTQsIm5iZiI6MTc4MTc4MjIxNCwicGF0aCI6Ii80MzEzNTk0Ni81NDA1MjQ4NzUtZTBlNTFiYmItYWVkNi00MzBhLWI4NjctMjEyZDE0ZWQ4NDFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjE4VDExMzAxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZjMjViNWFkNzQ3NWM3Y2I4Zjc3MWRjZTZkZTRiNWFhYTkzYTRkZTU0OGYwY2YxYmU1Y2Q0OTIzMzMxZDUwODcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.qJLAJPtJI5r8zyrA3dpYsZChvsEuagpE6ZszohYwVnU)](https://private-user-images.githubusercontent.com/43135946/540524875-e0e51bbb-aed6-430a-b867-212d14ed841a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODE3ODI1MTQsIm5iZiI6MTc4MTc4MjIxNCwicGF0aCI6Ii80MzEzNTk0Ni81NDA1MjQ4NzUtZTBlNTFiYmItYWVkNi00MzBhLWI4NjctMjEyZDE0ZWQ4NDFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjE4VDExMzAxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZjMjViNWFkNzQ3NWM3Y2I4Zjc3MWRjZTZkZTRiNWFhYTkzYTRkZTU0OGYwY2YxYmU1Y2Q0OTIzMzMxZDUwODcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.qJLAJPtJI5r8zyrA3dpYsZChvsEuagpE6ZszohYwVnU)Features
--------

[](#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
------------

[](#installation)

Das Modul ist als lokales Modul im Projekt eingebunden.

```
composer update
```

Nach der Installation:

```
vendor/bin/sake dev/build flush=all
```

Verwendung
----------

[](#verwendung)

### In DataObjects oder Pages

[](#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

[](#im-template)

```

```

Automatisches Icon-Parsing
--------------------------

[](#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

[](#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
------------------------------

[](#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('', $this->getIconPrefix(), $iconIdentifier);
    }
}
```

### Provider in der Konfiguration registrieren

[](#provider-in-der-konfiguration-registrieren)

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

Konfiguration
-------------

[](#konfiguration)

### Standard-Provider ändern

[](#standard-provider-ändern)

In `app/_config/iconfield.yml`:

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

### Cache-Konfiguration

[](#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
------

[](#lizenz)

BSD-3-Clause

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance73

Regular maintenance activity

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

151d ago

Major Versions

0.1.0 → 1.0.02026-01-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/237ff98c98e71b509c4dac62b31efaf7823cca011952ded67579a6cf763b7a47?d=identicon)[moritz-sauer-13](/maintainers/moritz-sauer-13)

---

Top Contributors

[![moritz-sauer-13](https://avatars.githubusercontent.com/u/43135946?v=4)](https://github.com/moritz-sauer-13 "moritz-sauer-13 (6 commits)")

---

Tags

silverstripeformfieldiconpickerBootstrap Icons

### Embed Badge

![Health badge](/badges/moritz-sauer-13-silverstripe-iconfield/health.svg)

```
[![Health](https://phpackages.com/badges/moritz-sauer-13-silverstripe-iconfield/health.svg)](https://phpackages.com/packages/moritz-sauer-13-silverstripe-iconfield)
```

###  Alternatives

[symbiote/silverstripe-gridfieldextensions

A collection of useful grid field components

951.9M264](/packages/symbiote-silverstripe-gridfieldextensions)[silverstripe/tagfield

Tag field for SilverStripe

561.3M50](/packages/silverstripe-tagfield)[lekoala/silverstripe-cms-actions

Add actions to your models in SilverStripe

39317.0k29](/packages/lekoala-silverstripe-cms-actions)[nathancox/codeeditorfield

A field for editing code and JSON in the SilverStripe CMS using Ace Editor (http://ace.c9.io/)

2549.0k5](/packages/nathancox-codeeditorfield)[lekoala/silverstripe-softdelete

Soft delete extension for SilverStripe

11212.9k](/packages/lekoala-silverstripe-softdelete)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
