Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Anfängerfrage Erweiterungserstellung /Modulerstellung

  1. #1
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard Anfängerfrage Erweiterungserstellung /Modulerstellung

    Hallo,
    ich habe nun etliche Tutorials zu Erweiterungsentwicklung gelesen, bin aber völlig verwirrt und habe eine Menge Fragen. Vielleicht kann mir jemand helfen:


    1. Was ist der Unterschied zwischen einem Modul und einer Erweiterung?
    2. Für Erweiterungen gibt es offensichtlich unterschiedliche Basiserweiterungen, auf die aufgebaut werden muss (SkeletonBundle, Symfony, ...?). Welche ist da die Beste für einen Anfänger?
    3. Empfiehlt es sich, eine einfache bestehende Erweiterung zu nehmen und abzuändern? Welche? Ich habe ein lauffähiges PHP-Script, welches mir HTML-Code ausgibt. Zurzeit rufe ich es über einen Inserttag in einem Artikel auf. Ich möchte die Funktionalität aber als Erweiterung (oder Modul?) verwenden.
    4. Muss ich eine entwickelte Erweiterung auf github speichern?


    Grüße

  2. #2
    Contao-Fan Avatar von Sioweb
    Registriert seit
    12.08.2011.
    Ort
    Düsseldorf
    Beiträge
    405
    User beschenken
    Wunschliste

    Standard

    Ho!

    1.) Modul und Erweiterung sind das selbe, nur der Terminus ist anders.

    2.) Ich hab damals damit angefangen, bestehende Module zu umschreiben und mit "Learning By Doing" zu lernen. Ich habe zwei "Tutorial" Module, die dir evt. helfen könnten:

    Contao 4: https://github.com/Sioweb/Contao4DummyBundle
    Contao 3: https://github.com/Sioweb/Contao3DummyBundle

    Das Contao 3 Modul ist nützlich, weil es die grundsätzliche Struktur weiterhin funktioniert und einiges einfach so in Contao 4 übernommen werden kann.

    Das Skeleton-Bundle ist gut, wenn du schon weißt wie alles funktioniert.

    3.) Schwierig, du kannst auch im Backend Artikel als Element einbinden, oder den Inserttag als HTML-Modul im Seitenlayout einbinden.

    4.) Es gibt drei Möglichkeiten, du speicherst es lokal (wie in meinem Contao 4 Modul), auf Github oder auf Github & Packagist.org. Theoretisch kannst du es auch wie im Contao 3 Modul in den /system/modules-Verzeichniss speichern, davon rate ich dir aber ab.

    Jedenfalls sollte das Modul per Composer installiert werden.
    Grüße Sascha W. @Sioweb
    schadebalken.de | zurück-zu-montag.de
    +++ Programmierer von Change-Lok erfasst worden +++

  3. #3
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Hallo Sioweb,

    erstmal danke für die Beispiele. Das sieht ja sehr komplex aus, mal sehen, ob ich damit zurecht komme

    Ich habe, wie vorher geschrieben, schon einige Beschreibungen gelesen und pflege auch schon seit 2 Jahren eine Vereins-Homepage. Nun wollte ich auch mal verstehen, was ich tue und was im Hintergrund abläuft, habe aber massive Probleme, mir die ganzen Definitionen zu merken oder sie zu verstehen:

    1. Was ist ein Frontend-Template? Ist das der HTML-Code für die Ausgabe?
    2. Was ist der Unterschied zwischen Modul und Inhaltselement?
    3. Gibt es Frontend- und Backend-Module? Falls ja, was ist der Unterschied?


    Grüße

  4. #4
    Contao-Fan Avatar von Sioweb
    Registriert seit
    12.08.2011.
    Ort
    Düsseldorf
    Beiträge
    405
    User beschenken
    Wunschliste

    Standard

    Ho!

    Ja, Frontend-Templates sind HTML und PHP. Module bzw. Erweiterungen liefern diese Templates und du kannst die im Verzeichnis /templates/... überschreiben.

    Module legst du zentral im Theme an, diese kannst du immer wieder verwenden - Logo, Navigation, Footer-Daten. Inhaltselemente sind eher nicht wiederverwendbar. Du kannst sie zwar ebenfalls über ein Inhaltselement einbinden, aber das ist eher sehr mühsam wenn der Workflow nicht gut ist. Wichtig ist: Diese Module haben nichts mit den Modulen/Erweiterungen/Extensions/Plugins zu tun.

    Es gibt keine Frontend/Backend Module in dem Sinn. Module können im Backend eine Eingabemaske erzeugen über die DCA und für das Frontend können Inhaltselemente und Module zur Verfügung gestellt werden.
    Geändert von Sioweb (05.08.2019 um 11:29 Uhr)
    Grüße Sascha W. @Sioweb
    schadebalken.de | zurück-zu-montag.de
    +++ Programmierer von Change-Lok erfasst worden +++

  5. #5
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Danke.

    Ich verstehe allerdings das nicht: "Wichtig ist: Diese Module haben nichts mit den Modulen/Erweiterungen/Extensions/Plugins zu tun."

    Das heisst, es gibt unterschiedliche Arten von Modulen? Die in den Themes und die in Module/Erweiterungen/Extensions/Plugins?
    Wann verwende ich ein Module in einem Theme und wann ein anderes?

    Grüße

  6. #6
    Contao-Fan Avatar von Sioweb
    Registriert seit
    12.08.2011.
    Ort
    Düsseldorf
    Beiträge
    405
    User beschenken
    Wunschliste

    Standard

    Ah denke ich habe vorhin etwas durcheinander gebracht beim Unterschied zwischen Modulen und Erweiterungen.

    Erweiterungen die du installierst nennt man auch: Packages, Module, Extensions und so weiter. Das sind Programme die neue Funktionen in Contao hinzufügen oder vorhandene verbessern.

    Die Module die du im Backend unter Themes erstellen kannst, sind einfach nur ein Set von "Inhaltselementen" die du an verschiedenen Teilen der Webseite einbinden kannst: Im Seitenlayout, als Inhaltselement, als Inserttag.

    Also es sind zwei völlig unterschiedliche Themen. Du brauchst Erweiterungen wenn du mehr Funktion möchtest und Module wenn du Daten/Inhalte wie z.B. Öffnungszeiten immer/überall oben rechts abgebildet haben möchtest
    Grüße Sascha W. @Sioweb
    schadebalken.de | zurück-zu-montag.de
    +++ Programmierer von Change-Lok erfasst worden +++

  7. #7
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, ist eine schöne babylonische Sprachverwirrung. Das Wort "Modul" wird im Contao-Slang für unterschiedliche Dinge benutzt. Um Verwirrungen soweit als möglich zu minimieren, werden aber die "Module", die Du unter Themes im Backend erstellen kannst, "Frontend-Module" genannt. Wenn man jetzt für Erweiterungen auch noch das Wort "Erweiterungen" benutzt und nicht "Module" wird es schon etwas besser. Das klappt leider nicht immer so gut, für Programmierer sind die Erweiterungen eben auch nichts anderes als (Software-)Module.

    Die Frontend-Module als Inhaltselemente zu bezeichnen ist im Sinne der Vermeidung von Verwirrung natürlich auch nicht unbedingt glücklich.
    Im Normalfall sind Frontend-Module dazu gedacht, in einem Seitenlayout einem (oder mehreren) Layoutbereich(en) zugeordnet zu werden. Das Frontend-Modul wird dann auf allen Seiten, die dieses Seitenlayout benutzen, in den entsprechenden Layoutbereichen ausgegeben.
    Inhaltselemente sind dagegen die Bausteine eines Artikels, werden also normalerweise nur auf einer Seite ausgegeben.

    "Leider" ist Contao aber so flexibel, dass Frontend-Module auch als Inhaltselement in einem Artikel eingebunden werden können. Ebenso lassen sich auch Inhaltselemente eines anderen Artikels als Inhaltselement in einen Artikel einbinden. Im Gegenzug lassen sich auch Frontend-Module erstellen, die ein oder mehrere Inhaltselemente ausgeben. Beides macht in bestimmten Anwendungsfällen auch durchaus Sinn, auch wenn sich leider die Begriffe dadurch wieder etwas vermischen.

  8. #8
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    @Hardworker - mal Werbung in eigener Sache. Am Vortag der Contao Konferenz gibt es auch ganztägige Colleges.Vielleicht ist das College von Fritz ja interessant für Dich: Entwicklung in Contao 4

  9. #9
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Vielen Dank für die Erläuterungen. Das mit dem College wäre sicher interessant, da ich Contao aber nur privat und ehrenamtlich verwenden werde, sind mir die Kosten etwas zu hoch (andererseits, wer weiß, ob ich damit nicht mal Geld verdienen kann?).

    Ich hoffe aber dennoch, dass ich auch weiterhin noch ein paar Anfängerfragen beantwortet bekomme. Insbesondere, da ich versuchen werde, Siowebs DummyBundles auf meine Bedürfnisse anzupassen.

    Grüße

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
  •