diff --git a/graphs/graphFunctions.php b/graphs/graphFunctions.php new file mode 100644 index 0000000000000000000000000000000000000000..0c1ebb853b1b290afa91ed9d249f5d4a5f651cac --- /dev/null +++ b/graphs/graphFunctions.php @@ -0,0 +1,66 @@ +<?php +/* Include the `fusioncharts.php` file that contains functions to embed the charts. */ +include("fusioncharts-suite-xt/integrations/php/fusioncharts-wrapper/fusioncharts.php"); + +/** + * Must have included the JS + */ +function lineGraphMean($chartName, $caption, $xAxisName, $yAxisName, $data, $width, $height) { + // Chart Configuration stored in Associative Array + $arrChartConfig = array( + "chart" => array( + "caption" => $caption, + //"subCaption" => "In MMbbl = One Million barrels", + "xAxisName" => $xAxisName, + "yAxisName" => $yAxisName, + "lineThickness" => "2", + "theme" => "fusion" + ) + ); + + // An array of hash objects which stores data + $arrChartData = []; + + $mean = 0; + + $count = count($data); + for ($i=0; $i<$count; $i++) { + $arrChartData[] = [ + 'label' => $i, + 'value' => $data[$i] + ]; + $mean += $data[$i]; + } + $mean = round($mean/$count, 2); + + // An array which stores trend-lines + $arrTrendLines = []; + $arrTrendLines[] = [ + "line" => [ + [ + "startvalue" => $mean, + "color" => "#1aaf5d", + "displayvalue" => "Mean = ".$mean, + "valueOnRight" => "1", + "thickness" => "2" + ] + ] + ]; + + $arrChartConfig["data"] = $arrChartData; + $arrChartConfig["trendLines"] = $arrTrendLines; + + // JSON Encode the data to retrieve the string containing the JSON representation of the data in the array. + $jsonEncodedData = json_encode($arrChartConfig); + + // chart object + $Chart = new FusionCharts("line", $caption , $width, $height, $chartName, "json", $jsonEncodedData); + + // Render the chart + $Chart->render(); + echo '<center> <div id="'.$chartName.'">Chart will render here!</div> </center>'; +} + + + +?> diff --git a/page_profile/profil.php b/page_profile/profil.php index a92ea2c782713a58309773ace409c36ac3f571f8..24797547c4261676658bf9ed9db08b91b0c19829 100644 --- a/page_profile/profil.php +++ b/page_profile/profil.php @@ -3,6 +3,8 @@ require_once('../API_Twitter/userInfosFunctions.php'); require_once('../API_Twitter/tweetInfosFunctions.php'); require_once('../youtube-api/userInfos.php'); require_once('../facto.php'); +require_once('../graphs/graphFunctions.php'); + session_start(); if (isset($_POST['username'])) { @@ -41,6 +43,9 @@ $youtube_fav = $_SESSION['youtube']; ?> <!DOCTYPE html> +<script type="text/javascript" src="../graphs/fusioncharts-suite-xt/js/fusioncharts.js"></script> +<script type="text/javascript" src="../graphs/fusioncharts-suite-xt/js/themes/fusioncharts.theme.fusion.js"></script> + <html lang="zxx"> <?php head(); ?> @@ -140,147 +145,41 @@ $youtube_fav = $_SESSION['youtube']; <div id='stats'> <div id='a'><br/><br/><span class="title_graphs">Evolution of Tweets Likes</span><br/><br/> - -<?php -/* Include the `fusioncharts.php` file that contains functions to embed the charts. */ -include("../graphs/fusioncharts-suite-xt/integrations/php/fusioncharts-wrapper/fusioncharts.php"); -require_once('../API_Twitter/tweetInfosFunctions.php'); -?> -<script type="text/javascript" src="../graphs/fusioncharts-suite-xt/js/fusioncharts.js"></script> -<script type="text/javascript" src="../graphs/fusioncharts-suite-xt/js/themes/fusioncharts.theme.fusion.js"></script> - <?php - // Nombre de tweets - $count = 50; - - // Chart Configuration stored in Associative Array - $arrChartConfig = array( - "chart" => array( - "caption" => "Evolution of likes : Last ".$count." tweets", - //"subCaption" => "In MMbbl = One Million barrels", - "xAxisName" => "Tweet (from most recent to oldest)", - "yAxisName" => "Likes", - "lineThickness" => "2", - "theme" => "fusion" - ) - ); - - // An array of hash objects which stores data - $arrChartData = []; - - $likes = getNbLikesOfUserByScreenName(getUserScreenName($id), $count); - - $likeMoyen = 0; - - $count = count($likes); - for ($i=0; $i<$count; $i++) { - $arrChartData[] = [ - 'label' => $i, - 'value' => $likes[$i] - ]; - $likeMoyen += $likes[$i]; - } - $likeMoyen = round($likeMoyen/$count, 2); - - // An array which stores trend-lines - $arrTrendLines = []; - $arrTrendLines[] = [ - "line" => [ - [ - "startvalue" => $likeMoyen, - "color" => "#1aaf5d", - "displayvalue" => "Like moyen = ".$likeMoyen, - "valueOnRight" => "1", - "thickness" => "2" - ] - ] - ]; - - $arrChartConfig["data"] = $arrChartData; - $arrChartConfig["trendLines"] = $arrTrendLines; - - // JSON Encode the data to retrieve the string containing the JSON representation of the data in the array. - $jsonEncodedData = json_encode($arrChartConfig); - - // chart object - $Chart = new FusionCharts("line", "MyFirstChart" , "700", "400", "chart-container", "json", $jsonEncodedData); - - // Render the chart - $Chart->render(); - ?> - <center> - <div id="chart-container">Chart will render here!</div> - </center> - - - - - </br><br/></div> + <?php + // Nombre de tweets + $count = 50; + + $chartName = "chart1"; + $caption = "Evolution of likes : Last ".$count." tweets"; + $xAxisName = "Tweet (from most recent to oldest)"; + $yAxisName = "Likes"; + + $likes = getNbLikesOfUserByScreenName(getUserScreenName($id), $count); + + + lineGraphMean($chartName, $caption, $xAxisName, $yAxisName, $likes, 700, 400); + + ?> + </br><br/> + </div> <div id='b'><br/><br/><span class="title_graphs">Evolution of Tweets Retweets</span><br/><br/> <?php - // Nombre de tweets - $count = 50; - - // Chart Configuration stored in Associative Array - $arrChartConfig = array( - "chart" => array( - "caption" => "Evolution of retweets : Last ".$count." tweets", - //"subCaption" => "In MMbbl = One Million barrels", - "xAxisName" => "Tweet (from most recent to oldest)", - "yAxisName" => "Retweets", - "lineThickness" => "2", - "theme" => "fusion" - ) - ); - - // An array of hash objects which stores data - $arrChartData = []; - - $retweets = getNbRetweetsOfUserByScreenName(getUserScreenName($id), $count); - - $retweetMoyen = 0; - - $count = count($retweets); - for ($i=0; $i<$count; $i++) { - $arrChartData[] = [ - 'label' => $i, - 'value' => $retweets[$i] - ]; - $retweetMoyen += $retweets[$i]; - } - $retweetMoyen = round($retweetMoyen/$count, 2); - - // An array which stores trend-lines - $arrTrendLines = []; - $arrTrendLines[] = [ - "line" => [ - [ - "startvalue" => $retweetMoyen, - "color" => "#1aaf5d", - "displayvalue" => "retweet moyen = ".$retweetMoyen, - "valueOnRight" => "1", - "thickness" => "2" - ] - ] - ]; - - $arrChartConfig["data"] = $arrChartData; - $arrChartConfig["trendLines"] = $arrTrendLines; - - // JSON Encode the data to retrieve the string containing the JSON representation of the data in the array. - $jsonEncodedData = json_encode($arrChartConfig); - - // chart object - $Chart = new FusionCharts("line", "MyFirstChart2" , "700", "400", "chart-container2", "json", $jsonEncodedData); - - // Render the chart - $Chart->render(); - ?> - <center> - <div id="chart-container2">Chart will render here!</div> - </center> - - </br><br/></div> + // Nombre de tweets + $count = 50; + + $chartName = "chart2"; + $caption = "Evolution of retweets : Last ".$count." tweets"; + $xAxisName = "Tweet (from most recent to oldest)"; + $yAxisName = "Retweets"; + + $retweets = getNbRetweetsOfUserByScreenName(getUserScreenName($id), $count); + + + lineGraphMean($chartName, $caption, $xAxisName, $yAxisName, $retweets, 700, 400); + ?> + </br><br/> + </div> </div> </div>