public function createNew($key, $name, $value, $itemdata = null, $scope = null) { $scope = $scope === null ? TBGContext::getScope()->getID() : $scope; $trans = B2DB::startTransaction(); $crit = $this->getCriteria(); $crit->addWhere(self::CUSTOMFIELDS_KEY, $key); $crit->addSelectionColumn(self::SORT_ORDER, 'sortorder', B2DBCriteria::DB_MAX, '', '+1'); $row = $this->doSelectOne($crit, 'none'); $sort_order = (int) $row->get('sortorder'); $sort_order = $sort_order > 0 ? $sort_order : 1; $crit = $this->getCriteria(); $crit->addInsert(self::NAME, $name); $crit->addInsert(self::OPTION_VALUE, $value); $crit->addInsert(self::CUSTOMFIELDS_KEY, $key); $crit->addInsert(self::SORT_ORDER, $sort_order); if ($itemdata !== null) { $crit->addInsert(self::ITEMDATA, $itemdata); } $crit->addInsert(self::SCOPE, $scope); $trans->commitAndEnd(); return $this->doInsert($crit); }
public function addArticleHistory($article_name, $old_content, $new_content, $user_id, $reason = null) { $transaction = B2DB::startTransaction(); $crit = $this->getCriteria(); $crit->addInsert(self::ARTICLE_NAME, $article_name); $crit->addInsert(self::AUTHOR, $user_id); $revision_number = $this->_getNextRevisionNumberForArticle($article_name); $crit->addInsert(self::REVISION, $revision_number); if (!($revision_number == 1 && $old_content == $new_content)) { $crit->addInsert(self::OLD_CONTENT, $old_content); } else { $crit->addInsert(self::OLD_CONTENT, ''); } $crit->addInsert(self::NEW_CONTENT, $new_content); if ($reason !== null) { $crit->addInsert(self::REASON, $reason); } $crit->addInsert(self::SCOPE, TBGContext::getScope()->getID()); $crit->addInsert(self::DATE, time()); $res = $this->doInsert($crit); $transaction->commitAndEnd(); return $res->getInsertID(); }
protected function _upgradeFrom3dot0() { // Add new tables TBGScopeHostnamesTable::getTable()->create(); // Add classpath for existing old tables used for upgrade TBGContext::addClasspath(THEBUGGENIE_MODULES_PATH . 'installation' . DS . 'classes' . DS . 'upgrade_3.0'); // Upgrade old tables TBGScopesTable::getTable()->upgrade(TBGScopesTable3dot0::getTable()); TBGIssueFieldsTable::getTable()->upgrade(TBGIssueFieldsTable3dot0::getTable()); // Upgrade all modules foreach (TBGContext::getModules() as $module) { if (method_exists($module, 'upgradeFrom3dot0')) { $module->upgradeFrom3dot0(); } } // Start a transaction to preserve the upgrade path $transaction = B2DB::startTransaction(); // Add votes to feature requests for default issue type scheme $its = new TBGIssuetypeScheme(1); foreach (TBGIssuetype::getAll() as $fr) { if ($fr instanceof TBGIssuetype) { if (in_array($fr->getKey(), array('featurerequest', 'bugreport', 'enhancement'))) { $its->setFieldAvailableForIssuetype($fr, 'votes'); } } } $ut = TBGUsersTable::getTable(); $crit = $ut->getCriteria(); $crit->addUpdate(TBGUsersTable::PRIVATE_EMAIL, true); $ut->doUpdate($crit); // Add default gravatar setting TBGSettings::saveSetting(TBGSettings::SETTING_ENABLE_GRAVATARS, 1); $trans_crit = TBGWorkflowTransitionsTable::getTable()->getCriteria(); $trans_crit->addWhere(TBGWorkflowTransitionsTable::NAME, 'Request more information'); $trans_crit->addWhere(TBGWorkflowTransitionsTable::WORKFLOW_ID, 1); $trans_row = TBGWorkflowTransitionsTable::getTable()->doSelectOne($trans_crit); if ($trans_row) { $transition = new TBGWorkflowTransition($trans_row->get(TBGWorkflowTransitionsTable::ID), $trans_row); $transition->setTemplate('main/updateissueproperties'); $transition->save(); } // End transaction and finalize upgrade $transaction->commitAndEnd(); $this->upgrade_complete = true; }