Ergebnis 1 bis 8 von 8

Thema: Serialisiertes Feld speichert Änderungen nicht (save_callback auch nicht)

  1. #1
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard Serialisiertes Feld speichert Änderungen nicht (save_callback auch nicht)

    Hallo zusammen,

    ich habe einen Checkboxwizard, der in ein serialisiertes Feld schreibt. Klappt beim Anlegen auch wunderbar. Leider speichert er Änderungen nicht (Oder liest diese nicht korrekt ein). Jetzt musste ich den save_callback nutzen und wollte die Änderung dort direkt speichern, funktioniert aber auch nicht.

    Hier der DCA:
    Code:
    'teams' => array
    		(
    			'label'                   => &$GLOBALS['TL_LANG']['tl_lm_contests']['teams'],
    			'exclude'                 => false,
    			'filter'                  => true,
    			'inputType'               => 'checkboxWizard',
    			'options_callback'        => array('tl_lm_contests', 'getTeams'),
    			'eval'                    => array('multiple'=>true),
    			'save_callback' => array
    			(
    				array('tl_lm_contests', 'fillITable')
    			)
    		),
    Hier die Funktion:
    Code:
    public function fillITable($varValue, DataContainer $dc)
    	{
    		$ret=$this->Database->prepare("DELETE FROM tl_lm_team_to_contest WHERE contest=?")->execute($dc->activeRecord->id);
    		$arrTeams=deserialize($varValue);
    		foreach($arrTeams as $team){
    			$ret=$this->Database->prepare("INSERT INTO tl_lm_team_to_contest (team,contest) VALUES (?,?)")->execute($team,$dc->activeRecord->id);
    		}
    		$ret=$this->Database->prepare("UPDATE tl_lm_contests SET teams=? WHERE id=?")->execute($varValue,$dc->activeRecord->id);
    	}
    Das Einfügen in die Zwischentabelle klappt ohne Probleme, also an den Variablen und den Werten kann es nicht liegen.

    Jemand eine Idee, wie ich das Feld gespeichert bekomme?

    Danke
    Meine Erweiterungen: League Manager | Forum

  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.614
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der save_callback muss den Wert zurückgeben, denn Contao speichert diesen selber ins Feld. In deinem Fall wird das Feld wohl vom save_callback beschrieben, danach aber von Contao wieder gelöscht weil du einen leeren Wert zurückgibst.

    Warum genau brauchst du ein save_callback?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Wenn ich den save_callback rausnehmen wird meine Änderung nicht gespeichert.

    Den save_callback nutze ich um die Zwischentabelle zu füllen, damit Abfragen später schneller erfolgen.

    Also müsste ich am Ende noch:
    Code:
    return $varValue
    einfügen und dann geht es?
    Meine Erweiterungen: League Manager | Forum

  4. #4
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.614
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich denke so solltest du es probieren
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  5. #5
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Fazit: Funktioniert nicht...

    Habe es an anderer Stelle nochmal probiert.

    DCA:
    Code:
    'save_callback'			  => array('tl_lm_rounds', 'getRoundno'),
    Code:
    Code:
    public function getRoundno($varValue, DataContainer $dc)
    	{
    		return $varValue;	
    	}
    Sollte ja eigentlich nur den Wert zurück geben. Alles was ich erhalte ist ein weißer Bildschirm.

    Nehme ich den callback heraus, funktioniert es (Also kein Fehler an anderer Stelle).
    Meine Erweiterungen: League Manager | Forum

  6. #6
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Das zweite Probleme habe ich gelöst. Callbacks sind doppelte Arrays!!!!


    Aber beim ersten bekomme ich immer noch das Ergebnis nicht ordentlich in die DB geschrieben.
    Meine Erweiterungen: League Manager | Forum

  7. #7
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Ok, soweit bin ich nun:

    -Mit Callback oder nicht hat es nichts zu tun.
    -Der Wert wird korrekt in der DB gespeichert
    -Der Wert wird auch korrekt von der DB gelesen, aber nicht im CheckboxWizar angezeigt.


    Jemand eine Idee dazu?
    Meine Erweiterungen: League Manager | Forum

  8. #8
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Hatte das gleiche Problem. Habs dann im core nachgeschlagen.

    im eval array 'multiple'=>true

    und dann gings.

    Grüße,
    Tim


    Sent from my iPhone using Tapatalk
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Benutzergruppen speichert sich nicht
    Von Rocksoft im Forum Off Topic
    Antworten: 11
    Letzter Beitrag: 12.08.2010, 19:45
  2. Editor speichert den Text nicht
    Von varix im Forum Allgemeine Inhaltselemente
    Antworten: 14
    Letzter Beitrag: 07.04.2010, 07:18
  3. TinyMCE speichert nicht
    Von Alexis im Forum Sonstiges zu Contao
    Antworten: 8
    Letzter Beitrag: 04.01.2010, 10:25
  4. TinyMCE speichert nicht, Bildschirm wird nicht upgedatet
    Von Piet im Forum Sonstiges zu Contao
    Antworten: 23
    Letzter Beitrag: 14.12.2009, 15:57

Lesezeichen

Lesezeichen

Berechtigungen

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