Hallo,
in der Alpha und in der SVN ist im Ordner cms der Ordner modules.
Dieser hat, soweit ich sehen konnte, einen gewissen Grundaufbau:
Ordner mit Name des Moduls, darin dann die Ordner
- css
- image
- js
- lang
- php
- template
und die Datei info.xml
Ist dies der Grundaufbau für die Module ab der 4.9 an den man sich als Programmierer orientieren soll oder ist dies jetzt nur wegen der besseren Entwicklung so?
Falls das der Aufbau ist, wie wird dann das Modul verarbeitet?
Werden die Dateien aus css, image, js dann automatisch aus dem Modulordner im Layout eingebunden?
Die CSS-Dateien könnte man dann aber nicht über den internen CSS-Editor bearbeiten, oder wird das hier dann noch eingebunden?
Wie ist das dann mit den JS-Dateien?
Wenn zum Beispiel ein Modul jQuery Version 1.3 und ein anderes 1.7 einbindet, wären dann theoretisch beide Dateien geladen?
Das könnte in einigen Sachen Probleme bereiten.
Wie soll es hier also ablaufen? Wie ist es geplant?
Schöne Grüße von Usedom
Ralf
Modulaufbau / Modulprogrammierung
-
- Beiträge: 424
- Registriert: Do 22. Jan 2004, 14:45
- Wohnort: Kölpinsee auf Usedom
- Kontaktdaten:
Modulaufbau / Modulprogrammierung
Schöne Grüße von Usedom
Ralf
Ralf
Re: Modulaufbau / Modulprogrammierung
Hallo yodatortenboxer,
Sehr wahrscheinlich wird das so bleiben. Zum einen ist die Entwicklung besser (Editiren von Modulen direkt in der IDE und Versionierung) und zum anderen ist das die vorgegebene Struktur.
Genauso wie früher, nur dass der Code nun aus dem Dateisystem kommt, anstatt aus der Datenbank.
Beim Generieren des Codes der Seite werden alle CSS- JS-Dateien ausgelesen und in den head-Bereich der Ausgabe eingebunden. Bilder in Modulverzeichnissen sollten regulär referenziert werden, also src="modules/myModuleName/image/foobar.png".
Es gibt im Backend dann im Modulbereich entsprechende Reiter zum Bearbeiten von CSS- JS-Dateien der Module.
Das ist richtig. CONTENIDO kümmert sich nicht darum, ob mehrere Module verschiedene/gleiche Versionen von JS Libraries/Frameworks einbinden. Das ist dann die Aufgabe des Administrators oder des Modulentwicklers. Man kann z. B. jQuery & Co nur dann laden, wenn es vorher nicht geladen wurde. Diese Arbeit lässt sich sehr schwer automatisieren, man muss sich also selber darum kümmern, dass verschiedene Module miteinander funktionieren.
Bezieht sich die Frage auf das Auflösen von Abhängigkeiten in Scripten?
Gruß
xmurrix
Code: Alles auswählen
...Ist dies der Grundaufbau für die Module ab der 4.9 an den man sich als Programmierer orientieren soll oder ist dies jetzt nur wegen der besseren Entwicklung so?
Code: Alles auswählen
...Falls das der Aufbau ist, wie wird dann das Modul verarbeitet?...
Code: Alles auswählen
...Werden die Dateien aus css, image, js dann automatisch aus dem Modulordner im Layout eingebunden?...
Code: Alles auswählen
...Die CSS-Dateien könnte man dann aber nicht über den internen CSS-Editor bearbeiten, oder wird das hier dann noch eingebunden?...
Code: Alles auswählen
...Wie ist das dann mit den JS-Dateien?
Wenn zum Beispiel ein Modul jQuery Version 1.3 und ein anderes 1.7 einbindet, wären dann theoretisch beide Dateien geladen?
Das könnte in einigen Sachen Probleme bereiten....
Code: Alles auswählen
...Wie soll es hier also ablaufen? Wie ist es geplant?...
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 424
- Registriert: Do 22. Jan 2004, 14:45
- Wohnort: Kölpinsee auf Usedom
- Kontaktdaten:
Re: Modulaufbau / Modulprogrammierung
Hallo xmurrix,
Da ich verschiedene spezielle Module und Plugins für Kunden umgesetzt habe, ist es für mich jetzt schon wichtig, den neuen Modulaufbau zu verstehen.
Immerhin muss ich dann diese Module eventuell umprogrammieren.
Neue Module kann ich dann gleich so umsetzen, das sie später sehr schnell in der neuen Version und vieleicht sogar alten Version funktionieren.
Was ist mit "class"/"function"-Dateien die momentan zum Beispiel in den Includes Ordner kommen/liegen?
Ist hier ebenfalls ein Ordner im Modulordner vorgesehen oder kann man dies individuell, also entweder in den includes oder in den Modulordner hinterlegen.
Aktuell können diese ja per
eingeladen werden.
Würde hier dann auch ein
funktionieren?
Gruß Ralf
Yep, und danke für die ausführlichen Antworten.Bezieht sich die Frage auf das Auflösen von Abhängigkeiten in Scripten?
Da ich verschiedene spezielle Module und Plugins für Kunden umgesetzt habe, ist es für mich jetzt schon wichtig, den neuen Modulaufbau zu verstehen.
Immerhin muss ich dann diese Module eventuell umprogrammieren.
Neue Module kann ich dann gleich so umsetzen, das sie später sehr schnell in der neuen Version und vieleicht sogar alten Version funktionieren.
Was ist mit "class"/"function"-Dateien die momentan zum Beispiel in den Includes Ordner kommen/liegen?
Ist hier ebenfalls ein Ordner im Modulordner vorgesehen oder kann man dies individuell, also entweder in den includes oder in den Modulordner hinterlegen.
Aktuell können diese ja per
Code: Alles auswählen
cInclude("frontend", "includes/function.name.php");
eingeladen werden.
Würde hier dann auch ein
Code: Alles auswählen
cInclude("frontend", "modules/modulname/function.name.php");
Gruß Ralf
Schöne Grüße von Usedom
Ralf
Ralf
Re: Modulaufbau / Modulprogrammierung
Soweit mir bekannt ist, wurde dies noch nicht festgelegt, kann mir vorstellen, dass z. B. alle PHP-Scripte in den Ordner "php" reinkommen. Der "php" Ordner könnte also folgendermaßen aussehen:...Was ist mit "class"/"function"-Dateien die momentan zum Beispiel in den Includes Ordner kommen/liegen?...
Code: Alles auswählen
php
myModule_input.php
myModule_output.php
includes
myModule.functions.php
myModule.other_functions.php
classes
class.myModuleFoo.php
class.myModuleBar.php
Code: Alles auswählen
cInclude('module', 'includes/myModule.functions.php');
cInclude('module', 'classes/class.myModuleFoo.php');
Ein Sonderfall sind fest angegebene Pfadanaben zu Bildern oder anderen Recourcen im Modulcode oder in Templates. Falls die User das Modul umbenennen, das machen sie gerne und öfters, sind diese Pfade dann nicht mehr gültig...
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.