Frontend\Modules\Blog\Actions\Category::getData PHP Метод

getData() приватный Метод

Load the data, don't forget to validate the incoming data
private getData ( )
    private function getData()
    {
        // get categories
        $categories = FrontendBlogModel::getAllCategories();
        $possibleCategories = array();
        foreach ($categories as $category) {
            $possibleCategories[$category['url']] = $category['id'];
        }
        // requested category
        $requestedCategory = \SpoonFilter::getValue($this->URL->getParameter(1, 'string'), array_keys($possibleCategories), 'false');
        // requested page
        $requestedPage = $this->URL->getParameter('page', 'int', 1);
        // validate category
        if ($requestedCategory == 'false') {
            $this->redirect(FrontendNavigation::getURL(404));
        }
        // set category
        $this->category = $categories[$possibleCategories[$requestedCategory]];
        // set URL and limit
        $this->pagination['url'] = FrontendNavigation::getURLForBlock('Blog', 'Category') . '/' . $requestedCategory;
        $this->pagination['limit'] = $this->get('fork.settings')->get('Blog', 'overview_num_items', 10);
        // populate count fields in pagination
        $this->pagination['num_items'] = FrontendBlogModel::getAllForCategoryCount($requestedCategory);
        $this->pagination['num_pages'] = (int) ceil($this->pagination['num_items'] / $this->pagination['limit']);
        // redirect if the request page doesn't exists
        if ($requestedPage > $this->pagination['num_pages'] || $requestedPage < 1) {
            $this->redirect(FrontendNavigation::getURL(404));
        }
        // populate calculated fields in pagination
        $this->pagination['requested_page'] = $requestedPage;
        $this->pagination['offset'] = $this->pagination['requested_page'] * $this->pagination['limit'] - $this->pagination['limit'];
        // get articles
        $this->items = FrontendBlogModel::getAllForCategory($requestedCategory, $this->pagination['limit'], $this->pagination['offset']);
    }