[812 Aufrufe]

5.22 Hooks: search

In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Stylesheets.

Hook: compileDefinition

Der compileDefinition Hook wird aufgerufen, wenn aus dem internen CSS-Editor ein Stylesheet erstellt wird.

Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden!

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: compileDefinition, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

class ExampleHook {

    public function handleHook(array $row, bool $writeToFile, array $vars, array $parent): string
    {
        if (isset($row['border-radius'])) {
            return "\nborder-radius:" . $arrRow['border-radius'] . ";";
        }

        return '';
    }
}

Parameter:

Parameter Typ Beschreibung
$row array Array mit den Daten der Definition aus tl_style_sheet
$writeToFile bool Bei true wird die Definition in die CSS-Datei geschrieben
$vars array CSS Variablen des Themes
$parent array Elterndatensatz der Definition aus tl_style

Rückgabewert:

Typ Beschreibung
string String mit der überarbeiteten Definition

Referenz im Contao Core: \Contao\StyleSheets#L930-L943

Hook: createDefinition

Der createDefinition Hook wird aufgerufen, wenn ein Stylesheet importiert wird.

Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden!

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: createDefinition, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

class ExampleHook {

    public function handleHook(string $key, string $value, string $definition, array &$dataSet): ?array
    {
        if ('border-radius' === $key) {
            return ['border-radius' => $value];
        }

        return null;
    }
}

Parameter:

Parameter Typ Beschreibung
$key string Name der Css Eigenschaft
$value string Wert der Css Eigenschaft
$definition string String mit der gesamten Css Definition
$dataSet array Datensatz der in die Datenbank eingefügt werden soll

Rückgabewert:

Typ Beschreibung
array oder null Array mit der Css Eigenschaft, die gespeichert werden soll, oder null

Referenz im Contao Core: \Contao\StyleSheetsL2203-L2217