Script mit Inhalt per Script anlegen

Hallo

Ich suche nach der Möglichkeit mir ein Script anzuglegen und dieses mit Inhalt zu füllen.

Bis jetzt habe ich folgendes geschafft:


// Übergeordnet Ordner ID
		$object = IPS_GetObject($IPS_SELF);
		$ObjektOrdnerID = $object['ParentID'];
		echo $ObjektOrdnerID ."  ";
		
// Übergeordnet Ordner Name
		$ObjektOrdnerName = IPS_GetName($ObjektOrdnerID);
		echo $ObjektOrdnerName ."  ";

// FS20 Gerät
		$ObjektFS20ID = @IPS_GetObjectIDByName($ObjektOrdnerName."_FS20", $ObjektOrdnerID);
		echo $ObjektFS20ID ."  ";

// Script anlegen

$ScriptNAME = "Hallo";


    $ScriptID = @IPS_GetScriptIDByName($ScriptNAME, $ObjektOrdnerID);
    if ($ScriptID == 0){
        $ScriptID = IPS_CreateScript(0);
        IPS_SetName($ScriptID, $ScriptNAME);
        IPS_SetParent($ScriptID, $ParentID);
        IPS_SetInfo($ScriptID, "This script was created by: #$IPS_SELF#");


      	$script_inhalt ="<?"."
";
      	$script_inhalt.="/*"."
";
      	$script_inhalt.="//Sript wurde automatisch angelegt"."
";
			$script_inhalt.="?>"."
";
      	$fn = IPS_GetKernelDir()."scripts\\".$ScriptID.".ips.php";
      	$handle=fopen($fn,"w");
      	fwrite($handle,$script_inhalt);
      	fclose($handle);

Alles was aber passiert ist ein neues Script wird angelegt, das in der Baumansicht eine grüne Schrift hat, nicht bearbeitet werden kann und sonst nix weiter. Bin gerade ein wenig ratlos.

Danke

einfache Variante (Wenn Script/Projekt schon vorhanden): Project Exporter.

händische Script-Variante

  1. Script-Objekt anlegen
  2. (Script-)File schreiben und dann
  3. dieses File dem Script-Objekt zuordnen

der Exporter arbeitet auch mit diesen Routinen

ha, hab ich glatt vergessen: ich hab kürzlich eine Anleitung geschrieben, wie man Scripts in ein Script verpackt und daraus erneut in IPS erzeugen kann: http://www.raketenschnecke.net/2012/11/06/tippstricks-zum-ips-project-exporter-export-externe-scripte/

vielleicht hilft das auch :wink: