DirectModule: Modul zum Aufruf eines anderen stat. Moduls

Gesperrt
chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

DirectModule: Modul zum Aufruf eines anderen stat. Moduls

Beitrag von chobbert » Mi 17. Sep 2003, 14:34

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

Gast

Beitrag von Gast » Di 15. Mär 2005, 15:18

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!

chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert » Di 15. Mär 2005, 16:08

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]

Gast

Beitrag von Gast » Di 15. Mär 2005, 22:49

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!

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 15. Mär 2005, 23:03

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 ...

jph
Beiträge: 61
Registriert: So 13. Feb 2005, 18:57
Kontaktdaten:

Beitrag von jph » Fr 18. Mär 2005, 22:30

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!
www.janheck.de
Config (lokal): Contenido 4.4.5
Apache/2.0.50 (Unix) mod_perl/1.99_13 Perl/v5.8.4 mod_ssl/2.0.50 OpenSSL/0.9.7d PHP/5.0.0 DAV/2 on SUSE 9.2

chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert » Sa 19. Mär 2005, 14:08

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

Gesperrt