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 }
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 }