예제 #1
0
 protected function render_body()
 {
     echo "<h1>Communicate</h1>";
     $post = new Post();
     $post->set_username("tata");
     $post->set_post("basdanskjajksdfhsdjaf");
     $post_model = new Post_model();
     $post_model->store_post($post);
     $posts = $post_model->get_posts(6);
     print_r($posts);
 }
예제 #2
0
파일: Portal.php 프로젝트: siburny/stats
 function author()
 {
     $this->parser->data['active_menu_portal'] = TRUE;
     $data = array("page_title" => "Welcome!", "params" => array());
     $author = $this->input->get('author_name');
     if (empty($author)) {
         redirect('/portal/');
     }
     $data['params']['author_name'] = $author;
     $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();
     if ($this->ion_auth->is_manager()) {
         $data["is_admin"] = TRUE;
     }
     $company_id = array($this->user_company->company_id, $author);
     $rows = Post_model::get_posts($company_id, $date_to, $date_from, TRUE, TRUE, $page);
     $day_diff = $date_to->diff($date_from)->days;
     $rows_prev = Post_model::get_posts($company_id, $date_from->modify('-1 days')->format("Y-m-d"), $date_from->modify("-" . $day_diff . " days")->format("Y-m-d"), FALSE, FALSE);
     $rows_prev = array_column((array) $rows_prev, 'total_pageviews', 'url');
     $data['rows'] = array();
     foreach ($rows as $index => $row) {
         $prev = isset($rows_prev[$row->url]) ? $rows_prev[$row->url] : 0;
         if ($prev && $row->total_pageviews - $prev) {
             $prev = round(100 * ($row->total_pageviews - $prev) / $prev, 1);
         }
         $ar = array("post_id" => $row->post_id, "n" => $page * 10 + $index + 1, "image" => $row->image, "url" => $row->url, "title" => $row->title, "sessions" => $row->total_pageviews, "date_published" => date('M j, Y', strtotime($row->date_published)), "up_down_text" => $prev ? $prev . "%" : "", 'author' => $row->author);
         if ($prev > 0) {
             $ar["up_arrow"] = TRUE;
         } elseif ($prev < 0) {
             $ar["down_arrow"] = TRUE;
         }
         $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));
     $this->load->library("google_php_client", $this->user_company);
     $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/author/?" . http_build_query($query);
     $query['page']++;
     $data['portal_link'] = http_build_query($query);
     $query['page']++;
     $data['next_link'] = "/portal/author/?" . http_build_query($query);
     unset($query['page']);
     $data['date_link'] = http_build_query($query);
     $this->parser->parse("portal/home", $data);
 }