Verbessertes cinclude in Modulen

Ideen für neue Funktionen in CONTENIDO?
Antworten
bodil
Beiträge: 372
Registriert: Fr 7. Okt 2011, 04:10
Hat sich bedankt: 2 Mal
Danksagung erhalten: 7 Mal
Kontaktdaten:

Verbessertes cinclude in Modulen

Beitrag von bodil »

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: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 14 Mal
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von Faar »

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: 372
Registriert: Fr 7. Okt 2011, 04:10
Hat sich bedankt: 2 Mal
Danksagung erhalten: 7 Mal
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von bodil »

Oder so! Vielen Dank!
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von xmurrix »

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: 372
Registriert: Fr 7. Okt 2011, 04:10
Hat sich bedankt: 2 Mal
Danksagung erhalten: 7 Mal
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von bodil »

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: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Verbessertes cinclude in Modulen

Beitrag von xmurrix »

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