From 596ea0b6ddc1c71ce909c8a805f66b97c70e43f9 Mon Sep 17 00:00:00 2001 From: Anne-Cath Date: Fri, 10 Oct 2025 11:13:03 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B08528=20-=20ignore=20silo=20not=20applied?= =?UTF-8?q?=20on=201:n=20linkedset=20displayed=20in=20form=20in=20portal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/ormlinkset.class.inc.php | 5 ++--- .../Core/AttributeDefinition/AttributeLinkedSet.php | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/ormlinkset.class.inc.php b/core/ormlinkset.class.inc.php index 872b6e3bfa..22c1b1f163 100644 --- a/core/ormlinkset.class.inc.php +++ b/core/ormlinkset.class.inc.php @@ -232,6 +232,7 @@ protected function GetArrayOfIndex() { $aRet = array(); $this->oOriginalSet->Rewind(); + $this->oOriginalSet->OptimizeColumnLoad([$this->sClass => []]); $iRow = 0; while ($oObject = $this->oOriginalSet->Fetch()) { @@ -321,8 +322,6 @@ public function Seek($iPosition): void */ public function Fetch() { - $this->LoadOriginalIds(); - $ret = $this->current(); if ($ret === false) { @@ -353,7 +352,7 @@ public function current() if ($this->iCursor < $iPreservedCount) { $sId = key($this->aPreserved); - $oRet = MetaModel::GetObject($this->sClass, $sId); + $oRet = MetaModel::GetObject($this->sClass, $sId, true, true); } else { diff --git a/sources/Core/AttributeDefinition/AttributeLinkedSet.php b/sources/Core/AttributeDefinition/AttributeLinkedSet.php index 0d47460dc8..f84fcef0f8 100644 --- a/sources/Core/AttributeDefinition/AttributeLinkedSet.php +++ b/sources/Core/AttributeDefinition/AttributeLinkedSet.php @@ -9,6 +9,7 @@ use CMDBSource; use Combodo\iTop\Application\UI\Links\Set\BlockLinkSetDisplayAsProperty; use Combodo\iTop\Form\Field\LinkedSetField; +use Combodo\iTop\Portal\Helper\ScopeValidatorHelper; use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer; use Combodo\iTop\Service\Links\LinkSetModel; use CoreException; @@ -21,6 +22,7 @@ use ExceptionLog; use IssueLog; use MetaModel; +use ModuleDesign; use ormLinkSet; use ValueSetObjects; @@ -154,6 +156,14 @@ public function GetDefaultValue(DBObject $oHostObject = null) $oLinkSearch->AddCondition_PointingTo($oRemoteSearch, $this->GetExtKeyToRemote()); } } + //Add silo in portal context + if (defined('PORTAL_ID')) + { + $oModuleDesign = new ModuleDesign(PORTAL_ID); + $oScopeValidatorHelper = new ScopeValidatorHelper($oModuleDesign, PORTAL_ID); + $oScopeValidatorHelper->AddScopeToQuery($oLinkSearch, $oLinkSearch->GetClass()); + } + $oLinks = new DBObjectSet($oLinkSearch); $oLinkSet = new ormLinkSet($this->GetHostClass(), $this->GetCode(), $oLinks);