/** * 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 actionStore($params) { $columnModel = new \GO\Base\Data\ColumnModel('GO\\Base\\Model\\Group'); $store = new \GO\Base\Data\DbStore('GO\\Base\\Model\\Group', $columnModel, $params); $store->defaultSort = array('name'); $store->multiSelectable('users-groups-panel', null, '', array(), false); echo $this->renderStore($store); }
protected function actionAddressbookStore() { $colModel = new \GO\Base\Data\ColumnModel(\GO\Addressbook\Model\Addressbook::model()); // $colModel->formatColumn('type', '$model->customfieldtype->name()'); $findParams = new \GO\Base\Db\FindParams(); $findParams->ignoreAcl(); $findParams->getCriteria()->addCondition('user_id', \GO::user()->id, '=', 'f'); $findParams->order('name'); $findParams->joinModel(array('model' => 'GO\\Favorites\\Model\\Addressbook', 'localTableAlias' => 't', 'localField' => 'id', 'foreignField' => 'addressbook_id', 'tableAlias' => 'f', 'type' => 'INNER')); $store = new \GO\Base\Data\DbStore('GO\\Addressbook\\Model\\Addressbook', $colModel, $_POST, $findParams); $store->multiSelectable('books'); // $store->defaultSort = array('sort','name'); echo $this->renderStore($store); }
/** * Function exporting addressbook contents to VCFs. * * @param array $params */ public function actionExportVCard($params) { $findParams = \GO\Base\Db\FindParams::loadExportFindParams('contact'); $findParams->limit(0); $store = new \GO\Base\Data\DbStore('GO\\Addressbook\\Model\\Contact', new \GO\Base\Data\ColumnModel('GO\\Addressbook\\Model\\Contact'), $params, $findParams); $file = new \GO\Base\Fs\File(\GO::t('contacts', 'addressbook') . '.vcf'); \GO\Base\Util\Http::outputDownloadHeaders($file); while ($record = $store->nextRecord()) { $model = \GO\Addressbook\Model\Contact::model()->findByPk($record['id']); if (!isset($fileStream)) { $fileStream = fopen('php://output', 'w+'); } fwrite($fileStream, $model->toVObject()->serialize()); } }
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(); }