Commit 044fc9c8ebaa307656eeb297e2bdbb57138b5019

Authored by Neil Blakey-Milner
1 parent f8c5e6d0

Add getUnitsForFolder, which lists all the units that a folder may be in

(in case a unit is contained in another one).


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5662 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 22 additions and 0 deletions
lib/unitmanagement/Unit.inc
... ... @@ -68,6 +68,28 @@ class Unit extends KTEntity {
68 68 require_once(KT_LIB_DIR . '/foldermanagement/Folder.inc');
69 69 return Folder::get($this->iFolderId);
70 70 }
  71 +
  72 + function getUnitsForFolder($oFolder) {
  73 + $oFolder =& KTUtil::getObject('Folder', $oFolder);
  74 + $sUnitTable = KTUtil::getTableName('units');
  75 + if (PEAR::isError($oFolder)) { // can't be admin for a non-existant folder.
  76 + return false;
  77 + }
  78 + $sFolderIds = $oFolder->getParentFolderIds();
  79 + $aFolderIds = split(",", $sFolderIds);
  80 + $aFolderIds[] = $oFolder->getId();
  81 +
  82 + $sParams = DBUtil::paramArray($aFolderIds);
  83 + $aParams = $aFolderIds;
  84 + $sQuery = "SELECT id FROM $sUnitTable WHERE folder_id IN ($sParams)";
  85 + $aUnitIds = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id');
  86 +
  87 + $aRet = array();
  88 + foreach ($aUnitIds as $iId) {
  89 + $aRet[] = Unit::get($iId);
  90 + }
  91 + return $aRet;
  92 + }
71 93 }
72 94  
73 95 ?>
... ...