Ergebnis 1 bis 8 von 8

Thema: Im ListLabelCallback feststellen, ob man aus Picker aufgerufen wird

  1. #1
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    956
    Contao-Projekt unterstützen

    Support Contao

    Standard Im ListLabelCallback feststellen, ob man aus Picker aufgerufen wird

    Hallo!

    Gibt es eine Möglichkeit festzustellen, ob ein ListLabelCallback aus einem Picker aufgerufen wird oder direkt aus der Treeview?

    Hintergrund: Für meine Treeview-Ansicht bastele ich mir ein Label mit zusätzlichen Daten, die ich aber nur im Treeview sehen will und nicht in der Ansicht einer anderen Tabelle, die Daten über einen Picker dort rausholt.

    So sieht es bei der Auswahl im Picker aus:

    Bildschirmfoto 2026-06-09 um 09.49.40.png

    Das ist auch so gewollt und ok. In der Tabelle wird es dann aber auch so mit Icon und rechtsbündigem Text angezeigt:

    Bildschirmfoto 2026-06-09 um 09.49.54.png

    Dort hätte ich aber lieber nur den Text ohne Icon und rechtsbündigem Text.

    Mein Callback:

    PHP-Code:
    #[AsCallback(table: 'tl_foss_taxonomy', target: 'list.label.label')]
    readonly class FossTaxonomyLabelCallbackListener
    {
        public function 
    __invoke($row$labelDataContainer $dcstring $imageAttribute ''bool $returnImage falsebool|null $isProtected null): string
        

    Im $dc finde ich nichts was ich abfragen kann bzw. ist alles protected.

    Wenn nicht, muss ich es versuchen über CSS zu lösen aber lieber wäre es mir, wenn ich es über den Callback unterscheiden kann.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

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

    Standard

    Kannst du über den Request rausfinden. Bspw. über das _controller oder _route Attribute, oder über bestimmte Query Parameter.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    956
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke! Da habe ich an der falschen Stelle gesucht. Da ich mit dem Request noch nichts gemacht habe nur noch die Frage, ob das der richtige Weg ist?

    PHP-Code:
    if ($this->requestStack->getCurrentRequest()->query->get('do') != 'foss_taxonomy') {
      return 
    $label;

    Funktioniert, aber ich bin ich nicht sicher, ob es auch der richtige und beste Weg ist.
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

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

    Standard

    Ich meinte:
    PHP-Code:
    $request->attributes->get('_route')
    $request->attributes->get('_controller')
    $request->query->get('popup'
    » sponsor me via GitHub or Revolut

  5. #5
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    956
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich denke in meinem konkreten Fall greift das nicht. controller und route sind hier soweit ich das sehe in allen Fällen gleich. Mit popup kann ich dann sehen, ob ich gerade die Auswahl vom Picker aufgerufen habe aber dort kann die Ansicht ja gerne so bleiben. Ist aber gut zu wissen, falls ich einmal bei der Auswahl im Picker die Ansicht ändern will. Das kommt bestimmt noch. Aktuell ging es mir aber nur um die Ansicht der schon ausgewählten Elemente und da scheint do das richtige zu sein.
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

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

    Standard

    Zitat Zitat von Babelfisch Beitrag anzeigen
    Ich denke in meinem konkreten Fall greift das nicht. controller und route sind hier soweit ich das sehe in allen Fällen gleich.
    Das kann nicht sein, die _route ist auf jeden Fall eine andere. Im Picker ist die _route "contao_backend_picker" bspw.
    » sponsor me via GitHub or Revolut

  7. #7
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    956
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe es einfach mal so im Callback getestet:

    PHP-Code:
    $request $this->requestStack->getCurrentRequest();
    $route $request->attributes->get('_route');

    return 
    $route
    _route ist in allen drei Fällen – auch in der Picker-Auswahl – 'contao_backend'.

    Bildschirmfoto 2026-06-09 um 12.41.38.png

    Und _controller ist '…\BackendController::mainAction'. Nur das popup ist NULL oder 1.

    Nachtrag: Ich nutze hier eine Many-To-Many Relation mit contao-haste. Möglicherweise verändert das die Route.
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

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

    Standard

    Ja du hast recht, contao_backend_picker macht im Endeffekt nur einen Redirect auf contao_backend (mit popup=1 dann).
    » sponsor me via GitHub or Revolut

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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