ist es tatsächlich so, dass man Scripte, die zwar im Scriptverzeichnis sind, aber NICHT im Objektbaum eingebunden sind, zwar mittels include() in ein Script „einbinden“ kann, aber nicht mit IPS_RunScript() oder einer ähnlichen Anweisung ausführen kann?
Ist das ein IPS-Mangel, böse Absicht oder hab ich nen Befehl übersehen?
Deine Aussage logisch und konsequent weiter gesponnen würde auch heissen: kein Include ohne ID.
Ein Script (wie auch Include-Teile) ist ein PHP file. In einem von IPS gestarteten Script muss nicht zwingend auf IPS Spezifika zurückgegriffen werden, und IPS startet schlicht einen weiteren PHP Thread je Skript.
Insofern gibt es m.E. keine wirklich logische Erklärung, warum IPS nicht auch jedes beliebige PHP File starten können solle.
Weil IPS eben auf der Verwendung von ID’s aufgebaut ist und ein in IPS „registriertes“ (nicht externes Script) als Objekt mit einer eigenen ID versehen wird.
So ist es nunmal… und wenn du’s noch genauer wissen willst, dann lies die Doku… IPS_RunScript: IP-Symcon :: Automatisierungssoftware
Der uneindeutige Name bezieht sich auf Skripte, die im Objektbaum existieren und dort den uneindeutigen Namen haben. Die Existenz im Objektbaum geht mit der Existenz einer eigenen ID daher, was wiederum heißt, dass Skripte ohne ID einfach nicht von IPS_RunScript ausgeführt werden. IPS_RunScript ist halt einfach nur eine Funktion zum Ausführen von im IPS-Objektbaum registrierten Skripten. Zum Ausführen von dort nicht vorhandenen Skripten ist sie nicht gedacht und das wird sich auch nicht ändern. Dafür gibt es include, require und ähnliches. Dass IPS auch Skripte ohne ID ausführen kann ist keine Frage, schließlich hat kein Skript, dass man vom Webbrowser aus ausführt, eine ID.