/** * Create or find an item with the given name in the given community. * * @param string $itemName item name * @param CommunityDao $community community DAO * @return ItemDao item DAO * @throws Exception */ private function _createOrFindByName($itemName, $community) { /** @var ItemModel $itemModel */ $itemModel = MidasLoader::loadModel('Item'); $items = $itemModel->getByName($itemName); if (count($items) === 0) { $folders = $community->getFolder()->getFolders(); $privateFolder = null; /** @var FolderDao $folder */ foreach ($folders as $folder) { if ($folder->getName() === 'Private' && $folder->getPrivacyStatus() === MIDAS_PRIVACY_PRIVATE) { $privateFolder = $folder; break; } } if (is_null($privateFolder)) { throw new Exception('No private folder in the given community in which to create an item', -1); } return $itemModel->createItem($itemName, '', $privateFolder); } return $items[0]; }