Problemchen mit mod_inline
Problemchen mit mod_inline
Hallo!
1. ConPresso ist super und je mehr ich mich darin einarbeite, desto besser gefällt es mir
2. Mein Problem: Ich habe mod_inline installiert und möchte darüber nun eine php-Datei in einem Template einbinden. Ich habe das inline-Element erstellt und im Template im Artikel-Text mit ###[1]### eingefügt. Allerdings verweigert mir die PHP-Datei den Dienst. Es ist eine kleine IF-Abfrage und die wird schlicht ignoriert. Schalte ich das entsprechende Element auf "inaktiv" wird mir korrekterweise ###[1]### an der entsprechenden Stelle angezeigt. Schalte ich auf "debug", dann wird mir gelb hinterlegt das Inline-Element, sein Name und die Referenz angezeigt. Scheint mir alles korrekt zu sein. Aber sobald ich es aktiviere, klappt die If-Abfrage nicht.
1. ConPresso ist super und je mehr ich mich darin einarbeite, desto besser gefällt es mir
2. Mein Problem: Ich habe mod_inline installiert und möchte darüber nun eine php-Datei in einem Template einbinden. Ich habe das inline-Element erstellt und im Template im Artikel-Text mit ###[1]### eingefügt. Allerdings verweigert mir die PHP-Datei den Dienst. Es ist eine kleine IF-Abfrage und die wird schlicht ignoriert. Schalte ich das entsprechende Element auf "inaktiv" wird mir korrekterweise ###[1]### an der entsprechenden Stelle angezeigt. Schalte ich auf "debug", dann wird mir gelb hinterlegt das Inline-Element, sein Name und die Referenz angezeigt. Scheint mir alles korrekt zu sein. Aber sobald ich es aktiviere, klappt die If-Abfrage nicht.
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Wie sieht die denn aus? Was fragst Du denn ab?
Wichtig: mod_inline bindet über Funktionsaufrufe ein, was bedeutet, daß der Zugriff auf im Umfeld existierende Variablen nur möglich ist, wenn diese vorher globalisiert wurden.
Wichtig: mod_inline bindet über Funktionsaufrufe ein, was bedeutet, daß der Zugriff auf im Umfeld existierende Variablen nur möglich ist, wenn diese vorher globalisiert wurden.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Das machst Du innerhalb Deiner PHP-Datei.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Meinst Du die PHP-Datei, auf die das Inline-Element verweist? Das habe ich gerade versuchsweise getestet - mit Null Erfolg. Aber vielleicht bin ich auch zu blöd? Hier mal mein Code:
Code: Alles auswählen
<?PHP
function global_test()
{
global $nr;
$nachricht = $nr;
}
global_test();
echo $nachricht;
?>
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Vielleicht habe ich ja was an den Augen, aber ich sehe da kein einziges IF...
Woher glaubst Du, daß die Variable $nr kommt?
Die Artikelnummer steht in der Regel als $db_nr zur Verfügung.
Warum Du die Variable dann aber erst nicht globalisierst und dann glaubst eine weitere Funktion könnte die ja nun nicht vorhandene Variable aus dem Nirvana zaubern bleibt mir schleierhaft...
Nochmal: Dein PHP-Code ist durch mod_inline der INHALT einer FUNKTION.
Innerhalb dieser Funktion müssen externe Variablen erst globalisiert werden, damit sie wie in Deinem Beispiel in diesem lokalen Kontext existieren und dann wiederum in weiteren Funktionen globalisiert und genutzt werden können.
Test doch einfach mal diesen Code
Wenn der auch nicht geht (bei mir geht er) solltest Du die Definition des inlines zeigen... sollte da ein http drinstehen kannst Du es vergessen, weil Variablen nur innerhalb eines Scriptes und niemals über einen http-Request ausgelesen werden können (glücklicherweise...)
Woher glaubst Du, daß die Variable $nr kommt?
Die Artikelnummer steht in der Regel als $db_nr zur Verfügung.
Warum Du die Variable dann aber erst nicht globalisierst und dann glaubst eine weitere Funktion könnte die ja nun nicht vorhandene Variable aus dem Nirvana zaubern bleibt mir schleierhaft...
Nochmal: Dein PHP-Code ist durch mod_inline der INHALT einer FUNKTION.
Innerhalb dieser Funktion müssen externe Variablen erst globalisiert werden, damit sie wie in Deinem Beispiel in diesem lokalen Kontext existieren und dann wiederum in weiteren Funktionen globalisiert und genutzt werden können.
Test doch einfach mal diesen Code
Code: Alles auswählen
<?php
global $db_nr;
$nachricht = $db_nr;
echo $nachricht;
?>
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ahh jetzt ja!
Dann habe ich tatsächlich an zwei Stellen Fehler gemacht. Das $nr hatte ich mir aus der URI herausgeholt ... und tatsächlich ein http in der Inline-Referenz. Jetzt funzt es! Vielen Dank.
Und an den Augen hast Du nix, hatte nur einen Test-Code gepostet ... Jetzt klappts aber auch mit dem IF.
Nochmals: Danke!
Dann habe ich tatsächlich an zwei Stellen Fehler gemacht. Das $nr hatte ich mir aus der URI herausgeholt ... und tatsächlich ein http in der Inline-Referenz. Jetzt funzt es! Vielen Dank.
Und an den Augen hast Du nix, hatte nur einen Test-Code gepostet ... Jetzt klappts aber auch mit dem IF.
Nochmals: Danke!