function post() { $this->load->library("google_php_client", $this->user_company); $this->parser->data['active_menu_portal'] = TRUE; $data = array("page_title" => "Welcome!", "params" => array()); $post_id = $this->input->get('post_id'); if (empty($post_id) || !preg_match('/^[0-9]+$/i', $post_id)) { redirect('/portal/'); } $data['params']['post_id'] = $post_id; $page = $this->input->get('page'); if ($page != null && preg_match('/^[0-9]+$/i', $page)) { $page = str_replace("page", "", strtolower($page)); $page--; } else { $page = 0; } $data['params']['page'] = $page; $date_from = $this->input->get("date_from"); $date_to = $this->input->get("date_to"); if ($date_from != NULL) { $date_from = strtolower($date_from); switch ($date_from) { case "today": case "yesterday": $data['date_selected'] = $date_from; $data['params']['date_from'] = $date_from; $date_to = new DateTime($date_from); $date_from = clone $date_to; break; case "7days": $data['date_selected'] = $date_from; $data['params']['date_from'] = $date_from; $date_to = new DateTime("yesterday"); $date_from = clone $date_to; $date_from->modify('-6 days'); break; case "30days": $data['date_selected'] = $date_from; $data['params']['date_from'] = $date_from; $date_to = new DateTime("yesterday"); $date_from = clone $date_to; $date_from->modify('-29 days'); break; default: if ($date_to != NULL) { if (preg_match("/^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}\$/", $date_from) && preg_match("/^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}\$/", $date_to)) { $data['date_selected'] = "custom"; $data['date_from_input'] = $date_from; $data['date_to_input'] = $date_to; $data['params']['date_from'] = $date_from; $data['params']['date_to'] = $date_to; $date_from = DateTime::createFromFormat("m-d-Y", $date_from); $date_to = DateTime::createFromFormat("m-d-Y", $date_to); break; } } $data['date_selected'] = ""; $date_to = NULL; break; } } if ($date_to == NULL) { $date_to = new DateTime(); $date_from = clone $date_to; $date_from->modify('-29 days'); } $data['date_from'] = $date_from->format("M j, Y"); $data['date_to'] = $date_to->format("M j, Y"); $data['date_from_ymd'] = $date_from->format('Y-m-d'); $data['date_to_ymd'] = $date_to->format('Y-m-d'); $this->load->model("Post_model", "post"); $this->user = $this->ion_auth->user()->row(); $post_stats = Post_model::get_post_stats($post_id, $this->user_company->company_id, $date_to, $date_from, TRUE, TRUE, $page); $data['post_title'] = $post_stats[0]->title; $data['post_id'] = $post_stats[0]->post_id; $rows = $this->google_php_client->get_post_stats($post_stats[0]->url, $data['date_to_ymd'], $data['date_from_ymd']); $data['rows'] = array(); foreach ($rows as $index => $row) { $ar = array("n" => $index + 1, "source" => $row[0], "sessions" => $row[1]); $data['rows'][] = $ar; } $rows = $this->db->from('post_stats')->select_max('date_updated')->get()->result_array(); $data['last_updated'] = $rows[0]['date_updated']; //Total Stats $count = $this->db->from('posts')->where('company_id', $this->user_company->company_id)->where('date_published >=', $data['date_from_ymd'])->where('date_published <=', $data['date_to_ymd'])->count_all_results(); $count_all = $this->db->from('posts')->where('company_id', $this->user_company->company_id)->count_all_results(); $data['totals'] = array('pageviews' => 0, 'sessions' => 0, 'engaged_minutes' => 0, 'posts' => number_format($count), 'all_posts' => number_format($count_all)); $rows = $this->google_php_client->get_profile_stats($data['date_to_ymd'], $data['date_from_ymd']); if ($rows) { $data['totals']['sessions'] = number_format($rows[0][0]); $data['totals']['engaged_minutes'] = number_format($rows[0][0] * $rows[0][1] / 60); $data['totals']['pageviews'] = number_format($rows[0][2]); } //$query = $data['params']; //$data['prev_link'] = $page == 0 ? "" : "/portal/?".http_build_query($query); //$query['page']++; //$data['date_link'] = http_build_query($query); //$query['page']++; //$data['next_link'] = "/portal/?".http_build_query($query); $this->parser->parse("portal/post", $data); }