catalog und loadFormField Hook

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Tina
    Contao-Fan
    • 10.01.2010
    • 374

    #1

    catalog und loadFormField Hook

    Hallo,

    ich habe Formular zur Frontend-Bearbeitung von Katalog-Einträgen. Bei einem select-Feld möchte ich teilweise Werte ändern. Mein Lösungsansatz war, das über den loadFormField-Hook zu tun. Allerdings reagiert das Katalog-Formular nicht darauf. Auf der Seite ist auch noch ein Suchformular. Das kann ich ansprechen, aber nicht das Formular, das über den Katalog erstellt wurde.

    So sieht mein Test-Code aus:

    PHP-Code:
    $GLOBALS['TL_HOOKS']['loadFormField'][] = array('CatalogExtended', 'myLoadFormField'); 
    
    PHP-Code:
    class CatalogExtended extends Backend {
        public function myLoadFormField(Widget $objWidget, $strForm, $arrForm)
          $objWidget->class = 'myclass';
          return $objWidget;
        }
    } 
    
    Warum funktioniert der Hook nicht bei Katalog-Formularen? Ich habe in anderen Forumbeiträgen doch auch gesehen, dass es funktioniert.

    Gruß
    Tina
  • Tina
    Contao-Fan
    • 10.01.2010
    • 374

    #2
    Ich habe es jetzt so gelöst, dass ich das select-Feld im Template selbst hinzugefügt und das Original-Feld im Modul Katalog-Bearbeitung ausgeblendet habe. Über die Hooks catalogFrontendInsert und catalogFrontendUpdate wird der entsprechende Wert dann in die Datenbank geschrieben. Ist zwar nicht schön, aber es funktioniert.
    Jetzt habe ich das Problem, dass ich mein selbst erstelltes select-Feld beim Bearbeiten gern mit dem vorherigen Wert vorbelegen möchte. Nun weiß ich nicht, wie ich im Template der Katalog-Bearbeitung (catalog_edit.html5) an die ID des Datensatzes komme, der im gerade aufgerufenen Formular angezeigt wird, um den "Orignal-Wert" des Feldes zu holen.
    Ich hoffe, ich habe das einigermaßen verständlich ausgedrückt...

    EDIT:
    In $this->Input->get('items') steht der Alias des Eintrags, das sollte ja auch gehen.

    Falls jemand noch einen besseren Lösungsvorschlag hat, würde ich den gerne annehmen.
    Zuletzt geändert von Tina; 12.04.2012, 17:07.

    Kommentar

    • Webkrebse
      Contao-Nutzer
      • 16.04.2010
      • 77

      #3
      Hast Du mal ... extends Frontend probiert?
      Internetagentur für kreative Webseiten - webkrebse.com

      Kommentar

      • Tim G
        Contao-Urgestein
        • 13.02.2010
        • 2212

        #4
        Der loadFormField Hook wird sicher nicht ausgelöst, weil die Felder nicht mit der contao internen Routine für Formularfelder erstellt werden.

        Mit dem Alias kommst du doch super an den Datensatz via DB-Abfrage. Aber kommt nicht ins Template eh die ID und der catalog des aktuellen Datensatzes. Der catalog ist ja immer herrlich spendabel wenn es um Template-Variablen geht.
        http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

        Kommentar

        Lädt...