N°2603 - Portal: Fix crash when having comments in some parts of the XML

This commit is contained in:
Molkobain
2019-11-25 12:38:34 +01:00
parent 32b065708b
commit 2f2d9547b7
8 changed files with 24 additions and 34 deletions

View File

@@ -16,8 +16,6 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*
*
*/
namespace Combodo\iTop\Portal\Brick;
@@ -636,7 +634,7 @@ abstract class AbstractBrick
break;
case 'security':
/** @var \Combodo\iTop\DesignElement $oSecurityNode */
foreach ($oBrickSubNode->childNodes as $oSecurityNode)
foreach ($oBrickSubNode->GetNodes('*') as $oSecurityNode)
{
if ($oSecurityNode->nodeType === XML_TEXT_NODE && $oSecurityNode->GetText() === '')
{

View File

@@ -16,8 +16,6 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*
*
*/
namespace Combodo\iTop\Portal\Brick;
@@ -326,7 +324,7 @@ class BrowseBrick extends PortalBrick
{
case 'levels':
/** @var \Combodo\iTop\DesignElement $oLevelNode */
foreach ($oBrickSubNode->childNodes as $oLevelNode)
foreach ($oBrickSubNode->GetNodes('*') as $oLevelNode)
{
if ($oLevelNode->nodeName === 'level')
{
@@ -336,17 +334,17 @@ class BrowseBrick extends PortalBrick
break;
case 'browse_modes':
/** @var \Combodo\iTop\DesignElement $oBrowseModeNode */
foreach ($oBrickSubNode->childNodes as $oBrowseModeNode)
foreach ($oBrickSubNode->GetNodes('*') as $oBrowseModeNode)
{
switch ($oBrowseModeNode->nodeName)
{
case 'availables':
/** @var \Combodo\iTop\DesignElement $oModeNode */
foreach ($oBrowseModeNode->childNodes as $oModeNode)
foreach ($oBrowseModeNode->GetNodes('*') as $oModeNode)
{
if (!$oModeNode->hasAttribute('id'))
{
throw new DOMFormatException('BrowseBrick : Browse mode must have a unique ID attribute', null,
throw new DOMFormatException('BrowseBrick: Browse mode must have a unique ID attribute', null,
null, $oModeNode);
}
@@ -443,7 +441,7 @@ class BrowseBrick extends PortalBrick
}
// Getting level properties
/** @var \Combodo\iTop\DesignElement $oLevelPropertyNode */
foreach ($oMDElement->childNodes as $oLevelPropertyNode)
foreach ($oMDElement->GetNodes('*') as $oLevelPropertyNode)
{
switch ($oLevelPropertyNode->nodeName)
{
@@ -488,7 +486,7 @@ class BrowseBrick extends PortalBrick
{
$aLevel[$sTagName] = array();
/** @var \Combodo\iTop\DesignElement $oFieldNode */
foreach ($oLevelPropertyNode->childNodes as $oFieldNode)
foreach ($oLevelPropertyNode->GetNodes('*') as $oFieldNode)
{
if ($oFieldNode->hasAttribute('id') && $oFieldNode->getAttribute('id') !== '')
{
@@ -517,7 +515,7 @@ class BrowseBrick extends PortalBrick
$aLevel[$sTagName] = array();
$iActionDefaultRank = 0;
/** @var \Combodo\iTop\DesignElement $oActionNode */
foreach ($oLevelPropertyNode->childNodes as $oActionNode)
foreach ($oLevelPropertyNode->GetNodes('*') as $oActionNode)
{
if ($oActionNode->hasAttribute('id') && $oActionNode->getAttribute('id') !== '')
{
@@ -607,7 +605,7 @@ class BrowseBrick extends PortalBrick
break;
case 'levels':
foreach ($oLevelPropertyNode->childNodes as $oSubLevelNode)
foreach ($oLevelPropertyNode->GetNodes('*') as $oSubLevelNode)
{
if ($oSubLevelNode->nodeName === 'level')
{

View File

@@ -16,8 +16,6 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*
*
*/
namespace Combodo\iTop\Portal\Brick;
@@ -135,7 +133,7 @@ class CreateBrick extends PortalBrick
case 'rules':
/** @var \Combodo\iTop\DesignElement $oRuleNode */
foreach ($oBrickSubNode->childNodes as $oRuleNode)
foreach ($oBrickSubNode->GetNodes('*') as $oRuleNode)
{
if ($oRuleNode->hasAttribute('id') && $oRuleNode->getAttribute('id') !== '')
{

View File

@@ -16,8 +16,6 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*
*
*/
namespace Combodo\iTop\Portal\Brick;
@@ -208,7 +206,7 @@ class FilterBrick extends PortalBrick
{
case 'target_brick':
/** @var \Combodo\iTop\DesignElement $oTargetBrickNode */
foreach ($oBrickSubNode->childNodes as $oTargetBrickNode)
foreach ($oBrickSubNode->GetNodes('*') as $oTargetBrickNode)
{
switch ($oTargetBrickNode->nodeName)
{

View File

@@ -16,8 +16,6 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*
*
*/
namespace Combodo\iTop\Portal\Brick;
@@ -749,7 +747,7 @@ class ManageBrick extends PortalBrick
{
case 'availables';
/** @var \Combodo\iTop\DesignElement $oModeNode */
foreach ($oDisplayNode->childNodes as $oModeNode)
foreach ($oDisplayNode->GetNodes('*') as $oModeNode)
{
if (!$oModeNode->hasAttribute('id'))
{
@@ -879,7 +877,7 @@ class ManageBrick extends PortalBrick
$aGroup = array();
$aGroup['id'] = $sGroupId; // We don't put the group id as the $aGroups key because the array will be sorted later in AddGrouping, which replace array keys by integer ordered keys
/** @var \Combodo\iTop\DesignElement $oGroupProperty */
foreach ($oGroupNode->childNodes as $oGroupProperty)
foreach ($oGroupNode->GetNodes('*') as $oGroupProperty)
{
switch ($oGroupProperty->nodeName)
{

View File

@@ -81,7 +81,7 @@ class Forms extends AbstractConfiguration
if ($oFormNode->GetOptionalElement('properties') !== null)
{
/** @var \MFElement $oPropertyNode */
foreach ($oFormNode->GetOptionalElement('properties')->childNodes as $oPropertyNode)
foreach ($oFormNode->GetOptionalElement('properties')->GetNodes('*') as $oPropertyNode)
{
switch ($oPropertyNode->nodeName)
{
@@ -95,7 +95,7 @@ class Forms extends AbstractConfiguration
case 'navigation_rules':
/** @var \MFElement $oNavRuleButtonNode */
foreach($oPropertyNode->childNodes as $oNavRuleButtonNode)
foreach($oPropertyNode->GetNodes('*') as $oNavRuleButtonNode)
{
$sNavRuleButtonCode = $oNavRuleButtonNode->nodeName;
if(!in_array($sNavRuleButtonCode, $aAllowedNavRulesButtonCodes))
@@ -104,7 +104,7 @@ class Forms extends AbstractConfiguration
}
/** @var \MFElement $oNavRuleOriginNode */
foreach($oNavRuleButtonNode->childNodes as $oNavRuleOriginNode)
foreach($oNavRuleButtonNode->GetNodes('*') as $oNavRuleOriginNode)
{
$sNavRuleOrigin = $oNavRuleOriginNode->nodeName;
if(!in_array($sNavRuleOrigin, NavigationRuleHelper::GetAllowedOrigins()))

View File

@@ -125,7 +125,7 @@ class ContextManipulatorHelper
// Iterating over the rule's nodes
/** @var \Combodo\iTop\DesignElement $oSubNode */
foreach ($oRuleNode->childNodes as $oSubNode)
foreach ($oRuleNode->GetNodes('*') as $oSubNode)
{
$sSubNodeName = $oSubNode->nodeName;
switch ($sSubNodeName)
@@ -142,7 +142,7 @@ class ContextManipulatorHelper
case 'presets':
case 'retrofits':
/** @var \Combodo\iTop\DesignElement $oActionNode */
foreach ($oSubNode->childNodes as $oActionNode)
foreach ($oSubNode->GetNodes('*') as $oActionNode)
{
// Note : Caution, the index of $aRule is now $oActionNode->nodeName instead of $sSubNodeName, as we want to match iTopObjectCopier specs like told previously
if (in_array($oActionNode->nodeName, array('preset', 'retrofit')))

View File

@@ -344,7 +344,7 @@ class NavigationRuleHelper
);
/** @var \Combodo\iTop\DesignElement $oPropNode */
foreach($oRuleNode->childNodes as $oPropNode)
foreach($oRuleNode->GetNodes('*') as $oPropNode)
{
switch($oPropNode->nodeName)
{
@@ -395,7 +395,7 @@ class NavigationRuleHelper
$aRule = $this->GetDefaultGoToBrickRuleDefinition();
/** @var \Combodo\iTop\DesignElement $oPropNode */
foreach($oRuleNode->childNodes as $oPropNode)
foreach($oRuleNode->GetNodes('*') as $oPropNode)
{
switch($oPropNode->nodeName)
{
@@ -403,7 +403,7 @@ class NavigationRuleHelper
/** @var array $aRouteProperties Route ID and parameters */
$aRouteProperties = array();
/** @var DesignElement $oRoutePropNode */
foreach($oPropNode->childNodes as $oRoutePropNode)
foreach($oPropNode->GetNodes('*') as $oRoutePropNode)
{
switch($oRoutePropNode->nodeName)
{
@@ -413,7 +413,7 @@ class NavigationRuleHelper
case 'params':
/** @var DesignElement $oRouteParamNode */
foreach($oRoutePropNode->childNodes as $oRouteParamNode)
foreach($oRoutePropNode->GetNodes('*') as $oRouteParamNode)
{
$sRouteParamId = $oRouteParamNode->getAttribute('id');
$sRouteParamValue = $oRouteParamNode->GetText();
@@ -468,7 +468,7 @@ class NavigationRuleHelper
);
/** @var \Combodo\iTop\DesignElement $oPropNode */
foreach($oRuleNode->childNodes as $oPropNode)
foreach($oRuleNode->GetNodes('*') as $oPropNode)
{
$sRouteParamId = (array_key_exists($oPropNode->nodeName, $aParamsMapping)) ? $aParamsMapping[$oPropNode->nodeName] : $oPropNode->nodeName;
$aRule['properties']['route']['params'][$sRouteParamId] = $oPropNode->GetText();
@@ -502,7 +502,7 @@ class NavigationRuleHelper
);
/** @var \Combodo\iTop\DesignElement $oPropNode */
foreach($oRuleNode->childNodes as $oPropNode)
foreach($oRuleNode->GetNodes('*') as $oPropNode)
{
$sRouteParamId = (array_key_exists($oPropNode->nodeName, $aParamsMapping)) ? $aParamsMapping[$oPropNode->nodeName] : $oPropNode->nodeName;
$aRule['properties']['route']['params'][$sRouteParamId] = $oPropNode->GetText();