Habe einmal meine Installations Scripts zusammengefasset und alle allgemein verwendbaren Funktionen in ein eigenes Script ausgelagert, das ich Euch zur Verfügung stellen möchte.
Zur Zeit sind folgende Funktionen vorhanden:
function CreateCategoryPath($Path, $LastPosition=0, $LastIcon="")
function CreateCategory ($Name, $Parent, $Position)
function CreateDummyInstance ($Name, $ParentId, $Position=0)
function CreateInstance ($Name, $ParentId, $ModulId, $Position=0)
function CreateScript ($Name, $File, $Parent, $Position=0)
function CreateVariable ($Name, $Type, $Parent, $Position, $Profile, $Action=null)
function CreateLink ($Name, $Link, $Parent, $Position)
function CreateTimer_OnceADay ($Name, $Parent, $Hour) {
function CreateTimer_CyclicBySeconds ($Name, $Parent, $Seconds, $Active=true) {
function CreateTimer_CyclicByMinutes ($Name, $Parent, $Minutes, $Active=true)
function CreateMediaPlayer($Name, $ParentId, $Position=0)
function SetVariableConstant ($Name, $ID, $FileName)
function CreateProfile_Switch ($Name, $DisplayFalse, $DisplayTrue, $Icon="") {
function CreateProfile_Associations ($Name, $Associations, $Icon="") {
function CreateProfile_Count ($Name, $Start=0, $Step=0, $Stop=0, $Prefix="", $Suffix="", $Icon="")
function get_ObjectIDByPath($Path)
function CreateLinkByDestination ($Name, $LinkChildId, $Parent, $Position)
function CreateEvent ($Name, $VariableId, $ScriptId, $TriggerType=1/*ByChange*/)
function exists_WFCItem($WFCId, $ItemId) {
function PrepareWFCItemData ($ItemId, $ParentId, $Title) {
function CreateWFCItem ($WFCId, $ItemId, $ParentId, $Position, $Title, $Icon, $ClassName, $Configuration) {
function CreateWFCItemTabPane ($WFCId, $ItemId, $ParentId, $Position, $Title, $Icon) {
function CreateWFCItemSplitPane ($WFCId, $ItemId, $ParentId, $Position, $Title, $Icon="", $Alignment=0 /*0=horizontal, 1=vertical*/, $Ratio=50, $RatioTarget=0 /*0 or 1*/, $RatioType /*0=Percentage, 1=Pixel*/, $ShowBorder='true' /*'true' or 'false'*/) {
function CreateWFCItemCategory ($WFCId, $ItemId, $ParentId, $Position, $Title, $Icon="", $BaseId /*ID of Category*/, $BarBottomVisible='true' /*'true' or 'false'*/, $BarColums=9, $BarSteps=5, $PercentageSlider='true' /*'true' or 'false'*/ ) {
function CreateWFCItemExternalPage ($WFCId, $ItemId, $ParentId, $Position, $Title, $Icon="", $PageUri, $BarBottomVisible='true' /*'true' or 'false'*/) {
function DeleteWFCItems($WFCId, $ItemId) {
function DeleteWFCItem($WFCId, $ItemId) {
Im Prinzip arbeiten alle nach dem gleichen Prinzip, man übergibt die Daten eines Objektes (Name, ParentId, Order, …), die Funktions ermittelt, ob das Object bereits existiert und legt es gegebenenfalls an. In jedem Fall wird aber die ObjectId zur weiteren Verarbeitung zurückgebegen.
Durch die Funktion SetVariableConstant ist es dann noch möglich Konstanten in Scripts nach dem anlegen von Objecten mit dem richtigen Wert zu setzen.
Werde die Funktionalität auch in Zukunft immer wieder erweitern.
lg
Andreas
[Update 2011-03-27] einige Erweiterungen, diverse neue Routinen
[Update 2011-06-16] Anpassung an v2.4
[Update 2011-06-19] Neue Funktion „CreateMedia“
[Update 2011-11-02] Anpassung 2.5
[Update 2011-12-10] Unterstützung Ident, Parameter Doku
[Update 2012-02-10] Integration in die IPSLibrary
Habe das Ganze mittlerweile auch im Wiki etwas zusammengefasst: /wiki/IPSInstaller
.
IPSInstaller.zip (1.31 KB)
IPSInstaller_2011-03-27.zip (2.41 KB)
IPSInstaller_2011-06-16.zip (3.27 KB)
IPSInstaller_2011-06-19.zip (3.37 KB)
IPSInstaller_2011-11-02.zip (3.57 KB)
IPSInstaller_2011-12-10.zip (7.87 KB)