Verbessertes cinclude in Modulen

Ideen für neue Funktionen in CONTENIDO?
Antworten
bodil
Beiträge: 339
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Verbessertes cinclude in Modulen

Beitrag von bodil » Mo 10. Dez 2018, 15:57

Wenn man innerhalb eines Moduls eine Datei einbinden will, die im selben Modulverzeichnis liegt, dann sieht das z. B. so aus:

Code: Alles auswählen

cInclude('frontend', 'data/modules/content_search_results/php/class.module.search_result.php');
Der offensichtlichste Nachteil dieser Methode ist, dass das Modul nicht umbenannt werden darf. Der Verzeichnisname würde sich ändern, somit wäre der Pfad falsch, über den die Datei eingebunden wird.
Unabhängig von der technischen Realisierbarkeit fände ich besser, etwas derartiges würde funktionieren:

Code: Alles auswählen

cInclude('thisModule', 'php/class.module.search_result.php');
Grüße!
Bodil

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von Faar » Mo 10. Dez 2018, 17:14

Probiere das mal:

Code: Alles auswählen

$myModul = new cModuleHandler($cCurrentModule);
$phpPfad = $myModul->getPhpPath();
echo $phpPfad;
Ansonsten hier durcharbeiten:
https://docs.contenido.org/display/CONDEVE/cRegistry
https://api.contenido.org/latest/class- ... ndler.html
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

bodil
Beiträge: 339
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von bodil » Mo 10. Dez 2018, 17:36

Oder so! Vielen Dank!

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von xmurrix » Di 11. Dez 2018, 23:34

Hallo bodil,

will man im Modul PHP-Sourcen einbinden, die auch im gleichen Modulverzeichnis liegen, kann man das folgendermaßen machen:

Code: Alles auswählen

cInclude('module', 'class.module.search_result.php');
Der Kontext ist dabei das Modul, in der die cInclude() Funktion verwendet wird, und die einzubindende Datei muss sich innerhalb des php-Ordners des Moduls befinden.

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.

bodil
Beiträge: 339
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von bodil » Mi 12. Dez 2018, 08:37

Hallo xmurrix!
Das ist ja genau das, was ich gesucht hatte ... vielen Dank!
Vielleicht sollte man das in den Beispielmodulen so einbauen?
Viele Grüße!
bodil

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von xmurrix » Fr 15. Mär 2019, 22:06

Für die Verwendung von cInclude() in Modulen gibt es ein Ticket:
https://issues.contenido.org/browse/CON-2775

Grüße
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.

Antworten