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 | 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 | ?> | ... | ... |