Hallo Gemeinde
Ich verwende in meinem jüngsten Projekt das Modul "Artikel einfügen", um auf jeder Seite einen Adressblock des Kunden auszugeben. Das funktioniert prima. Nun möchte ich ebenfalls auf jeder Seite einen weiteren Text ausgeben lassen. Das Modul zweimal im Template zu verwenden scheint nicht zu funktionieren, jedenfalls wird der zweite Textblock nicht ausgegeben.
Ich vermute, ich muss eine Kopie des Moduls machen und irgendwelche Parameter ändern, weiss allerdings nicht, welche und wie. Kann mir da jemand helfen?
besten Dank und herzliche Grüsse
Jörg
Modul "Artikel einfügen" zweimal verwenden?
-
- Beiträge: 3215
- Registriert: Do 21. Okt 2004, 11:08
- Wohnort: Augsburg
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 17 Mal
- Kontaktdaten:
Re: Modul "Artikel einfügen" zweimal verwenden?
Hallo joe_ma,
die mehrfache Verwendung des "Artikel einfügen" Moduls kann zu Problemen führen, da der Code der eingefügten Artikel mit eval() verarbeitet wird. Dann musst du dafür sorgen, dass in Modulcodes vorhandene PHP-Funktionen nur einmal deklariert werden.
Beispiel:
Fügst du z. B. 2 Artikel ein, und beide haben das Modul "Foobar" und in der Modulausgabe gibt es die Funktion "function foobar()", wird kommt die Funktion mehrfach deklariert und das mag PHP nicht.
Entweder du änderst die Modulausgaben in allen Modulen und baust jeweils eine Abfrage um deklarierte Klassen/Funktionen ein (class_exists und function_exists) oder du änderst die Modulausgabe des Moduls "Artikel einfügen", indem der Artikel per HTTP-Get geholt wird.
Das Zweitere ist vermutlich die schnellere Lösung, sofern du den Modulcode einfach umbauen kannst. Je nach PHP-Einstellungen könnte es vielleicht mit folgendem Code klappen:
Gruß
xmurrix
die mehrfache Verwendung des "Artikel einfügen" Moduls kann zu Problemen führen, da der Code der eingefügten Artikel mit eval() verarbeitet wird. Dann musst du dafür sorgen, dass in Modulcodes vorhandene PHP-Funktionen nur einmal deklariert werden.
Beispiel:
Fügst du z. B. 2 Artikel ein, und beide haben das Modul "Foobar" und in der Modulausgabe gibt es die Funktion "function foobar()", wird kommt die Funktion mehrfach deklariert und das mag PHP nicht.
Entweder du änderst die Modulausgaben in allen Modulen und baust jeweils eine Abfrage um deklarierte Klassen/Funktionen ein (class_exists und function_exists) oder du änderst die Modulausgabe des Moduls "Artikel einfügen", indem der Artikel per HTTP-Get geholt wird.
Das Zweitere ist vermutlich die schnellere Lösung, sofern du den Modulcode einfach umbauen kannst. Je nach PHP-Einstellungen könnte es vielleicht mit folgendem Code klappen:
Code: Alles auswählen
$url = $cfgClient[$client]['path']['htmlpath'] . 'front_content.php?idcatart=' . $iIDCatArt . '&lang=' . $lang;
$htmlCode = file_get_contents($url);
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.
Re: Modul "Artikel einfügen" zweimal verwenden?
Ciao xmurrix
Vielen Dank für deine Antwort. Leider habe ich nicht herausgefunden, wo ich deinen Code einfügen/ändern könnte. Aber ich habe durch herumpröbeln eine Lösung gefunden:
Im Inputcode der Modul-Kopie ab Zeile 20 statt:
andere Nummern vergeben:
Und im Outputcode ab Zeile 20 statt:
dieselben Value-Werte eintragen:
Bei mir funktioniert das jetzt.
Vielen Dank für deine Antwort. Leider habe ich nicht herausgefunden, wo ich deinen Code einfügen/ändern könnte. Aber ich habe durch herumpröbeln eine Lösung gefunden:
Im Inputcode der Modul-Kopie ab Zeile 20 statt:
Code: Alles auswählen
#Get current settings
$name = "CMS_VAR[1]";
$cms_idcat = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";
Code: Alles auswählen
#Get current settings
$name = "CMS_VAR[3]";
$cms_idcat = "CMS_VALUE[3]";
$cms_idcatart = "CMS_VALUE[4]";
Code: Alles auswählen
#Get current settings
$cms_idcat = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";
Code: Alles auswählen
#Get current settings
$cms_idcat = "CMS_VALUE[3]";
$cms_idcatart = "CMS_VALUE[4]";
Gruss
Jörg Matter
Jörg Matter