From 233117ad1884deb3b53addbcaf2c2bd57de784f5 Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Thu, 29 Sep 2016 12:35:21 +0100 Subject: [PATCH 1/2] Fixes regression bug, previously reported in CMIS-378 re-introduced with CMIS-735. --- atom/cmis/cmis_repository_wrapper.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/atom/cmis/cmis_repository_wrapper.php b/atom/cmis/cmis_repository_wrapper.php index 1b48bd2..ed6f06a 100644 --- a/atom/cmis/cmis_repository_wrapper.php +++ b/atom/cmis/cmis_repository_wrapper.php @@ -506,10 +506,22 @@ static function extractObjectFromNode($xmlnode) $prop_nodes = $xmlnode->getElementsByTagName("object")->item(0)->getElementsByTagName("properties")->item(0)->childNodes; foreach ($prop_nodes as $pn) { - if ($pn->attributes) { - //supressing errors since PHP sometimes sees DOM elements as "non-objects" - @$retval->properties[$pn->attributes->getNamedItem("propertyDefinitionId")->nodeValue] = $pn->getElementsByTagName("value")->item(0)->nodeValue; - } + if ($pn->attributes) + { + $propDefId = $pn->attributes->getNamedItem("propertyDefinitionId"); + // TODO: Maybe use ->length=0 to even detect null values + if (!is_null($propDefId) && $pn->getElementsByTagName("value") && $pn->getElementsByTagName("value")->item(0)) + { + if ($pn->getElementsByTagName("value")->length > 1) { + $retval->properties[$propDefId->nodeValue] = array(); + for ($idx=0;$idx < $pn->getElementsByTagName("value")->length;$idx++) { + $retval->properties[$propDefId->nodeValue][$idx] = $pn->getElementsByTagName("value")->item($idx)->nodeValue; + } + } else { + $retval->properties[$propDefId->nodeValue] = $pn->getElementsByTagName("value")->item(0)->nodeValue; + } + } + } } $retval->uuid = $xmlnode->getElementsByTagName("id")->item(0)->nodeValue; From 911f57f68967bf0f6643a61250f1a43589a52c15 Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Thu, 29 Sep 2016 13:44:34 +0100 Subject: [PATCH 2/2] Fixes new package.xml format and requirements. Also fixes nested cmis/ directory inside cmis/. --- atom/package.xml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/atom/package.xml b/atom/package.xml index 72433fa..b6d3ae8 100644 --- a/atom/package.xml +++ b/atom/package.xml @@ -1,6 +1,6 @@ - cmis-phplib + cmis PHP Atom Pub CMIS client This is a PHP CMIS client library that uses the Atom Pub Binding @@ -16,17 +16,18 @@ - 0.2.0 - 2013-11-20 - stable + 0.2.0ignos + 2016-09-29 + Apache License + beta - This is the first published release. + This release fixes a regression bug that avoids you to access multivalued properties. - +