Modul "Artikel einfügen" zweimal verwenden?

Gesperrt
joe_ma
Beiträge: 101
Registriert: Sa 2. Jun 2007, 07:55
Kontaktdaten:

Modul "Artikel einfügen" zweimal verwenden?

Beitrag von joe_ma »

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
Gruss

Jörg Matter
xmurrix
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?

Beitrag von xmurrix »

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:

Code: Alles auswählen

$url      = $cfgClient[$client]['path']['htmlpath'] . 'front_content.php?idcatart=' . $iIDCatArt . '&lang=' . $lang;
$htmlCode = file_get_contents($url);
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.
joe_ma
Beiträge: 101
Registriert: Sa 2. Jun 2007, 07:55
Kontaktdaten:

Re: Modul "Artikel einfügen" zweimal verwenden?

Beitrag von joe_ma »

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:

Code: Alles auswählen

#Get current settings
$name         = "CMS_VAR[1]";
$cms_idcat    = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";
andere Nummern vergeben:

Code: Alles auswählen

#Get current settings
$name         = "CMS_VAR[3]";
$cms_idcat    = "CMS_VALUE[3]";
$cms_idcatart = "CMS_VALUE[4]";
Und im Outputcode ab Zeile 20 statt:

Code: Alles auswählen

#Get current settings
$cms_idcat    = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";
dieselben Value-Werte eintragen:

Code: Alles auswählen

#Get current settings
$cms_idcat    = "CMS_VALUE[3]";
$cms_idcatart = "CMS_VALUE[4]";
Bei mir funktioniert das jetzt.
Gruss

Jörg Matter
Gesperrt