/** * Get the data for the grid that shows all the tasks from the selected tasklists. * * @param Array $params * @return Array The array with the data for the grid. */ protected function actionBirthdays($params) { $today = mktime(0, 0, 0); $next_month = \GO\Base\Util\Date::date_add(mktime(0, 0, 0), 30); //\GO::debug($yesterday); $start = date('Y-m-d', $today); $end = date('Y-m-d', $next_month); //\GO::debug($start); $select = "t.id, birthday, first_name, middle_name, last_name, addressbook_id, photo, " . "IF (STR_TO_DATE(CONCAT(YEAR('{$start}'),'/',MONTH(birthday),'/',DAY(birthday)),'%Y/%c/%e') >= '{$start}', " . "STR_TO_DATE(CONCAT(YEAR('{$start}'),'/',MONTH(birthday),'/',DAY(birthday)),'%Y/%c/%e') , " . "STR_TO_DATE(CONCAT(YEAR('{$start}')+1,'/',MONTH(birthday),'/',DAY(birthday)),'%Y/%c/%e')) " . "as upcoming "; $findCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition('birthday', '0000-00-00', '!=')->addRawCondition('birthday', 'NULL', 'IS NOT'); $settings = \GO\Addressbook\Model\BirthdaysPortletSetting::model()->findByAttribute('user_id', \GO::user()->id); if (count($settings)) { $abooks = array_map(function ($value) { return $value->addressbook_id; }, $settings->fetchAll()); $findCriteria->addInCondition('addressbook_id', $abooks); } $having = "upcoming BETWEEN '{$start}' AND '{$end}'"; $findParams = \GO\Base\Db\FindParams::newInstance()->distinct()->select($select)->criteria($findCriteria)->having($having)->order('upcoming'); //$response['data']['original_photo_url']=$model->photoURL; $columnModel = new \GO\Base\Data\ColumnModel('GO\\Addressbook\\Model\\Contact'); $columnModel->formatColumn('addressbook_id', '$model->addressbook->name'); $columnModel->formatColumn('photo_url', '$model->getPhotoThumbURL()'); $columnModel->formatColumn('age', '($model->upcoming != date("Y-m-d")) ? $model->age+1 : $model->age'); $store = new \GO\Base\Data\DbStore('GO\\Addressbook\\Model\\Contact', $columnModel, $_POST, $findParams); return $store->getData(); }
protected function actionSelectStore($params) { $columnModel = new \GO\Base\Data\ColumnModel(\GO\Customfields\Model\Field::model()); $columnModel->formatColumn('extends_model', '$model->category->extends_model', array(), 'category_id'); $columnModel->formatColumn('full_info', '"[".\\GO::t($model->category->extends_model,"customfields")."] ".$model->category->name." : ".$model->name." (col_".$model->id.")"', array(), 'category_id'); $findParams = \GO\Base\Db\FindParams::newInstance()->joinModel(array('model' => 'GO\\Customfields\\Model\\Category', 'localTableAlias' => 't', 'localField' => 'category_id', 'foreignField' => 'id', 'tableAlias' => 'c'))->criteria(\GO\Base\Db\FindCriteria::newInstance()->addInCondition('extends_model', array('GO\\Addressbook\\Model\\Contact', 'GO\\Addressbook\\Model\\Company', 'GO\\Projects2\\Model\\Project', 'GO\\Base\\Model\\User'), 'c')->addInCondition('datatype', array('GO\\Addressbook\\Customfieldtype\\Contact', 'GO\\Addressbook\\Customfieldtype\\Company'), 't')); $store = new \GO\Base\Data\DbStore('GO\\Customfields\\Model\\Field', $columnModel, $params, $findParams); echo $this->renderStore($store); }
/** * Get a list of all created Cronjob models * * @param array $params */ public function actionStore($params) { if (!\GO::cronIsRunning()) { throw new \GO\Base\Exception\NoCron(); } $colModel = new \GO\Base\Data\ColumnModel(\GO\Base\Cron\CronJob::model()); $colModel->formatColumn('active', '$model->isRunning()?\\GO::t("running","cron"):$model->active'); $store = new \GO\Base\Data\DbStore('GO\\Base\\Cron\\CronJob', $colModel, $params); $store->defaultSort = 'name'; $response = $this->renderStore($store); echo $response; }
protected function actionCalendarStore() { $colModel = new \GO\Base\Data\ColumnModel(\GO\Favorites\Model\Calendar::model()); $colModel->setColumnsFromModel(\GO\Calendar\Model\Calendar::model()); $findParams = new \GO\Base\Db\FindParams(); $findParams->getCriteria()->addCondition('user_id', \GO::user()->id, '=', 'cal'); $findParams->order('name'); $findParams->joinModel(array('model' => 'GO\\Favorites\\Model\\Calendar', 'localTableAlias' => 't', 'localField' => 'id', 'foreignField' => 'calendar_id', 'tableAlias' => 'cal', 'type' => 'INNER')); $store = new \GO\Base\Data\DbStore('GO\\Calendar\\Model\\Calendar', $colModel, $_POST, $findParams); $store->defaultSort = array('name'); $store->multiSelectable('calendars'); echo $this->renderStore($store); }
protected function actionCombinedStore($params) { $response = array('success' => true, 'total' => 0, 'results' => array()); $cm = new \GO\Base\Data\ColumnModel(); $cm->setColumnsFromModel(\GO::getModel('GO\\Comments\\Model\\Comment')); $store = \GO\Base\Data\Store::newInstance($cm); $storeParams = $store->getDefaultParams($params)->mergeWith($this->getStoreParams($params)); $findParams = \GO\Base\Db\FindParams::newInstance()->select('t.*,type.model_name')->joinModel(array('model' => 'GO\\Base\\Model\\ModelType', 'localTableAlias' => 't', 'localField' => 'model_type_id', 'foreignField' => 'id', 'tableAlias' => 'type')); $findParams->mergeWith($storeParams); $store->setStatement(\GO\Comments\Model\Comment::model()->find($findParams)); return $store->getData(); // // return $response; }
public function actionStore($params) { if (!isset($params['model_id'])) { throw new \GO\Base\Exception\NotFound('NO MODEL ID GIVEN'); } if (!isset($params['field_id'])) { throw new \GO\Base\Exception\NotFound('NO FIELD ID GIVEN'); } // When a file is added to the multifileview if (isset($params['addFileStorageFilesById'])) { $files = json_decode($params['addFileStorageFilesById'], true); foreach ($files as $fileId) { \GO\Site\Model\MultifileFile::addFromFileSelector($fileId, $params['model_id'], $params['field_id']); } } if (isset($params['delete_keys'])) { $deleteSuccess = true; $keys = json_decode($params['delete_keys']); unset($params['delete_keys']); foreach ($keys as $fileId) { \GO\Site\Model\MultifileFile::deleteFromFileSelector($fileId, $params['model_id'], $params['field_id']); } } $findParams = \GO\Base\Db\FindParams::newInstance()->select('t.*,mf.order,mf.model_id,mf.field_id'); $findParams->ignoreAcl(); $findParams->order('mf.order'); $findParams->joinModel(array('model' => 'GO\\Site\\Model\\MultifileFile', 'localTableAlias' => 't', 'localField' => 'id', 'foreignField' => 'file_id', 'tableAlias' => 'mf', 'criteria' => \GO\Base\Db\FindCriteria::newInstance()->addCondition('model_id', $params['model_id'], '=', 'mf')->addCondition('field_id', $params['field_id'], '=', 'mf'))); $model = new \GO\Files\Model\File(); $columnModel = new \GO\Base\Data\ColumnModel($model); $columnModel->formatColumn('thumb_url', '$model->getThumbUrl(array("lw"=>100, "ph"=>100, "zc"=>1))'); $store = new \GO\Base\Data\DbStore('GO\\Files\\Model\\File', $columnModel, $params, $findParams); $response = $this->renderStore($store); if (isset($deleteSuccess) && $deleteSuccess) { $response['deleteSuccess'] = true; } echo $response; }
protected function actionEnableStore($params) { $columnModel = new \GO\Base\Data\ColumnModel(\GO\Customfields\Model\Block::model()); $columnModel->formatColumn('col_id', '"col_".$model->customField->id', array(), 'field_id'); $columnModel->formatColumn('customfield_name', '$model->customField->name', array(), 'field_id'); $columnModel->formatColumn('customfield_datatype', '$model->customField->datatype', array(), 'field_id'); $columnModel->formatColumn('extends_model', '$model->customField->category->extends_model', array(), 'field_id'); $columnModel->formatColumn('enabled', '!empty($model->enabled_block_id)', array(), 'enabled_block_id'); $findParams = \GO\Base\Db\FindParams::newInstance()->select('t.*,eb.block_id AS enabled_block_id')->joinModel(array('model' => 'GO\\Customfields\\Model\\EnabledBlock', 'localTableAlias' => 't', 'localField' => 'id', 'foreignField' => 'block_id', 'tableAlias' => 'eb', 'type' => 'LEFT', 'criteria' => \GO\Base\Db\FindCriteria::newInstance()->addCondition('model_type_name', $params['model_name'], '=', 'eb')->addCondition('model_id', $params['model_id'], '=', 'eb')))->joinModel(array('model' => 'GO\\Customfields\\Model\\Field', 'localTableAlias' => 't', 'localField' => 'field_id', 'foreignField' => 'id', 'tableAlias' => 'cf', 'type' => 'INNER'))->joinModel(array('model' => 'GO\\Customfields\\Model\\Category', 'localTableAlias' => 'cf', 'localField' => 'category_id', 'foreignField' => 'id', 'tableAlias' => 'cfcat', 'type' => 'INNER'))->join('go_acl', \GO\Base\Db\FindCriteria::newInstance()->addRawCondition('a.acl_id', 'cfcat.acl_id'), 'a')->join('go_users_groups', \GO\Base\Db\FindCriteria::newInstance()->addRawCondition('a.group_id', 'ug.group_id'), 'ug', 'LEFT')->criteria(\GO\Base\Db\FindCriteria::newInstance()->addCondition('user_id', \GO::user()->id, '=', 'a', false)->addCondition('user_id', \GO::user()->id, '=', 'ug', false)); $store = new \GO\Base\Data\DbStore('GO\\Customfields\\Model\\Block', $columnModel, $params, $findParams); echo $this->renderStore($store); }
protected function actionVisibleGroupStore($user_id = 0) { $selectedGroupIds = array(); if (empty($user_id)) { $selectedGroupIds = User::getDefaultVisibleGroupIds(); } else { $user = User::model()->findByPk($user_id); $groups = $user->getAcl()->getGroups(); foreach ($groups as $group) { $selectedGroupIds[] = $group->id; } } $columnModel = new \GO\Base\Data\ColumnModel('GO\\Base\\Model\\Group'); $columnModel->formatColumn('selected', 'in_array($model->id, $selectedGroupIds)', array('selectedGroupIds' => $selectedGroupIds)); $columnModel->formatColumn('disabled', '$model->id==GO::config()->group_root'); $store = new \GO\Base\Data\DbStore('GO\\Base\\Model\\Group', $columnModel); $store->defaultSort = array('name'); return $store->getData(); }
/** * Override this function to format the grid record data. * @TODO: THIS DESCRIPTION IS NOT OK * @param array $record The grid record returned from the \GO\Base\Db\ActiveRecord->getAttributes * @param \GO\Base\Db\ActiveRecord $model * @return array The grid record data */ protected function getStoreColumnModel($withCustomfields = true) { $cm = new \GO\Base\Data\ColumnModel(); $cm->setColumnsFromModel(\GO::getModel($this->model), $this->getStoreExcludeColumns(), array(), $withCustomfields); return $cm; }