Seite 1 von 1

DirectModule: Modul zum Aufruf eines anderen stat. Moduls

Verfasst: Mi 17. Sep 2003, 14:34
von chobbert
Hallo,

folgendes Modul ist bei einem Projekt enstanden. Vielleicht hat jemand Bedarf...

Mit dem DirectModule wird das Modul-Konzept von Contenido etwas verfremdet, aber für das betreffende Projekt hat sich diese Lösung angeboten:

Das Modul ermöglicht es, ein anderes Modul auszuwählen und dessen Output-Code auszugeben. Das aufgerufene Modul darf zwar PHP-Code aber keine Contenido-Platzhalter (z.B. CMS_VALUE[1] oder CMS_HTML[10]) enthalten. Aus diesem Grund werden diese Module auch garnicht erst in der Konfiguration des DirectModules aufgelistet.


Screenshot:

Bild



Beschreibung:

Code: Alles auswählen

eine SelectBox, mit der man Module auswählen kann, deren Code direkt ausgegeben werden soll.
Funktioniert nur mit Modulen ohne CMS_ Variablen!

Version 1.0
Sept. 2003
Robert Strouhal www.clearcreative.de


Input:

Code: Alles auswählen

$directModuleSQL = "SELECT idmod, name FROM ".$cfg["tab"]["mod"]." WHERE output NOT LIKE '%CMS_%'";
$db->query($directModuleSQL);

echo "<table>\n";
echo "  <tr>\n";
echo "    <td>Modul auswählen</td>\n";
echo "    <td><select name=\"CMS_VAR[1]\">\n";
echo "    <option></option>\n";
while ($db->next_record()) {
    echo "<option value=\"".$db->f("idmod")."\" ";
    if ($db->f("idmod") == "CMS_VALUE[1]"){
    	echo " selected ";
    }
    echo ">".$db->f("name")."</option>\n";
}
echo "</select></td></tr></table>\n";



Output:

Code: Alles auswählen

<?
// direkte Ausgabe des Output-Codes eines ausgewählten Moduls

$directModule = "CMS_VALUE[1]";

$directModuleSQL = "SELECT output FROM ".$cfg["tab"]["mod"]." WHERE idmod=".$directModule;
$db->query($directModuleSQL);
$db->next_record();

echo $db->f("output");

?>


:!: Alles ohne Gewähr und Garantie!


Schöne Grüße

Robert

Verfasst: Di 15. Mär 2005, 15:18
von Gast
das wäre es was ich brauche.
Nur leider funktioniert es nicht. Bei mir zeigt das Modul, wenn ich ein anderes Modul ausgewählt habe immer nur den PHP-Quellcode des ausgewählten Modules an? Mache ich was falsch?

Danke!

Verfasst: Di 15. Mär 2005, 16:08
von chobbert
Hallo,

ist schon eine Weile her, aber versuche mal die letzte Zeile im Output-Teil durch

Code: Alles auswählen

eval ($db->f("output")); 
zu ersetzen. Wenn das auch nicht geht, teile mir bitte mal die verwendete Contenido-Version mit und ich schaue es mir bei Gelegenheit mal auf meinem Server an.


Schöne Grüße

Robert


[/code]

Verfasst: Di 15. Mär 2005, 22:49
von Gast
Hallo,

leider funktioniert es so nicht. Habe auch schonmal folgende sachen versucht:

Code: Alles auswählen

eval('$modulausgabe');
eval(stripslahses('$modulausgabe'));
aber das scheint alles nicht so zu funktionieren.

Meine Contenido-Version ist 4.4.5. Wäre super wenn du das ausprobieren könntest!

Danke!

Verfasst: Di 15. Mär 2005, 23:03
von Halchteranerin
Anonymous hat geschrieben:Meine Contenido-Version ist 4.4.5. Wäre super wenn du das ausprobieren könntest!
aehm, du bist hier im Forum fuer 4.3 beta ...

Verfasst: Fr 18. Mär 2005, 22:30
von jph
korrekt, aber chobbert schrieb
teile mir bitte mal die verwendete Contenido-Version mit
Deshalb habe ich es nicht für sinnvoll gehalten dafür extra einen neuen artikel auf zu machen!
hätte ich dasbesser machen sollen?
mir ist schon klar, dass das modul ursprünglich für eine andere Version war. aber vielleichtkann man es ja konvertieren!

Verfasst: Sa 19. Mär 2005, 14:08
von chobbert
Hallo,

also, daß Modul kann unter der 4.4 wohl nur HTML-Code aus einem anderen Modul ausgeben.

Ich würde Dir empfehlen, im Forum nach "snippets" zu suchen, daß ist die aktuelle Lösung, um "externen" PHP-Code in einen Container zu laden und auszuführen.


Schöne Grüße

Robert