diff --git a/lib/actions/documentaction.inc.php b/lib/actions/documentaction.inc.php index f7d89b8..d8643ae 100644 --- a/lib/actions/documentaction.inc.php +++ b/lib/actions/documentaction.inc.php @@ -141,7 +141,7 @@ class KTDocumentAction extends KTStandardDispatcher { "documentaction" => "viewDocument", "folderaction" => "browse", ); - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, + $this->aBreadcrumbs = kt_array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($this->oDocument, $aOptions)); $actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser); diff --git a/lib/actions/folderaction.inc.php b/lib/actions/folderaction.inc.php index 192ff89..c0da48c 100644 --- a/lib/actions/folderaction.inc.php +++ b/lib/actions/folderaction.inc.php @@ -136,7 +136,7 @@ class KTFolderAction extends KTStandardDispatcher { "documentaction" => "viewDocument", "folderaction" => "browse", ); - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, + $this->aBreadcrumbs = kt_array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForFolder($this->oFolder, $aOptions)); $portlet = new KTActionPortlet(_kt("Folder Actions")); diff --git a/lib/browse/Criteria.inc b/lib/browse/Criteria.inc index 4b41916..d4ae3ac 100644 --- a/lib/browse/Criteria.inc +++ b/lib/browse/Criteria.inc @@ -448,7 +448,7 @@ class GenericMetadataCriterion extends BrowseCriterion { function searchSQL ($aRequest) { $p = parent::searchSQL($aRequest); $p[0] = join(' AND ', array($p[0], "$this->sSearchTable.document_field_id = ?")); - $p[1] = array_merge($p[1], array($this->iID)); + $p[1] = kt_array_merge($p[1], array($this->iID)); return $p; } @@ -717,7 +717,7 @@ class Criteria { } $aQuery = array("SELECT id FROM $default->document_fields_table", array()); /*ok*/ $aIDs = DBUtil::getResultArrayKey($aQuery, 'id'); - $aAllCriteriaIDs = array_merge(array_keys($aBaseCriteria), $aIDs); + $aAllCriteriaIDs = kt_array_merge(array_keys($aBaseCriteria), $aIDs); foreach ($aAllCriteriaIDs as $iID) { $oCriterion =& Criteria::getCriterionByNumber($iID); $aAllCriteria[$iID] =& $oCriterion; diff --git a/lib/browse/PartialQuery.inc.php b/lib/browse/PartialQuery.inc.php index de7495b..4b2a497 100644 --- a/lib/browse/PartialQuery.inc.php +++ b/lib/browse/PartialQuery.inc.php @@ -126,8 +126,8 @@ class BrowseQuery extends PartialQuery{ KTUtil::getTableName("document_content_version"), $this->sDocumentJoinClause, $sPermissionJoin, $sWhere); $aParams = array(); - $aParams = array_merge($aParams, $this->aDocumentJoinParams); - $aParams = array_merge($aParams, $aPermissionParams); + $aParams = kt_array_merge($aParams, $this->aDocumentJoinParams); + $aParams = kt_array_merge($aParams, $aPermissionParams); $aParams[] = $this->folder_id; return array($sQuery, $aParams); } @@ -159,7 +159,7 @@ class BrowseQuery extends PartialQuery{ $sQuery = "SELECT $sSelect FROM " . KTUtil::getTableName("folders") . " AS F $sPermissionJoin $sWhere "; $aParams = array(); - $aParams = array_merge($aParams, $aPermissionParams); + $aParams = kt_array_merge($aParams, $aPermissionParams); $aParams[] = $this->folder_id; return array($sQuery, $aParams); } @@ -470,7 +470,7 @@ class ArchivedBrowseQuery extends BrowseQuery { KTUtil::getTableName("document_content_version"), $sPermissionJoin, $sWhere); $aParams = array(); - $aParams = array_merge($aParams, $aPermissionParams); + $aParams = kt_array_merge($aParams, $aPermissionParams); $aParams[] = $this->folder_id; return array($sQuery, $aParams); } diff --git a/lib/browse/browseutil.inc.php b/lib/browse/browseutil.inc.php index 75eb364..729527a 100644 --- a/lib/browse/browseutil.inc.php +++ b/lib/browse/browseutil.inc.php @@ -322,7 +322,7 @@ class KTBrowseUtil { WHERE PLA.permission_descriptor_id IN ($sPermissionDescriptors) AND NOT (PLA2.permission_descriptor_id IN ($sPermissionDescriptors))"; - $aParams = array_merge(array($oPermission->getId(), $oPermission->getId()), $aPermissionDescriptors, $aPermissionDescriptors); + $aParams = kt_array_merge(array($oPermission->getId(), $oPermission->getId()), $aPermissionDescriptors, $aPermissionDescriptors); $res = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id'); if (PEAR::isError($res)) { diff --git a/lib/config/config.inc.php b/lib/config/config.inc.php index 807c442..d94fdf2 100644 --- a/lib/config/config.inc.php +++ b/lib/config/config.inc.php @@ -84,7 +84,7 @@ class KTConfig { $this->setns(null, $seck, $secv); } } - $this->conf = array_merge($this->conf, $conf["root"]); + $this->conf = kt_array_merge($this->conf, $conf["root"]); } function setns($seck, $k, $v, $bDefault = false) { diff --git a/lib/database/dbutil.inc b/lib/database/dbutil.inc index 8865d0d..fb93f94 100644 --- a/lib/database/dbutil.inc +++ b/lib/database/dbutil.inc @@ -180,7 +180,7 @@ class DBUtil { $aWhereFields[] = $k . ' = ?'; } $sWhere = join(' AND ', $aWhereFields); - $aValues = array_merge(array_values($aFieldValues), array_values($aWhereFieldValues)); + $aValues = kt_array_merge(array_values($aFieldValues), array_values($aWhereFieldValues)); $sth = $db->autoPrepare($sTable, array_keys($aFieldValues), DB_AUTOQUERY_UPDATE, $sWhere); $res =& $db->execute($sth, array_values($aValues)); diff --git a/lib/documentmanagement/documentutil.inc.php b/lib/documentmanagement/documentutil.inc.php index 1643690..9572b8d 100644 --- a/lib/documentmanagement/documentutil.inc.php +++ b/lib/documentmanagement/documentutil.inc.php @@ -217,7 +217,7 @@ class KTDocumentUtil { // {{{ validateMetadata function validateMetadata(&$oDocument, $aMetadata) { $aFieldsets =& KTFieldset::getGenericFieldsets(); - $aFieldsets =& array_merge($aFieldsets, + $aFieldsets =& kt_array_merge($aFieldsets, KTFieldset::getForDocumentType($oDocument->getDocumentTypeId())); $aSimpleMetadata = array(); foreach ($aMetadata as $aSingleMetadatum) { diff --git a/lib/foldermanagement/folderutil.inc.php b/lib/foldermanagement/folderutil.inc.php index 46dfead..1432366 100644 --- a/lib/foldermanagement/folderutil.inc.php +++ b/lib/foldermanagement/folderutil.inc.php @@ -250,7 +250,7 @@ class KTFolderUtil { // child folders. $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true)); - $aRemainingFolders = array_merge($aRemainingFolders, $aCFIds); + $aRemainingFolders = kt_array_merge($aRemainingFolders, $aCFIds); } // FIXME we could subdivide this to provide a per-item display (viz. bulk upload, etc.) @@ -346,7 +346,7 @@ class KTFolderUtil { // child folders. $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true)); - $aRemainingFolders = array_merge($aRemainingFolders, $aCFIds); + $aRemainingFolders = kt_array_merge($aRemainingFolders, $aCFIds); } if ((!empty($aFailedDocuments) || (!empty($aFailedFolders)))) { @@ -419,7 +419,7 @@ class KTFolderUtil { } $aCFIds = Folder::getList(array('parent_id = ?', array($iFolderId)), array('ids' => true)); - $aRemainingFolders = array_merge($aRemainingFolders, $aCFIds); + $aRemainingFolders = kt_array_merge($aRemainingFolders, $aCFIds); } diff --git a/lib/groups/GroupUtil.php b/lib/groups/GroupUtil.php index c87773b..29f37c7 100644 --- a/lib/groups/GroupUtil.php +++ b/lib/groups/GroupUtil.php @@ -143,7 +143,7 @@ class GroupUtil { "is_unit_admin" => false, "is_system_admin" => false, ); - $aDetails = array_merge($aDefaultDetails, $aGroupDetails); + $aDetails = kt_array_merge($aDefaultDetails, $aGroupDetails); if (is_null(KTUtil::arrayGet($aDetails, "name"))) { return PEAR::raiseError("Needed key name is not provided"); } @@ -172,7 +172,7 @@ class GroupUtil { $aDefaultOptions = array( //"active" => true, ); - $aOptions = array_merge($aDefaultOptions, $aGivenOptions); + $aOptions = kt_array_merge($aDefaultOptions, $aGivenOptions); $aWhere = array(); /* if ($aOptions["active"] === true) { @@ -250,7 +250,7 @@ class GroupUtil { foreach ($aGroupIDs as $iGroupID) { $aExtraIDs = KTUtil::arrayGet($aGroupArray, $iGroupID); if (is_array($aExtraIDs)) { - $aGroupIDs = array_merge($aGroupIDs, $aExtraIDs); + $aGroupIDs = kt_array_merge($aGroupIDs, $aExtraIDs); } } $aGroupIDs = array_unique($aGroupIDs); @@ -319,7 +319,7 @@ class GroupUtil { if (is_null($aStuff)) { continue; } - $v = array_unique(array_merge($v, $aStuff)); + $v = array_unique(kt_array_merge($v, $aStuff)); sort($v); } $aExpandedGroups[$k] = $v; @@ -351,7 +351,7 @@ class GroupUtil { $sTable = KTUtil::getTableName('users_groups'); $sQuery = 'SELECT group_id FROM ' . $sTable . ' WHERE user_id = ? AND group_id IN (' . DBUtil::paramArray($aSubgroups) . ')'; $aParams = array($oUser->getId()); - $aParams = array_merge($aParams, $aSubgroups); + $aParams = kt_array_merge($aParams, $aSubgroups); $res = DBUtil::getOneResult(array($sQuery, $aParams)); if (PEAR::isError($res)) { diff --git a/lib/help/help.inc.php b/lib/help/help.inc.php index 7c0187c..25ed821 100644 --- a/lib/help/help.inc.php +++ b/lib/help/help.inc.php @@ -51,7 +51,7 @@ class KTHelp { $final_path = array(null,'kthelp', $path_segments[0]); $final_path[] = $lang_code; - $final_path = array_merge($final_path, array_slice($path_segments, 1)); + $final_path = kt_array_merge($final_path, array_slice($path_segments, 1)); $help_path = implode('/',$final_path); diff --git a/lib/metadata/metadatautil.inc.php b/lib/metadata/metadatautil.inc.php index ddb1e9f..19dfc2a 100644 --- a/lib/metadata/metadatautil.inc.php +++ b/lib/metadata/metadatautil.inc.php @@ -646,7 +646,7 @@ class KTMetadataUtil { $aGenericFieldsetIds = KTFieldset::getGenericFieldsets(array('ids' => true)); $aSpecificFieldsetIds = KTFieldset::getForDocumentType($iDocumentTypeId, array('ids' => true)); - $aFieldsetIds = array_merge($aDocumentFieldsetIds, $aGenericFieldsetIds, $aSpecificFieldsetIds); + $aFieldsetIds = kt_array_merge($aDocumentFieldsetIds, $aGenericFieldsetIds, $aSpecificFieldsetIds); $aFieldsetIds = array_unique($aFieldsetIds); sort($aFieldsetIds); diff --git a/lib/permissions/permissiondescriptor.inc.php b/lib/permissions/permissiondescriptor.inc.php index 59e17be..b2869f2 100644 --- a/lib/permissions/permissiondescriptor.inc.php +++ b/lib/permissions/permissiondescriptor.inc.php @@ -179,7 +179,7 @@ class KTPermissionDescriptor extends KTEntity { $sQuery = "SELECT COUNT(group_id) AS num FROM $sTable WHERE descriptor_id = ? AND group_id IN ($sGroupIDs)"; $aParams = array($this->getID()); - $aParams = array_merge($aParams, $aGroupIDs); + $aParams = kt_array_merge($aParams, $aGroupIDs); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); if (PEAR::isError($res)) { return $res; @@ -288,7 +288,7 @@ class KTPermissionDescriptor extends KTEntity { $sQuery = "SELECT COUNT(role_id) AS num FROM $sTable WHERE descriptor_id = ? AND role_id IN ($sRoleIDs)"; $aParams = array($this->getID()); - $aParams = array_merge($aParams, $aRoleIDs); + $aParams = kt_array_merge($aParams, $aRoleIDs); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); if (PEAR::isError($res)) { return $res; @@ -397,7 +397,7 @@ class KTPermissionDescriptor extends KTEntity { $sQuery = "SELECT COUNT(user_id) AS num FROM $sTable WHERE descriptor_id = ? AND user_id IN ($sUserIDs)"; $aParams = array($this->getID()); - $aParams = array_merge($aParams, $aUserIDs); + $aParams = kt_array_merge($aParams, $aUserIDs); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); if (PEAR::isError($res)) { return $res; diff --git a/lib/permissions/permissionutil.inc.php b/lib/permissions/permissionutil.inc.php index 30a67c1..fc7ee6b 100644 --- a/lib/permissions/permissionutil.inc.php +++ b/lib/permissions/permissionutil.inc.php @@ -324,8 +324,8 @@ class KTPermissionUtil { } // roles are _not_ always assigned (can be null at root) if (!is_null($_roleCache[$iRoleId])) { - $aMapPermAllowed[$iPermissionId]['user'] = array_merge($aAllowed['user'], $_roleCache[$iRoleId]->getUserIds()); - $aMapPermAllowed[$iPermissionId]['group'] = array_merge($aAllowed['group'], $_roleCache[$iRoleId]->getGroupIds()); + $aMapPermAllowed[$iPermissionId]['user'] = kt_array_merge($aAllowed['user'], $_roleCache[$iRoleId]->getUserIds()); + $aMapPermAllowed[$iPermissionId]['group'] = kt_array_merge($aAllowed['group'], $_roleCache[$iRoleId]->getGroupIds()); // naturally, roles cannot be assigned roles, or madness follows. } } diff --git a/lib/search/searchutil.inc.php b/lib/search/searchutil.inc.php index 0fad080..daf3563 100644 --- a/lib/search/searchutil.inc.php +++ b/lib/search/searchutil.inc.php @@ -94,7 +94,7 @@ class KTSearchUtil { foreach ($aSQL as $sSQL) { if (is_array($sSQL)) { $aCritQueries[] = '('.$sSQL[0].')'; - $aCritParams = array_merge($aCritParams , $sSQL[1]); + $aCritParams = kt_array_merge($aCritParams , $sSQL[1]); } else { $aCritQueries[] = '('.$sSQL.')'; } @@ -141,8 +141,8 @@ class KTSearchUtil { $aSubgroup = KTUtil::arrayGet($aOneCriteriaSet, "subgroup"); if (!empty($aValues)) { list($aThisCritQueries, $aThisParams, $aThisJoinSQL) = KTSearchUtil::_oneCriteriaSetToSQL($aOneCriteriaSet["values"]); - $aJoinSQL = array_merge($aJoinSQL, $aThisJoinSQL); - $aParams = array_merge($aParams, $aThisParams); + $aJoinSQL = kt_array_merge($aJoinSQL, $aThisJoinSQL); + $aParams = kt_array_merge($aParams, $aThisParams); $tabs = str_repeat("\t", ($iRecurseLevel + 2)); $aSearchStrings[] = "\n$tabs(\n$tabs\t" . join("\n " . KTUtil::arrayGet($aOneCriteriaSet, 'join', "AND") . " ", $aThisCritQueries) . "\n$tabs)"; } else if (!empty($aSubgroup)) { @@ -154,7 +154,7 @@ class KTSearchUtil { list($sThisSearchString, $aThisParams, $sThisJoinSQL) = KTSearchUtil::criteriaSetToSQL($aOneCriteriaSet, $iRecurseLevel + 1); $aJoinSQL[] = $sThisJoinSQL; - $aParams = array_merge($aParams, $aThisParams); + $aParams = kt_array_merge($aParams, $aThisParams); $aSearchStrings[] = $sThisSearchString; } } @@ -198,7 +198,7 @@ class KTSearchUtil { $sPermissionDescriptors = DBUtil::paramArray($aPermissionDescriptors); $sSQLString = "PLA.permission_descriptor_id IN ($sPermissionDescriptors)"; $aParams = array($oPermission->getId()); - $aParams = array_merge($aParams, $aPermissionDescriptors); + $aParams = kt_array_merge($aParams, $aPermissionDescriptors); return array($sSQLString, $aParams, $sJoinSQL); } // }}} @@ -304,10 +304,10 @@ class KTSearchUtil { // GROUP BY D.id $aParams = array(); - $aParams = array_merge($aParams, $aInitialJoinParams); - $aParams = array_merge($aParams, $aPermissionParams); + $aParams = kt_array_merge($aParams, $aInitialJoinParams); + $aParams = kt_array_merge($aParams, $aPermissionParams); $aParams[] = $sToSearch; - $aParams = array_merge($aParams, $aCritParams); + $aParams = kt_array_merge($aParams, $aCritParams); return array($sQuery, $aParams); } diff --git a/lib/subscriptions/SubscriptionManager.inc b/lib/subscriptions/SubscriptionManager.inc index e98ec55..933a8cc 100644 --- a/lib/subscriptions/SubscriptionManager.inc +++ b/lib/subscriptions/SubscriptionManager.inc @@ -139,7 +139,7 @@ class SubscriptionManager { * @return array of subscription objects */ function listSubscriptions($iUserID) { - return $aSubscriptions = array_merge(SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Folder')), + return $aSubscriptions = kt_array_merge(SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Folder')), SubscriptionManager::retrieveUserSubscriptions($iUserID, SubscriptionEvent::subTypes('Document'))); } @@ -173,7 +173,7 @@ class SubscriptionManager { * @return array of subscription objects */ function listSubscriptionAlerts($iUserID) { - return $aSubscriptions = array_merge(SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Folder")), + return $aSubscriptions = kt_array_merge(SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Folder")), SubscriptionManager::retrieveSubscriptionAlerts($iUserID, SubscriptionEvent::subTypes("Document"))); } diff --git a/lib/subscriptions/subscriptions.inc.php b/lib/subscriptions/subscriptions.inc.php index c683083..0fc33a4 100644 --- a/lib/subscriptions/subscriptions.inc.php +++ b/lib/subscriptions/subscriptions.inc.php @@ -619,7 +619,7 @@ class SubscriptionEvent { // after this has been called. function _pruneAlertedUsers($aUserIds) { $returnArray = array_diff($aUserIds, $this->alertedUsers); - $this->alertedUsers = array_merge($returnArray, $this->alertedUsers); // now contains all users who will have been alerted. + $this->alertedUsers = kt_array_merge($returnArray, $this->alertedUsers); // now contains all users who will have been alerted. return $returnArray; } diff --git a/lib/util/ktutil.inc b/lib/util/ktutil.inc index b2cb188..e51ac24 100644 --- a/lib/util/ktutil.inc +++ b/lib/util/ktutil.inc @@ -570,4 +570,29 @@ class KTUtil { } +/** + * + * Merges two arrays using array_merge + * + * array_merge in PHP5 got more strict about its parameter handling, + * forcing arrays. + * + */ +if (version_compare(phpversion(), '5.0') === -1) { + function kt_array_merge() { + $args = func_get_args(); + return call_user_func_array("array_merge",$args); + } +} else { + eval(' + function kt_array_merge() { + $args = func_get_args(); + foreach ($args as &$arg) { + $arg = (array)$arg; + } + return call_user_func_array("array_merge",$args); + } + '); +} + ?> diff --git a/lib/workflow/workflowutil.inc.php b/lib/workflow/workflowutil.inc.php index 9357fab..f1a7f3c 100644 --- a/lib/workflow/workflowutil.inc.php +++ b/lib/workflow/workflowutil.inc.php @@ -591,7 +591,7 @@ class KTWorkflowUtil { $aGroupMembershipSet = GroupUtil::buildGroupArray(); $aAllIds = array_keys($aGroups); foreach ($aGroups as $id => $oGroup) { - $aAllIds = array_merge($aGroupMembershipSet[$id], $aAllIds); + $aAllIds = kt_array_merge($aGroupMembershipSet[$id], $aAllIds); } foreach ($aAllIds as $id) { diff --git a/plugins/ktcore/KTPermissions.php b/plugins/ktcore/KTPermissions.php index 7459217..04ec568 100644 --- a/plugins/ktcore/KTPermissions.php +++ b/plugins/ktcore/KTPermissions.php @@ -525,7 +525,7 @@ class KTRoleAllocationPlugin extends KTFolderAction { if (PEAR::isError($aNewFolders)) { $this->errorRedirectToMain(_kt('Failure to generate folderlisting.')); } - $folder_queue = array_merge ($folder_queue, (array) $aNewFolders); // push. + $folder_queue = kt_array_merge ($folder_queue, (array) $aNewFolders); // push. // update the folder. diff --git a/plugins/ktcore/admin/workflows.php b/plugins/ktcore/admin/workflows.php index 530e835..8490dde 100755 --- a/plugins/ktcore/admin/workflows.php +++ b/plugins/ktcore/admin/workflows.php @@ -256,7 +256,7 @@ class KTWorkflowDispatcher extends KTAdminDispatcher { $aNamedActions[] = $aInfo['actions_by_name'][$sName]; } - $aThese = array_merge($aAlways, $aNamedActions); + $aThese = kt_array_merge($aAlways, $aNamedActions); // some controlled. we need to be careful here: list actions that _are always_ available if (empty($aThese)) { return _kt('No actions available.'); } diff --git a/plugins/ktstandard/KTBulkExportPlugin.php b/plugins/ktstandard/KTBulkExportPlugin.php index 3ce2b3a..4ca31ad 100644 --- a/plugins/ktstandard/KTBulkExportPlugin.php +++ b/plugins/ktstandard/KTBulkExportPlugin.php @@ -170,7 +170,7 @@ class KTBulkExportAction extends KTFolderAction { KTUtil::getTableName("document_content_version"), $sPermissionJoin, $sWhere); $aParams = array(); - $aParams = array_merge($aParams, $aPermissionParams); + $aParams = kt_array_merge($aParams, $aPermissionParams); $aParentFolderIds = split(',', $this->oFolder->getParentFolderIds()); $aParentFolderIds[] = $this->oFolder->getId(); if ($aParentFolderIds[0] == 0) { diff --git a/plugins/ktstandard/contents/BaseIndexer.php b/plugins/ktstandard/contents/BaseIndexer.php index 7f53a1b..f1b54d6 100644 --- a/plugins/ktstandard/contents/BaseIndexer.php +++ b/plugins/ktstandard/contents/BaseIndexer.php @@ -116,7 +116,7 @@ class KTBaseIndexerTrigger { } $cmdline = array($sCommand); - $cmdline = array_merge($cmdline, $this->args); + $cmdline = kt_array_merge($cmdline, $this->args); $cmdline[] = $sFilename; $aOptions = array();