ich rufe aus einem Skript ein Unterskript mit Require auf. kann ich im Unterskript was einbauen, dass es nicht direkt ausgeführt werden kann, also nur läuft, wenn es z.B. mit Require aufgerufen wurde?
Beim direkt starten macht es „Blödsinn“, weil es da andere Idents findet.
ist mir schon ein paar mal passiert, das ich ein zentrales Skript anpassen musste und dann auf ausführen gedrückt hab. Daher würde ich da gerne was einbauen, dass es nur eine Nachricht ausgibt-
die Variante von Ralf hat leider nicht funktioniert, da kam immer „Kann man nicht direkt aufrufen!“, egal ob direkt oder aus anderem Skript aufgerufen.
Define Project name hat funktioniert und werde ich in meine Skripte einbauen
$script_dir = IPS_GetKernelDir() . '/scripts/';
$include_file_script_id = @IPS_GetScriptIDByFile(substr(__FILE__, strlen($script_dir) - 1));
if($include_file_script_id === false || $include_file_script_id == 0) {
die("Script ID of include file could not be determined!");
}
if($include_file_script_id == $_IPS['SELF']) {
die("Include script can not be called directly!");
}
Funktioniert nur, wenn das Includescript auch einem Skriptobjekt zugewiesen ist.