function getTopFBPosts($account, $count = 10) { $start = tryGET('start'); $end = tryGet('end'); $token = getFBToken(); if (!isset($token[0])) { DoNotCache("Facebook: Authentication failed"); return null; } //No token $url = "https://graph.facebook.com/{$account}/posts"; $params = array($token[0] => $token[1], "limit" => 100, "fields" => "likes.limit(1).summary(true),shares,actions", "since" => $start, "until" => $end); $result = getAPI($url, $params); if (!isset($result->data)) { return array(); } $rdata = $result->data; usort($rdata, 'fbSort'); $posts = array(); foreach ($rdata as $key => $p) { if ($key < $count) { array_push($posts, $p); } else { break; } } return $posts; }
function getLumEvents() { $start = tryGet('start'); $end = tryGet('end'); $sMonth = date('m', $start); $sYear = date('Y', $start); $eMonth = date('m', $end); $eYear = date('Y', $end); $events = array(); for ($y = $sYear; $y <= $eYear; $y++) { for ($m = $sMonth; $y * 100 + $m <= $eYear * 100 + $eMonth; $m++) { } } }
function chartDashboard($settings) { //Setup analytics $analytics = getAnalytics(); //Get data $colors = getColorScheme(); try { $data = runQuery($analytics, $settings["Account"], $settings["From"], $settings["To"], "ga:pageviews,ga:users", "ga:date"); if (isset($data->ga_error)) { DoNotCache(); $data = array(); $data[0] = array(); $data[0][0] = 0; $data[1] = array(); $data[2] = array(); } else { $data = invertData($data->getRows()); } } catch (Exception $e) { return json_encode($e); } $att = getAttendanceData($settings["From"], $settings["To"], tryGet("location")); //Form chart date_default_timezone_set('UTC'); $start = strtotime($settings["From"]); $int = 1 * 24 * 60 * 60; //1 day $chart = new Highchart('areaspline'); $chart->addPlotOption('fillOpacity', 0.2); $chart->addSeries($data[1], 'Pageviews', $colors[0]); $chart->addSeries($data[2], 'Users', $colors[1]); $chart->addSeries($att, 'Attendance', 'rgba(35,145,35,1)'); if (tryGet('twitter')) { $chart->addSeries(array(), 'Tweets', 'rgb(80, 171, 241)', array('visible' => false)); } if (tryGet('fb')) { $chart->addSeries(array(), 'Facebook Posts', 'rgba(68,97,157, 1)', array('visible' => false)); } if (tryGet('ig')) { $chart->addSeries(array(), 'Instagram Images', 'rgba(185,163,140, 1)', array('visible' => false)); } if (tryGet('ga')) { $chart->addSeries(array(), 'Anomalies', 'rgba(247,153,28, 1)', array('visible' => false)); } $chart->addTimestamps($start * 1000, $int * 1000); //print $chart->toJson(); return $chart->toJson(); }
function getEvents() { $start = tryGET('start'); $end = tryGET('end'); $lt = false; if (tryGet('longterm')) { $lt = true; } $loc = strtolower(tryGET('location')); //Get accounts $accounts = json_decode(file_get_contents('config/accounts.json'), true); $locAccounts = $accounts['location'][$loc]['accounts']; //print_r($accounts); $events = array(); foreach ($locAccounts as $key => $act) { $type = $act['type']; $import = false; if (isset($act["import"])) { $locArr = $act["locations"]; $import = true; } else { $id = $act["id"]; } //print $id; $te = array(); switch ($type) { case 'twitter': if (!$lt) { if ($import) { $te = getMultipleEvents($locArr, $type); } else { $te = topTweetEvents($id); } } break; case 'google analytics': $te = gaEvents($id); break; case 'facebook': if (!$lt) { if ($import) { $te = getMultipleEvents($locArr, $type); } else { $te = fbEvents($id); } } break; case 'instagram': if (!$lt) { if ($import) { $te = getMultipleEvents($locArr, $type); } else { $te = igEvents($id); } } break; } if (isset($te)) { $events = array_merge($events, $te); } } usort($events, "sortEvents"); $json = array("events" => $events); $json["start"] = $start * 1000; $json["end"] = $end * 1000; return $json; }