public function indexAction() { $limit = $this->request->getQuery('limit', 'int', 25); $limit = $limit > 100 ?: $limit; $limit = $limit < 10 ?: $limit; $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => 'published', 'tid' => $this->request->getQuery('tid', 'int'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); if ($query['cid']) { $this->view->setVar('category', Category::findFirst($query['cid'])); } if ($query['uid']) { $this->view->setVar('author', UserManager::findFirst($query['uid'])); } if ($query['tid']) { $this->view->setVar('tag', Tag::findFirst($query['tid'])); } $post = new Post(); $posts = $post->findPosts($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $posts, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); $this->view->setVar('query', $query); $tag = new Tag(); $tags = $tag->getPopularTags(6); $this->view->setVar('tags', $tags); }
public function listEntries(array $query, $limit) { $entries = $this->findEntries($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $entries, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $this->findEntries($query); return $paginator->getPaginate(); }
/** * @operationName("Resource List") * @operationDescription("Get resource list") */ public function indexAction() { $query = array('limit' => 1000, 'page' => $this->request->getQuery('page', 'int', 1)); $itemQuery = $this->getDI()->getModelsManager()->createBuilder()->from('Eva\\EvaPermission\\Entities\\Resources'); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $itemQuery, "limit" => $query['limit'], "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
/** * Get the comments of a thread. Creates a new thread if none exists. * * @param string $uniqueKey Id of the thread * */ public function getThreadCommentsAction($uniqueKey) { $displayDepth = $this->request->getQuery('displayDepth'); $sorter = $this->request->getQuery('sorter', 'string', CommentManager::DEFAULT_SORT); $currentPage = $this->request->getQuery('page', 'int', 1); $threadManager = new ThreadManager(); $thread = $threadManager->findThreadByUniqueKey($uniqueKey); // We're now sure it is no duplicate id, so create the thread if (null === $thread) { // Decode the permalink for cleaner storage (it is encoded on the client side) $permalink = urldecode($this->request->getQuery('permalink')); $thread = new Threads(); $thread->uniqueKey = $uniqueKey; $thread->permalink = $permalink; //todo validate if ($thread->save() == false) { foreach ($thread->getMessages() as $message) { echo $message, "\n"; } exit; // throw new \Exception('Save failed'); } } $cacheKey = $uniqueKey . '###' . $thread->numComments . $thread->lastEditAt; // $this->view->cache( // array( // "lifetime" => 86400, // "key" => $cacheKey, // ) // ); // $viewMode = $this->dispatcher->getParam('view'); $commentManager = new CommentManager(); $viewMode = 'tree'; switch ($viewMode) { case self::VIEW_FLAT: $comments = $commentManager->findCommentsByThread($thread, $sorter, $displayDepth); // We need nodes for the api to return a consistent response, not an array of comments // $comments = array_map(function($comment) { // return array('comment' => $comment, 'children' => array()); // }, // $comments // ); break; case self::VIEW_TREE: default: $comments = $commentManager->findCommentsByThread($thread, $sorter, $displayDepth); break; } $this->view->pick('thread/thread'); $query = array('page' => $currentPage); $limit = 10; $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $comments, "limit" => $limit, "page" => $currentPage)); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVars(array('pager' => $pager, 'comments' => $pager->items, 'displayDepth' => $displayDepth, 'sorter' => $sorter, 'thread' => $thread)); }
public function sideareaAction() { $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); $query = array('q' => $this->request->getQuery('q', 'string')); $this->view->setVar('query', $query); $news = new Models\NewsManager(); $newsSet = $news->findNews($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $newsSet, "limit" => 5, "page" => 1)); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
public function listAction() { $limit = $this->dispatcher->getParam('limit'); $limit = $limit ? $limit : 25; /** @noinspection PhpDuplicateArrayKeysInspection */ $query = array('q' => $this->dispatcher->getParam('q'), 'status' => $this->dispatcher->getParam('status'), 'uid' => $this->dispatcher->getParam('uid'), 'cid' => $this->dispatcher->getParam('cid'), 'tid' => $this->dispatcher->getParam('tid'), 'has_image' => $this->dispatcher->getParam('has_image', 'int'), 'min_created_at' => $this->dispatcher->getParam('min_created_at', 'int'), 'username' => $this->dispatcher->getParam('username'), 'order' => $this->dispatcher->getParam('order'), 'limit' => $limit, 'page' => $this->dispatcher->getParam('page')); $post = new Models\Post(); $posts = $post->findPosts($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $posts, "limit" => $query['limit'], "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); return $pager; }
/** * @operationName("Post Category List") * @operationDescription("Post Category List") */ public function indexAction() { $currentPage = $this->request->getQuery('page', 'int'); // GET $limit = $this->request->getQuery('limit', 'int'); $order = $this->request->getQuery('order', 'int'); $limit = $limit > 50 ? 50 : $limit; $limit = $limit < 10 ? 10 : $limit; $items = $this->modelsManager->createBuilder()->from('Eva\\EvaBlog\\Models\\Category')->orderBy('id DESC'); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $items, "limit" => 500, "page" => $currentPage)); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
public function indexAction() { $query = array('status' => 'published', 'cid' => $this->request->getQuery('cid', 'string'), 'type' => $this->request->getQuery('type', 'string'), 'importance' => $this->request->getQuery('importance', 'string'), 'order' => '-updated_at', 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $news = new Models\NewsManager(); $newsSet = $news->findNews($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $newsSet, "limit" => 40, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
/** * @operationName("Operation List") * @operationDescription("Get operation list") */ public function indexAction() { $query = array('q' => $this->request->getQuery('q', 'string'), 'rid' => $this->request->getQuery('rid', 'int'), 'roleid' => $this->request->getQuery('roleid', 'int'), 'group' => $this->request->getQuery('group', 'string'), 'limit' => 1000, 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\OperationFilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $operation = new Models\Operation(); $operations = $operation->findOperations($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $operations, "limit" => $query['limit'], "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); $this->view->setVar('roles', Entities\Roles::find()); }
/** * @operationName("User List") * @operationDescription("Get user list") */ public function indexAction() { $limit = $this->request->getQuery('per_page', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $query = array('status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'order' => $this->request->getQuery('order', 'string'), 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $user = new Models\UserManager(); $users = $user->findUsers($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $users, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
/** * @operationName("Media List") * @operationDescription("Get Media list") */ public function indexAction() { $limit = $this->request->getQuery('per_page', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'extension' => $this->request->getQuery('extension', 'string'), 'image' => $this->request->getQuery('image', 'int'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $fileManager = new Models\FileManager(); $medias = $fileManager->findFiles($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $medias, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
/** * @operationName("Post List") * @operationDescription("Post List") */ public function indexAction() { $limit = $this->request->getQuery('per_page', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'tid' => $this->request->getQuery('tid', 'int'), 'tag' => $this->request->getQuery('tag', 'string'), 'username' => $this->request->getQuery('username', 'string'), 'sourceName' => $this->request->getQuery('source_name', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $post = new Models\Post(); $posts = $post->findPosts($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $posts, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
/** * @operationName("Livenews List") * @operationDescription("Livenews List") */ public function indexAction($overwriteQuery = null) { $limit = $this->request->getQuery('per_page', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'type' => $this->request->getQuery('type', 'string'), 'codeType' => $this->request->getQuery('code_type', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); $query = $overwriteQuery ? array_merge($query, $overwriteQuery) : $query; $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $news = new Models\NewsManager(); $newsSet = $news->findNews($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $newsSet, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); }
public function listAction() { $limit = $this->request->getQuery('limit', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string', 'published'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); if ($query['cid']) { $this->view->setVar('category', Category::findFirst($query['cid'])); } $post = new Post(); $posts = $post->findPosts($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $posts, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); return $paginator; }
public function indexAction() { $limit = $this->request->getQuery('limit', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $orderMapping = array('id' => 'id ASC', '-id' => 'id DESC', 'created_at' => 'createdAt ASC', '-created_at' => 'createdAt DESC'); $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $commentManager = new Models\CommentManager(); $comments = $commentManager->findComments($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $comments, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $this->view->setVar('pager', $pager); return $paginator; }
/** * * @SWG\Api( * path="/admin/users", * description="User manage API", * produces="['application/json']", * @SWG\Operations( * @SWG\Operation( * method="GET", * summary="Get user list", * notes="Returns user list with paginator", * @SWG\Parameters( * @SWG\Parameter( * name="username", * description="Username", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="status", * description="Status, allow value : pending | published | deleted | draft", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="order", * description="Order, allow value : +-id, +-created_at, default is -created_at", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="limit", * description="Limit max:100 | min:3; default is 25", * paramType="query", * required=false, * type="integer" * ) * ) * ) * ) * ) * @operationName("用户列表") * @operationDescription("用户列表") */ public function indexAction() { $limit = $this->request->getQuery('limit', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 3 ? 3 : $limit; $order = $this->request->getQuery('order', 'string', '-created_at'); $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $user = new Models\UserManager(); $users = $user->findUsers($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $users, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $userArray = array(); if ($pager->items) { foreach ($pager->items as $key => $user) { $userArray[] = $user->dump(Models\UserManager::$defaultDump); } } $data = array('paginator' => $this->getApiPaginator($paginator), 'results' => $userArray); return $this->response->setJsonContent($data); }
private function getPostListData($query) { $post = new Models\Post(); if ($query['type'] == 'list') { $posts = $post->findPosts($query); } elseif ($query['type'] == 'listRankTwodays') { $posts = $post->findRankTwodaysPosts($query); } $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $posts, "limit" => $query['limit'], "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $postArray = array(); if ($pager->items) { foreach ($pager->items as $key => $post) { $tempArray = $post->dump(array('id', 'title', 'createdAt', 'imageUrl' => 'getImageUrl')); // 对应老字段 $postArray[] = array('nid' => $tempArray['id'], 'node_title' => $tempArray['title'], 'node_created' => $tempArray['createdAt'], 'file_managed_file_usage_uri' => $tempArray['imageUrl'], 'file_managed_field_data_upload_uri' => $tempArray['imageUrl']); } } return $this->response->setJsonContent($postArray); }
public function loginHistoryAction() { $limit = $this->request->getQuery('limit', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 10 ? 10 : $limit; $query = array('order' => $this->request->getQuery('order', 'string', '-created_at'), 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1), 'source' => $this->request->getQuery('source', 'string')); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $this->view->setVar('form', $form); $user = new Models\UserManager(); $users = $user->findLoginedUsers($query); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $users, "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $pager = $user->correctPaginator($pager, $users, $limit); $this->view->setVar('pager', $pager); }
/** * * @SWG\Api( * path="/admin/livenews", * description="Livenews manage API", * produces="['application/json']", * @SWG\Operations( * @SWG\Operation( * method="GET", * summary="Get livenews list", * notes="Returns livenews list", * @SWG\Parameters( * @SWG\Parameter( * name="q", * description="Keyword", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="status", * description="Status, allow value : pending | published | deleted | draft", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="type", * description="Allow value : news | data", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="format", * description="Allow value : markdown | json", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="uid", * description="User ID", * paramType="query", * required=false, * type="integer" * ), * @SWG\Parameter( * name="cid", * description="Category ID, split multi by comma", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="importance", * description="Importance 1-3, split multi by comma", * paramType="query", * required=false, * type="string" * ), * @SWG\Parameter( * name="limit", * description="Limit max:100 | min:3; default is 25", * paramType="query", * required=false, * type="integer" * ), * @SWG\Parameter( * name="page", * description="Page", * paramType="query", * required=false, * type="integer" * ) * ) * ) * ) * ) * @operationName("实时新闻列表") * @operationDescription("实时新闻列表") */ public function indexAction() { $limit = $this->request->getQuery('limit', 'int', 25); $limit = $limit > 100 ? 100 : $limit; $limit = $limit < 3 ? 3 : $limit; //fixed order $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), 'type' => $this->request->getQuery('type', 'string'), 'codeType' => $this->request->getQuery('format', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid'), 'importance' => $this->request->getQuery('importance', 'string'), 'order' => '-updated_at', 'page' => $this->request->getQuery('page', 'int', 1)); $form = new Forms\FilterForm(); $form->setValues($this->request->getQuery()); $newsManager = new Models\NewsManager(); $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $newsManager->findNews($query), "limit" => $limit, "page" => $query['page'])); $paginator->setQuery($query); $pager = $paginator->getPaginate(); $livenewsArray = array(); if ($pager->items) { foreach ($pager->items as $key => $livenews) { $livenewsArray[] = $livenews->dump(NewsManager::$simpleDump); } } $data = array('paginator' => $this->getApiPaginator($paginator), 'results' => $livenewsArray); return $this->response->setJsonContent($data); }