Ergebnis 1 bis 4 von 4

Thema: DCA und nun?

  1. #1
    Contao-Nutzer Avatar von ricola
    Registriert seit
    22.06.2009.
    Ort
    Schwerin
    Beiträge
    128

    Fehler DCA und nun?

    Hallo,

    nachdem ich vor einiger Zeit einen Hook für Contao programmiert hatte - wollte ich am Sonntag mal eben schnell ein Modul basteln. Dachte ich jedenfalls ....

    Habe also den ModuleCreator genommen und mir die Dateien zusammengeklickert. Sicherheisthalber auch noch ein paar Tutorials durchgelesen und mir die schon vorhandenen Module mit der ZDE angesehen. Ist ja nicht so, dass ich noch nie programmiert habe ....

    So, und seit Sonntag, also schon seit zwei Tagen, sitze ich am selben Problem:

    Ich möchte einfach ein kleines Frontendmodul erstellen. Es soll jediglich über den Moduleaufruf konfigurierbar sein (also Layout->Themes->Module).

    Was ich bis jetzt gemacht habe: Die Frontendklasse ist angelegt und arbeitet mit Defaultwerten und übergibt diese auch an ein Template. Ich kann das Modul für das jeweilige Theme auch integrieren und sehe es folgerichtig im Frontend.

    Aber: Wie bekomme ich es hin, dass ich für das Modul Optionen konfigurieren kann? Nicht zu glauben, seit zwei Tagen kriege ich das nicht hin.

    Was ich bis jetzt weiß: In der config.php wird die Art des Moduls konfiguriert und die entsprechen Klassen angesprochen.

    Code:
    array_insert($GLOBALS['FE_MOD']['miscellaneous'], 0, array
    (
    	'Test Modul'    => 'Klasse'
    ));
    Im DCA- Container werden anscheinend die Einstellungen für die Module definiert - hier tauchen je nach Programmierer ziemlich abenteuerliche Codes auf (naja, jedenfalls funktionieren die ja). Es gibt anscheinend verschiedene Dateien: In den verschiedenen Modulen habe ich hier tl_content.php, tl_module.php oder einfach modulname.php gefunden. Hier wird manchmal ...
    Code:
    $GLOBALS['TL_DCA']['tl_module']['palettes']['modulename] = '{title_legend},name,headline ...
    und
    Code:
    $GLOBALS['TL_DCA']['tl_module']['fields']['modulename'] = array
    (
    	'label'			=> &$GLOBALS['TL_LANG']['tl_module']['dasda'],
    	'exclude'		=> true,
    	'default'		=> '500',
    	'inputType'		=> 'text',
    	'eval'			=> array('mandatory'=>true, 'rgxp'=>'digit', 'maxlength'=>5, 'tl_class'=>'w50'),
    );
    ... eingefügt und anscheinend erzeugt man damit die Eingabemaske für das Formular in den Moduleeinstellungen. Tja, habe ich alles ausprobiert ... FE_MODE, BE_MODE usw...

    Also, wie kann ich die Einstellmöglichkeiten eines Moduls "erzeugen"? Selbstverständlich habe ich schon versucht, den Weg anderer Module zu "kopieren". Aber selbst wenn ich das genauso mache, mein Modul hat trotzdem nur beim Anlegen das Titel- und Modultyp-Feld. Es ist zum verrückt werden

    LG Rico
    Kleines Tutorial zum objektorientierten Programmieren mit PHP

  2. #2
    Contao-Nutzer Avatar von ricola
    Registriert seit
    22.06.2009.
    Ort
    Schwerin
    Beiträge
    128

    Computer Erledigt

    Nicht zu fassen - zwei Tage probiert dann ins Forum geschrieben und sofort doch noch slebst die Lösung gefunden. Es musste heißen: $GLOBALS['TL_DCA']['tl_module']['palettes']['default'] und nicht $GLOBALS['TL_DCA']['tl_module']['palettes']['modulname']...

    Unglaublich
    LG Rico
    Kleines Tutorial zum objektorientierten Programmieren mit PHP

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

    Support Contao

    Standard

    Hallo Rico,

    Da musst ich dich leider enttäuschen, das ist nicht korrekt. "default" ist die Palette welche verwendet wird, wenn für das Modul keine Konfiguration gefunden wurde.

    Entsprechend deiner config.php müsste die Palette wie folgt sein:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['palettes']['Test Modul'] = '{title_legend},name,headline ... 
    Vermutlich funktioniert das aber nicht, weil der Modul-Key keine Leerzeichen haben sollte. Beachte auch dass dieser Key für die CSS-Klasse (mod_...) verwendet wird, also am besten alles klein geschrieben.
    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

  4. #4
    Contao-Nutzer Avatar von ricola
    Registriert seit
    22.06.2009.
    Ort
    Schwerin
    Beiträge
    128

    Daumen hoch Stimmt

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Vermutlich funktioniert das aber nicht, weil der Modul-Key keine Leerzeichen haben sollte. Beachte auch dass dieser Key für die CSS-Klasse (mod_...) verwendet wird, also am besten alles klein geschrieben.
    Ja, Du hast recht. Ich hatte für den Modulenamen ein Leerzeichen dazwischen - in allen Klassen und Arrays das aber kleingeschrieben immer ohne Leerzeichen verwendet. Der Tip mit der CSS war super - da habe ich mich ja schon gewundert, warum $this->class im Template dann den Modulenamen bekam... Mann oh Mann ...

    Tja, jedenfalls alles richtig aufregend
    Danke
    Kleines Tutorial zum objektorientierten Programmieren mit PHP

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
  •