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(6mo ago)0401BSD-3-ClausePHP

Since Jan 26Pushed 6mo 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 2d 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODMyODQ4MTUsIm5iZiI6MTc4MzI4NDUxNSwicGF0aCI6Ii80MzEzNTk0Ni81NDA1MjQ4NzUtZTBlNTFiYmItYWVkNi00MzBhLWI4NjctMjEyZDE0ZWQ4NDFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzA1VDIwNDgzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE1MGRhNjA5MDM2ZDY2ZGNmNDEwNWVmNmJmZDg5NjJkZDFkY2YwOGE3MmZmMzZiZDYwODQxNTM3OWVjMGVmNDcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.mJ9xVM7uIgmOY2V4OzShp3XEbIucRtymoBkwDsulfLQ)](https://private-user-images.githubusercontent.com/43135946/540524875-e0e51bbb-aed6-430a-b867-212d14ed841a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODMyODQ4MTUsIm5iZiI6MTc4MzI4NDUxNSwicGF0aCI6Ii80MzEzNTk0Ni81NDA1MjQ4NzUtZTBlNTFiYmItYWVkNi00MzBhLWI4NjctMjEyZDE0ZWQ4NDFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzA1VDIwNDgzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE1MGRhNjA5MDM2ZDY2ZGNmNDEwNWVmNmJmZDg5NjJkZDFkY2YwOGE3MmZmMzZiZDYwODQxNTM3OWVjMGVmNDcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.mJ9xVM7uIgmOY2V4OzShp3XEbIucRtymoBkwDsulfLQ)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

31

—

LowBetter than 65% of packages

Maintenance67

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

196d 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

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M92](/packages/silverstripe-userforms)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46304.8k9](/packages/symbiote-silverstripe-advancedworkflow)[nathancox/codeeditorfield

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

2549.6k5](/packages/nathancox-codeeditorfield)[sunnysideup/typography

Add a typography test page to your silverstripe website / application.

124.5k4](/packages/sunnysideup-typography)

PHPackages © 2026

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