Ergebnis 1 bis 6 von 6

Thema: "Mehrere bearbeiten" in Mode 5

  1. #1
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard "Mehrere bearbeiten" in Mode 5

    Liebe Community,

    nach gut einem Jahr und nur "kleineren" und "normalen" Contao-Websites steht wieder ein größeres Contao Projekt in der Tür. Dazu entwickle ich derzeit ein Modul (DCA, Tabelle & Co.) und verwende nach zahlreichen Tests den Listing-Mode 5, weil ich mit ihm einen auf-/zu-klappbaren Baum in der Redaktions-Ansicht erzeugen kann.

    Um mein Problem zu erklären, habe ich es auf ein bildliches Thema adaptiert und zwei Screenshots beigefügt. In der Baumansicht sieht man, dass die Hierarchie 2 Ebenen tief ist. Die obere Ebene stellt die Etagen eines Hauses dar, die Ebene darunter die Räume.

    1.) Jetzt möchte ich je nach Ebene auf den Edit-Button hin eine andere "Palette" der DCA anzeigen. Das kriege ich auch hin über den buttonCallback.

    2.) Beim Verschieben soll man Einträge einer Ebene nur in dieser verschieben können. Also dürfen Räume nur unterhalb von Etagen verschoben werden und Etagen nur innerhalb des Hauses. Das Dachgeschoss kann nicht IM Keller sein. Das kriege ich auch hin über den pasteButtonCallback.

    3.) editAll macht mir aber Probleme. Hier erscheinen hinter allen Einträgen (egal ob Etage oder Raum) eine Checkbox. Ich möchte aber, dass ausschliesslich hinter den Räumen Checkboxen erscheinen. DAS ist mein Problem.

    Wenn ich dieses Problem (3.) nicht löse, werde ich auf eine 2-Tabellen-Lösung umschwenken müssen und eine Tabelle für die Etagen und eine für die Räume bauen müssen. Das würde ich gerne vermeiden, da es dem Redakteur das Editieren erschwert, in dem Beispiel insbesondere das Kopieren von Räumen aus einer Etage in eine andere Etage, also wenn man z.B. das Arbeitszimmer nach dem Renovieren vom Keller ins Dachgeschoss verlegen will.

    Ich hoffe, dass war jetzt nicht zu ausführlich oder zu wenig nachvollziehbar beschrieben.

    Viele Grüße,
    matths
    Angehängte Grafiken Angehängte Grafiken

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

    Support Contao

    Standard

    Das wird wohl nicht ohne Anpassungen möglich sein. Die Checkboxen kannst du nicht ausblenden. Allerdings kannst du die Selektion des Benutzers überschreiben, d.h. wenn er ein 2-Ebene-Datensatz anklickt, kannst du den löschen damit er diesen nicht verschieben kann. Sieh dir an wie das in der tl_page::checkPermission gemacht wird.
    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
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Hallo Andreas,

    ja das verstehe ich. Und ich bin über die tl_page und checkPermissions auch schon gestolpert. Schade, dass das eben keine Auswirkungen auf die Anzeige der Checkboxen hat, sondern erst "danach".
    Die anderen Buttons, wie den Bleistift (edit), den blauen Pfeil (cut) und das grüne plus (copy), etc. können in Abhängigkeit von "checkPermissions" ausgegraut werden - warum geht das denn leider nicht für die Checkboxen von "Mehrere bearbeiten". ?

    PHP-Code:
    'houseModul' => array
    (
        
    'tables' => array('tl_house'),
        
    'callback' => 'ModuleHouse'
    ), 
    Gibt es vielleicht einen Weg das Modul mit einer Klasse "aufzuladen" und dann in der generate/compile diese Funktion zu simulieren? Diesen Weg mit einer Klasse bin ich noch nicht wirikich gegangen...

    Grüße,
    matths

  4. #4
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Also mit so einem callback in der config.php komme ich nicht weiter. Dadurch "vergisst" Contao anscheinend die normale Ausgabe des Mode 5. Kann das sein?

    Gibt es denn keinen Punkt, wo man ansetzen könnte... vielleicht ein callback, unmittelbar bevor die Bildschirmausgabe (Treeview des Mode 5) gerendert wird?

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

    Support Contao

    Beitrag

    callback ist nur für eine komplett eigene Ausgabe geeignet (siehe Task-Modul).
    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

  6. #6
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Hi Andreas,

    ich habe das mit dem callback nochmal überprüft. In der Klasse "Backend" findet die Unterscheidung zwischen "callback" und "table" statt.

    PHP-Code:
    // Call module callback [Backend 182]
    // Default action [Backend 196] 
    Wenn man jetzt also den Code von der "Default action" in die generate() des callback, also der BE-Modul-Klasse überführt, dann hat man eine Möglichkeit die "default"-Ausgabe zu manipulieren.

    PHP-Code:
    class ModuleHouse extends BackendModule
    {
        public function 
    generate()
        {
            
    $strTable $this->Input->get('table') ? $this->Input->get('table') : $GLOBALS['BE_MOD']['custom']['house']['tables'][0];
            
            
    $dc $this->objDc;
            
            
    $act $this->Input->get('act');
            if (!
    strlen($act) || $act == 'paste' || $act == 'select')
            {
                
    $act = ($dc instanceof listable) ? 'showAll' 'edit';
            }

            switch (
    $act)
            {
                case 
    'delete':
                case 
    'show':
                case 
    'showAll':
                case 
    'undo':
                    if (!
    $dc instanceof listable)
                    {
                        
    $this->log('Data container ' $strTable ' is not listable''Backend getBackendModule()'TL_ERROR);
                        
    trigger_error('The current data container is not listable'E_USER_ERROR);
                    }
                    break;

                case 
    'create':
                case 
    'cut':
                case 
    'cutAll':
                case 
    'copy':
                case 
    'copyAll':
                case 
    'move':
                case 
    'edit':
                    if (!
    $dc instanceof editable)
                    {
                        
    $this->log('Data container ' $strTable ' is not editable''Backend getBackendModule()'TL_ERROR);
                        
    trigger_error('The current data container is not editable'E_USER_ERROR);
                    }
                    break;
            }
            
            
    $return $dc->$act();
            
            
    // HIER kann man jetzt $return manipulieren!!!
            
            
    return $return;
        } 
    Das ganze ist sicher nicht update-safe.

    Gruß,
    Matthias

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 11.03.2011, 18:20
  2. Option "Mehrere bearbeiten" deaktivieren
    Von lionel im Forum Entwickler-Fragen
    Antworten: 3
    Letzter Beitrag: 19.02.2010, 11:49
  3. Gelöst: Layout zuweisen mit Hilfe "Mehrere bearbeiten"
    Von okapi im Forum Layout / Templates / Holy Grail
    Antworten: 4
    Letzter Beitrag: 09.01.2010, 17:12
  4. Vereinfachung "mehrere bearbeiten" [feature request]
    Von mandrael im Forum Sonstiges zu Contao
    Antworten: 4
    Letzter Beitrag: 06.10.2009, 07:30
  5. Nutzt ihr Funktion "mehrere bearbeiten"?
    Von Nina im Forum Off Topic
    Antworten: 12
    Letzter Beitrag: 03.07.2009, 16:17

Lesezeichen

Lesezeichen

Berechtigungen

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