Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: 4.4.x Fragen zur Erweiterung des Backend Menüs "Inhalte"

  1. #1
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard 4.4.x Fragen zur Erweiterung des Backend Menüs "Inhalte"

    Hallo an alle,

    ich wollte gerne einen zusätzlichen Menüpunkt im Backend unter "Inhalte" erstellen. Dafür habe ich im contao/config Ordner die Konfigurationsdatei um folgende Zeile erweitert:

    PHP-Code:
    $GLOBALS['BE_MOD']['content']['Codes'] = array('tables' => array('tl_code_id')); 
    und eine Datei tl_code_id.php (so wie der Name der DB Tabelle) unter contao/dca angelegt mit folgendem Inhalt:

    PHP-Code:
    <?php
        
    use Contao\CoreBundle\DataContainer\PaletteManipulator;

        
    // Hinzufügen der Feld-Konfiguration
        
    $GLOBALS['TL_DCA']['tl_code_id'] = [
            
    'config' => [
                
    'dataContainer' => 'Table',
                
    'enableVersioning' => true,
                
    'sql' => [
                    
    'keys' => [
                        
    'id' => 'primary',
                    ],
                ], 
            ],
            
    'list' => [
                
    'sorting' => [
                    
    'mode' => 1,
                    
    'fields' => ['code'],
                    
    'flag' => 1,
                    
    'panelLayout' => 'search,limit'
                
    ],
                
    'label' => [
                    
    'fields' => ['code'],
                    
    'format' => '%s',
                ],
                
    'operations' => [
                    
    'edit' => [
                        
    'href' => 'table=tl_code_id',
                        
    'icon' => 'edit.svg',
                    ],
                    
    'editheader' => [
                        
    'href' => 'act=edit',
                        
    'icon' => 'header.svg',
                    ],
                    
    'delete' => [
                        
    'href' => 'act=delete',
                        
    'icon' => 'delete.svg',
                    ],
                    
    'show' => [
                        
    'href' => 'act=show',
                        
    'icon' => 'show.svg'
                    
    ],
                ],
            ],
            
    'fields' => [
                
    'id' => [
                    
    'sql' => ['type' => 'integer''unsigned' => true'autoincrement' => true],
                ],
                
    'tstamp' => [
                    
    'sql' => ['type' => 'integer''unsigned' => true],
                ],
                
    'code' => [
                    
    'label' => array('Please insert the identification code:''Pattern: XX1111XX or XXX1111XXX'),
                    
    'search' => true,
                    
    'inputType' => 'text',
                    
    'eval'      => [
                        
    'mandatory'     => true,
                        
    'tl_class'      => 'w50',
                        
    'minlength'     => 8,
                        
    'maxlength'     => 10,
                        
    'rgxp'          => 'identification',
                        
    'save_callback' => array(array('codeClass''changeValue'))
                    ],
                    
    'sql' => 'varchar(14) NOT NULL default ""'
                
    ],
            ],
            
    'palettes' => [
                
    'default' => '{Identification Code},code'
            
    ],
        ];

        
    // Save Callback
        
    class codeClass extends \Backend {
            public function 
    changeValue($valueDataContainer $dc) {
                
    $value " ";

                return 
    $value;
            }
        }
    Soweit so gut, der Menüpunkt wird mir im Backend angezeigt und beim Klick darauf, sehe ich alle bisherigen Einträge, die in der Datenbank sind.

    Nun zu meinen Fragen:
    1. Um einen neuen Eintrag im Backend vornehmen zu können, muss dieses weiße Pluszeichen mit grünen Hintergrund gedrückt werden. Im Newsletter Modul steht dort in der deutschen Version "Neuer Verteiler". Aktuell steht bei mir dort noch kein Text, da wohl die Übersetzung fehlt. Wie lautet denn die Übersetzung für die einzelnen Labels? Im Newsletter Modul war es etwas wie [TL_LANG?][Modulname][new][0], aber das hatte beim ersten Version in der Sprachdatei nicht funktioniert.
    2. Wenn ich bei meinem erstellten Modul auf Eintrag löschen gehe, wird dieser sofort gelöscht. In anderen Modulen wird jedoch zunächst ein Alert-Fenster ausgelöst, ob ich mir wirklich sicher bin. Wie ist denn dieses einzustellen? Über Javascript oder gibt es da etwas vorgefertigtes,was lediglich im DCA aktiviert werden muss?
    3. Ich würde gerne die Eingabe manipulieren, wenn im Backend ein neuer Eintrag vorgenommen wird. Dazu habe ich die save_callback Funktion verwendet, jedoch scheint es, als ob diese Funktion nicht aufgerufen wird. Bei einem anderen Projekt verwende ich das Prinzip 1:1, sofern ich mich nicht verschaut habe und dort klappt es aber.


    Ich bin gespannt auf die Antworten und die Hilfe, danke im Voraus!

  2. #2
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard

    Hat sich erledigt. Die Callback Registrierung war im falschen Pfad und die Übersetzungen hatte ich beim genaueren Vergleich mit dem Newsletter Modul hinzufügen können.

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
  •