public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID);
     parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addForeignKeyColumn(self::EDITION, B2DB::getTable('TBGEditionsTable'), TBGEditionsTable::ID);
     parent::_addForeignKeyColumn(self::COMPONENT, B2DB::getTable('TBGComponentsTable'), TBGComponentsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public static function setUserViews($uid, $views)
 {
     B2DB::getTable('TBGUserDashboardViewsTable')->clearViews($uid);
     foreach ($views as $key => $view) {
         B2DB::getTable('TBGUserDashboardViewsTable')->addView($uid, $view);
     }
 }
 /**
  * Return a custom data type option by value and key
  *
  * @param string|integer $value
  * @param string $key
  *
  * @return TBGCustomDatatypeOption
  */
 public static function getByValueAndKey($value, $key)
 {
     $row = B2DB::getTable('TBGCustomFieldOptionsTable')->getByValueAndKey($value, $key);
     if ($row) {
         return TBGContext::factory()->TBGCustomDatatypeOption($row->get(TBGCustomFieldOptionsTable::ID), $row);
     }
     return null;
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addForeignKeyColumn(self::ISSUE_ID, TBGIssuesTable::getTable(), TBGIssuesTable::ID);
     parent::_addForeignKeyColumn(self::CUSTOMFIELDS_ID, B2DB::getTable('TBGCustomFieldsTable'), TBGCustomFieldsTable::ID);
     parent::_addText(self::OPTION_VALUE, false);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addInteger(self::TARGET_TYPE, 5);
     parent::_addForeignKeyColumn(self::EDITION_ID, B2DB::getTable('TBGEditionsTable'), TBGEditionsTable::ID);
     parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID);
     parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addVarchar(self::VALUE, 200);
     parent::_addVarchar(self::OPERATOR, 40);
     parent::_addVarchar(self::FILTER_KEY, 100);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
     parent::_addForeignKeyColumn(self::SEARCH_ID, B2DB::getTable('TBGSavedSearchesTable'), TBGSavedSearchesTable::ID);
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addBoolean(self::CONFIRMED);
     parent::_addForeignKeyColumn(self::COMPONENT, B2DB::getTable('TBGComponentsTable'), TBGComponentsTable::ID);
     parent::_addForeignKeyColumn(self::ISSUE, TBGIssuesTable::getTable(), TBGIssuesTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
     parent::_addForeignKeyColumn(self::STATUS, TBGListTypesTable::getTable(), TBGListTypesTable::ID);
 }
 protected function _getColumnProperty($column_name)
 {
     if (!($property_name = B2DB::getCachedColumnClassProperty($column_name, get_class($this)))) {
         $property = explode('.', $column_name);
         $property_name = "_" . strtolower($property[1]);
         B2DB::addCachedColumnClassProperty($column_name, get_class($this), $property_name);
     }
     return $property_name;
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addVarchar(self::MODULE_NAME, 50);
     parent::_addBoolean(self::ALLOWED);
     parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID);
     parent::_addForeignKeyColumn(self::GID, TBGGroupsTable::getTable(), TBGGroupsTable::ID);
     parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function rollback()
 {
     if ($this->state == self::DB_TRANSACTION_STARTED) {
         if (B2DB::getDBLink()->rollback()) {
             $this->state = self::DB_TRANSACTION_ROLLEDBACK;
             B2DB::setTransaction(false);
         } else {
             throw new B2DBException('Error rolling back transaction: ' . B2DB::getDBLink()->error);
         }
     } else {
         throw new B2DBException('There is no active transaction');
     }
 }
 public function _preDelete()
 {
     $crit = new B2DBCriteria();
     $crit->addWhere(TBGIssueAffectsComponentTable::COMPONENT, $this->getID());
     B2DB::getTable('TBGIssueAffectsComponentTable')->doDelete($crit);
     $crit = new B2DBCriteria();
     $crit->addWhere(TBGEditionComponentsTable::COMPONENT, $this->getID());
     B2DB::getTable('TBGEditionComponentsTable')->doDelete($crit);
     $crit = new B2DBCriteria();
     $crit->addWhere(TBGComponentAssigneesTable::COMPONENT_ID, $this->getID());
     $crit->addWhere(TBGComponentAssigneesTable::SCOPE, TBGContext::getScope()->getID());
     B2DB::getTable('TBGComponentAssigneesTable')->doDelete($crit);
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addVarchar(self::MODULE_NAME, 50);
     parent::_addInteger(self::NOTIFY_TYPE, 5);
     parent::_addInteger(self::TARGET_ID, 10);
     parent::_addVarchar(self::TITLE, 100);
     parent::_addText(self::CONTENTS, false);
     parent::_addInteger(self::STATUS, 5);
     parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID);
     parent::_addForeignKeyColumn(self::GID, TBGGroupsTable::getTable(), TBGGroupsTable::ID);
     parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addVarchar(self::NAME, 100);
     parent::_addInteger(self::VERSION_MAJOR, 3);
     parent::_addInteger(self::VERSION_MINOR, 3);
     parent::_addInteger(self::VERSION_REVISION, 5);
     parent::_addInteger(self::RELEASE_DATE, 10);
     parent::_addBoolean(self::RELEASED);
     parent::_addBoolean(self::LOCKED);
     parent::_addForeignKeyColumn(self::EDITION, B2DB::getTable('TBGEditionsTable'), TBGEditionsTable::ID);
     parent::_addForeignKeyColumn(self::PROJECT, TBGProjectsTable::getTable(), TBGProjectsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function getSpentTimesByDateAndIssueIDs($startdate, $enddate, $issue_ids)
 {
     $points_retarr = array();
     $hours_retarr = array();
     $sd = $startdate;
     while ($sd <= $enddate) {
         $points_retarr[date('md', $sd)] = array();
         $hours_retarr[date('md', $sd)] = array();
         $sd += 86400;
     }
     if (count($issue_ids)) {
         $crit = $this->getCriteria();
         $crit->addWhere(self::EDITED_AT, $enddate, B2DBCriteria::DB_LESS_THAN_EQUAL);
         $crit->addWhere(self::ISSUE_ID, $issue_ids, B2DBCriteria::DB_IN);
         $crit->addOrderBy(self::EDITED_AT, B2DBCriteria::SORT_ASC);
         if ($res = $this->doSelect($crit)) {
             while ($row = $res->getNextRow()) {
                 $date = date('md', $row->get(self::EDITED_AT) >= $startdate ? $row->get(self::EDITED_AT) : $startdate);
                 foreach ($points_retarr as $key => &$details) {
                     if ($key >= $date) {
                         $details[$row->get(self::ISSUE_ID)] = $row->get(self::SPENT_POINTS);
                     }
                 }
             }
         }
         $crit = $this->getCriteria();
         $crit->addWhere(self::EDITED_AT, $enddate, B2DBCriteria::DB_LESS_THAN_EQUAL);
         $crit->addJoin(B2DB::getTable('TBGIssueRelationsTable'), TBGIssueRelationsTable::PARENT_ID, self::ISSUE_ID);
         $crit->addWhere(TBGIssueRelationsTable::PARENT_ID, $issue_ids, B2DBCriteria::DB_IN);
         $crit->addOrderBy(self::EDITED_AT, B2DBCriteria::SORT_ASC);
         $res = $this->doSelect($crit);
         if ($res = $this->doSelect($crit)) {
             while ($row = $res->getNextRow()) {
                 $date = date('md', $row->get(self::EDITED_AT) >= $startdate ? $row->get(self::EDITED_AT) : $startdate);
                 foreach ($hours_retarr as $key => &$details) {
                     if ($key >= $date) {
                         $details[$row->get(self::ISSUE_ID)] = $row->get(self::SPENT_HOURS);
                     }
                 }
             }
         }
     }
     foreach ($points_retarr as $key => $vals) {
         $points_retarr[$key] = count($vals) ? array_sum($vals) : 0;
     }
     foreach ($hours_retarr as $key => $vals) {
         $hours_retarr[$key] = count($vals) ? array_sum($vals) : 0;
     }
     return array('points' => $points_retarr, 'hours' => $hours_retarr);
 }
 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();
 }
 public function __construct()
 {
     parent::__construct(self::B2DBNAME, self::ID);
     parent::_addVarchar(self::UNAME, 50);
     parent::_addVarchar(self::PASSWORD, 50);
     parent::_addVarchar(self::BUDDYNAME, 50);
     parent::_addVarchar(self::REALNAME, 100);
     parent::_addVarchar(self::EMAIL, 200);
     parent::_addForeignKeyColumn(self::USERSTATE, B2DB::getTable('TBGUserStateTable'), TBGUserStateTable::ID);
     parent::_addBoolean(self::CUSTOMSTATE);
     parent::_addVarchar(self::HOMEPAGE, 250, '');
     parent::_addVarchar(self::LANGUAGE, 100, '');
     parent::_addInteger(self::LASTSEEN, 10);
     parent::_addInteger(self::QUOTA);
     parent::_addBoolean(self::ACTIVATED);
     parent::_addBoolean(self::ENABLED);
     parent::_addBoolean(self::DELETED);
     parent::_addVarchar(self::AVATAR, 30, '');
     parent::_addBoolean(self::USE_GRAVATAR, true);
     parent::_addBoolean(self::PRIVATE_EMAIL);
     parent::_addInteger(self::JOINED, 10);
     parent::_addForeignKeyColumn(self::GROUP_ID, TBGGroupsTable::getTable(), TBGGroupsTable::ID);
     parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);
 }
 public function getViews()
 {
     $crit = new B2DBCriteria();
     $crit->addWhere(TBGArticleViewsTable::ARTICLE_ID, $this->getID());
     return B2DB::getTable('TBGArticleViewsTable')->doCount($crit);
 }
Пример #20
0
 /**
  * Add or delete an issue field option
  *
  * @param TBGRequest $request
  */
 public function runConfigureIssuefieldsAction(TBGRequest $request)
 {
     $i18n = TBGContext::getI18n();
     $this->forward403unless($this->access_level == TBGSettings::ACCESS_FULL);
     $types = TBGDatatype::getTypes();
     switch ($request->getParameter('mode')) {
         case 'add':
             if ($request->getParameter('name')) {
                 if (array_key_exists($request->getParameter('type'), $types)) {
                     $type_name = $types[$request->getParameter('type')];
                     $item = new $type_name();
                     $item->setName($request->getParameter('name'));
                     $item->setItemdata($request->getParameter('itemdata'));
                     $item->save();
                 } else {
                     $customtype = TBGCustomDatatype::getByKey($request->getParameter('type'));
                     $item = $customtype->createNewOption($request->getParameter('name'), $request->getParameter('value'), $request->getParameter('itemdata'));
                 }
                 return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('The option was added'), 'content' => $this->getTemplateHTML('issuefield', array('item' => $item, 'access_level' => $this->access_level, 'type' => $request->getParameter('type')))));
             }
             return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid name')));
         case 'edit':
             if ($request->getParameter('name')) {
                 if (array_key_exists($request->getParameter('type'), $types)) {
                     $labname = $types[$request->getParameter('type')];
                     $item = TBGContext::factory()->{$labname}($request->getParameter('id'));
                 } else {
                     $customtype = TBGCustomDatatype::getByKey($request->getParameter('type'));
                     $item = TBGContext::factory()->TBGCustomDatatypeOption($request->getParameter('id'));
                 }
                 if ($item instanceof TBGDatatypeBase && $item->getItemtype() == $item->getType()) {
                     $item->setName($request->getParameter('name'));
                     $item->setItemdata($request->getParameter('itemdata'));
                     if (!$item->isBuiltin()) {
                         $item->setValue($request->getParameter('value'));
                     }
                     $item->save();
                     return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('The option was updated')));
                 } else {
                     return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid id')));
                 }
             }
             return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid name')));
         case 'delete':
             if ($request->hasParameter('id')) {
                 if (array_key_exists($request->getParameter('type'), $types)) {
                     $classname = 'TBG' . ucfirst($request->getParameter('type'));
                     $item = TBGContext::factory()->{$classname}($request->getParameter('id'))->delete();
                     return $this->renderJSON(array('failed' => false, 'title' => $i18n->__('The option was deleted')));
                 } else {
                     B2DB::getTable('TBGCustomFieldOptionsTable')->doDeleteById($request->getParameter('id'));
                     return $this->renderJSON(array('failed' => false, 'title' => $i18n->__('The option was deleted')));
                 }
             }
             return $this->renderJSON(array('failed' => true, 'error' => $i18n->__('Invalid id or type')));
             break;
     }
 }
Пример #21
0
 /**
  * Return an array specifying visibility, requirement and choices for fields in issues
  * 
  * @param integer $issue_type
  * @param boolean $reportable[optional] Whether to only include fields that can be reported
  * 
  * @return array
  */
 protected function _getFieldsArray($issue_type, $reportable = true)
 {
     $issue_type = is_object($issue_type) ? $issue_type->getID() : $issue_type;
     if (!isset($this->_fieldsarrays[$issue_type][(int) $reportable])) {
         $retval = array();
         $res = B2DB::getTable('TBGIssueFieldsTable')->getBySchemeIDandIssuetypeID($this->getIssuetypeScheme()->getID(), $issue_type);
         if ($res) {
             $builtin_types = TBGDatatype::getAvailableFields(true);
             while ($row = $res->getNextRow()) {
                 if (!$reportable || (bool) $row->get(TBGIssueFieldsTable::REPORTABLE) == true) {
                     if ($reportable) {
                         if (in_array($row->get(TBGIssueFieldsTable::FIELD_KEY), $builtin_types) && (!$this->fieldPermissionCheck($row->get(TBGIssueFieldsTable::FIELD_KEY), $reportable) && !($row->get(TBGIssueFieldsTable::REQUIRED) && $reportable))) {
                             continue;
                         } elseif (!in_array($row->get(TBGIssueFieldsTable::FIELD_KEY), $builtin_types) && (!$this->fieldPermissionCheck($row->get(TBGIssueFieldsTable::FIELD_KEY), $reportable, true) && !($row->get(TBGIssueFieldsTable::REQUIRED) && $reportable))) {
                             continue;
                         }
                     }
                     $field_key = $row->get(TBGIssueFieldsTable::FIELD_KEY);
                     $retval[$field_key] = array('required' => (bool) $row->get(TBGIssueFieldsTable::REQUIRED), 'additional' => (bool) $row->get(TBGIssueFieldsTable::ADDITIONAL));
                     if (!in_array($field_key, $builtin_types)) {
                         $retval[$field_key]['custom'] = true;
                         $custom_type = TBGCustomDatatype::getByKey($field_key);
                         if ($custom_type instanceof TBGCustomDatatype) {
                             $retval[$field_key]['custom_type'] = $custom_type->getType();
                         } else {
                             unset($retval[$field_key]);
                         }
                     }
                 }
             }
             if (array_key_exists('user_pain', $retval)) {
                 $retval['pain_bug_type'] = array('required' => $retval['user_pain']['required']);
                 $retval['pain_likelihood'] = array('required' => $retval['user_pain']['required']);
                 $retval['pain_effect'] = array('required' => $retval['user_pain']['required']);
             }
             if ($reportable) {
                 foreach ($retval as $key => $return_details) {
                     if ($key == 'edition' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::EDITIONS_LIST, TBGCustomDatatype::EDITIONS_CHOICE))) {
                         $retval[$key]['values'] = array();
                         $retval[$key]['values'][''] = TBGContext::getI18n()->__('None');
                         foreach ($this->getEditions() as $edition) {
                             $retval[$key]['values'][$edition->getID()] = $edition->getName();
                         }
                         if (!$this->isEditionsEnabled() || empty($retval[$key]['values'])) {
                             if (!$retval[$key]['required']) {
                                 unset($retval[$key]);
                             } else {
                                 unset($retval[$key]['values']);
                             }
                         }
                         if (array_key_exists($key, $retval) && array_key_exists('values', $retval[$key])) {
                             asort($retval[$key]['values'], SORT_STRING);
                         }
                     } elseif ($key == 'status' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::EDITIONS_LIST, TBGCustomDatatype::STATUS_CHOICE))) {
                         $retval[$key]['values'] = array();
                         foreach (TBGStatus::getAll() as $status) {
                             $retval[$key]['values'][$status->getID()] = $status->getName();
                         }
                         if (empty($retval[$key]['values'])) {
                             if (!$retval[$key]['required']) {
                                 unset($retval[$key]);
                             } else {
                                 unset($retval[$key]['values']);
                             }
                         }
                         if (array_key_exists($key, $retval) && array_key_exists('values', $retval[$key])) {
                             asort($retval[$key]['values'], SORT_STRING);
                         }
                     } elseif ($key == 'component' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::COMPONENTS_LIST, TBGCustomDatatype::COMPONENTS_CHOICE))) {
                         $retval[$key]['values'] = array();
                         $retval[$key]['values'][''] = TBGContext::getI18n()->__('None');
                         foreach ($this->getComponents() as $component) {
                             $retval[$key]['values'][$component->getID()] = $component->getName();
                         }
                         if (!$this->isComponentsEnabled() || empty($retval[$key]['values'])) {
                             if (!$retval[$key]['required']) {
                                 unset($retval[$key]);
                             } else {
                                 unset($retval[$key]['values']);
                             }
                         }
                         if (array_key_exists($key, $retval) && array_key_exists('values', $retval[$key])) {
                             asort($retval[$key]['values'], SORT_STRING);
                         }
                     } elseif ($key == 'build' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::RELEASES_LIST, TBGCustomDatatype::RELEASES_CHOICE))) {
                         $retval[$key]['values'] = array();
                         $retval[$key]['values'][''] = TBGContext::getI18n()->__('None');
                         foreach ($this->getBuilds() as $build) {
                             $retval[$key]['values'][$build->getID()] = $build->getName() . ' (' . $build->getVersion() . ')';
                         }
                         if (!$this->isBuildsEnabled() || empty($retval[$key]['values'])) {
                             if (!$retval[$key]['required']) {
                                 unset($retval[$key]);
                             } else {
                                 unset($retval[$key]['values']);
                             }
                         }
                     }
                 }
             }
         }
         $this->_fieldsarrays[$issue_type][(int) $reportable] = $retval;
     }
     return $this->_fieldsarrays[$issue_type][(int) $reportable];
 }
 /**
  * Return an instance of TBGModulesTable
  *
  * @return TBGModulesTable
  */
 public static function getTable()
 {
     return B2DB::getTable('TBGModulesTable');
 }
 /**
  * Return an instance of this table
  *
  * @return TBGCustomFieldsTable
  */
 public static function getTable()
 {
     return B2DB::getTable('TBGCustomFieldsTable');
 }
 /**
  * Return an instance of this table
  *
  * @return TBGArticleLinksTable
  */
 public static function getTable()
 {
     return B2DB::getTable('TBGArticleLinksTable');
 }
Пример #25
0
 public static function findClients($details)
 {
     $crit = new B2DBCriteria();
     $crit->addWhere(TBGClientsTable::NAME, "%{$details}%", B2DBCriteria::DB_LIKE);
     $clients = array();
     if ($res = B2DB::getTable('TBGClientsTable')->doSelect($crit)) {
         while ($row = $res->getNextRow()) {
             $clients[$row->get(TBGClientsTable::ID)] = TBGContext::factory()->TBGClient($row->get(TBGClientsTable::ID), $row);
         }
     }
     return $clients;
 }
 /**
  * Prepare the statement
  */
 protected function _prepare()
 {
     try {
         if (!B2DB::getDBLink() instanceof PDO) {
             throw new B2DBException('Connection not up, can\'t prepare the statement');
         }
         if ($this->crit instanceof B2DBCriteria) {
             $this->statement = B2DB::getDBLink()->prepare($this->crit->getSQL());
         } else {
             $this->statement = B2DB::getDBLink()->prepare($this->custom_sql);
         }
     } catch (Exception $e) {
         throw $e;
     }
 }
Пример #27
0
 public function getBillboardPosts($target_board = 0, $posts = 5)
 {
     $crit = new B2DBCriteria();
     $crit->addWhere(TBGBillboardPostsTable::SCOPE, TBGContext::getScope()->getID());
     $crit->addWhere(TBGBillboardPostsTable::IS_DELETED, 0);
     $crit->setLimit($posts);
     $crit->addOrderBy(TBGBillboardPostsTable::DATE, 'desc');
     if (is_array($target_board)) {
         $crit->addWhere(TBGBillboardPostsTable::TARGET_BOARD, $target_board, B2DBCriteria::DB_IN);
     } else {
         $crit->addWhere(TBGBillboardPostsTable::TARGET_BOARD, $target_board);
     }
     $posts = array();
     $res = B2DB::getTable('TBGBillboardPostsTable')->doSelect($crit);
     while ($row = $res->getNextRow()) {
         $posts[] = new PublishBillboardPost($row);
     }
     return $posts;
 }
 /**
  * Return an instance of this table
  *
  * @return TBGIssueFilesTable
  */
 public static function getTable()
 {
     return B2DB::getTable('TBGIssueFilesTable');
 }
 /**
  * Return an instance of this table
  *
  * @return TBGSettingsTable
  */
 public static function getTable()
 {
     return B2DB::getTable('TBGSettingsTable');
 }
Пример #30
0
 /**
  * Get all the projects a team is associated with
  * 
  * @return array
  */
 public function getAssociatedProjects()
 {
     if ($this->_associated_projects === null) {
         $this->_associated_projects = array();
         $projects = B2DB::getTable('TBGProjectAssigneesTable')->getProjectsByTeamID($this->getID());
         $edition_projects = B2DB::getTable('TBGEditionAssigneesTable')->getProjectsByTeamID($this->getID());
         $component_projects = B2DB::getTable('TBGComponentAssigneesTable')->getProjectsByTeamID($this->getID());
         $project_ids = array_merge(array_keys($projects), array_keys($edition_projects), array_keys($component_projects));
         foreach ($project_ids as $project_id) {
             $this->_associated_projects[$project_id] = TBGContext::factory()->TBGProject($project_id);
         }
     }
     return $this->_associated_projects;
 }