Hallo Leute,
da sich die Aufgabenstellung irgendwie stellte, den Hidden bzw. Disabled Status auf die Links der Variable zu „vererben“ habe ich die folgende Funktionen erstellt. Vielleicht kann es jemand brauchen. Wie performant das in einem umfangreichen IPS weiß ich nicht, habe es bisher nur hier auf dem Testsystem laufen.
//*************************************************************************************************************
// Ermittelt die ID der Links zu einer Variablen, zurückgegeben wird ein Array
function IPS_GetLinked($VariablenID)
{
$LinkArray = IPS_GetLinkList();
$ResultArray = array();
foreach($LinkArray as $key => $val) {
$TargetArray = IPS_GetLink($val);
If ($TargetArray["TargetID"]==$VariablenID)
{
$ResultArray[] = $TargetArray["LinkID"];
}
}
return $ResultArray;
}
//*************************************************************************************************************
// Links zu einer Variablen werden gesucht und versteckt/aufgedeckt
function IPS_GetLinked_SetHidden($VariablenID, $Value=True)
{
$LinkArray = IPS_GetLinkList();
$Result = false;
foreach($LinkArray as $key => $val) {
$TargetArray = IPS_GetLink($val);
If ($TargetArray["TargetID"]==$VariablenID)
{
IPS_SetHidden($TargetArray["LinkID"], $Value);
$Result = true;
}
}
return $Result;
}
//*************************************************************************************************************
// Links zu einer Variablen werden gesucht und aktiv/inaktiv geschaltet
// Hinweis: Disable funktioniert aktuell nicht im iFront
function IPS_GetLinked_SetDisabled($VariablenID, $Value=True)
{
$LinkArray = IPS_GetLinkList();
$Result = false;
foreach($LinkArray as $key => $val) {
$TargetArray = IPS_GetLink($val);
If ($TargetArray["TargetID"]==$VariablenID)
{
IPS_SetDisabled($TargetArray["LinkID"], $Value);
$Result = true;
}
}
return $Result;
}
Joachim