コード例 #1
0
 public function actionIndex()
 {
     $dataProvider = new ActiveDataProvider(['query' => Collection::find()->where(['author_id' => Yii::$app->user->id])]);
     $totalCount = $dataProvider->getTotalCount();
     $pages = new Pagination(['totalCount' => $totalCount]);
     return $this->render('index', ['models' => $dataProvider->getModels(), 'pages' => $pages]);
 }
コード例 #2
0
 public function actionList($event_id)
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $dp = new ActiveDataProvider();
     $dp->query = Comment::find()->with('user')->where(['event_id' => $event_id])->orderBy(['id' => SORT_DESC]);
     $dp->pagination->pageSize = 6;
     return ['items' => $dp->getModels(), 'pageCount' => $dp->getPagination()->getPageCount(), 'totalCount' => $dp->getTotalCount(), 'page' => $dp->pagination->page, 'count' => $dp->getCount()];
 }
コード例 #3
0
ファイル: MessageController.php プロジェクト: awebc/web_xbf
 /**
  * Lists all Message models.
  * @return mixed
  */
 public function actionIndex()
 {
     $dataProvider = new ActiveDataProvider(['query' => Message::find()->select('MAX(id) AS id, COUNT(id) AS msgCount')->where(['user_id' => Yii::$app->user->id])->groupBy('friend_id')->asArray()->orderBy('id desc')]);
     $arr = $dataProvider->getModels();
     $ids = ArrayHelper::getColumn($arr, 'id');
     $models = Message::find()->with('senderUser', 'receiverUser')->where(['id' => $ids])->all();
     $pages = new Pagination(['totalCount' => $dataProvider->getTotalCount()]);
     return $this->render('index', ['models' => $models, 'count' => ArrayHelper::getColumn($arr, 'msgCount'), 'pages' => $pages]);
 }
コード例 #4
0
ファイル: UserController.php プロジェクト: awebc/web_xbf
 public function actionFavorite($id)
 {
     $this->layout = '//u';
     $user = User::findOne($id);
     \Yii::$app->view->params['model'] = $user;
     $dataProvider = new ActiveDataProvider(['query' => Collection::find()->where(['author_id' => $id])]);
     $totalCount = $dataProvider->getTotalCount();
     $pages = new Pagination(['totalCount' => $totalCount]);
     return $this->render('favorites', ['models' => $dataProvider->getModels(), 'pages' => $pages, 'author' => $user]);
 }
コード例 #5
0
 public function actionIndex($cid = '')
 {
     $key = Yii::$app->request->get('key');
     if ($key) {
         $where = ['like', 'name', $key];
     } else {
         $where = [];
     }
     $query = Goods::find()->where($where);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['defaultPageSize' => Yii::$app->params['defaultPageSizeProduct']], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]);
     return $this->render('index', ['models' => $dataProvider->getModels(), 'pagination' => $dataProvider->pagination, 'totalItems' => $dataProvider->getTotalCount()]);
 }
コード例 #6
0
 /**
  * Allows the current user to select the active board from his/her board options
  */
 public function actionSelect()
 {
     $userBoardId = explode(',', User::findOne(Yii::$app->getUser()->id)->board_id);
     $userBoards = new ActiveDataProvider(['query' => Board::find()->where(['id' => $userBoardId])]);
     $boardCount = $userBoards->getTotalCount();
     if ($boardCount == 0) {
         // No Boards, log user out
         Yii::$app->user->logout();
         return $this->render('noBoard');
     } elseif ($boardCount == 1) {
         // Only one board for user, activate it automatically
         $activeBoardId = $userBoards->getModels()[0]->id;
         $this->redirect(['activate', 'id' => $activeBoardId]);
     } else {
         // USer must select which board to activate
         return $this->render('select', ['userBoards' => $userBoards]);
     }
 }
コード例 #7
0
 /**
  * [actionInbox description]
  *
  * @todo  combine w/ actionInbox()
  * @version  2.4.0
  * @param  integer $id
  * @return array
  */
 public function actionOutbox($id = null)
 {
     /* if (!(isset($id) && $this->isModerator())) {
                 $id = \Yii::$app->user->identity->id ;
             }
     
             $model = new BbiiMessage;
             // $model->unsetAttributes();  // clear any default values
             if (isset(\Yii::$app->request->get()['BbiiMessage'])) {
                 $model->load(\Yii::$app->request->get()['BbiiMessage']);
             }
             // restrict filtering to own outbox
             $model->sendfrom = $id;
             $model->outbox = 1;
             
             return $this->render('outbox', array(
                 'model' => $model,
                 'count' => $this->getMessageCount(),
             )); */
     $model = new ActiveDataProvider(['query' => BbiiMessage::find()->where(['sendto' => \Yii::$app->user->identity->id, 'outbox' => 1])->orderBy('create_time DESC'), 'sort' => false]);
     return $this->render('outbox', array('outboxCount' => $model->getTotalCount(), 'model' => $model));
 }
コード例 #8
0
 /**
  * Displays a single Estimate model.
  * @param integer $id
  * @return mixed
  */
 public function actionView($id)
 {
     $model = $this->findModel($id);
     $dataProvider = new ActiveDataProvider(['query' => $model->getEntries()->with('product.supplier')]);
     $dataProvider->sort = ['defaultOrder' => ['rank' => SORT_ASC]];
     // Set last page as default
     $pagination = $dataProvider->getPagination();
     $page = Yii::$app->request->getQueryParam($pagination->pageParam);
     if (!$page) {
         $pagination->totalCount = $dataProvider->getTotalCount();
         $page = $pagination->getPageCount() - 1;
         $pagination->setPage($page);
     }
     if (Yii::$app->request->post('hasEditable')) {
         $id = Yii::$app->request->post('editableKey');
         $entry = EstimateEntry::findOne($id);
         $out = Json::encode(['output' => '', 'message' => '']);
         $post = [];
         $posted = current($_POST['EstimateEntry']);
         $post['EstimateEntry'] = $posted;
         if ($entry->load($post)) {
             if ($entry->save()) {
                 $entry->estimate->doEstimate();
             }
             $output = '';
             if (isset($posted['status'])) {
                 $output = $entry->statusLabel;
             }
             $out = Json::encode(['output' => $output, 'message' => $entry->getErrors()]);
         }
         // return ajax json encoded response and exit
         echo $out;
         return;
     }
     return $this->render('view', ['model' => $model, 'dataProvider' => $dataProvider]);
 }
コード例 #9
0
 /**
  * @param $event_id
  * @return array Вывод подписчиков на страницу события
  * Вывод подписчиков на страницу события
  * @throws \yii\web\NotFoundHttpException
  */
 public function actionEventSubscribers($event_id)
 {
     if (!\Yii::$app->request->isAjax) {
         throw new NotFoundHttpException();
     }
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $dp = new ActiveDataProvider();
     $dp->query = EventSubscriber::find()->with('user')->where(['event_id' => $event_id])->orderBy(['id' => SORT_DESC]);
     $dp->pagination->pageSize = 12;
     return ['items' => $dp->getModels(), 'pageCount' => $dp->getPagination()->getPageCount(), 'totalCount' => $dp->getTotalCount(), 'page' => $dp->pagination->page, 'count' => $dp->getCount()];
 }
コード例 #10
0
ファイル: Books.php プロジェクト: aekkapun/yii2-mylib
 /**
  * 
  * @param array $data [page, limit, sort_column, sort_order, filters=json] 
  * @return multitype:multitype:Ambigous <NULL> multitype:unknown string   |\stdClass
  */
 public static function jgridBooks(array $data)
 {
     $query = self::jqgridPepareQuery($data);
     $data['limit'] = empty($data['limit']) || $data['limit'] <= 0 || $data['limit'] > 30 ? 10 : $data['limit'];
     $data['page'] = empty($data['page']) || $data['page'] <= 0 ? 1 : $data['page'];
     $provider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $data['limit'], 'page' => $data['page'] - 1]]);
     $books = $provider->getModels();
     $to_array = function ($obj_arr, $query) {
         $ar = [];
         foreach ($obj_arr as $o) {
             /* @var $o Books */
             $book = [];
             $attr = $o->getAttributes($o->fields());
             //jgrid required no assoc array same order
             foreach ($query->select as $col) {
                 if ($col == 'created_date') {
                     $book[] = \Yii::$app->formatter->asDate($attr[$col], 'php:d-m-Y');
                 } else {
                     $book[] = $attr[$col];
                 }
             }
             $ar[] = ['id' => $attr['book_guid'], 'cell' => $book];
         }
         return $ar;
     };
     return self::jqgridPrepareResponse($provider->getPagination()->getPage(), $provider->getPagination()->getPageCount(), $provider->getTotalCount(), $to_array($books, $query));
 }
コード例 #11
0
ファイル: TagController.php プロジェクト: awebc/web_xbf
 public function actionView($id, $page = 1, $all = 1)
 {
     error_reporting(1);
     $model = $this->findModel($id);
     $defaultPageSize = 20;
     $offset = ($page - 1) * $defaultPageSize;
     if (!$all) {
         $queryWord = [$model->name];
     } else {
         $children = $model->children()->indexBy('id')->asArray()->all();
         $childrenValues = ArrayHelper::merge([$model->id => $model->name], ArrayHelper::getColumn($children, 'name'));
         $queryWord = ArrayHelper::merge(["OR"], $childrenValues);
     }
     $query = Feed::find();
     $condition = $queryWord;
     $query->where($condition);
     //        $condition = ['obj_type'=>App::OBJ_TYPE_FEED];
     //        $query->andwhere($condition);
     $query->offset($offset)->limit($defaultPageSize)->orderBy("id desc");
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $defaultPageSize]]);
     $feeds = $dataProvider->getModels();
     $totalCount = $dataProvider->getTotalCount();
     $pages = new Pagination(['totalCount' => $totalCount, 'defaultPageSize' => $defaultPageSize]);
     return $this->render("view", ['model' => $model, 'feeds' => $feeds, 'pages' => $pages]);
 }