Link anhand eines Ziel ermitteln

Darf man hier immer noch neue Wünsche posten?

Ich suche des öfteren nach Links zu bestimmten Variablen. Dazu habe ich mir folgende Funktion gebaut:


	/**
	 * Sucht einen Link unterhalb $ParentID, welcher auf $TargetID zeigt
	 * und gibt dessen ID zurück. Wenn kein entsprechender Link gefunden wurde, wird FALSE zurückgegeben.
	 * @param int $TargetID = ZielID des gesuchten Links
	 * @param int $ParentID = Übergeordnete Instanz in welcher der Link gesucht werden soll
	 * @return mixed ID des Links oder FALSE
	 */
	function GetLinkIDByTarget(int $TargetID, int $ParentID = 0){
		foreach (IPS_GetChildrenIDs($ParentID) as $childID){
			if (IPS_GetObject($childID)['ObjectType'] == OBJECTTYPE_LINK){
				if (IPS_GetLink($childID)['TargetID'] == $TargetID){
					return $childID;
				};
			}
		}
		return false;
	}

Es gibt ja bereits die Funktion IPS_GetLinkIDByName() - da viele Links aber keinen Namen haben, ist diese nicht nutzbar. Zudem könnten zwei Links denselben Namen haben, aber auf eine andere TargetID verweisen.

Wäre es möglich eine neue Funktion „IPS_GetLinkIDByTarget()“ gemäss obigem Vorschlag oder mit Verbesserung durch die Profis im IPS-Core einzubauen?

Ich habe deinen Beitrag verschoben, da er nichts mit dem PHP-SDK zu tun hat.
Michael

In welchen Anwendungsfällen verwendest du diese Funktion? Innerhalb der Konsole kannst du die Links ja bereits komfortabel ermitteln, indem du Nach Referenzen suchst.

Zum einen brauche ich den Code in einem noch nicht fertigen Modul um Links auf bestimmte Objekte zu finden, damit diese fürs Webfront nicht doppelt erstellt werden.

Bis dahin in einem Script, welches automatisch die Gewerke fürs Webfront anhand verschiedener Kriterien zusammenstellt (Name, Instanz, usw. nach meinem Namenskonzept). Dieses prüft dann mit diesem Code, ob bereits ein Link für das entsprechende Objekt existiert. So lassen sich Gewerke fürs Webfront sehr rasch „zusammenbauen“ und aktualisieren wenn etwas geändert hat.