Ergebnis 1 bis 6 von 6

Thema: Verwirrung beim Datentyp DataContainer

  1. #1
    Contao-Nutzer
    Registriert seit
    01.08.2009.
    Beiträge
    33

    Standard Verwirrung beim Datentyp DataContainer

    Hallo miteinander,
    ich habe nun schon diverse Kundenanpassungen gemacht und kleine Module programmiert. Aber grad steh ich total aufm Schlauch...vielleicht seh ich auch gerade den Wald vor lauter Bäumen nicht:

    Ich habe jetzt ein Backend-Modul gebaut, mit dem sich diverse Aufträge verwalten lassen. Nun ist es in einem Feld so, dass in der Datenbank ein serialisiertes Array steht. Das Array soll aufgeschlüsselt werden (hat immer 5 Felder) und dann in Input-Felder zertrennt werden. Beim Speichern soll das ganze dann anders herum laufen: Die Felder mergen, serialisieren und abspeichern. Soweit sogut. Funkioniert auch schon, trotzdem habe ich eine Frage:
    Ich realisiere die fünf Input-Fields über den input_field_callback. Der bekommt den DataContainer und das xlabel übergeben. Ich habe mir dann diverse andere Erweiterungen angesehen und auch mal in den DataContainer reingeschaut und folgendes festgestellt: Im DC steht doch eigentlich alles was ich brauche, auch eben jenes serialisierte Array. Trotzdem wird z.B. im Tagebuch der Extensionentwicklung wieder ein SQL-Query ausgeführt, das dann nochmal das entsprechende Feld aus der Datenbank angelt...ist das nicht unnötig? Schließlich hat doch der DC das Feld schonmal abgegriffen? (kanns aber nicht verarbeiten, weil da ja quasi Schachsinn drinsteht...) Aber wie komme ich dadran? Bin ich gerade einfach blöd? Das einzige verwertbare, was mir das $dc liefert ist irgendwie die ID, damit ich wieder eine Datenbankabfrage machen kann.... oder habe ich hier die Extensionentwicklung komplett falsch verstanden?
    Bin dankbar für jeden, der mir diesen Knoten lösen kann!

  2. #2
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Ich bin da jetz mal ganz vorsichtig, weil ich noch nicht so lange dabei bin. Aber ich meine mich zu erinnern, das es noch gar nicht so lange her ist, das die Daten nicht im $dc Objekt waren.

    Zu der Version, als "Das Tagebuch" geschrieben wurde, war es dann nicht anders möglich, als noch mal per SQL abzufragen. In der aktuellen Version 2.9.1 sieht das wohl anders aus.

    Ich müsste noch mal suchen, wo ich das gelesen habe, meine aber das es so war...

    Gruß
    René

  3. #3
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Du meinst bestimmt das hier, war aber schon zu 2.8er Zeiten:
    auf-den-aktiven-datensatz-im-dca-zugreifen
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Contao-Nutzer
    Registriert seit
    01.08.2009.
    Beiträge
    33

    Standard

    Tausend dank! Genau das hab ich gesucht.

    Jetzt aber noch folgendes Problem: Die Save-Callbacks scheinen nicht zu funktionieren. Egal was ich in das Array eintrage, es passiert überhaupt nichts. Es wird noch nichtmal ein Fehler ausgegeben, wenn ich irgend einen Schwachsinnigen Code bei "save_callback" eingebe.
    Das scheint übrigens auch für alle Contao-Core-Module zu gelten....Egal was ich reinschreibe...selbst wenn ich als return "lala" eintrage passiert hier nichts. Muss ich irgendwo den Save-Callback enablen oder könnte es sich da um einen Fehler handeln?

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Information

    Ne, nix zu enablen.
    Aufruf:
    PHP-Code:
    'kieser_member_name' => array
    (
        
    'label' => &$GLOBALS['TL_LANG']['tl_kieser_user']['kieser_member_name'],
        ....
        
    'save_callback' => array
        (
            array(
    'tl_kieser_user''generateName')
        ) 

    Klasse und Methode
    PHP-Code:
    class tl_kieser_user extends Backend
    {
      public function 
    generateName($varValueDataContainer $dc)
      {
         
    //was auch immer 
         
    return $varValue;
      }

    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Contao-Nutzer
    Registriert seit
    01.08.2009.
    Beiträge
    33

    Standard

    Danke für die Hinweise!
    Das Problem ist mittlerweile gelöst.
    Leo hat im alten Forum einmal folgendes gepostet:
    Hi haelmy,

    I am sorry, I didn't notice that you were using an "input_field_callback". In this case, you cannot use any other callback. You have to load, validate, save and generate the field "manually".

    Regards
    Leo
    Da ich also das Input-Field-Callback nutze um die Felder zu manipulieren, muss ich auch entsprechend selbst für Save usw. sorgen und das ganze dann über
    PHP-Code:
    $this->Input->post('FORM_SUBMIT') == 'tl_testmodule' 
    abfangen, auf Änderungen überprüfen und dann selbst in die DB basteln.

    Ist ja an und für sich auch logisch, nur leider nirgendwo dokumentiert (oder ich habs überlesen)

    Aber danke nochmal für die Hinweise!

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Datacontainer als Parameter
    Von schman im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 25.02.2011, 10:09
  2. Fehlermeldung beim SMH
    Von Duddy im Forum Installation / Update
    Antworten: 2
    Letzter Beitrag: 22.11.2010, 19:20
  3. Darstellungsprobleme beim Toggler
    Von mv_alex im Forum tags
    Antworten: 8
    Letzter Beitrag: 09.07.2010, 09:57
  4. Antworten: 0
    Letzter Beitrag: 18.02.2010, 17:32
  5. Antworten: 0
    Letzter Beitrag: 18.08.2009, 09:24

Lesezeichen

Lesezeichen

Berechtigungen

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