Example #1
0
/**
 * 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'];
}