args = $args; $this->postsModel = new PostsModel(); $this->authorsModel = new AuthorsModel(); $this->taxonomyModel = new TaxonomyModel(); } public function getTopData() { $args = array_merge($this->args, [ 'order_by' => Request::get('order_by', 'visitors'), 'filter_by_view_date' => true ]); unset($args['taxonomy']); if (! empty($args['url'])) { $decodedUrl = rawurldecode($args['url']); $args['url'] = esc_sql($decodedUrl);; } $posts = $this->postsModel->getPostsReportData($args); $total = $this->postsModel->countPosts($args); return [ 'posts' => $posts, 'total' => $total ]; } public function getCategoryData() { $args = array_merge($this->args, [ 'order_by' => Request::get('order_by', 'views'), 'count_total_posts' => true ]); return [ 'categories' => $this->taxonomyModel->getTaxonomiesData($args), 'total' => $this->taxonomyModel->countTerms($this->args) ]; } public function getAuthorsData() { $authors = $this->authorsModel->getAuthorsPagesData(array_merge($this->args, ['order_by' => Request::get('order_by', 'page_views')])); $total = $this->authorsModel->countAuthors(array_merge($this->args, ['ignore_date' => true])); return [ 'authors' => $authors, 'total' => $total ]; } public function get404Data() { return [ 'data' => $this->postsModel->get404Data($this->args), 'total' => $this->postsModel->count404Data($this->args) ]; } }