示例#1
0
function addBlog($blogid, $userid, $identify)
{
    $ctx = Model_Context::getInstance();
    $pool = DBModel::getInstance();
    if (empty($userid)) {
        $userid = 1;
        // If no userid, choose the service administrator.
    } else {
        $pool->reset('Users');
        $pool->setQualirifer('userid', 'eq', $userid);
        if (!$pool->doesExist('userid')) {
            return 3;
        }
        // 3: No user exists with specific userid
    }
    if (!empty($blogid)) {
        // If blogid,
        $pool->reset('BlogSettings');
        $pool->setQualirifer('blogid', 'eq', $blogid);
        if (!$pool->doesExist('blogid')) {
            return 2;
        }
        // 2: No blog exists with specific blogid
        // Thus, blog and user exists. Now combine both.
        $pool->reset('Privileges');
        $pool->setAttribute('blogid', $blogid);
        $pool->setAttribute('userid', $userid);
        $pool->setAttribute('acl', 0);
        $pool->setAttribute('created', Timestamp::getUNIXtime());
        $pool->setAttribute('lastlogin', 0);
        $result = $pool->insert();
        return $result;
    } else {
        // If no blogid, create a new blog.
        if (!preg_match('/^[a-zA-Z0-9]+$/', $identify)) {
            return 4;
        }
        // Wrong Blog name
        $identify = POD::escapeString(Utils_Unicode::lessenAsEncoding($identify, 32));
        $blogName = $identify;
        $pool->reset('ReservedWords');
        $pool->setQualifier('word', 'eq', $blogName, true);
        $result = $pool->getCount();
        if ($result && $result > 0) {
            return 60;
            // Reserved blog name.
        }
        $pool->reset('BlogSettings');
        $pool->setQualifier('name', 'eq', 'name', true);
        $pool->setQualifier('value', 'eq', $blogName, true);
        $result = $pool->getCount('value');
        if ($result && $result > 0) {
            return 61;
            // Same blogname is already exists.
        }
        $pool->reset('BlogSettings');
        $blogid = $pool->getCell('max(blogid)') + 1;
        $basicInformation = array('name' => $identify, 'defaultDomain' => 0, 'title' => '', 'description' => '', 'logo' => '', 'logoLabel' => '', 'logoWidth' => 0, 'logoHeight' => 0, 'useFeedViewOnCategory' => 1, 'useSloganOnPost' => 1, 'useSloganOnCategory' => 1, 'useSloganOnTag' => 1, 'entriesOnPage' => 10, 'entriesOnList' => 10, 'entriesOnRSS' => 10, 'commentsOnRSS' => 10, 'publishWholeOnRSS' => 1, 'publishEolinSyncOnRSS' => 1, 'allowWriteOnGuestbook' => 1, 'allowWriteDblCommentOnGuestbook' => 1, 'visibility' => 2, 'language' => $ctx->getProperty('service.language'), 'blogLanguage' => $ctx->getProperty('service.language'), 'timezone' => $ctx->getProperty('service.timezone'));
        $isFalse = false;
        foreach ($basicInformation as $fieldname => $fieldvalue) {
            if (Setting::setBlogSettingDefault($fieldname, $fieldvalue, $blogid) === false) {
                $isFalse = true;
            }
        }
        if ($isFalse == true) {
            $pool->reset('BlogSettings');
            $pool->setQualifier('blogid', 'eq', $blogid);
            $pool->delete();
            return 12;
        }
        $pool->reset('SkinSettings');
        $pool->setAttribute('blogid', $blogid);
        $pool->setAttribute('name', 'skin', true);
        $pool->setAttribute('value', $ctx->getProperty('service.skin'), true);
        if (!$pool->insert()) {
            deleteBlog($blogid);
            return 13;
        }
        $pool->reset('FeedSettings');
        $pool->setAttribute('blogid', $blogid);
        if (!$pool->insert()) {
            deleteBlog($blogid);
            return 62;
        }
        $pool->reset('FeedGroups');
        $pool->setAttribute('blogid', $blogid);
        $pool->setAttribute('id', 0);
        if (!$pool->insert()) {
            deleteBlog($blogid);
            return 62;
        }
        Setting::setBlogSettingGlobal('defaultEditor', 'modern', $blogid);
        Setting::setBlogSettingGlobal('defaultFormatter', 'ttml', $blogid);
        //Combine user and blog.
        $pool->reset('Privileges');
        $pool->setAttribute('blogid', $blogid);
        $pool->setAttribute('userid', $userid);
        $pool->setAttribute('acl', 16);
        $pool->setAttribute('created', Timestamp::getUNIXtime());
        $pool->setAttribute('lastlogin', 0);
        if ($pool->insert()) {
            setDefaultPost($blogid, $userid);
            return true;
        } else {
            return 65;
        }
    }
    //return true; // unreachable code
}
示例#2
0
function addBlog($blogid, $userid, $identify)
{
    global $database, $service;
    if (empty($userid)) {
        $userid = 1;
        // If no userid, choose the service administrator.
    } else {
        if (!POD::queryExistence("SELECT userid\n\t\t\tFROM {$database['prefix']}Users\n\t\t\tWHERE userid = " . $userid)) {
            return 3;
        }
        // 3: No user exists with specific userid
    }
    if (!empty($blogid)) {
        // If blogid,
        if (!POD::queryExistence("SELECT blogid\n\t\t\tFROM {$database['prefix']}BlogSettings\n\t\t\tWHERE blogid = " . $blogid)) {
            return 2;
            // 2: No blog exists with specific blogid
        }
        // Thus, blog and user exists. Now combine both.
        $result = POD::query("INSERT INTO {$database['prefix']}Privileges\n\t\t\t(blogid,userid,acl,created,lastlogin) \n\t\t\tVALUES({$blogid}, {$userid}, 0, UNIX_TIMESTAMP(), 0)");
        return $result;
    } else {
        // If no blogid, create a new blog.
        if (!preg_match('/^[a-zA-Z0-9]+$/', $identify)) {
            return 4;
        }
        // Wrong Blog name
        $identify = POD::escapeString(UTF8::lessenAsEncoding($identify, 32));
        $blogName = $identify;
        $result = POD::queryCount("SELECT * \n\t\t\tFROM {$database['prefix']}ReservedWords\n\t\t\tWHERE word = '{$blogName}'");
        if ($result && $result > 0) {
            return 60;
            // Reserved blog name.
        }
        $result = POD::queryCount("SELECT value \n\t\t\tFROM {$database['prefix']}BlogSettings \n\t\t\tWHERE name = 'name' AND value = '{$blogName}'");
        if ($result && $result > 0) {
            return 61;
            // Same blogname is already exists.
        }
        $blogid = POD::queryCell("SELECT max(blogid)\n\t\t\tFROM {$database['prefix']}BlogSettings") + 1;
        $baseTimezone = POD::escapeString($service['timezone']);
        $basicInformation = array('name' => $identify, 'defaultDomain' => 0, 'title' => '', 'description' => '', 'logo' => '', 'logoLabel' => '', 'logoWidth' => 0, 'logoHeight' => 0, 'useFeedViewOnCategory' => 1, 'useSloganOnPost' => 1, 'useSloganOnCategory' => 1, 'useSloganOnTag' => 1, 'entriesOnPage' => 10, 'entriesOnList' => 10, 'entriesOnRSS' => 10, 'commentsOnRSS' => 10, 'publishWholeOnRSS' => 1, 'publishEolinSyncOnRSS' => 1, 'allowWriteOnGuestbook' => 1, 'allowWriteDblCommentOnGuestbook' => 1, 'visibility' => 2, 'language' => $service['language'], 'blogLanguage' => $service['language'], 'timezone' => $baseTimezone);
        $isFalse = false;
        foreach ($basicInformation as $fieldname => $fieldvalue) {
            if (setBlogSettingDefault($fieldname, $fieldvalue, $blogid) === false) {
                $isFalse = true;
            }
        }
        if ($isFalse == true) {
            POD::query("DELETE FROM {$database['prefix']}BlogSettings WHERE blogid = {$blogid}");
            return 12;
        }
        if (!POD::query("INSERT INTO {$database['prefix']}SkinSettings (blogid) VALUES ({$blogid})")) {
            deleteBlog($blogid);
            return 13;
        }
        if (!POD::query("INSERT INTO {$database['prefix']}FeedSettings \n\t\t\t(blogid) VALUES ({$blogid})")) {
            deleteBlog($blogid);
            return 62;
        }
        if (!POD::query("INSERT INTO {$database['prefix']}FeedGroups \n\t\t\t(blogid, id) \n\t\t\tVALUES ({$blogid}, 0)")) {
            deleteBlog($blogid);
            return 62;
        }
        setBlogSetting('defaultEditor', 'modern', $blogid);
        setBlogSetting('defaultFormatter', 'ttml', $blogid);
        //Combine user and blog.
        if (POD::query("INSERT INTO {$database['prefix']}Privileges \n\t\t\t(blogid,userid,acl,created,lastlogin) \n\t\t\tVALUES({$blogid}, {$userid}, 16, UNIX_TIMESTAMP(), 0)")) {
            setDefaultPost($blogid, $userid);
            return true;
        } else {
            return 65;
        }
    }
    //return true; // unreachable code
}