Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: keine neuen Legends in Subpalettes möglich, PaletteManipulator

  1. #1
    Contao-Nutzer
    Registriert seit
    27.09.2022.
    Beiträge
    10

    Frage keine neuen Legends in Subpalettes möglich, PaletteManipulator

    Hey,
    wir sind auf ein Problem gestoßen und wundern uns auch ein wenig, was Subpalettes und Legends betrifft.
    Wir haben ein Content Element mit einen Select Element, das verschiedene Optionen bereitstellt. Je nach Option gibt es verschiedene DCA Felder, die dargestellt werden sollen. Damit es im Backend auch übersichtlich ist, wollten wir eigene Legends hinzufügen. Es ist eine komplexere Entwicklung weshalb wir hier so vorgehen. Doch Contao verbietet es in der Core Entwicklung, neue Legends bei "applyToSubpalette()" anzulegen.

    Sie dazu folgenden Link:
    https://github.com/contao/core-bundl...ulator.php#L89 - Beginn
    https://github.com/contao/core-bundl...lator.php#L110 - hier wurde der Parameter "$this->applyToString($subpalettes[$name], true);" gesetzt.

    Wieso hält man hier keinen Parameter bereit, um dieses Verhalten selbst steuern zu können? Wenn wir die alte Schreibweise ohne Manipulator nutzen, funktioniert dies ohne Probleme, wir möchten aber die "neue" Schreibweise verwenden.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Subpaletten unterstützen keine Legends, unabhängig vom PaletteManipulator.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    27.09.2022.
    Beiträge
    10

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Subpaletten unterstützen keine Legends, unabhängig vom PaletteManipulator.
    Die Frage ist aber wieso? Wieso unterdrückt man dies? Ich kann verstehen, das man normalerweise Subpalettes meist nur im eigenen Legend-Bereich nutz, der diese Subpalette auch aktiviert. Halte dies aber auch nicht für ganz richtig, gerade für komplexere DCA's. Man blockiert etwas, was keinen direkten Einfluss auf das DCA hat sondern nur der Übersicht dient?

    Oder gibt es eine andere Möglichkeit, es so umzusetzen wie im obigen Beispiel genannt?

    Edit: eventuell missverstanden
    Edit 2: Bitte den letzten Satz im Thread nochmal lesen. Die alte Schreibweise funktioniert unter Contao 4.13 so, wie wir es uns das vorstellen. Es funktioniert also, nur mit dem Manipulator nicht.
    Geändert von Pecho (26.01.2023 um 15:59 Uhr)

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Zitat Zitat von Pecho Beitrag anzeigen
    Wieso unterdrückt man dies?
    Ich verstehe nicht was du damit meinst.

    Beschreibe mal genauer was du machen willst.

    Zitat Zitat von Pecho Beitrag anzeigen
    Wenn wir die alte Schreibweise ohne Manipulator nutzen, funktioniert dies ohne Probleme, wir möchten aber die "neue" Schreibweise verwenden.
    Beschreibe genauer, wie du das meinst. Was meinst du mit "alte Schreibweise"?
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    27.09.2022.
    Beiträge
    10

    Standard

    Bitte die Verlinkungen mit ansehen. Die Legends unter Subpalettes werden einfach nur übersprungen (siehe https://github.com/contao/core-bundl...lator.php#L119), sobald man den Parameter $skipLegends auf True setzt wie auf der #L110 zu sehen. Ansonsten sehe ich keinen wirklichen Unterschied zwischen diesen Funktionen.

    Die alte Schreibweise war die Erstellung der DCA Felder und Zuordnung ohne PaletteManipulator ala "$GLOBALS['TL_DCA']['tl_content']['subpalettes']['xyz'] = '';{title_legend},title,subtitle;{teaser_legend},t easer;{image_legend},image;{redirect_legend},redir ect';", bei denen die Legends mit angezeigt werden, sobald man die jeweilige Option (und dazugehöriger Subpalette) auswählt.

    Das ist ein Beispielcode.

    Was ich möchte: Wir haben ein Content Element mit einen Select Element, das verschiedene Optionen bereitstellt. Je nach ausgewählter Option gibt es verschiedene DCA Felder, die dargestellt werden sollen. Damit es im Backend auch übersichtlich ist, wollten wir eigene Legends zu den Subpalettes hinzufügen, die dann auch erst angezeigt werden sollen, wenn die jeweilige Option ausgewählt wurde. Noch genauer kann ich das wirklich nicht mehr beschreiben.
    Geändert von Pecho (26.01.2023 um 16:30 Uhr)

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Mit weniger negativem Attitude wirst du vielleicht mehr erreichen hier im Forum
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    27.09.2022.
    Beiträge
    10

    Standard

    Schade, ich habe mir leider mehr erhofft von einen erfahrenen Contao Experten wie dich Spooky. Im Beitrag selbst habe ich genau beschrieben, was das Problem ist, was man ändern könnte und alles was gekommen ist, ist mehr oder weniger "Ist halt so weil es immer schon so war" statt darüber zu reden, wieso die alte Variante es kann, aber der Manipulator nicht. Die Negativität, die du wahrscheinlich verspürst, ist erst durch deine Beiträge erst entstanden, weil man den Eindruck erhält, dass man hier nur den Titel gelesen hat statt den ganzen Beitrag genau durchzulesen (inkl. Links), sich etwas mehr damit auseinanderzusetzen und dann darüber zu antworten.

    Ich habe Antworten auf deine Fragen geliefert aber bisher kam nichts zurück, was leider den Anschein erweckt, sich damit wirklich auseinander gesetzt zu haben.

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Zitat Zitat von Pecho Beitrag anzeigen
    Bitte die Verlinkungen mit ansehen. Die Legends unter Subpalettes werden einfach nur übersprungen (siehe https://github.com/contao/core-bundl...lator.php#L119), sobald man den Parameter $skipLegends auf True setzt wie auf der #L110 zu sehen. Ansonsten sehe ich keinen wirklichen Unterschied zwischen diesen Funktionen.

    Die alte Schreibweise war die Erstellung der DCA Felder und Zuordnung ohne PaletteManipulator ala "$GLOBALS['TL_DCA']['tl_content']['subpalettes']['xyz'] = '';{title_legend},title,subtitle;{teaser_legend},t easer;{image_legend},image;{redirect_legend},redir ect';", bei denen die Legends mit angezeigt werden, sobald man die jeweilige Option (und dazugehöriger Subpalette) auswählt.

    Das ist ein Beispielcode.

    Was ich möchte: Wir haben ein Content Element mit einen Select Element, das verschiedene Optionen bereitstellt. Je nach ausgewählter Option gibt es verschiedene DCA Felder, die dargestellt werden sollen. Damit es im Backend auch übersichtlich ist, wollten wir eigene Legends zu den Subpalettes hinzufügen, die dann auch erst angezeigt werden sollen, wenn die jeweilige Option ausgewählt wurde. Noch genauer kann ich das wirklich nicht mehr beschreiben.
    Das funktioniert nicht bei allen Subpaletten. Beispiel:

    PHP-Code:
    // contao/dca/tl_content.php
    $GLOBALS['TL_DCA']['tl_content']['subpalettes']['addImage'] .= ';{Foobar},listitems;'
    Wenn du dann im Backend auf "Bild hinzufügen" klickst bei einem Text Inhaltselement, ist die Eingabemaske kaputt.
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Nutzer
    Registriert seit
    27.09.2022.
    Beiträge
    10

    Standard

    Du hast recht. Es gibt Unterschiede zwischen Checkbox Subpaletten und Select Subpaletten.

    Checkboxen mit eigenen Subpalettes und eigene Legenden funktionieren nicht (Element: Text) - Seite wird nicht neu geladen, sondern per JS erweitert:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['subpalettes']['addImage'] = ';{Foobar},listitems;'
    Select mit eigenen Subpalettes und eigene Legenden funktionieren (Element: Markdown) - Seite wird neu geladen:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['subpalettes']['markdownSource_sourceFile'] = ';{Foobar},listitems;'
    Jetzt verstehe ich auch, wieso man die Subpaletten nicht gänzlich verallgemeinern kann und es nur nur bedingt mit den Legenden funktioniert - diesen Unterschied von verschiedenen Subpaletten Arten habe ich nicht bedacht.
    Es ist also möglich für Select Subpaletten und funktioniert eigentlich auch wunderbar, nur müsste man den PaletteManipulator wohl etwas anpassen - entweder gibt man ein Parameter zum Steuern der SkipLegends mit oder der PaletteManipulator erkennt, dass es sich hierbei um ein Select Subpalette handelt.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •