Ergebnis 1 bis 5 von 5

Thema: Eigenes DCA / ContentElement Palette

  1. #1
    Contao-Nutzer
    Registriert seit
    18.08.2015.
    Beiträge
    39

    Standard Eigenes DCA / ContentElement Palette

    Hallo,

    Ich bastel gerade an meinem ersten eigenen Content Element, Ziel ist es Mitarbeiter in einem fertigen Template auf der Seite immer gleich darzustellen.

    Dafür habe ich eine eigene Tabelle, tl_cfaed_ce_staff. Ich kann das ContentElement im Backend in einem Artikel auswählen, leider wird mir aber kein Formularfeld angezeigt. Meine Frage ist, ob ich die Palette korrekt definiere.

    config/config.php
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_CTE']['cfaed']['staff'] = 'StaffElem';
    ?>
    dca/tl_cfaed_ce_staff.php
    PHP-Code:
    <?php
    /**
     * Table tl_cfaed_ce_staff
     */
    $strName 'tl_cfaed_ce_staff';

    $GLOBALS['TL_DCA'][$strName] = array(
      
    'config' => array(
        
    'dataContainer' => 'Table',
        
    'switchToEdit'                => true,
        
    'enableVersioning'            => true,
        
    'sql' => array(
          
    'keys' => array(
            
    'id' => 'primary'
          
    )
        ),
      ),
      
    'fields' => array(
        
    'id' => array(
                
    'sql'                     => "int(10) unsigned NOT NULL auto_increment"
            
    ),
            
    'tstamp' => array(
                
    'sql'                     => "int(10) unsigned NOT NULL default '0'"
            
    ),
        
    'fullname' => array(
          
    'label' => array('Full Name'''),
          
    'inputType' => 'text',
          
    'eval' => array('mandatory' => true'tl_class' => 'long'),
          
    'sql'                     => "varchar(100) NOT NULL"
        
    ),
      ),
      
    'palettes' => array(
          
    'staff'                     => 'fullname' //Auch probiert: 'default' => und 'StaffElem' =>
        
    ),
    );
    ?>
    Die Autoload Dateien habe ich generieren lassen, die Tabelle habe ich über das Install Tool erstellt und sie existiert auch.

    Leider werden mir aber, wenn ich das ContentElement auswähle. keine Formularfelder angezeigt. Was mache ich falsch?

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Ich würde sagen, du musst Dein neues Content Element dem DCA

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content'
    hinzufügen und dort den Eintrag

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['palettes'
    erweitern.

  3. #3
    Contao-Nutzer
    Registriert seit
    18.08.2015.
    Beiträge
    39

    Standard

    Obwohl ich die gerne in einer anderen Tabelle speichern möchte? Dann nur die Palette, oder die gesamte Tabellenconfig?

  4. #4
    Contao-Nutzer
    Registriert seit
    07.12.2009.
    Beiträge
    151

    Standard

    Zu allererst gäbe es für deinen Anwendungsfall eventuell auch bereits diese Extension: https://github.com/mindbird/contao-person

    Damit du das Content Element so wie die Core-Elemente benutzen kannst, müssen die Daten in zusätzlichen Feldern in tl_content gespeichert werden.
    Eine Alternative wäre der Weg, den auch die oben genannte Extension geht:
    1. Du legst ein Backend-Modul an, wo du deine selbst definierte Tabelle "tl_cfaed_ce_staff" pflegen kannst
    2. Du fügst der tl_content ein Feld 'staff_id' und der zu deinem CE gehörenden Palette ein Select-Feld hinzu
    3. Der Options-Callback für das Select-Feld holt aus deiner Tabelle alle Staff-Mitglieder.

    Gruß
    Zinky

  5. #5
    Contao-Nutzer
    Registriert seit
    18.08.2015.
    Beiträge
    39

    Standard

    Hey zinky,

    Danke für die Antwort! Das wusste ich nicht. Danke auch für die Extension, die reicht für unseren Anwendungsfall leider nicht aus.

    Ich glaube ich werde den von dir aufgezeigten Alternativweg realisieren.

    LG
    Eknoes

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
  •