Da einige Funktionen zur 3.0 wegfallen werden, könnte ihr mit diesem Skript überprüfen in wie fern ihr betroffen seid. Es werden auch direkt Tipps gegeben, wie man diesen Missstand beheben kann, bzw. mit welcher Funktion es ersetzt werden soll. Ausnahme: Wenn die SetValue*/GetValue* Funktionen mit einer Variable ( z.B. $id = „Variablenname“; GetValue*($id); ) benutzt werden, dann findet das Skript dieses „Problem“ nicht. Das eilt nicht und ist zur 2.5 nicht erforderlich. Jedoch wird es zur 3.0 notwendig sein.
<?
$search = Array(
'SetValueBoolean("',
'SetValueInteger("',
'SetValueFloat("',
'SetValueString("',
'GetValueBoolean("',
'GetValueInteger("',
'GetValueFloat("',
'GetValueString("',
'IPS_SetScriptTimer("',
'IPS_GetScriptTimer("',
'IPS_RunScript("',
'IPS_RunScriptEx("',
'IPS_RunScriptWait("',
'IPS_RunScriptWaitEx("',
);
$replace_m = Array(
Array('IPS_GetVariableID(', 'IPS_GetVariableIDByName'),
Array('IPS_GetScriptID(', 'IPS_GetScriptIDByName'),
);
$replace_o = Array(
Array('IPS_StatusVariableExists(', '@IPS_GetObjectIDByIdent'),
Array('IPS_GetStatusVariable(', 'IPS_GetObjectIDByIdent und IPS_GetVariable (VariableAction)'),
Array('IPS_GetStatusVariableID(', 'IPS_GetObjectIDByIdent (+ Parameter tauschen)'),
Array('IPS_GetStatusVariableIdents(', 'IPS_GetChildrenIDs und IPS_GetObject (ObjectIdent)'),
Array('IPS_SetStatusVariableUseAction(', '#TODO#'),
);
$scriptids = IPS_GetScriptList();
$found = false;
foreach($scriptids as $id)
{
if($id != $IPS_SELF)
{
$script = IPS_GetScript($id);
$data = file_get_contents(IPS_GetKernelDir()."/scripts/".$script['ScriptFile']);
foreach($search as $p)
{
if(!(strpos($data, $p) === false)) {
$found = true;
$p = substr($p, 0, strpos($p, "("));
echo "Skript: ".IPS_GetName($id)." #".$id.", Funktion: ".$p.", Bitte statt dem Namen die ID der Variable eintragen
";
}
}
foreach($replace_m as $p)
{
if(!(strpos($data, $p[0]) === false)) {
$found = true;
$p[0] = substr($p[0], 0, strpos($p[0], "("));
echo "Skript: ".IPS_GetName($id)." #".$id.", Funktion: ".$p[0].", Diese Funktion mit ".$p[1]." ersetzen
";
}
}
foreach($replace_o as $p)
{
if(!(strpos($data, $p[0]) === false)) {
$found = true;
$p[0] = substr($p[0], 0, strpos($p[0], "("));
echo "Skript: ".IPS_GetName($id)." #".$id.", Funktion: ".$p[0].", Diese Funktion mit ".$p[1]." ersetzen. Optional. Diese Funktion wird erst zur 3.0 entfernt
";
}
}
}
}
if(!$found)
{
echo "
Es sind keine Änderungen erforderlich. Viel Spaß mit IP-Symcon 2.5!";
}
else
{
echo "
Bitte führen Sie die angezeigte(n) Änderung(en) durch. Es kommt ansonsten zu Fehlermeldungen!";
}
?>