Commit 044fc9c8ebaa307656eeb297e2bdbb57138b5019
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,6 +68,28 @@ class Unit extends KTEntity { | ||
| 68 | require_once(KT_LIB_DIR . '/foldermanagement/Folder.inc'); | 68 | require_once(KT_LIB_DIR . '/foldermanagement/Folder.inc'); |
| 69 | return Folder::get($this->iFolderId); | 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 | ?> |