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]); }
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()]; }
/** * 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]); }
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]); }
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()]); }
/** * 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]); } }
/** * [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)); }
/** * 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]); }
/** * @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()]; }
/** * * @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)); }
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]); }