Ergebnis 1 bis 6 von 6

Thema: Felder aus DCA's im Template ausgeben

  1. #1
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    HTML Felder aus DCA's im Template ausgeben

    Hallo,

    ich habe nach dem Tutorial hier Felder im BE konfiguriert. Funktioniert alles. Nur jetzt ist die Frage, wie ich die Felder im Template ausgebe?

    Über <?php $this->showTemplateVars(); ?> kann ich leider die Variablen nicht sehen.

    Viele Grüße!!

  2. #2
    AG Core-Entwicklung Avatar von Psi
    Registriert seit
    19.06.2009.
    Ort
    Mittelfranken
    Beiträge
    930
    Partner-ID
    5583
    User beschenken
    Wunschliste

    Standard

    Paar mehr Infos bitte!
    Anerkennung motiviert: Amazon-Wunschliste && TANSTAAFL
    Kontakt: http://www.4wardmedia.de

  3. #3
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard

    ich definiere in der system/modules/xx/dca/tl_page.php die Felder:

    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_DCA']['tl_page']['palettes']['regular'] = str_replace
    (
        
    'description',
        
    'description,text_1',
        
    $GLOBALS['TL_DCA']['tl_page']['palettes']['regular']
    );
     
    $GLOBALS['TL_DCA']['tl_page']['fields']['text_1'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_page']['text_1'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
            
    'tl_class'    => 'w50',
            
    'maxlength'    => 255
        
    )
    );

    $GLOBALS['TL_DCA']['tl_page']['palettes']['regular'] = str_replace
    (
        
    'text_1',
        
    'text_1,text_2',
        
    $GLOBALS['TL_DCA']['tl_page']['palettes']['regular']
    );

    $GLOBALS['TL_DCA']['tl_page']['fields']['text_2'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_page']['text_2'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
            
    'tl_class'    => 'w50',
            
    'maxlength'    => 255
        
    )
    );
    ?>
    Die Felder in der Datenbank sind auch angelegt. Nun will ich den text, der in text_1 und text_2 steht in meinem Template fe_page.html5 ausgeben.

    Wie bekomme ich das hin?

    Viele Grüße

  4. #4
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard

    Schau Dir mal z.B. die Datei system/modules/news/ModuleNewsList.php an. Du musst innerhalb der Klasse Deines Moduls (hoffentlich hast Du schon eine) die per DCA eingegebenen Daten aus der DB holen, ggf. auswerten und dann an das Template übergeben. Von der Struktur her in etwa so:

    PHP-Code:
    class myclass extends Module
    {
     
    // templatedatei definieren
     
    protected $strTemplate 'mod_mytemplate';

     public function 
    generate()
     {
      
    // backend ausgabe
     
    }

     protected function 
    compile()
     {  
    // frontend ausgabe
      
    $objData $this->Database->prepare("SELECT * FROM tl_mymodule")->execute();
      while (
    $objData->next())
      {
       
    // übergabe der Daten an das Template
       
    $this->Template->wert_a $objData->wert_a;
       
    $this->Template->wert_b $objData->wert_b;
       
    // usw...
      
    }
     }

    <edit>Warum müssen die Daten denn im Template fe_page ausgegeben werden?</edit>
    Geändert von webster (23.07.2012 um 22:07 Uhr)
    Was ist das? - Blaues Licht - Und was macht es? - Es leuchtet blau...

  5. #5
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard

    Zitat Zitat von webster Beitrag anzeigen

    <edit>Warum müssen die Daten denn im Template fe_page ausgegeben werden?</edit>
    Ich will zwei Felder an einer Seite haben, die man befüllen kann. Diese sollen dann auf der Seite ausgegeben werden. In diesem Fall geht es halt um einen Slogan Text. Klar, kann ich auch die original Felder nehmen, aber für ein anderes Projekt brauche ich für jede Seite eine eigene Farbe, die man an der Seite selbst definieren kann per ColorPicker.

  6. #6
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard

    Oh man, ich sollte mal aufmerksamer lesen, bevor ich meinen Senf dazugebe

    Eigentlich müsstest Du doch direkt per

    PHP-Code:
    <?php echo $this->text_1?>
    <?php 
    echo $this->text_2?>
    innerhalb des fe_page Templates darauf zugreifen können. Geht das nicht?
    Was ist das? - Blaues Licht - Und was macht es? - Es leuchtet blau...

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
  •