Ergebnis 1 bis 4 von 4

Thema: [Gelöst] Parameter bei Modulerstellung mitgeben

  1. #1
    Contao-Nutzer
    Registriert seit
    03.12.2010.
    Beiträge
    62

    Frage [Gelöst] Parameter bei Modulerstellung mitgeben

    Hallo zusammen,

    ich bin gerade dabei mein erstes Modul zu programmieren und hänge momentan daran, wie ich bei der Erstellung des Moduls Parameter mitgeben kann.
    Konkret geht es um folgenden Code:

    PHP-Code:
    <?php

    class modul_ch extends Module
    {

      protected 
    $strTemplate 'ch_reise';
      

      protected function 
    compile()
      {
         
    //fetch data from db
         
    $intId 1
         
    $objTrip $this->Database->prepare("SELECT * FROM tl_ch_table WHERE id=?")->execute($intId);
         
         
    //load xml file
         
    $strXml simplexml_load_string($objTrip->xml);
         
         
    //parse xml nodes to template     
         
    $this->Template->arrTerminPreis$strXml->Reise->TerminPreise->TerminPreis;     
      }
    }
    ?>
    Hier wird einfach nur das Attribut "xml" aus dem Datensatz mit der id "1" aus der DB abgefragt. Der String wird dann weiter verarbeitet (funktioniert alles wunderbar).
    Mir stellt sich die Frage, wie ich es realisieren kann, dass ich die id für die DB Abfrage bei der Erstellung des Moduls angeben kann, sodass ich nicht nur hardcoded den Datensatz 1 benutzen kann

    Im Endeffekt ist mein Modul auch eine Art Reader wie er an verschiedenen anderen Stellen wie News oder FAQ im Core verwendet wird. Allerdings ist mir noch etwas schleierhaft wie das funktioniert.

    <Spekulation>
    Ich vermute ich muss irgendwie die generate() Methode benutzen.
    </Spekulation>

    Ich wäre dankbar für eure Ratschläge :-)
    Geändert von lasagne (04.12.2011 um 20:28 Uhr)

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

    Standard

    Hallo,

    Du musst in Deiner Erweiterung die tl_module um ein entsprechendes Feld erweitern.
    Also musst Du in dem Ordner Deiner Erweiterung in config/database.sql das zusätzliche Feld anlegen und dann eine dca/tl_module.php erstellen, in der Du das Feld anlegst $GLOBALS['TL_DCA']['tl_module']['fields']['deinParameter'] und das Feld in die Palette für dein Module $GLOBALS['TL_DCA']['tl_module']['palettes']['deinModuleName'] einfügst.
    Achja, und dieses Feld bzw. den im Modul vorkonfigurierten Wert, kannst Du dann in Deinem Modul direkt mit $this->deinParameter benutzen.

    Bevor ich hier ganze Tutorial zum Erstellen eines Modules schreibe, google doch mal danach oder schau Dir den Code einer einfachen Erweiterung an. Ich empfehle da die bei Contao vorhandene FAQ Erweiterung, oder Glossar (aus dem Erweiterungskatalog). Das sind relativ simple Erweiterungnen.

    Viele Grüße,
    Matthias

  3. #3
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Alternativ gibt es im ContaoWiki das Tagebuch einer Extension Entwicklung. Da könntest du auch mal vorbeischauen.

  4. #4
    Contao-Nutzer
    Registriert seit
    03.12.2010.
    Beiträge
    62

    HTML

    Danke Matthias, deine Tipps waren Gold wert :-)
    @ Flex: Danke für die Info. Das kann mir denke ich in Zukunft auch noch nützlich sein!

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
  •