Ankündigung

Einklappen
Keine Ankündigung bisher.

DCA Manipulation Backend Buttons Contao ^4

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DCA Manipulation Backend Buttons Contao ^4

    In diversen Threads hier im Forum wurde ja der Wunsch nach der Veränderung / Ausblenden von Backend Icons geäußert (in CC Listen z.B.).

    Die Lösungen waren ja nach immer nach der alten Contao Art -> dcaconfig.php im system/config Ordner.
    Nachdem diese Methode ja spätestens mit C5 nicht mehr funktioniert haben wir eine Lösung über contao/dca/tl_table.php gesucht.

    Als Beispiel wollen wir den Delete Button im Produktkatalog ausblenden:
    PHP-Code:
    unset( $GLOBALS['TL_DCA']['cc_product_catalog']['list']['operations']['delete'] ); 

    Nach diversen Tests in einer aktuellen Umgebung mit C 4.13.35 und CC 4.4.22 haben wir nun folgende Erkenntnisse:
    • contao/dca/cc_product_catalog.php funktioniert nicht.
    • contao/dca/tl_product_catalog.php (also ein CC mit tl_ Bezeichnung ) -> funktioniert nicht.
    • contao/dca/tl_page.php -> und dort die Anweisung ergänzen -> funktioniert
    -> Contao berücksichtigt hier offenbar die selbst angelegten CCs nicht über die contao/dca Routine sondern nur alle anderen tl_table Tabellen

    Das Ganze funktioniert auch nur in aktuellen CC Versionen (Bsp. CC Version 4.4.10 in Kombination mit Contao 4.13.6 geht gar nicht, auch nicht über andere Tabellen).

    Inwieweit sich hier weitere Manipulationen über einen "fremden" Pfad machen lassen, haben wir nicht geprüft.

    Evtl. kann diese Methode ja in künftigen CC Updates berücksichtigt werden?

  • #2
    In der CC Konfiguration können die Buttons gewählt werden. Der Weg über DCA Manipulation ist nur notwendig, wenn man spezielle, individuelle Logiken benötigt.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: screenshot_1548.jpg Ansichten: 0 Größe: 26,9 KB ID: 28328

    ---
    Die Manipulation über contao/dca/CC-TABELLE.php funktioniert ohne Probleme.

    Du darfst den DCA-Cache nicht umgehen (Systemeinstellung > DCA-Cache deaktiveren darf nicht aktiv sein) -> sonst wird CC immer frisch den DCA erstellen und das auf Basis des loadDataContainer Hooks, der (unsinnigerweise) NACH dem include der manipulativen dca Dateien ausgeführt wird.

    Include
    https://github.com/contao/core-bundl...oader.php#L112

    Hook:
    https://github.com/contao/core-bundl...oader.php#L139
    Zuletzt geändert von Tim; 15.12.2023, 08:57.
    http://www.premium-contao-themes.com

    Kommentar

    Lädt...
    X