Hilfe - Suche - Mitglieder - Kalender
Vollansicht: PHP-Code in Variable schreiben
Forum Sefrengo.org > Allgemeine Foren > Offtopic
FireFlyer
Ich als nicht Programmierer verzweifel beim testen an folgendem Szenario.

Ich möchte folgenden Code in $test bekommen, damit beim Aufruf dieser folgender Code abgearbeitet wird:

$file='test.gif';
$folder="test";
include("/xy/datei.php");

Kann mir jemand auf die Sprünge helfen?
pawel
Was willst du denn machen
FireFlyer
ich hab ein Modul geschrieben oder besser gesagt zusammen kopiert und probiert damit es so weit klappt.
bei mir gibt es jetzt viele mipforms, damit ich das ganze nicht mehr quellcode ändern muss.
Ich möchte 3 Templates machen:
1. Template Beginn
2. Details
3. Template Ende

im Details-Template sollen bestimme Teile eingefügt werden:
ich möchte in diesem Template einen Platzhalter {test} einrichten, welcher wieder auf diesen Code zu greift.

Es klappt ja schon alles, aber ich möchte im Details-Template nur noch mit den Platzhaltern arbeiten, damit ich die Reihenfolge flexibel gestalten kann.
Mein Gedanke war, wenn der obere Code in dieser Variable steht könnte ich diesen über die Funktion str_replace in mein Gesamt-Template einpflegen.
pawel
Und was steht am Ende typischerweise im Quelltext der ausgegebenen Seite? Ein Pfad zu einem Bild?
FireFlyer
du hast PN
FireFlyer
Ich muss es jetzt noch mal versuchen.

Bei einem selbst zusammen geschusterten Modul hab ich ein $mip_form['3'] als Textarea. In diesem sollen Platzhalter ersetzt werden, wie es schon bei vielen Modulen der Fall ist.

Meine Funktion:
$tmp_details = "MOD_VALUE[3]";
$tmp_details = str_replace('{platzhalter}', 'Hallo', $tmp_details);
echo $tmp_details;


Dies klapp dann schon, denn es wird Hallo statt {platzhalter} angezeigt. Das war nur zum testen.

Jetzt sollte aber folgender Code eingesetzt und abgearbeitet werden, statt dem Hallo:

$a="MOD_VALUE[10]";
include("/ordner/test.php");


Ich möchte in dieser Textarea einfach HTML-Code mit den {platzhaltern} verbinden, um ein recht flexibles Design zu erstellen!
pawel
Wie schon gesagt, sieh dir file() oder fil_get_contents() an. Da hast du das Ergebnis der Ausgabe der php-Datei.
mistral
ZITAT(FireFlyer @ Tue. 17. June 2008, 18:18) *
Ich muss es jetzt noch mal versuchen.

Bei einem selbst zusammen geschusterten Modul hab ich ein $mip_form['3'] als Textarea. In diesem sollen Platzhalter ersetzt werden, wie es schon bei vielen Modulen der Fall ist.

Meine Funktion:
$tmp_details = "MOD_VALUE[3]";
$tmp_details = str_replace('{platzhalter}', 'Hallo', $tmp_details);
echo $tmp_details;


Dies klapp dann schon, denn es wird Hallo statt {platzhalter} angezeigt. Das war nur zum testen.

Jetzt sollte aber folgender Code eingesetzt und abgearbeitet werden, statt dem Hallo:

$a="MOD_VALUE[10]";
include("/ordner/test.php");


Ich möchte in dieser Textarea einfach HTML-Code mit den {platzhaltern} verbinden, um ein recht flexibles Design zu erstellen!

Wenn du in deinem Includ $a verwendest, wird es auch funktionieren, ab
Wenn du aber MOD_VALUE[10] im includ verwendets, dann ist auch klar, dass das nicht funktioniert.
Die MOD_VALUE[10] werden vor dem ausführen durch deren Inhalt ersetzt, dies kann aber nur beim Inhalt (output) des Modul geschehen und nicht bei eingebundenen Daten.
Siehe:

Lösung1:
im include $a verwenden. Dies ist die sinnvollste Variante und wird z.B. auch im ContentFlex so verwendet.

unschöne Variante2:
im Include $cms_mod['value'][10] verwenden anstelle von "MOD_VALUE[10]". Bei dieser Variante besteht, die Gefahr, dass diese in einer zukünftigen Version nicht mehr funktioniert.

P.S.
Wenn die MOD_VALUE im dynamisches PHP zur Verfügung stehen sollen gibt es noch diesen Code:
QUELLTEXT
<CMSPHP:CACHE>

//Alle Variablen, die nur innerhalb des gecachten PHPs sichtbar sind, auch für dynamisches PHP zur Verfügung stellen
echo '<CMSPHP>';
if (is_array($cms_mod['value'])) {
foreach($cms_mod['value'] AS $k => $v){
    echo '$mvars["'.$k.'"] = "'. addslashes($v) .'";'."\n";
}}
echo '</CMSPHP>';
</CMSPHP:CACHE>

FireFlyer
Danke euch beiden. Werde dies morgen testen!!
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.