Reviews::index PHP Method

index() public method

public index ( )
    public function index()
    {
        $url = '?';
        $filter = array();
        if ($this->input->get('page')) {
            $filter['page'] = (int) $this->input->get('page');
        } else {
            $filter['page'] = '';
        }
        if ($this->config->item('page_limit')) {
            $filter['limit'] = $this->config->item('page_limit');
        }
        if ($this->input->get('filter_search')) {
            $filter['filter_search'] = $data['filter_search'] = $this->input->get('filter_search');
            $url .= 'filter_search=' . $filter['filter_search'] . '&';
        } else {
            $data['filter_search'] = '';
        }
        if ($data['user_strict_location'] = $this->user->isStrictLocation()) {
            $filter['filter_location'] = $data['filter_location'] = $this->user->getLocationId();
            $url .= 'filter_location=' . $filter['filter_location'] . '&';
        } else {
            if (is_numeric($this->input->get('filter_location'))) {
                $filter['filter_location'] = $data['filter_location'] = $this->input->get('filter_location');
                $url .= 'filter_location=' . $filter['filter_location'] . '&';
            } else {
                $filter['filter_location'] = $data['filter_location'] = '';
            }
        }
        if ($this->input->get('filter_date')) {
            $filter['filter_date'] = $data['filter_date'] = $this->input->get('filter_date');
            $url .= 'filter_date=' . $filter['filter_date'] . '&';
        } else {
            $filter['filter_date'] = $data['filter_date'] = '';
        }
        if (is_numeric($this->input->get('filter_status'))) {
            $filter['filter_status'] = $data['filter_status'] = $this->input->get('filter_status');
            $url .= 'filter_status=' . $filter['filter_status'] . '&';
        } else {
            $filter['filter_status'] = $data['filter_status'] = '';
        }
        if ($this->input->get('sort_by')) {
            $filter['sort_by'] = $data['sort_by'] = $this->input->get('sort_by');
        } else {
            $filter['sort_by'] = $data['sort_by'] = 'reviews.date_added';
        }
        if ($this->input->get('order_by')) {
            $filter['order_by'] = $data['order_by'] = $this->input->get('order_by');
            $data['order_by_active'] = $this->input->get('order_by') . ' active';
        } else {
            $filter['order_by'] = $data['order_by'] = 'DESC';
            $data['order_by_active'] = 'DESC';
        }
        $this->template->setTitle($this->lang->line('text_title'));
        $this->template->setHeading($this->lang->line('text_heading'));
        $this->template->setButton($this->lang->line('button_new'), array('class' => 'btn btn-primary', 'href' => page_url() . '/edit'));
        $this->template->setButton($this->lang->line('button_delete'), array('class' => 'btn btn-danger', 'onclick' => 'confirmDelete();'));
        if ($this->input->post('delete') and $this->_deleteReview() === TRUE) {
            redirect('reviews');
        }
        $order_by = (isset($filter['order_by']) and $filter['order_by'] == 'ASC') ? 'DESC' : 'ASC';
        $data['sort_location'] = site_url('reviews' . $url . 'sort_by=location_name&order_by=' . $order_by);
        $data['sort_author'] = site_url('reviews' . $url . 'sort_by=author&order_by=' . $order_by);
        $data['sort_id'] = site_url('reviews' . $url . 'sort_by=sale_id&order_by=' . $order_by);
        $data['sort_status'] = site_url('reviews' . $url . 'sort_by=review_status&order_by=' . $order_by);
        $data['sort_date'] = site_url('reviews' . $url . 'sort_by=date_added&order_by=' . $order_by);
        $ratings = $this->config->item('ratings');
        $data['ratings'] = $ratings['ratings'];
        $reviews = $this->Reviews_model->getList($filter);
        $data['reviews'] = array();
        foreach ($reviews as $review) {
            $data['reviews'][] = array('review_id' => $review['review_id'], 'location_name' => $review['location_name'], 'author' => $review['author'], 'quality' => $review['quality'], 'delivery' => $review['delivery'], 'service' => $review['service'], 'sale_type' => $review['sale_type'], 'sale_id' => $review['sale_id'], 'date_added' => mdate('%d %M %y', strtotime($review['date_added'])), 'review_status' => $review['review_status'], 'edit' => site_url('reviews/edit?id=' . $review['review_id']));
        }
        $this->load->model('Locations_model');
        $data['locations'] = array();
        $results = $this->Locations_model->getLocations();
        foreach ($results as $result) {
            $data['locations'][] = array('location_id' => $result['location_id'], 'location_name' => $result['location_name']);
        }
        $data['review_dates'] = array();
        $review_dates = $this->Reviews_model->getReviewDates();
        foreach ($review_dates as $review_date) {
            $month_year = $review_date['year'] . '-' . $review_date['month'];
            $data['review_dates'][$month_year] = mdate('%F %Y', strtotime($review_date['date_added']));
        }
        if ($this->input->get('sort_by') and $this->input->get('order_by')) {
            $url .= 'sort_by=' . $filter['sort_by'] . '&';
            $url .= 'order_by=' . $filter['order_by'] . '&';
        }
        $config['base_url'] = site_url('reviews' . $url);
        $config['total_rows'] = $this->Reviews_model->getCount($filter);
        $config['per_page'] = $filter['limit'];
        $this->pagination->initialize($config);
        $data['pagination'] = array('info' => $this->pagination->create_infos(), 'links' => $this->pagination->create_links());
        $this->template->render('reviews', $data);
    }