Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Um Varianten für ein PrintElementVariants zur Auswahl hinzuzufügen, kann das Event \Brandbox\PrintCore\PrintDocument\Structure\Lib\Event\OnPopulateVariants verwendet werden. Wichtig ist, dass man nur relevante Varianten für die Kombination aus $plugin und $view erweitert.

Für diese Vorgehensweise gibt es die Klasse \Brandbox\PrintCore\PrintDocument\Structure\Lib\Request\Listener\PrintDocumentStructure\PopulateVariants\PopulateVariantsAbstract von der abgeleitet werden kann. Damit kann man die Varianten über ein Array definieren.

Codeblock
languagejs
themeRDark
titleBeispiel Listener
use Brandbox\PrintCore\PrintDocument\Structure;

class Variants extends Structure\Lib\Request\Listener\PrintDocumentStructure\PopulateVariants\PopulateVariantsAbstract
{
    public const PLUGIN = 'View/PrintParagraph';
    public const VIEW = 'paragraph';
    public const VARIANTS = [
        'MyKeyVariant1' => [
            'label' => 'i18n:View/ProtektorPrintParagraph.EnumerationVariantsFooterCount',
            'variants' => ['position-footer']
        ],
        'MyKeyVariant2' => [
            'label' => 'i18n:View/ProtektorPrintParagraph.EnumerationVariantsProductHeadline',
            'variants' => ['product-headline']
        ]
    ];
}

Man sollte beachten, dass die erstellten Tabellen für die Views auch in einem Rollenschema hinterlegt wurden. Meist in der App in welcher der View liegt. Engine-Methoden brauchen keine Security-Definition, da der view ohne Rechtecheck aufgerufen wird (die Eintity unterliegt allerdings noch dem Rechtesystem).

...