/** * Add/edit albums */ function mediashare_editapi_addAlbum(&$args) { $dom = ZLanguage::getModuleDomain('mediashare'); // Check basic access (but don't do fine grained Mediashare access check) if (!SecurityUtil::checkPermission('mediashare::', '::', ACCESS_EDIT)) { return LogUtil::registerPermissionError(); } // Set defaults // FIXME: what if not logged in - how about 'owner' ??? if (!isset($args['ownerId'])) { $args['ownerId'] = pnUserGetVar('uid'); } if (!isset($args['template']) || empty($args['template'])) { // Include null test $args['template'] = pnModGetVar('mediashare', 'defaultAlbumTemplate', 'Standard'); } // Parse extapp URL and add extapp data if (!mediashare_editapi_extappLocateApp($args)) { return false; } Loader::loadClass('RandomUtil'); $album = array('ownerId' => (int) $args['ownerId'], 'createdDate' => DateUtil::getDatetime(), 'title' => $args['title'], 'keywords' => $args['keywords'], 'summary' => $args['summary'], 'description' => $args['description'], 'template' => $args['template'], 'parentAlbumId' => (int) $args['parentAlbumId'], 'thumbnailSize' => (int) pnModGetVar('mediashare', 'thumbnailSize'), 'viewKey' => RandomUtil::getInteger(100000000, 999999999, true) * 10000 + RandomUtil::getInteger(1, 9999), 'extappURL' => $args['extappURL'], 'extappData' => $args['extappData']); $album = DBUtil::insertObject($album, 'mediashare_albums', 'id'); if ($album === false) { return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('editapi.addAlbum', 'Could not add the new album.'), $dom)); } if (!pnModAPIFunc('mediashare', 'edit', 'updateNestedSetValues')) { return false; } if (!pnModAPIFunc('mediashare', 'edit', 'setDefaultAccess', array('albumId' => $album['id']))) { return false; } pnModCallHooks('item', 'create', "album-{$album['id']}", array('module' => 'mediashare', 'albumId' => $album['id'])); if (!pnModAPIFunc('mediashare', 'edit', 'updateKeywords', array('itemId' => $album['id'], 'type' => 'album', 'keywords' => $args['keywords']))) { return false; } if (!pnModAPIFunc('mediashare', 'edit', 'fetchExternalImages', array('albumId' => $album['id']))) { return false; } return $album['id']; }