Wie lautet denn die aktuelle Empfehlung, wenn ich Skripte wohlgeordnet nacheinander ausführen möchte? Soll ich jetzt ‚include‘ verwenden statt IPS_RunScript?
Bei include muss ich dann aber überall auch noch ein „.ips.php“ ergänzen…
Nur mal so eine Frage, wie erfährt man eigentlich, dass IPS_RunScript wohl ohne Funktion ist, wenn ich diese Thread hier richtig verstehe.
Nachdem ich mich wunderte, warum das gewünschte Script nicht ausgeführt wird, habe ich erst nach der Forumssuche diesen Hinweis hier finden können.
Müßte so etwas nicht in der Doku aufgeführt sein, bzw der Befehl herausgenommen werden ???
Auch IPS_ScriptExists funktioniert bei mir nicht und ich habe das Beispiel (angepasst mit vorhandenem Script) aus der Doku genommen, auch im Kernel Debug kommt keinerlei Meldung, wenn diese Funktion aufgerufen wird.
Ein wenig irritiert bin ich jetzt schon, den wenn man komplexe Scripte schreibt, dann muss man sich schon darauf verlassen können, dass die vorhandenen Funktionsaufrufe auch mind. ihre Grundfunktionalität bieten
Jetzt mit include funzt alles wie gewünscht - wenn dieses Try and Error nur nicht so viel Zeit kosten würde, wäre es ja OK
sowohl IPS_RunScript() wie auch IPS_ScriptExists() funktionieren. Bei der Angabe des Skriptnamens muss jedoch die Endung .ips.php weggelassen werden.
Beispiel: IPS_RunScript(„Test1“) -> führt das IPS-Skript Test1.ips.php aus.
Die obige Diskussion hat den Hintergrund, dass IPS_RunScript() früher mal ähnlich wie PHP-include funktioniert hat und somit eigentlich überflüssig war bis auf den Punkt, dass man sich die Endung .ips.php sparen konnte.
Anfang diesen Jahres wurde jedoch IPS_RunScript() bei der Einführung von threadbasierten PHP-Skripten dahingehend geändert, dass damit ein PHP-Skript als neuer Thread gestartet wird (schau dir mal das Thread-Addin an).
D.h. wenn z.B. drei IPS_RunScript’s hintereinander aufgerufen werden laufen die drei entsprechenden Skripte parallel ab. Das hat durchaus Vorteile
Falls man jedoch Skripte hintereinander ausführen will, muss man nun die PHP Standardbefehle include, include_once, require oder require_once verwenden - dabei dann natürlich inkl. der Dateiendung .ips.php.
Die Doku bzgl. IPS_RunScript() ist aber in der Tat veraltet. Aber es ist eine Wiki und du kannst sie ja jetzt ergänzen
Gruss,
Olli
PS: hier noch zwei Beispielskripte atest1 und atest2. Beide müssen in IPS als Skript angelegt werden. Das Skript atest1 wird dann per Hand gestartet und ruft atest2 auf. Um sich das ganze bzgl. Ausführung anzusehen muss man das Thread Addin Fenster von IPS geöffnet haben.