Commit d48f4e82e83a4d4821137976722189b2a0f1b244

Authored by Neil Blakey-Milner
1 parent 700765ca

Add a layer of indirection around array_merge. kt_array_merge will use

array_merge directly on PHP4, but convert each parameter to an array
when on PHP5.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5173 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/actions/documentaction.inc.php
@@ -141,7 +141,7 @@ class KTDocumentAction extends KTStandardDispatcher { @@ -141,7 +141,7 @@ class KTDocumentAction extends KTStandardDispatcher {
141 "documentaction" => "viewDocument", 141 "documentaction" => "viewDocument",
142 "folderaction" => "browse", 142 "folderaction" => "browse",
143 ); 143 );
144 - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, 144 + $this->aBreadcrumbs = kt_array_merge($this->aBreadcrumbs,
145 KTBrowseUtil::breadcrumbsForDocument($this->oDocument, $aOptions)); 145 KTBrowseUtil::breadcrumbsForDocument($this->oDocument, $aOptions));
146 146
147 $actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser); 147 $actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser);
lib/actions/folderaction.inc.php
@@ -136,7 +136,7 @@ class KTFolderAction extends KTStandardDispatcher { @@ -136,7 +136,7 @@ class KTFolderAction extends KTStandardDispatcher {
136 "documentaction" => "viewDocument", 136 "documentaction" => "viewDocument",
137 "folderaction" => "browse", 137 "folderaction" => "browse",
138 ); 138 );
139 - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, 139 + $this->aBreadcrumbs = kt_array_merge($this->aBreadcrumbs,
140 KTBrowseUtil::breadcrumbsForFolder($this->oFolder, $aOptions)); 140 KTBrowseUtil::breadcrumbsForFolder($this->oFolder, $aOptions));
141 141
142 $portlet = new KTActionPortlet(_kt("Folder Actions")); 142 $portlet = new KTActionPortlet(_kt("Folder Actions"));
lib/browse/Criteria.inc
@@ -448,7 +448,7 @@ class GenericMetadataCriterion extends BrowseCriterion { @@ -448,7 +448,7 @@ class GenericMetadataCriterion extends BrowseCriterion {
448 function searchSQL ($aRequest) { 448 function searchSQL ($aRequest) {
449 $p = parent::searchSQL($aRequest); 449 $p = parent::searchSQL($aRequest);
450 $p[0] = join(' AND ', array($p[0], "$this->sSearchTable.document_field_id = ?")); 450 $p[0] = join(' AND ', array($p[0], "$this->sSearchTable.document_field_id = ?"));
451 - $p[1] = array_merge($p[1], array($this->iID)); 451 + $p[1] = kt_array_merge($p[1], array($this->iID));
452 return $p; 452 return $p;
453 } 453 }
454 454
@@ -717,7 +717,7 @@ class Criteria { @@ -717,7 +717,7 @@ class Criteria {
717 } 717 }
718 $aQuery = array("SELECT id FROM $default->document_fields_table", array()); /*ok*/ 718 $aQuery = array("SELECT id FROM $default->document_fields_table", array()); /*ok*/
719 $aIDs = DBUtil::getResultArrayKey($aQuery, 'id'); 719 $aIDs = DBUtil::getResultArrayKey($aQuery, 'id');
720 - $aAllCriteriaIDs = array_merge(array_keys($aBaseCriteria), $aIDs); 720 + $aAllCriteriaIDs = kt_array_merge(array_keys($aBaseCriteria), $aIDs);
721 foreach ($aAllCriteriaIDs as $iID) { 721 foreach ($aAllCriteriaIDs as $iID) {
722 $oCriterion =& Criteria::getCriterionByNumber($iID); 722 $oCriterion =& Criteria::getCriterionByNumber($iID);
723 $aAllCriteria[$iID] =& $oCriterion; 723 $aAllCriteria[$iID] =& $oCriterion;
lib/browse/PartialQuery.inc.php
@@ -126,8 +126,8 @@ class BrowseQuery extends PartialQuery{ @@ -126,8 +126,8 @@ class BrowseQuery extends PartialQuery{
126 KTUtil::getTableName("document_content_version"), 126 KTUtil::getTableName("document_content_version"),
127 $this->sDocumentJoinClause, $sPermissionJoin, $sWhere); 127 $this->sDocumentJoinClause, $sPermissionJoin, $sWhere);
128 $aParams = array(); 128 $aParams = array();
129 - $aParams = array_merge($aParams, $this->aDocumentJoinParams);  
130 - $aParams = array_merge($aParams, $aPermissionParams); 129 + $aParams = kt_array_merge($aParams, $this->aDocumentJoinParams);
  130 + $aParams = kt_array_merge($aParams, $aPermissionParams);
131 $aParams[] = $this->folder_id; 131 $aParams[] = $this->folder_id;
132 return array($sQuery, $aParams); 132 return array($sQuery, $aParams);
133 } 133 }
@@ -159,7 +159,7 @@ class BrowseQuery extends PartialQuery{ @@ -159,7 +159,7 @@ class BrowseQuery extends PartialQuery{
159 159
160 $sQuery = "SELECT $sSelect FROM " . KTUtil::getTableName("folders") . " AS F $sPermissionJoin $sWhere "; 160 $sQuery = "SELECT $sSelect FROM " . KTUtil::getTableName("folders") . " AS F $sPermissionJoin $sWhere ";
161 $aParams = array(); 161 $aParams = array();
162 - $aParams = array_merge($aParams, $aPermissionParams); 162 + $aParams = kt_array_merge($aParams, $aPermissionParams);
163 $aParams[] = $this->folder_id; 163 $aParams[] = $this->folder_id;
164 return array($sQuery, $aParams); 164 return array($sQuery, $aParams);
165 } 165 }
@@ -470,7 +470,7 @@ class ArchivedBrowseQuery extends BrowseQuery { @@ -470,7 +470,7 @@ class ArchivedBrowseQuery extends BrowseQuery {
470 KTUtil::getTableName("document_content_version"), 470 KTUtil::getTableName("document_content_version"),
471 $sPermissionJoin, $sWhere); 471 $sPermissionJoin, $sWhere);
472 $aParams = array(); 472 $aParams = array();
473 - $aParams = array_merge($aParams, $aPermissionParams); 473 + $aParams = kt_array_merge($aParams, $aPermissionParams);
474 $aParams[] = $this->folder_id; 474 $aParams[] = $this->folder_id;
475 return array($sQuery, $aParams); 475 return array($sQuery, $aParams);
476 } 476 }
lib/browse/browseutil.inc.php
@@ -322,7 +322,7 @@ class KTBrowseUtil { @@ -322,7 +322,7 @@ class KTBrowseUtil {
322 WHERE 322 WHERE
323 PLA.permission_descriptor_id IN ($sPermissionDescriptors) 323 PLA.permission_descriptor_id IN ($sPermissionDescriptors)
324 AND NOT (PLA2.permission_descriptor_id IN ($sPermissionDescriptors))"; 324 AND NOT (PLA2.permission_descriptor_id IN ($sPermissionDescriptors))";
325 - $aParams = array_merge(array($oPermission->getId(), $oPermission->getId()), $aPermissionDescriptors, $aPermissionDescriptors); 325 + $aParams = kt_array_merge(array($oPermission->getId(), $oPermission->getId()), $aPermissionDescriptors, $aPermissionDescriptors);
326 $res = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id'); 326 $res = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id');
327 327
328 if (PEAR::isError($res)) { 328 if (PEAR::isError($res)) {
lib/config/config.inc.php
@@ -84,7 +84,7 @@ class KTConfig { @@ -84,7 +84,7 @@ class KTConfig {
84 $this->setns(null, $seck, $secv); 84 $this->setns(null, $seck, $secv);
85 } 85 }
86 } 86 }
87 - $this->conf = array_merge($this->conf, $conf["root"]); 87 + $this->conf = kt_array_merge($this->conf, $conf["root"]);
88 } 88 }
89 89
90 function setns($seck, $k, $v, $bDefault = false) { 90 function setns($seck, $k, $v, $bDefault = false) {
lib/database/dbutil.inc
@@ -180,7 +180,7 @@ class DBUtil { @@ -180,7 +180,7 @@ class DBUtil {
180 $aWhereFields[] = $k . ' = ?'; 180 $aWhereFields[] = $k . ' = ?';
181 } 181 }
182 $sWhere = join(' AND ', $aWhereFields); 182 $sWhere = join(' AND ', $aWhereFields);
183 - $aValues = array_merge(array_values($aFieldValues), array_values($aWhereFieldValues)); 183 + $aValues = kt_array_merge(array_values($aFieldValues), array_values($aWhereFieldValues));
184 184
185 $sth = $db->autoPrepare($sTable, array_keys($aFieldValues), DB_AUTOQUERY_UPDATE, $sWhere); 185 $sth = $db->autoPrepare($sTable, array_keys($aFieldValues), DB_AUTOQUERY_UPDATE, $sWhere);
186 $res =& $db->execute($sth, array_values($aValues)); 186 $res =& $db->execute($sth, array_values($aValues));
lib/documentmanagement/documentutil.inc.php
@@ -217,7 +217,7 @@ class KTDocumentUtil { @@ -217,7 +217,7 @@ class KTDocumentUtil {
217 // {{{ validateMetadata 217 // {{{ validateMetadata
218 function validateMetadata(&$oDocument, $aMetadata) { 218 function validateMetadata(&$oDocument, $aMetadata) {
219 $aFieldsets =& KTFieldset::getGenericFieldsets(); 219 $aFieldsets =& KTFieldset::getGenericFieldsets();
220 - $aFieldsets =& array_merge($aFieldsets, 220 + $aFieldsets =& kt_array_merge($aFieldsets,
221 KTFieldset::getForDocumentType($oDocument->getDocumentTypeId())); 221 KTFieldset::getForDocumentType($oDocument->getDocumentTypeId()));
222 $aSimpleMetadata = array(); 222 $aSimpleMetadata = array();
223 foreach ($aMetadata as $aSingleMetadatum) { 223 foreach ($aMetadata as $aSingleMetadatum) {
lib/foldermanagement/folderutil.inc.php
@@ -250,7 +250,7 @@ class KTFolderUtil { @@ -250,7 +250,7 @@ class KTFolderUtil {
250 250
251 // child folders. 251 // child folders.
252 $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true)); 252 $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true));
253 - $aRemainingFolders = array_merge($aRemainingFolders, $aCFIds); 253 + $aRemainingFolders = kt_array_merge($aRemainingFolders, $aCFIds);
254 } 254 }
255 255
256 // FIXME we could subdivide this to provide a per-item display (viz. bulk upload, etc.) 256 // FIXME we could subdivide this to provide a per-item display (viz. bulk upload, etc.)
@@ -346,7 +346,7 @@ class KTFolderUtil { @@ -346,7 +346,7 @@ class KTFolderUtil {
346 346
347 // child folders. 347 // child folders.
348 $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true)); 348 $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true));
349 - $aRemainingFolders = array_merge($aRemainingFolders, $aCFIds); 349 + $aRemainingFolders = kt_array_merge($aRemainingFolders, $aCFIds);
350 } 350 }
351 351
352 if ((!empty($aFailedDocuments) || (!empty($aFailedFolders)))) { 352 if ((!empty($aFailedDocuments) || (!empty($aFailedFolders)))) {
@@ -419,7 +419,7 @@ class KTFolderUtil { @@ -419,7 +419,7 @@ class KTFolderUtil {
419 } 419 }
420 420
421 $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true)); 421 $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true));
422 - $aRemainingFolders = array_merge($aRemainingFolders, $aCFIds); 422 + $aRemainingFolders = kt_array_merge($aRemainingFolders, $aCFIds);
423 } 423 }
424 424
425 425
lib/groups/GroupUtil.php
@@ -143,7 +143,7 @@ class GroupUtil { @@ -143,7 +143,7 @@ class GroupUtil {
143 "is_unit_admin" => false, 143 "is_unit_admin" => false,
144 "is_system_admin" => false, 144 "is_system_admin" => false,
145 ); 145 );
146 - $aDetails = array_merge($aDefaultDetails, $aGroupDetails); 146 + $aDetails = kt_array_merge($aDefaultDetails, $aGroupDetails);
147 if (is_null(KTUtil::arrayGet($aDetails, "name"))) { 147 if (is_null(KTUtil::arrayGet($aDetails, "name"))) {
148 return PEAR::raiseError("Needed key name is not provided"); 148 return PEAR::raiseError("Needed key name is not provided");
149 } 149 }
@@ -172,7 +172,7 @@ class GroupUtil { @@ -172,7 +172,7 @@ class GroupUtil {
172 $aDefaultOptions = array( 172 $aDefaultOptions = array(
173 //"active" => true, 173 //"active" => true,
174 ); 174 );
175 - $aOptions = array_merge($aDefaultOptions, $aGivenOptions); 175 + $aOptions = kt_array_merge($aDefaultOptions, $aGivenOptions);
176 176
177 $aWhere = array(); 177 $aWhere = array();
178 /* if ($aOptions["active"] === true) { 178 /* if ($aOptions["active"] === true) {
@@ -250,7 +250,7 @@ class GroupUtil { @@ -250,7 +250,7 @@ class GroupUtil {
250 foreach ($aGroupIDs as $iGroupID) { 250 foreach ($aGroupIDs as $iGroupID) {
251 $aExtraIDs = KTUtil::arrayGet($aGroupArray, $iGroupID); 251 $aExtraIDs = KTUtil::arrayGet($aGroupArray, $iGroupID);
252 if (is_array($aExtraIDs)) { 252 if (is_array($aExtraIDs)) {
253 - $aGroupIDs = array_merge($aGroupIDs, $aExtraIDs); 253 + $aGroupIDs = kt_array_merge($aGroupIDs, $aExtraIDs);
254 } 254 }
255 } 255 }
256 $aGroupIDs = array_unique($aGroupIDs); 256 $aGroupIDs = array_unique($aGroupIDs);
@@ -319,7 +319,7 @@ class GroupUtil { @@ -319,7 +319,7 @@ class GroupUtil {
319 if (is_null($aStuff)) { 319 if (is_null($aStuff)) {
320 continue; 320 continue;
321 } 321 }
322 - $v = array_unique(array_merge($v, $aStuff)); 322 + $v = array_unique(kt_array_merge($v, $aStuff));
323 sort($v); 323 sort($v);
324 } 324 }
325 $aExpandedGroups[$k] = $v; 325 $aExpandedGroups[$k] = $v;
@@ -351,7 +351,7 @@ class GroupUtil { @@ -351,7 +351,7 @@ class GroupUtil {
351 $sTable = KTUtil::getTableName('users_groups'); 351 $sTable = KTUtil::getTableName('users_groups');
352 $sQuery = 'SELECT group_id FROM ' . $sTable . ' WHERE user_id = ? AND group_id IN (' . DBUtil::paramArray($aSubgroups) . ')'; 352 $sQuery = 'SELECT group_id FROM ' . $sTable . ' WHERE user_id = ? AND group_id IN (' . DBUtil::paramArray($aSubgroups) . ')';
353 $aParams = array($oUser->getId()); 353 $aParams = array($oUser->getId());
354 - $aParams = array_merge($aParams, $aSubgroups); 354 + $aParams = kt_array_merge($aParams, $aSubgroups);
355 355
356 $res = DBUtil::getOneResult(array($sQuery, $aParams)); 356 $res = DBUtil::getOneResult(array($sQuery, $aParams));
357 if (PEAR::isError($res)) { 357 if (PEAR::isError($res)) {
lib/help/help.inc.php
@@ -51,7 +51,7 @@ class KTHelp { @@ -51,7 +51,7 @@ class KTHelp {
51 51
52 $final_path = array(null,'kthelp', $path_segments[0]); 52 $final_path = array(null,'kthelp', $path_segments[0]);
53 $final_path[] = $lang_code; 53 $final_path[] = $lang_code;
54 - $final_path = array_merge($final_path, array_slice($path_segments, 1)); 54 + $final_path = kt_array_merge($final_path, array_slice($path_segments, 1));
55 55
56 $help_path = implode('/',$final_path); 56 $help_path = implode('/',$final_path);
57 57
lib/metadata/metadatautil.inc.php
@@ -646,7 +646,7 @@ class KTMetadataUtil { @@ -646,7 +646,7 @@ class KTMetadataUtil {
646 $aGenericFieldsetIds = KTFieldset::getGenericFieldsets(array('ids' => true)); 646 $aGenericFieldsetIds = KTFieldset::getGenericFieldsets(array('ids' => true));
647 $aSpecificFieldsetIds = KTFieldset::getForDocumentType($iDocumentTypeId, array('ids' => true)); 647 $aSpecificFieldsetIds = KTFieldset::getForDocumentType($iDocumentTypeId, array('ids' => true));
648 648
649 - $aFieldsetIds = array_merge($aDocumentFieldsetIds, $aGenericFieldsetIds, $aSpecificFieldsetIds); 649 + $aFieldsetIds = kt_array_merge($aDocumentFieldsetIds, $aGenericFieldsetIds, $aSpecificFieldsetIds);
650 $aFieldsetIds = array_unique($aFieldsetIds); 650 $aFieldsetIds = array_unique($aFieldsetIds);
651 sort($aFieldsetIds); 651 sort($aFieldsetIds);
652 652
lib/permissions/permissiondescriptor.inc.php
@@ -179,7 +179,7 @@ class KTPermissionDescriptor extends KTEntity { @@ -179,7 +179,7 @@ class KTPermissionDescriptor extends KTEntity {
179 $sQuery = "SELECT COUNT(group_id) AS num FROM $sTable 179 $sQuery = "SELECT COUNT(group_id) AS num FROM $sTable
180 WHERE descriptor_id = ? AND group_id IN ($sGroupIDs)"; 180 WHERE descriptor_id = ? AND group_id IN ($sGroupIDs)";
181 $aParams = array($this->getID()); 181 $aParams = array($this->getID());
182 - $aParams = array_merge($aParams, $aGroupIDs); 182 + $aParams = kt_array_merge($aParams, $aGroupIDs);
183 $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); 183 $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num');
184 if (PEAR::isError($res)) { 184 if (PEAR::isError($res)) {
185 return $res; 185 return $res;
@@ -288,7 +288,7 @@ class KTPermissionDescriptor extends KTEntity { @@ -288,7 +288,7 @@ class KTPermissionDescriptor extends KTEntity {
288 $sQuery = "SELECT COUNT(role_id) AS num FROM $sTable 288 $sQuery = "SELECT COUNT(role_id) AS num FROM $sTable
289 WHERE descriptor_id = ? AND role_id IN ($sRoleIDs)"; 289 WHERE descriptor_id = ? AND role_id IN ($sRoleIDs)";
290 $aParams = array($this->getID()); 290 $aParams = array($this->getID());
291 - $aParams = array_merge($aParams, $aRoleIDs); 291 + $aParams = kt_array_merge($aParams, $aRoleIDs);
292 $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); 292 $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num');
293 if (PEAR::isError($res)) { 293 if (PEAR::isError($res)) {
294 return $res; 294 return $res;
@@ -397,7 +397,7 @@ class KTPermissionDescriptor extends KTEntity { @@ -397,7 +397,7 @@ class KTPermissionDescriptor extends KTEntity {
397 $sQuery = "SELECT COUNT(user_id) AS num FROM $sTable 397 $sQuery = "SELECT COUNT(user_id) AS num FROM $sTable
398 WHERE descriptor_id = ? AND user_id IN ($sUserIDs)"; 398 WHERE descriptor_id = ? AND user_id IN ($sUserIDs)";
399 $aParams = array($this->getID()); 399 $aParams = array($this->getID());
400 - $aParams = array_merge($aParams, $aUserIDs); 400 + $aParams = kt_array_merge($aParams, $aUserIDs);
401 $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); 401 $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num');
402 if (PEAR::isError($res)) { 402 if (PEAR::isError($res)) {
403 return $res; 403 return $res;
lib/permissions/permissionutil.inc.php
@@ -324,8 +324,8 @@ class KTPermissionUtil { @@ -324,8 +324,8 @@ class KTPermissionUtil {
324 } 324 }
325 // roles are _not_ always assigned (can be null at root) 325 // roles are _not_ always assigned (can be null at root)
326 if (!is_null($_roleCache[$iRoleId])) { 326 if (!is_null($_roleCache[$iRoleId])) {
327 - $aMapPermAllowed[$iPermissionId]['user'] = array_merge($aAllowed['user'], $_roleCache[$iRoleId]->getUserIds());  
328 - $aMapPermAllowed[$iPermissionId]['group'] = array_merge($aAllowed['group'], $_roleCache[$iRoleId]->getGroupIds()); 327 + $aMapPermAllowed[$iPermissionId]['user'] = kt_array_merge($aAllowed['user'], $_roleCache[$iRoleId]->getUserIds());
  328 + $aMapPermAllowed[$iPermissionId]['group'] = kt_array_merge($aAllowed['group'], $_roleCache[$iRoleId]->getGroupIds());
329 // naturally, roles cannot be assigned roles, or madness follows. 329 // naturally, roles cannot be assigned roles, or madness follows.
330 } 330 }
331 } 331 }
lib/search/searchutil.inc.php
@@ -94,7 +94,7 @@ class KTSearchUtil { @@ -94,7 +94,7 @@ class KTSearchUtil {
94 foreach ($aSQL as $sSQL) { 94 foreach ($aSQL as $sSQL) {
95 if (is_array($sSQL)) { 95 if (is_array($sSQL)) {
96 $aCritQueries[] = '('.$sSQL[0].')'; 96 $aCritQueries[] = '('.$sSQL[0].')';
97 - $aCritParams = array_merge($aCritParams , $sSQL[1]); 97 + $aCritParams = kt_array_merge($aCritParams , $sSQL[1]);
98 } else { 98 } else {
99 $aCritQueries[] = '('.$sSQL.')'; 99 $aCritQueries[] = '('.$sSQL.')';
100 } 100 }
@@ -141,8 +141,8 @@ class KTSearchUtil { @@ -141,8 +141,8 @@ class KTSearchUtil {
141 $aSubgroup = KTUtil::arrayGet($aOneCriteriaSet, "subgroup"); 141 $aSubgroup = KTUtil::arrayGet($aOneCriteriaSet, "subgroup");
142 if (!empty($aValues)) { 142 if (!empty($aValues)) {
143 list($aThisCritQueries, $aThisParams, $aThisJoinSQL) = KTSearchUtil::_oneCriteriaSetToSQL($aOneCriteriaSet["values"]); 143 list($aThisCritQueries, $aThisParams, $aThisJoinSQL) = KTSearchUtil::_oneCriteriaSetToSQL($aOneCriteriaSet["values"]);
144 - $aJoinSQL = array_merge($aJoinSQL, $aThisJoinSQL);  
145 - $aParams = array_merge($aParams, $aThisParams); 144 + $aJoinSQL = kt_array_merge($aJoinSQL, $aThisJoinSQL);
  145 + $aParams = kt_array_merge($aParams, $aThisParams);
146 $tabs = str_repeat("\t", ($iRecurseLevel + 2)); 146 $tabs = str_repeat("\t", ($iRecurseLevel + 2));
147 $aSearchStrings[] = "\n$tabs(\n$tabs\t" . join("\n " . KTUtil::arrayGet($aOneCriteriaSet, 'join', "AND") . " ", $aThisCritQueries) . "\n$tabs)"; 147 $aSearchStrings[] = "\n$tabs(\n$tabs\t" . join("\n " . KTUtil::arrayGet($aOneCriteriaSet, 'join', "AND") . " ", $aThisCritQueries) . "\n$tabs)";
148 } else if (!empty($aSubgroup)) { 148 } else if (!empty($aSubgroup)) {
@@ -154,7 +154,7 @@ class KTSearchUtil { @@ -154,7 +154,7 @@ class KTSearchUtil {
154 list($sThisSearchString, $aThisParams, $sThisJoinSQL) = 154 list($sThisSearchString, $aThisParams, $sThisJoinSQL) =
155 KTSearchUtil::criteriaSetToSQL($aOneCriteriaSet, $iRecurseLevel + 1); 155 KTSearchUtil::criteriaSetToSQL($aOneCriteriaSet, $iRecurseLevel + 1);
156 $aJoinSQL[] = $sThisJoinSQL; 156 $aJoinSQL[] = $sThisJoinSQL;
157 - $aParams = array_merge($aParams, $aThisParams); 157 + $aParams = kt_array_merge($aParams, $aThisParams);
158 $aSearchStrings[] = $sThisSearchString; 158 $aSearchStrings[] = $sThisSearchString;
159 } 159 }
160 } 160 }
@@ -198,7 +198,7 @@ class KTSearchUtil { @@ -198,7 +198,7 @@ class KTSearchUtil {
198 $sPermissionDescriptors = DBUtil::paramArray($aPermissionDescriptors); 198 $sPermissionDescriptors = DBUtil::paramArray($aPermissionDescriptors);
199 $sSQLString = "PLA.permission_descriptor_id IN ($sPermissionDescriptors)"; 199 $sSQLString = "PLA.permission_descriptor_id IN ($sPermissionDescriptors)";
200 $aParams = array($oPermission->getId()); 200 $aParams = array($oPermission->getId());
201 - $aParams = array_merge($aParams, $aPermissionDescriptors); 201 + $aParams = kt_array_merge($aParams, $aPermissionDescriptors);
202 return array($sSQLString, $aParams, $sJoinSQL); 202 return array($sSQLString, $aParams, $sJoinSQL);
203 } 203 }
204 // }}} 204 // }}}
@@ -304,10 +304,10 @@ class KTSearchUtil { @@ -304,10 +304,10 @@ class KTSearchUtil {
304 // GROUP BY D.id 304 // GROUP BY D.id
305 305
306 $aParams = array(); 306 $aParams = array();
307 - $aParams = array_merge($aParams, $aInitialJoinParams);  
308 - $aParams = array_merge($aParams, $aPermissionParams); 307 + $aParams = kt_array_merge($aParams, $aInitialJoinParams);
  308 + $aParams = kt_array_merge($aParams, $aPermissionParams);
309 $aParams[] = $sToSearch; 309 $aParams[] = $sToSearch;
310 - $aParams = array_merge($aParams, $aCritParams); 310 + $aParams = kt_array_merge($aParams, $aCritParams);
311 311
312 return array($sQuery, $aParams); 312 return array($sQuery, $aParams);
313 } 313 }
lib/subscriptions/SubscriptionManager.inc
@@ -139,7 +139,7 @@ class SubscriptionManager { @@ -139,7 +139,7 @@ class SubscriptionManager {
139 * @return array of subscription objects 139 * @return array of subscription objects
140 */ 140 */
141 function listSubscriptions($iUserID) { 141 function listSubscriptions($iUserID) {
142 - return $aSubscriptions = array_merge(SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Folder')), 142 + return $aSubscriptions = kt_array_merge(SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Folder')),
143 SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Document'))); 143 SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Document')));
144 } 144 }
145 145
@@ -173,7 +173,7 @@ class SubscriptionManager { @@ -173,7 +173,7 @@ class SubscriptionManager {
173 * @return array of subscription objects 173 * @return array of subscription objects
174 */ 174 */
175 function listSubscriptionAlerts($iUserID) { 175 function listSubscriptionAlerts($iUserID) {
176 - return $aSubscriptions = array_merge(SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Folder")), 176 + return $aSubscriptions = kt_array_merge(SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Folder")),
177 SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Document"))); 177 SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Document")));
178 } 178 }
179 179
lib/subscriptions/subscriptions.inc.php
@@ -619,7 +619,7 @@ class SubscriptionEvent { @@ -619,7 +619,7 @@ class SubscriptionEvent {
619 // after this has been called. 619 // after this has been called.
620 function _pruneAlertedUsers($aUserIds) { 620 function _pruneAlertedUsers($aUserIds) {
621 $returnArray = array_diff($aUserIds, $this->alertedUsers); 621 $returnArray = array_diff($aUserIds, $this->alertedUsers);
622 - $this->alertedUsers = array_merge($returnArray, $this->alertedUsers); // now contains all users who will have been alerted. 622 + $this->alertedUsers = kt_array_merge($returnArray, $this->alertedUsers); // now contains all users who will have been alerted.
623 return $returnArray; 623 return $returnArray;
624 } 624 }
625 625
lib/util/ktutil.inc
@@ -570,4 +570,29 @@ class KTUtil { @@ -570,4 +570,29 @@ class KTUtil {
570 570
571 } 571 }
572 572
  573 +/**
  574 + *
  575 + * Merges two arrays using array_merge
  576 + *
  577 + * array_merge in PHP5 got more strict about its parameter handling,
  578 + * forcing arrays.
  579 + *
  580 + */
  581 +if (version_compare(phpversion(), '5.0') === -1) {
  582 + function kt_array_merge() {
  583 + $args = func_get_args();
  584 + return call_user_func_array("array_merge",$args);
  585 + }
  586 +} else {
  587 + eval('
  588 + function kt_array_merge() {
  589 + $args = func_get_args();
  590 + foreach ($args as &$arg) {
  591 + $arg = (array)$arg;
  592 + }
  593 + return call_user_func_array("array_merge",$args);
  594 + }
  595 + ');
  596 +}
  597 +
573 ?> 598 ?>
lib/workflow/workflowutil.inc.php
@@ -591,7 +591,7 @@ class KTWorkflowUtil { @@ -591,7 +591,7 @@ class KTWorkflowUtil {
591 $aGroupMembershipSet = GroupUtil::buildGroupArray(); 591 $aGroupMembershipSet = GroupUtil::buildGroupArray();
592 $aAllIds = array_keys($aGroups); 592 $aAllIds = array_keys($aGroups);
593 foreach ($aGroups as $id => $oGroup) { 593 foreach ($aGroups as $id => $oGroup) {
594 - $aAllIds = array_merge($aGroupMembershipSet[$id], $aAllIds); 594 + $aAllIds = kt_array_merge($aGroupMembershipSet[$id], $aAllIds);
595 } 595 }
596 596
597 foreach ($aAllIds as $id) { 597 foreach ($aAllIds as $id) {
plugins/ktcore/KTPermissions.php
@@ -525,7 +525,7 @@ class KTRoleAllocationPlugin extends KTFolderAction { @@ -525,7 +525,7 @@ class KTRoleAllocationPlugin extends KTFolderAction {
525 if (PEAR::isError($aNewFolders)) { 525 if (PEAR::isError($aNewFolders)) {
526 $this->errorRedirectToMain(_kt('Failure to generate folderlisting.')); 526 $this->errorRedirectToMain(_kt('Failure to generate folderlisting.'));
527 } 527 }
528 - $folder_queue = array_merge ($folder_queue, (array) $aNewFolders); // push. 528 + $folder_queue = kt_array_merge ($folder_queue, (array) $aNewFolders); // push.
529 529
530 530
531 // update the folder. 531 // update the folder.
plugins/ktcore/admin/workflows.php
@@ -256,7 +256,7 @@ class KTWorkflowDispatcher extends KTAdminDispatcher { @@ -256,7 +256,7 @@ class KTWorkflowDispatcher extends KTAdminDispatcher {
256 $aNamedActions[] = $aInfo['actions_by_name'][$sName]; 256 $aNamedActions[] = $aInfo['actions_by_name'][$sName];
257 } 257 }
258 258
259 - $aThese = array_merge($aAlways, $aNamedActions); 259 + $aThese = kt_array_merge($aAlways, $aNamedActions);
260 // some controlled. we need to be careful here: list actions that _are always_ available 260 // some controlled. we need to be careful here: list actions that _are always_ available
261 if (empty($aThese)) { return _kt('No actions available.'); } 261 if (empty($aThese)) { return _kt('No actions available.'); }
262 262
plugins/ktstandard/KTBulkExportPlugin.php
@@ -170,7 +170,7 @@ class KTBulkExportAction extends KTFolderAction { @@ -170,7 +170,7 @@ class KTBulkExportAction extends KTFolderAction {
170 KTUtil::getTableName("document_content_version"), 170 KTUtil::getTableName("document_content_version"),
171 $sPermissionJoin, $sWhere); 171 $sPermissionJoin, $sWhere);
172 $aParams = array(); 172 $aParams = array();
173 - $aParams = array_merge($aParams, $aPermissionParams); 173 + $aParams = kt_array_merge($aParams, $aPermissionParams);
174 $aParentFolderIds = split(',', $this->oFolder->getParentFolderIds()); 174 $aParentFolderIds = split(',', $this->oFolder->getParentFolderIds());
175 $aParentFolderIds[] = $this->oFolder->getId(); 175 $aParentFolderIds[] = $this->oFolder->getId();
176 if ($aParentFolderIds[0] == 0) { 176 if ($aParentFolderIds[0] == 0) {
plugins/ktstandard/contents/BaseIndexer.php
@@ -116,7 +116,7 @@ class KTBaseIndexerTrigger { @@ -116,7 +116,7 @@ class KTBaseIndexerTrigger {
116 } 116 }
117 117
118 $cmdline = array($sCommand); 118 $cmdline = array($sCommand);
119 - $cmdline = array_merge($cmdline, $this->args); 119 + $cmdline = kt_array_merge($cmdline, $this->args);
120 $cmdline[] = $sFilename; 120 $cmdline[] = $sFilename;
121 121
122 $aOptions = array(); 122 $aOptions = array();