Ergebnis 1 bis 1 von 1

Thema: Nach Umsortierung von Elementen Methode aufrufen

  1. #1
    Contao-Nutzer
    Registriert seit
    23.06.2012.
    Beiträge
    72

    Standard Nach Umsortierung von Elementen Methode aufrufen

    edit: Hat sich erledigt, der "oncut_callback" scheint die Lösung zu sein...

    Hallo,

    ich habe einen DCA mit Sorting Mode 4. Die Elemente in der Tabelle kann ich im Backend per Drag & Drop mit dem grünen Hamburger-Symbol verschieben. Das funktioniert auch alles einwandfrei.

    Nun muss ich, nachdem ein Element auf diese Weise verschoben wurde, eine Methode aufrufen. Wichtig ist, dass diese Methode dann die neue Sortierung der Elemente in der Tabelle kennen muss, wobei sie sich diese aus der DB holt. Die Methode sortiert Einträge in einer anderen Tabelle, die den Einträgen in meiner Haupttabelle zugeordnet sind, entsprechend um.

    Die naheliegendste Lösung schien mir ein "save_callback" auf dem Feld "sorting". Dieser wird aber nicht aufgerufen, wenn ich Elemente per Drag & Drop umsortiere. Ich weiss nicht, ob das normal ist.

    DCA-Auszug, Feld "sorting":

    PHP-Code:
            'sorting' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['MSC']['sorting'],
                
    'exclude'                 => true,
                
    'sorting'                 => true,
                
    'flag'                    => 2,
                
    'sql'                     => "int(10) unsigned NOT NULL default '0'",
                
    'save_callback'     => array(array('tl_stage_item','onSaveSorting')),
            ), 
    Callback-Methode in Klasse tl_stage_item:
    PHP-Code:
        public function onSaveSorting($varValueDataContainer $dc)
        {
            
    $this->log("onsavesorting",__METHOD__,TL_GENERAL);    
            return 
    $varValue;
        } 
    Nach dem Umsortieren im Backend habe ich keine Einträge im Log.

    Momentan habe ich eine Notlösung im Einsatz, bei der meine Methode immer im am Ende des onLoad-Callback des DCA aufgerufen wird. Das funktioniert auch, wenn man Items per Drag&Drop verschiebt, wird der onLoad-Callback einmal aufgerufen, aber offensichtlich ist die Datenbank an dieser Stelle noch auf dem Stand vor der Verschiebe-Aktion. Wenn ich ein Item per Drag&Drop verschiebe, hat meine Nebentabelle was die Sortierung angeht immer den Stand vor der Sortierung. Einmal reloaden, dann passt es.

    Hat da jemand eine Idee, wie man sowas macht?

    edit: Hat sich erledigt, der "oncut_callback" scheint die Lösung zu sein...

    Grüsse,
    fluppi
    Geändert von fluppi (16.07.2014 um 15:57 Uhr)

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
  •