From 7cdf8a0925d104481bdbff479cae8a1e07bf7121 Mon Sep 17 00:00:00 2001 From: Nael Date: Wed, 17 Jul 2013 01:27:33 +0200 Subject: [PATCH] bars working, thx 2 rylon --- index.php | 1 + uVote/api/ApiClass.php | 8 +-- uVote/api/votes/votes.php | 68 +++++++++++++------ uVote/page/PageApi.php | 3 + uVote/page/default_openinfo/bars_user.tpl | 5 ++ .../page/default_openinfo/closedvoteinfo.tpl | 10 +++ .../default_openinfo/default_openinfo.php | 42 ++++++++++++ .../openvoteinfo.tpl | 5 +- uVote/page/default_page/closedvoteinfo.tpl | 3 - uVote/page/default_page/default_page.php | 6 +- uVote/page/default_page/js/loadtexts.js | 2 +- uVote/page/register_page_classes.php | 1 + 12 files changed, 121 insertions(+), 33 deletions(-) create mode 100644 uVote/page/default_openinfo/bars_user.tpl create mode 100644 uVote/page/default_openinfo/closedvoteinfo.tpl create mode 100644 uVote/page/default_openinfo/default_openinfo.php rename uVote/page/{default_page => default_openinfo}/openvoteinfo.tpl (82%) delete mode 100644 uVote/page/default_page/closedvoteinfo.tpl diff --git a/index.php b/index.php index 0557072..9fbaff6 100644 --- a/index.php +++ b/index.php @@ -4,6 +4,7 @@ require_once '../system/autoload.inc.php'; require_once 'uVote/autoload.inc.php'; //Project Classes require_once '../system/log/register_exception_shortcut.php'; //allow ERROR() instead of \SYSTEM\LOG\ERROR() require_once '../system/log/register_errorhandler_jsonoutput.php'; //print errors as json to caller +require_once '../system/log/register_result_shortcut.php'; require_once 'config.php'; SYSTEM\system::start($uvote_config); diff --git a/uVote/api/ApiClass.php b/uVote/api/ApiClass.php index 00b847c..5ba6588 100644 --- a/uVote/api/ApiClass.php +++ b/uVote/api/ApiClass.php @@ -2,9 +2,7 @@ class ApiClass extends \SYSTEM\API\apiloginclass { public static function call_vote_action_vote($poll_ID, $vote) { - return votes::write_vote($poll_ID, $vote); - } - public static function call_vote_action_openinfo($poll_ID) { - return votes::get_openinfo($poll_ID); - } + return votes::write_vote($poll_ID, $vote);} + public static function call_vote_action_barsperusers($poll_ID){ + return votes::get_barsperusers($poll_ID);} } \ No newline at end of file diff --git a/uVote/api/votes/votes.php b/uVote/api/votes/votes.php index 1486e48..6e14295 100644 --- a/uVote/api/votes/votes.php +++ b/uVote/api/votes/votes.php @@ -12,33 +12,61 @@ class votes { return $result; } - private static function getProgessbar($percentage){ - $vars = array('percentage' => $percentage); - return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_page/closedvoteinfo.tpl'), $vars); + + public static function get_barsperusers($poll_ID,$return_as_json = true){ + $con = new \SYSTEM\DB\Connection(new \DBD\uVote()); + //count + $res = $con->prepare( 'selVoteBy_count', + 'SELECT COUNT(*) as "count" FROM `uvote_data` WHERE `poll_ID` = ?;', + array($poll_ID)); + $res = $res->next(); + $result = array(); + $result['poll_ID'] = $poll_ID; + $result['count'] = $res['count']; + //yes + $res = $con->prepare( 'selVoteBy_count', + 'SELECT COUNT(*) as "count" FROM `uvote_data` WHERE `poll_ID` = ? AND choice = 1;', + array($poll_ID)); + $res = $res->next(); + $result['yes'] = $res['count']; + $result['yes_perc'] = $res['count'] / $result['count']; + //no + $res = $con->prepare( 'selVoteBy_count', + 'SELECT COUNT(*) as "count" FROM `uvote_data` WHERE `poll_ID` = ? AND choice = 2;', + array($poll_ID)); + $res = $res->next(); + $result['no'] = $res['count']; + $result['no_perc'] = $res['count'] / $result['count']; + //ent + $res = $con->prepare( 'selVoteBy_count', + 'SELECT COUNT(*) as "count" FROM `uvote_data` WHERE `poll_ID` = ? AND choice = 3;', + array($poll_ID)); + $res = $res->next(); + $result['ent'] = $res['count']; + $result['ent_perc'] = $res['count'] / $result['count']; + + return $return_as_json ? JsonResult::toString($result) : $result; } - public static function get_barsperparty($poll_ID){ - $con = new \SYSTEM\DB\Connection(new \DBD\uVote()); - $pbpp = ""; - $part = $con->prepare( 'selVoteByPoll_ID', - 'SELECT * FROM `uvote_votes_per_party` WHERE `poll_ID` = ?;', - array($poll_ID)); - - while ($result = $part->next()){ - $pbpp .= self::getProgessbar($result['votes_pro']);} - return $result; -} - - public static function get_openinfo($poll_ID){ + public static function get_voteinfo($poll_ID){ $con = new \SYSTEM\DB\Connection(new \DBD\uVote()); $res = $con->prepare( 'selVoteByID', 'SELECT * FROM `uvote_votes` WHERE `ID` = ?;', array($poll_ID)); $res = $res->next(); - $result = array(); - $result['graph_right'] = get_barsperparty($pbpp); - $result = array_merge($result,$res); - return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_page/openvoteinfo.tpl'),$result); + return $res; + } + + public static function get_barsperparty($poll_ID){ + $con = new \SYSTEM\DB\Connection(new \DBD\uVote()); + $pbpp = array(); + $part = $con->prepare( 'selVoteByPoll_ID', + 'SELECT * FROM `uvote_votes_per_party` WHERE `poll_ID` = ?;', + array($poll_ID)); + + while ($result = $part->next()){ + $pbpp[] = $result;} + return $pbpp; } public static function write_vote($poll_ID, $vote){ diff --git a/uVote/page/PageApi.php b/uVote/page/PageApi.php index 7901c4a..f64529e 100644 --- a/uVote/page/PageApi.php +++ b/uVote/page/PageApi.php @@ -42,5 +42,8 @@ class PageApi extends \SYSTEM\PAGE\PageClass { //require_once 'dasense/sai/autoload.inc.php'; //require_once 'dasense/sai/register_modules.php'; return new \SYSTEM\SAI\saigui();} + + public static function action_openinfo($poll_ID){ + return new default_openinfo($poll_ID);} } \ No newline at end of file diff --git a/uVote/page/default_openinfo/bars_user.tpl b/uVote/page/default_openinfo/bars_user.tpl new file mode 100644 index 0000000..00a6cad --- /dev/null +++ b/uVote/page/default_openinfo/bars_user.tpl @@ -0,0 +1,5 @@ +
+
Yes
+
No
+
Ent
+
\ No newline at end of file diff --git a/uVote/page/default_openinfo/closedvoteinfo.tpl b/uVote/page/default_openinfo/closedvoteinfo.tpl new file mode 100644 index 0000000..ea1ae75 --- /dev/null +++ b/uVote/page/default_openinfo/closedvoteinfo.tpl @@ -0,0 +1,10 @@ + + ${party} + +
+
Pro
+
Contra
+

Enthaltung

+
+ + \ No newline at end of file diff --git a/uVote/page/default_openinfo/default_openinfo.php b/uVote/page/default_openinfo/default_openinfo.php new file mode 100644 index 0000000..7898a51 --- /dev/null +++ b/uVote/page/default_openinfo/default_openinfo.php @@ -0,0 +1,42 @@ +poll_ID = $poll_ID; + } + + private function bars_user(){ + $bars = votes::get_barsperusers($this->poll_ID,false); + $bars['vote_yes_perc'] = round($bars['yes_perc']*100,0); + $bars['vote_no_perc'] = round($bars['no_perc']*100,0); + $bars['vote_ent_perc'] = round($bars['ent_perc']*100,0); + return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_openinfo/bars_user.tpl'),$bars); + } + + private function bars_party(){ + $partyvotes = votes::get_barsperparty($this->poll_ID); + + $pbpp = ""; + foreach($partyvotes as $vote){ + $vote['party_yes'] = round($vote['votes_pro']/$vote['total']*100,0); + $vote['party_no'] = round($vote['votes_contra']/$vote['total']*100,0); + $vote['party_ent'] = round(($vote['nr_attending'] - $vote['votes_pro'] - $vote['votes_contra'])/$vote['total']*100,0); + $vote['party_ent'] = round(($vote['total'] - $vote['nr_attending'])/$vote['total']*100,0); + $pbpp .= SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_openinfo/closedvoteinfo.tpl'), $vote); + } + + return $pbpp; + } + + public function html(){ + + $result = array(); + $result['bars_party'] = $this->bars_party(); + $result['bars_user'] = $this->bars_user(); + $result = array_merge($result,votes::get_voteinfo($this->poll_ID)); + return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_openinfo/openvoteinfo.tpl'),$result); + } + +} \ No newline at end of file diff --git a/uVote/page/default_page/openvoteinfo.tpl b/uVote/page/default_openinfo/openvoteinfo.tpl similarity index 82% rename from uVote/page/default_page/openvoteinfo.tpl rename to uVote/page/default_openinfo/openvoteinfo.tpl index 63feff1..a476e39 100644 --- a/uVote/page/default_page/openvoteinfo.tpl +++ b/uVote/page/default_openinfo/openvoteinfo.tpl @@ -1,4 +1,7 @@ -${graph_right} + +${bars_party} +
+${bars_user}

${text}

diff --git a/uVote/page/default_page/closedvoteinfo.tpl b/uVote/page/default_page/closedvoteinfo.tpl deleted file mode 100644 index 370b765..0000000 --- a/uVote/page/default_page/closedvoteinfo.tpl +++ /dev/null @@ -1,3 +0,0 @@ -
-
-
\ No newline at end of file diff --git a/uVote/page/default_page/default_page.php b/uVote/page/default_page/default_page.php index b1bb03a..6f5e13e 100644 --- a/uVote/page/default_page/default_page.php +++ b/uVote/page/default_page/default_page.php @@ -36,8 +36,8 @@ class default_page extends SYSTEM\PAGE\Page { public function exchange_loginform(){ return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_page/loggedinformtop.tpl'),array());} - public function load_openvoteinfo(){ - return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_page/openvoteinfo.tpl'),array());} + //public function load_openvoteinfo(){ + // return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_page/openvoteinfo.tpl'),array());} // public function create_account(){ @@ -65,7 +65,7 @@ public function html(){ $vars['js'] = $this->js(); $vars['votelist'] = $this->generate_votelist(); // $vars['personaldata'] = $this->getuserpersonaldata(); - $vars['openvoteinfo'] = $this->load_openvoteinfo(); + //$vars['openvoteinfo'] = $this->load_openvoteinfo(); $vars['registerform'] = \SYSTEM\SECURITY\Security::isLoggedIn() ? $this->getloggedinform() : $this->exchange_registerform(); $vars['loginform'] = \SYSTEM\SECURITY\Security::isLoggedIn() ? $this->exchange_loginform() : $this->getloginform() ; $vars['PIC_PATH'] = SYSTEM\WEBPATH(new PPAGE(),'default_page/pics/'); diff --git a/uVote/page/default_page/js/loadtexts.js b/uVote/page/default_page/js/loadtexts.js index f339a3f..9097858 100644 --- a/uVote/page/default_page/js/loadtexts.js +++ b/uVote/page/default_page/js/loadtexts.js @@ -83,7 +83,7 @@ function account_create(inputEmail, inputPassword){ function load_openvoteinfo (poll_ID){ var openvoteinfo; - $.get('./api.php?call=vote&action=openinfo&poll_ID=' + poll_ID, function (data) { + $.get('./index.php?action=openinfo&poll_ID=' + poll_ID, function (data) { openvoteinfo = data; bodyelem = $(""); bodyelem.animate(); diff --git a/uVote/page/register_page_classes.php b/uVote/page/register_page_classes.php index 30ebe87..751c739 100644 --- a/uVote/page/register_page_classes.php +++ b/uVote/page/register_page_classes.php @@ -6,3 +6,4 @@ $autoload->registerFolder(dirname(__FILE__),''); $autoload->registerFolder(dirname(__FILE__).'/default_page',''); $autoload->registerFolder(dirname(__FILE__).'/default_myvote',''); $autoload->registerFolder(dirname(__FILE__).'/default_register',''); +$autoload->registerFolder(dirname(__FILE__).'/default_openinfo','');