コード例 #1
0
ファイル: PortletController.php プロジェクト: ajaboa/crmpuan
 /**
  * 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();
 }
コード例 #2
0
 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);
 }
コード例 #3
0
ファイル: CronController.php プロジェクト: ajaboa/crmpuan
 /**
  * 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;
 }
コード例 #4
0
 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);
 }
コード例 #5
0
ファイル: CommentController.php プロジェクト: ajaboa/crmpuan
 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;
 }
コード例 #6
0
 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;
 }
コード例 #7
0
ファイル: BlockController.php プロジェクト: ajaboa/crmpuan
 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);
 }
コード例 #8
0
ファイル: UserController.php プロジェクト: ajaboa/crmpuan
 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();
 }
コード例 #9
0
 /**
  * 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;
 }