Seite 1 von 1

Modul stand-alone funktioniert - Contenido zeigt Fehler

Verfasst: Do 2. Sep 2004, 07:42
von Caddata
Hallo,

ich habe einProblem mit einem selbstgeschriebenen Modul.

Es handelt sich dabei um einen Formular-Wizard, basierend auf PEAR::HTML_QuickForm_Controller.

Wenn ich das Modul als Stand-Alone starte, geht alles bestens. Auch auf dem Server, auf dem Contenido läuft.
Kopiere ich den Quelltext aber in den Contenido-Modul-Output, zeigt Contenido mir eine rote Lampe - der Quellcode soll also Fehler haben.

Wie kann das sein?
Prüft Contenido auch die eingebundenen Dateien mit eval()?
Die Subklasse Action_Jump produziert einen fehler, weil sie versucht einen Header zu senden, nachdem der Output gestartet ist. Könnte es daran liegen? Das passiert aber erst zur Laufzeit, also nicht beim einfügen und speichern des Moduls!
error_log hat geschrieben: [02-Sep-2004 08:40:33] PHP Warning: Cannot modify header information - headers already sent by (output started at /homepages/16/d85881142/htdocs/galerie82/camino/front_content.php(546) : eval()'d code:9) in /homepages/16/d85881142/htdocs/galerie82/pear/HTML/QuickForm/Action/Jump.php on line 53
Hat übrigens vielleicht schon mal jemand den QFC in Contenido zum laufen bekommen?

Vielen Dank für eure Hilfe,

Marco

Verfasst: Do 2. Sep 2004, 08:58
von timo
Das mit den Headern wird nicht funktionieren, da vor deinem Modul schon eine Ausgabe passiert!

Verfasst: Do 2. Sep 2004, 09:06
von kummer
man müsste halt in der front_content.php eine ausgabenpufferung einfügen (ob_start()). dann können auch von modulen aus headers gesendet werden.

Verfasst: Do 2. Sep 2004, 10:34
von Caddata
Also, das mit Pufferung habe ich einbaut und es funktioniert wie gewünscht.

Allerdings zeigt mir Contenido immer noch ein Rotes Licht im Modul-Output, obwohl der Code für sich alleine fehlerfrei läuft.

Wie kann das sein?

Thx,
Marco

Verfasst: Do 2. Sep 2004, 10:40
von kummer
ich habe ein ähnliches problem gehabt. bei mir hat es damit zusammen gehangen, dass ich assoziative arrays verwendet habe und den schlüssel mit einer variable übergeben habe:

Code: Alles auswählen

$myVariable[$myIndex]
und das hat contenido offenbar nicht gern. ich konnte das dann lösen, indem ich es wie folgt geschrieben habe:

Code: Alles auswählen

$myVariable["{$myIndex}"]
könnte eventuell ein solches problem vorliegen?

Verfasst: Do 2. Sep 2004, 10:55
von Caddata
Na, da soll mich doch....

DAS WARS!
Vielen dank für deine Hilfe, kummer!

Da muss man auch erstmal drauf kommen.... :wink:

Grüße,
Marco

Verfasst: Do 2. Sep 2004, 11:05
von kummer
ich hatte da mal wohl 'ne eingebung... :wink:

Verfasst: Do 2. Sep 2004, 11:16
von Caddata
und wenn man die URL für den QuickForm_Controller nicht mit $auth->url() generieren lässt, sondern fest ins script schreibt, funzt dieser auch!

Na supi - jetzt läuft das Modul!

Verfasst: Do 2. Sep 2004, 12:28
von timo
Contenido hat da gar nichts dagegen - wenn der PHP Parser einen Fehler feststellt, zeigt Contenido eine rote Lampe an.

Verfasst: Do 2. Sep 2004, 12:39
von Caddata
Aber die Notation $array[$name] ist doch aus PHP-Parser-Sicht grundsätzlich nicht falsch, oder?
Als Stand-Alone stört der sich ja auch nicht dran, nur wenn man den Code durch eval() jagt, beschwert er sich!

Egal - jetzt läufts und dieser Thread ist als Insider-Wissen im Kopf gespeichert... :lol:

Greets & THX,

Marco

Verfasst: Do 2. Sep 2004, 13:14
von kummer
das ist schon richtig so: die einfache notation ist die richtige. die andere (diejenige, die funktioniert) ist lediglich ein work around. ich habe keine ahnung, warum das nicht gehen sollte. und ich denke im übrigen, dass es nicht an der eval()-funktion liegt. die habe ich nämlich bislang immer ohne probleme verwenden können. ich schätze, allerdings weiss ich das nicht genau, dass contenido irgendwie eine gültigkeitsprüfung vornimmt und dass diese die probleme verursacht.

Verfasst: Do 2. Sep 2004, 13:20
von timo
nein, Contenido macht da überhaupt keine Prüfung, sondern gibt den kompletten Modulstring an ein eval weiter.