schachbulle/contao-helper-bundle

Sammlung von Hilfsfunktionen für die übrigen Erweiterungen, darunter ein einfacher dateibasierter Cache.

Maintainers

Package info

github.com/Samson1964/contao-helper-bundle

Type:contao-bundle

pkg:composer/schachbulle/contao-helper-bundle

Transparency log

Statistics

Installs: 255

Dependents: 22

Suggesters: 0

Stars: 0

Open Issues: 0

2.0.0 2026-07-31 13:07 UTC

README

Sammlung von Hilfsfunktionen für die übrigen Schachbulle-Erweiterungen: Datumsumwandlungen für die Schachdatenbanken, ein einfacher dateibasierter Cache, eine Formularhilfe und mehrere Insert-Tags rund um Schach und DeWIS.

Entwickler

Frank Hoppe

Voraussetzungen

  • PHP 7.4 oder neuer
  • Contao 4.13 oder Contao 5
  • MultiColumnWizard (wird als Abhängigkeit mitinstalliert)

Ab Fassung 2.0.0 läuft das Bundle unter beiden Contao-Versionen. Wer noch Contao 4.4 bis 4.12 einsetzt, bleibt bei 1.8.12.

Insert-Tags

Insert-Tag Ergebnis
{{alter::TT.MM.JJJJ}} Alter in vollen Jahren. Auch MM.JJJJ und JJJJ sind zulässig
{{dwz::id}} Aktuelle DWZ zur DeWIS-Kennung
{{elo::id}} Aktuelle Elo, verlinkt auf das FIDE-Profil
{{ftitel::id}} FIDE-Titel; mit {{ftitel::id::lang}} ausgeschrieben
{{verein::id}} Vereinsname; mit {{verein::id::30}} auf 30 Zeichen gekürzt
{{figur::wB}} Grafik einer Schachfigur; mit {{figur::wB/32}} in 32 Pixeln

Zu jedem Tag gibt es eine Zweitschreibweise mit dem Präfix cache_ (etwa {{cache_dwz::123}}) für Seiten, die zwischengespeichert werden.

Die Ersetzungen, mit denen {{verein::id}} lange Vereinsnamen kürzt, stehen im Backend unter System → Einstellungen → Insert-Tag verein. Ein Pluszeichen steht dort für ein Leerzeichen, damit sich führende und abschließende Leerzeichen eingeben lassen.

Die Abfragen an das Wertungsportal lassen sich über den Schalter dewis_switchedOff abschalten; er wird vom contao-dewis-bundle gepflegt.

Simple PHP Cache für Contao

Information

Die Cache-Klasse ist eine Anpassung für Contao. Sie basiert auf Simple PHP Cache.

Die Cache-Dateien liegen unter system/cache/schachbulle/. Ab Fassung 2.0.0 wird das Verzeichnis über den Container-Parameter kernel.project_dir bestimmt und steht damit auch bei Cronjobs und Konsolenbefehlen zur Verfügung.

Anwendung

<?php
    // Standardcache aktivieren, das Standardverzeichnis ist system/cache/schachbulle
    // Die Schlüssel werden in der Standardcachedatei "default" abgelegt, wenn kein Parameter
    // (hier 'Name') angegeben wird
    $cache = new \Schachbulle\ContaoHelperBundle\Classes\Cache('Name');

    // String erstellen, es sind aber beliebige Datentypen möglich - auch Objekte und Arrays
    $result = "Hallo";
    // String im Cache mit dem Schlüssel "ablage" speichern, Cachelebenszeit 3600s = 1h  
    $cache->store('ablage', $result, 3600);

    // Cache mit dem Schlüssel "ablage" laden
    $daten = $cache->retrieve('ablage');

    // Cache mit allen Schlüsseln laden
    $daten = $cache->retrieveAll();

    // Cache mit allen Schlüsseln und Metadaten laden
    $daten = $cache->retrieveAll(true);

    // Cache mit dem Schlüssel "ablage" löschen
    $cache->erase('ablage');

    // Cache mit allen Schlüsseln löschen
    $cache->eraseAll();

    // Cache mit den abgelaufenen Schlüsseln löschen
    $cache->eraseExpired();

    // Cache mit Schlüssel "ablage" auf Existenz prüfen und wenn vorhanden in Variable $result laden
    if($cache->isCached('ablage'))
    {
        $result = $cache->retrieve('ablage');
    }

    // Cache mit einem neuen Dateinamen 'Test' generieren
    // Die Schlüssel werden jetzt in dieser Datei verwaltet.
    $cache2 = new \Schachbulle\ContaoHelperBundle\Classes\Cache('Test');

    // Möglich ist der Wechsel des Cachenamens auch so, ohne ein neues Objekt anzulegen
    $cache->setCache('Test');

?>

Alter berechnen

<?php
    // Parameter $string: TT.MM.JJJJ oder MM.JJJJ oder JJJJ
    // Rückgabe: Alter in vollen Jahren, oder false wenn die Eingabe kein Datum ist
    $alter = \Schachbulle\ContaoHelperBundle\Classes\Alter::Jahre($string);
?>

Fehlt der Tag oder auch der Monat, wird auf den Monatsersten bzw. den 1. Januar aufgefüllt; das ermittelte Alter ist dann die Obergrenze.

Tests

vendor/bin/phpunit

Die Tests kommen ohne Contao aus. Läuft PHPUnit an anderer Stelle, wird die Konfiguration mitgegeben:

php ../../tools/phpunit9/vendor/phpunit/phpunit/phpunit --configuration phpunit.xml.dist