Ergebnis 1 bis 9 von 9

Thema: Einfachst-Extension

  1. #1
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard Einfachst-Extension

    Hallo zusammen,

    ich traue mich mal hier in die Entwicklerecke, obwohl es da wohl noch ein weiter Weg für mich ist.

    Ich habe ein aus meiner Sicht sehr einfaches Anliegen. Ich möchte einfach nur eine Kopie der ModuleEventlist.php erstellen, in der gegenüber dem Original nur eine einzige Zeile verändert würde. Der Name könnte sein ModuleEventlistSeminar.php. Dazu ein Template, ebenso eine angepasste Kopie von event_list.html5 - das scheint erstmal kein Problem zu sein, kann man ja im Template-Verzeichnis hinterlegen.

    Ja, eigentlich wäre ich zufrieden, wenn ich im BE ein neues Modul erzeuge und dort unter Modultyp mein neues ModuleEventlistSeminar.php auswählen kann. Wahrscheinlich müsste ich die class ModuleEventlist in ModuleEventlistSeminar.php auch in ModuleEventlistSeminar umbennen. Und in welchem Verzeichnis lege ich die ModuleEventlistSeminar.php dann ab?
    Viele Grüße, DetlefT

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Was willst du denn genau in der neuen Klasse ändern? Sag uns doch lieber was du vor hast, vielleicht gibt es bessere Wege als eine komplette Klasse zu kopieren. Die meisten Sachen lassen sich über HOOKs oder einfache Templatemodifikationen ändern.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Übers Template habe ich mein Ziel nicht erreichen können. Ich habe die Events etwas aufgebohrt und will die Events auf verschiedene Arten im FE ausgeben.

    Dazu will ich abhängig von der Seite, auf der die Daten ausgegeben werden sollen, um die Ausgabe in der ModulEvents.php in Zeile 347 eine Modifikation vornehmen. Deshalb die Idee, seitenabhängig den entsprechenden Modultyp zu wählen. Damit wäre meine Bedingungsabfrage schon abgefrühstückt. Wenn ich es über eine ModulEvents.php machen muss, muss ich dort innerhalb eine Bedingung abfragen und dann die Zeile 347
    PHP-Code:
    $this->Template->events $strEvents
    abändern, z.B. in:
    PHP-Code:
    $this->Template->events '<div class="eltable">'."\n".$strEvents.'</div>'
    oder
    PHP-Code:
    $this->Template->events '<table id="my-id" class="my-class"><thead><tr><th>myText1</th><th>myText2</th><th>myText3</th><th> ... </th></tr></thead><tbody>'.$strEvents.'</tbody></table>'
    Bitte keine Diskussionen über Tabellen, ich brauche eine tabellarische Ausgabe, die filterbar und sortierbar sein muss (mache ich mit einem jquery-Script). Jedenfalls habe ich keinen Weg gefunden, im Template irgendwo um die Ausgabe $strEvents die benötigten Tags drumherum zu setzen.

    Wenn man Termine außer nach der Startzeit auch noch alphabetisch nach Eventtitel oder anderen Feldern sortieren könnte, würde ich auf die Filterung verzichten, aber meine Suche ergab da keine verfügbare Lösung.
    Viele Grüße, DetlefT

  4. #4
    Contao-Nutzer
    Registriert seit
    06.09.2016.
    Beiträge
    125

    Standard

    Probiere es vielleicht doch mal, über eine Modifikation des event_list.html5-Templates zu lösen (das musst du ja sowieso anpassen, um die Tabellenzellen auszugeben):

    Ganz vorne machst du eine Abfrage, ob es sich um das erste Event handelt, und dann wird ggf. der Table-Header ausgegeben. Leider habe ich kein Beispiel, da ich auf neuen Monat prüfe und für jeden Monat eine eigene Tabelle anlege. Mit showTemplateVars findest du aber vielleicht eine passende Variable. Realisierung in etwa so oder analog zum Ende:
    Code:
    <?php if($this->newMonth==1) { <table> }
    Am Ende dann folgende Überprüfung:
    Code:
    <?php if (strpos($this->classUpcoming,"last")!== false): ?></table><?php endif; ?>
    Sicher nicht schön, aber bei mir funktioniert es wie gewünscht.

    PS: Ich habe die Tabellenausgabe, weil mehrtägige Events aus Platzgründen (Montag 1.5.-Freitag 5.5) in die Spalte für die Uhrzeit hineinragen sollen. Das geht mit CSS meines Wissens nicht.

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von DetlefT Beitrag anzeigen
    ...
    Dazu will ich abhängig von der Seite, auf der die Daten ausgegeben werden sollen, ... eine Modifikation vornehmen.
    ...
    Bitte keine Diskussionen über Tabellen, ...
    Seitenabhängige Ausgaben in Templates kannst du über die Seiten-ID durchführen.
    PHP-Code:
    global $objPage;
    if(
    $objPage->id == 42)... 
    Tabellen sind und waren nie böse . Eine Auflistung von Events können durchaus tabellarische Daten sein und somit wäre eine Tabelle korrrekt. Bei Benutzung von Tabellen kommt es immer darauf an, ob sie tabellarische Daten enthalten.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  6. #6
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    @Physiklehrer

    Genial ist vielleicht zu hoch gegriffen, aber das ist genau das, was ich brauche. Irgendwie denke ich immer viel zu kompliziert
    Nebenbei löst das auch einige kleinere Kinken, die ich mir über meinen Weg eingefangen hatte. Danke!

    @Andreas

    Tabellen: Dann lies Dir mal in Foren Beiträge zu Tabellen durch. Egal, wofür jemand die einsetzen will, er steht immer sofort auf der bösen Seite der Macht.
    Danke für den Hinweis mit $objPage, werde ich mir merken. Allerdings ist das ja auch wieder irgendwie hartkodiert.

    Allerdings weiß ich jetzt immer noch nicht, wie man eine Einfachst-Mod baut, aber kommt Zeit, kommt Mod. Auf jeden Fall komme ich erstmal weiter - und das sehr gut!
    Viele Grüße, DetlefT

  7. #7
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Wenn du nicht die ID hardcoded im Template verarbeiten willst, dann bleibt noch die Möglichkeit mehrerer Templates. Die kannst du dann situationsabhängig auswählen.

  8. #8
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    @folkfreund

    Ja, habe ich ja jetzt so wie von @Physiklehrer angeregt, umgesetzt. Damit brauche ich auch nicht mehr an die php-Datei gehen. Alles gut!
    Viele Grüße, DetlefT

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von DetlefT Beitrag anzeigen
    Egal, wofür jemand die einsetzen will, er steht immer sofort auf der bösen Seite der Macht.
    Ja, das kommt immer von Leuten, die keine Ahnung haben, worum es geht.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

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
  •