"Verhalten" der Skripte bei "IPS_SetScriptFile"

Hallo Leute,

für einen bestimmten Bereich habe ich mir ein Skript geschrieben, was alle notwendige Schritte ausführt um eine Objektstruktur korrekt abzubilden bzw. unterhalb der ParentID anzulegen. Lediglich bei den Inhalten der Skripte bin ich jetzt etwas unsicher geworden.

Wie verhält es sich, wenn ich dort mit „IPS_SetScriptFile“ arbeite? Wird eine Kopie des zugewiesenen Skriptes erzeugt? Oder wird die Verbindung zu dem Originalskript hergestellt? Oder anders gefragt: Wenn ich diesen Befehle mehrfach mit derselben Datei, aber an anderer Position im Objektbaum durchführe, wird dann immer auf dieselbe „Basisdatei“ zugriffen?

Joachim

Wenn ich Deine Frage jetzt richtig deute…
Du kannst mit IPS_SetScriptFile nur eine eindeutige ID einer Datei zuordnen.

Hallo Thomas,

vielen Dank für Deine Antwort.

Jetzt habe ich mich aber in eine Situation hineinmanövriert…:rolleyes: - ich weiß nämlich jetzt nicht mehr, ob ich Deine Antwort richtig deute…:smiley:

Ich hatte die Idee eine Skript-(Basis)-Datei anzulegen, die ich aber in jedem durch das Installations-Skript erstellt Objekt-(Teil)-Baum noch hier und dort ein wenig anpassen müsste.
Wenn aber alle auf genau diese eine Datei zugreifen, dann wären ja individuellen Änderungen in dem jeweiligem Objekt-(Teil)-Baum möglich, weil ja damit auch die Skripte der anderen geändert werden…

Habe ich mich jetzt etwas verständlicher ausgedrückt? :wink:

Joachim

Habe ich mich jetzt etwas verständlicher ausgedrückt?

Nee. Versteh nur Bahnhof.:confused:

Hier ist z.B. ein Auszug aus meinem Weckerscript wie ich ein Script aus einem Script anlege. Vieleicht hilft Dir das ja.


//Schlummermodus Script
$script_inhalt ="<?"."
";
$script_inhalt.="/*"."
";
$script_inhalt.="//Sript wurde automatisch angelegt durch Ferengi-Masters Wecker"."
";
$script_inhalt.="//Schlummermodus-Weckername: $wecker_name_neu"."
";
$script_inhalt.="*/"."
";
$script_inhalt.='IPS_SetScriptTimer($_IPS[\'SELF\'], 0);'."
";;
$script_inhalt.="//Ab hier eigenen Code einfügen ===>";
$script_inhalt.="






";
$script_inhalt.="?>"."
";
$fn = IPS_GetKernelDir()."scripts\\".$wecker_name_neu."_Schlummermodus.ips.php";
$handle = fopen($fn,"w");
fwrite($handle,$script_inhalt);
fclose($handle);

//Array mit Informationen über das Objekt
$install_arr = IPS_GetObject($_IPS['SELF']);
$id_kat = $install_arr['ParentID'];

$id_script = IPS_CreateScript(0);
IPS_SetParent($id_script, $id_kat);
IPS_SetScriptFile($id_script, $wecker_name_neu."_Schlummermodus.ips.php");
IPS_SetName($id_script, $wecker_name_neu."_Schlummermodus");

War das nicht ein Anwendungsfall für das hier

Gruß
Bruno

Hallo Thomas,

vielen Dank für Deine Geduld!:wink:

Dein Posting hat mich auf eine Idee gebracht: Ich kopiere das „Basis-Skript“, dabei bekommt es einen neuen Namen und wird gleich mit „IPS_ScriptFile“ korrekt zugewiesen. Und was soll ich sagen? Es funktioniert! Danke Dir!

Joachim

Hallo Bruno,

unsere Antworten haben sich irgendwie überschnitten…

Ja, das sieht tatsächlich so aus, es (zumindest) einmal selbst zu machen, hilft mir aber das System besser zu verstehen. Von daher probiere ich es halt auch gerne mal aus was so geht - und wie…

Trotzdem auch Dir vielen Dank!

Joachim