added all uvote files, included gitignore

This commit is contained in:
Ulf Gebhardt 2015-05-20 17:39:27 +02:00
parent 93a65e66c7
commit a211b58adb
169 changed files with 3832 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/nbproject/private

41
uvote/api/api_uvote.php Normal file
View File

@ -0,0 +1,41 @@
<?php
class api_uvote extends \SYSTEM\API\api_system {
//votes
public static function call_vote_action_vote($poll_ID, $vote) {
return votes::write_vote($poll_ID, $vote);}
public static function call_vote_action_data($location, $birthyear, $gender, $children) {
return votes::write_data($location, $birthyear, $gender, $children);}
public static function call_vote_action_new_vote($ID, $title, $iframe_link) {
return votes::write_poll($ID, $title, $iframe_link);}
public static function call_vote_action_feedback($feedback) {
return votes::write_feedback($feedback);}
public static function call_vote_action_open_vote($poll_ID) {
return votes::open_vote($poll_ID);}
public static function call_vote_action_barsperusers($poll_ID){
return votes::get_barsperusers($poll_ID);}
public static function call_vote_action_submit($poll_ID) {
return votes::vote_submit($poll_ID);}
public static function call_vote_action_accord($party){
return votes::vote_accord_with_party($party);}
//graphs
public static function call_graph_bt_to_uvote_overall_by_time($timespan = 84600){
return graphs::graph_bt_to_uvote_overall_by_time($timespan);}
public static function call_graph_bt_to_user_overall_by_time($timespan = 84600){
return graphs::graph_bt_to_user_overall_by_time($timespan);}
//comments
public static function call_vote_action_comment($poll_ID, $c_choice, $c_txt, $c_src) {
return comments::write_comment($poll_ID, $c_choice, $c_txt, $c_src);}
public static function call_vote_action_commentrate($c_ID, $val) {
return comments::write_commentrate($c_ID, $val);}
}

View File

@ -0,0 +1,3 @@
<?php
SYSTEM\autoload::registerFolder(dirname(__FILE__),'');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/votes','');

View File

@ -0,0 +1,22 @@
<?php
class comments {
public static function getUserComments($poll_ID, $c_choice){
return \DBD\UVOTE_GENERATE_COMMENTS_PER_POLL::QA(array($poll_ID, $c_choice));}
public static function insertUserComment($c_choice, $poll_ID, $user_ID, $c_txt, $c_src, $timestamp){
return \DBD\UVOTE_DATA_USER_COMMENT_INSERT::QI(array($c_choice, $poll_ID, $user_ID, $c_txt, $c_src, $timestamp));}
public static function get_commentrate($c_ID, $val){
return \DBD\UVOTE_DATA_USER_COMMENTRATE_PER_COMMENT::Q1(array($c_ID, $val));}
public static function write_comment($poll_ID, $c_choice, $c_txt, $c_src){
if(!\SYSTEM\SECURITY\Security::isLoggedIn()){
throw new ERROR("You need to be logged in.");}
return \DBD\UVOTE_DATA_USER_COMMENT_INSERT::Q1(array($c_choice, $poll_ID, \SYSTEM\SECURITY\Security::getUser()->id, utf8_encode($c_txt), $c_src));}
public static function write_commentrate($c_ID, $val){
if(!\SYSTEM\SECURITY\Security::isLoggedIn()){
throw new ERROR("You need to be logged in.");}
return \DBD\UVOTE_DATA_USER_COMMENTRATE_INSERT::Q1(array($c_ID, \SYSTEM\SECURITY\Security::getUser()->id, $val, $c_ID, \SYSTEM\SECURITY\Security::getUser()->id, $val));}
}

View File

@ -0,0 +1,27 @@
<?php
class graphs {
public static function graph_bt_to_uvote_overall_by_time ($timespan = 84600,$returnasjson = true){
$result = array();
$res = \DBD\UVOTE_DATA_GRAPH_BT_TO_UVOTE_OVERALL_BY_TIME::QQ(array($timespan));
while ($row = $res->next()){
$result[] = array( 0 => $row['day'],
'match' => $row['class_match'] > 0 ? round($row['class_match'] / ($row['class_match']+$row['class_mismatch']),2) : 0,
'mismatch' => $row['class_match'] > 0 ? round($row['class_mismatch'] / ($row['class_match']+$row['class_mismatch']),2) : 0);
}
return $returnasjson ? SYSTEM\LOG\JsonResult::toString($result) : $result;
}
public static function graph_bt_to_user_overall_by_time ($timespan = 84600,$returnasjson = true){
$result = array();
$res = \DBD\UVOTE_DATA_GRAPH_BT_TO_USER_OVERALL_BY_TIME::QQ(array($timespan, \SYSTEM\SECURITY\Security::getUser()->id, \SYSTEM\SECURITY\Security::getUser()->id));
while ($row = $res->next()){
$result[] = array( 0 => $row['day'],
'class_match' => $row['class_match'] / ($row['class_match']+$row['class_mismatch']+1),
'class_mismatch' => $row['class_mismatch'] / ($row['class_match']+$row['class_mismatch']+1));
}
return $returnasjson ? SYSTEM\LOG\JsonResult::toString($result) : $result;
}
}

View File

@ -0,0 +1,13 @@
<?php
class should_be_in_backend {
public static function insertPartyChoice($poll_ID, $party, $votes_pro, $votes_contra, $nr_attending, $total, $choice){
return \DBD\UVOTE_GENERATE_VOTELIST::QI(array($poll_ID, $party, $votes_pro, $votes_contra, $nr_attending, $total, $choice));}
public static function write_poll($ID, $title, $iframe_link ){
if ($ID == -1){
return \DBD\UVOTE_DATA_NEW_POLL::QI(array($title, $iframe_link));
}
return \DBD\UVOTE_DATA_UPDATE_POLL::QI(array($title, $iframe_link, $ID));
}
}

179
uvote/api/votes/votes.php Normal file
View File

@ -0,0 +1,179 @@
<?php
class votes {
public static function getAllVotesOfGroup($groupid){
return \DBD\UVOTE_GENERATE_VOTELIST::QA(array($groupid));}
public static function getAllExpVotesOfGroup($groupid){
return \DBD\UVOTE_GENERATE_VOTELIST_EXP::QA(array($groupid));}
public static function countAllPolls(){
$res = \DBD\UVOTE_DATA_COUNT_VOTES::QQ();
return $res;}
public static function get_user_choice_per_poll($poll_ID, $user_ID){
return \DBD\UVOTE_DATA_USER_CHOICE_PER_POLL::Q1(array($poll_ID, $user_ID));
}
public static function getUserPollData($poll_ID){
if (!\SYSTEM\SECURITY\Security::isLoggedIn()){
return NULL;}
$con = new \SYSTEM\DB\Connection(new \DBD\uVote());
$res = $con->prepare( 'selVoteByGrp',
'SELECT * FROM `uvote_data` WHERE `user_ID` = ? AND poll_ID = ?;',
array(\SYSTEM\SECURITY\Security::getUser()->id,$poll_ID));
$result = $res->next();
return $result['choice'];
}
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'] >= 1 ? $res['count'] : 1;
//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_all_votes(){
$res = \DBD\UVOTE_DATA_CHOICE_OVERALL::QA();
return $res;
}
public static function get_all_votes_bt(){
$res = \DBD\UVOTE_DATA_CHOICE_BT_OVERALL::QA();
return $res;
}
public static function get_user_temp_votes($user_ID){
return \DBD\UVOTE_DATA_TEMP_VOTES::Q1(array($user_ID, $user_ID, $user_ID));}
public static function get_user_overall_votes($user_ID, $creationDate){
return \DBD\UVOTE_DATA_OVERALL_VOTES::Q1(array($user_ID, $user_ID, $user_ID, $creationDate));}
public static function get_bar_bt_per_poll($poll_ID){
return \DBD\UVOTE_DATA_BT_PER_POLL::Q1(array($poll_ID));}
public static function get_user_count(){
return \DBD\UVOTE_DATA_USER_COUNT_USERS::Q1(array());}
public static function get_count_user_votes_per_poll($poll_ID){
return \DBD\UVOTE_DATA_USER_COUNT_CHOICE_PER_POLL::Q1(array($poll_ID));}
public static function get_user_per_party_overall($user_ID){
return \DBD\UVOTE_DATA_USER_PER_PARTY_OVERALL::QA(array($user_ID));
}
public static function get_user_to_bt_overall($user_ID){
return \DBD\UVOTE_DATA_USER_TO_BT::QA(array($user_ID));
}
public static function get_uvote_to_bt_overall(){
return \DBD\UVOTE_DATA_UVOTE_TO_PARTY_OVERALL::QA(array());
}
public static function vote_accord_with_party($party){
if (!\SYSTEM\SECURITY\Security::isloggedin()){
throw new ERROR("U need to be logged in....sry bro / sis");}
$user = \SYSTEM\SECURITY\Security::getUser()->id;
$data = \DBD\UVOTE_ACCORD_WITH_FRACTION::QA(array($party,$user));
//$data_escaped = array_walk_recursive($data, 'mysql_real_escape_string');
return \SYSTEM\LOG\JsonResult::toString($data);
}
public static function get_users_choice_per_poll($poll_ID){
return \DBD\UVOTE_DATA_USERS_CHOICE_PER_POLL::QA(array($poll_ID));}
public static function get_pfields_per_poll($poll_ID){
return \DBD\UVOTE_DATA_USERS_CHOICE_PER_POLL::QA(array($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();
// $res['title'] = utf8_encode($res['title']);
return $res;
}
public static function get_barsperparty($poll_ID){
return \DBD\UVOTE_DATA_PARTY_PER_POLL::QA(array($poll_ID));}
public static function get_party_choice($poll_ID, $party){
$res = \DBD\UVOTE_DATA_PARTY_CHOICE_PER_POLL::Q1(array($poll_ID, $party));
return $res;
}
public static function write_vote($poll_ID, $vote){
if(!\SYSTEM\SECURITY\Security::isLoggedIn()){
throw new ERROR("You need to be logged in.");}
$con = new \SYSTEM\DB\Connection(new \DBD\uVote());
$res = $con->prepare( 'selVote',
'SELECT * FROM `uvote_votes` WHERE `ID` = ? AND time_end < CURDATE();',
array($poll_ID));
if ($res->next()){
throw new ERROR('Your rights have expired!');}
$res = $con->prepare( 'insertVote',
'REPLACE uvote_data
VALUES (?, ?, ?, 0, NOW());',
array($poll_ID, \SYSTEM\SECURITY\Security::getUser()->id, $vote));
return JsonResult::ok();
}
public static function write_data($location, $birthyear, $gender, $children){
if(!\SYSTEM\SECURITY\Security::isLoggedIn()){
throw new ERROR("You need to be logged in.");}
return \DBD\UVOTE_DATA_USER_ADD_DATA_INSERT::Q1(array(\SYSTEM\SECURITY\Security::getUser()->id, $location, $birthyear, $gender, $children, \SYSTEM\SECURITY\Security::getUser()->id, $location, $birthyear, $gender, $children));}
public static function get_add_data(){
return \DBD\UVOTE_DATA_USER_ADD_DATA::Q1(array(\SYSTEM\SECURITY\Security::getUser()->id));
}
public static function write_feedback($feedback){
$feedback = json_decode($feedback);
if(!\SYSTEM\SECURITY\Security::isLoggedIn()){
throw new ERROR("You need to be logged in.");}
$con = new \SYSTEM\DB\Connection(new \DBD\uVote());
$res = $con->prepare( 'insertFeedback',
'INSERT INTO uvote_beta_feedback
VALUES (?, ?);',
array(\SYSTEM\SECURITY\Security::getUser()->id, $feedback));
new WARNING("feedback was added");
return JsonResult::ok();
}
public static function open_vote($poll_ID){
$vote = self::get_voteinfo($poll_ID); //votes::getVoteOfGroup($poll_ID);
$result = SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_page/full_vote.tpl'), $vote);
return $result;
}
}

6
uvote/autoload.inc Normal file
View File

@ -0,0 +1,6 @@
<?php
require_once dirname(__FILE__).'/path/autoload.inc';
require_once dirname(__FILE__).'/page/autoload.inc';
require_once dirname(__FILE__).'/dbd/autoload.inc.php';
require_once dirname(__FILE__).'/files/autoload.inc.php';
require_once dirname(__FILE__).'/api/autoload.inc.php';

View File

@ -0,0 +1,7 @@
<?php
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db/','DBD');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/tbl/','DBD');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','DBD');
//$autoload->registerFolder(dirname(__FILE__).'/tbl/definitions/','DBD\DEFINITIONS');
//$autoload->registerFolder(dirname(__FILE__).'/tbl/data/','DBD\DATA');
//$autoload->registerFolder(dirname(__FILE__).'/tbl/data_processed/','DBD\DATA_PROCESSED');

8
uvote/dbd/db/uVote.php Normal file
View File

@ -0,0 +1,8 @@
<?php
namespace DBD;
class uVote extends \SYSTEM\DB\DBInfoMYS {
public function __construct() {
parent::__construct('host_uVote', 'mojotrolls_dev', 'dsjgfasudzfsvad', '127.0.0.1');}
}

View File

@ -0,0 +1,17 @@
<?php
namespace DBD;
class UVOTE_ACCORD_WITH_FRACTION extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
' SELECT v.*, d.choice as user_choice, p.choice as party_choice
FROM uvote_data as d
LEFT JOIN uvote_votes as v
ON d.poll_ID = v.ID
LEFT JOIN uvote_votes_per_party as p
ON v.ID = p.poll_ID
WHERE p.party = ?
AND d.user_ID = ? AND d.choice = p.choice;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_ALL_VOTES extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) FROM uvote_data;'
);}}

View File

@ -0,0 +1,13 @@
<?php
namespace DBD;
class UVOTE_DATA_BT_INSERT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT INTO uvote_votes_per_party
(poll_ID, party, votes_pro, votes_contra, nr_attending, total, choice)
VALUES (?, ?, ?, ?, ?, ?, ?);'
);}}

View File

@ -0,0 +1,16 @@
<?php
namespace DBD;
class UVOTE_DATA_BT_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT
sum(votes_pro) as bt_pro,
sum(votes_contra) as bt_con,
sum(nr_attending) as bt_attending,
sum(total) as bt_total
FROM uvote_votes_per_party WHERE poll_ID = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_CHOICE_BT_OVERALL extends \SYSTEM\DB\QQ {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) as "count", bt_choice FROM uvote_votes GROUP BY bt_choice;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_CHOICE_OVERALL extends \SYSTEM\DB\QQ {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) as "count", choice FROM uvote_data GROUP BY choice;'
);}}

View File

@ -0,0 +1,19 @@
<?php
namespace DBD;
class UVOTE_DATA_GRAPH_BT_TO_USER_OVERALL_BY_TIME extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT
DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(a.`timestamp`) - MOD(UNIX_TIMESTAMP(a.`timestamp`),?)),"%Y/%m/%d %H:%i:%s") as day,
SUM(CASE WHEN a.choice = c.bt_choice THEN 1 ELSE 0 END) class_match,
SUM(CASE WHEN a.choice = c.bt_choice THEN 0 ELSE 1 END) class_mismatch
FROM uvote_data as a
LEFT JOIN (Select choice, poll_ID FROM uvote_data WHERE user_ID = ? GROUP BY choice LIMIT 1) b ON a.poll_ID = b.poll_ID
LEFT JOIN uvote_votes as c ON a.poll_ID = c.ID
WHERE bt_choice AND user_ID = ?
GROUP BY day;'
);}}

View File

@ -0,0 +1,19 @@
<?php
namespace DBD;
class UVOTE_DATA_GRAPH_BT_TO_UVOTE_OVERALL_BY_TIME extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT
DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(a.`timestamp`) - MOD(UNIX_TIMESTAMP(a.`timestamp`),?)),"%Y/%m/%d %H:%i:%s") as day,
SUM(CASE WHEN a.choice = c.bt_choice THEN 1 ELSE 0 END) class_match,
SUM(CASE WHEN a.choice = c.bt_choice THEN 0 ELSE 1 END) class_mismatch
FROM uvote_data as a
LEFT JOIN (Select choice, poll_ID FROM uvote_data GROUP BY choice LIMIT 1) b ON a.poll_ID = b.poll_ID
LEFT JOIN uvote_votes as c ON a.poll_ID = c.ID
WHERE bt_choice
GROUP BY day;'
);}}

View File

@ -0,0 +1,12 @@
<?php
namespace DBD;
class UVOTE_DATA_NEW_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT INTO `uvote_votes` (`title`, `iframe_link`)
VALUES (?, ?);'
);}}

View File

@ -0,0 +1,14 @@
<?php
namespace DBD;
class UVOTE_DATA_OVERALL_VOTES extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT SUM(CASE WHEN uvote_data.user_ID = ? THEN 1 ELSE 0 END) as voted,
SUM(CASE WHEN uvote_data.user_ID = ? THEN 0 ELSE 1 END) AS not_voted
FROM uvote_data RIGHT JOIN uvote_votes ON ( uvote_data.poll_ID = uvote_votes.ID AND uvote_data.user_ID = ?)
WHERE time_start > FROM_UNIXTIME(?);'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_PARTY_CHOICE_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT `choice` FROM `uvote_votes_per_party` WHERE `poll_ID` = ? AND `party` = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_PARTY_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM `uvote_votes_per_party` WHERE `poll_ID` = ? ORDER BY party;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_PFIELDS_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) as count, choice FROM uvote_data WHERE `poll_ID` = ? GROUP BY choice ORDER BY count DESC;'
);}}

View File

@ -0,0 +1,14 @@
<?php
namespace DBD;
class UVOTE_DATA_TEMP_VOTES extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT SUM(CASE WHEN uvote_data.user_ID = ? THEN 1 ELSE 0 END) as voted,
SUM(CASE WHEN uvote_data.user_ID = ? THEN 0 ELSE 1 END) AS not_voted
FROM uvote_data RIGHT JOIN uvote_votes ON ( uvote_data.poll_ID = uvote_votes.ID AND uvote_data.user_ID = ?)
WHERE time_end > NOW();'
);}}

View File

@ -0,0 +1,12 @@
<?php
namespace DBD;
class UVOTE_DATA_UPDATE_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'UPDATE `uvote_votes` SET `title` = ?, `iframe_link` = ?
WHERE ID = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USERS_CHOICE_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) as count, choice FROM uvote_data WHERE `poll_ID` = ? GROUP BY choice ORDER BY count DESC, choice;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_ADD_DATA extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM uvote_user_additional WHERE `user_ID` = ?;'
);}}

View File

@ -0,0 +1,12 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_ADD_DATA_INSERT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT INTO `uvote_user_additional` (`user_ID`, `location`, `birthyear`, `gender`, `children`) VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE user_ID = ?, location = ?, birthyear = ?, gender = ?, children = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_CHOICE_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM `uvote_data` WHERE poll_ID = ? AND `user_ID` = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_COMMENTRATE_INSERT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT INTO `uvote_user_comments_additional` (`c_ID`, `user_ID`, `val`, `timestamp`) VALUES (?, ?, ?, NOW()) ON DUPLICATE KEY UPDATE `c_ID` = ?, `user_ID` = ?, `val` = ?, `timestamp` = NOW();'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_COMMENTRATE_PER_COMMENT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) as count FROM uvote_user_comments_additional where c_ID = ? AND val = ?;'
);}}

View File

@ -0,0 +1,12 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_COMMENT_INSERT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT INTO `uvote_user_comments` (`c_choice`, `poll_ID`, `user_ID`, `c_txt`, `c_src`, `timestamp`)
VALUES (?, ?, ?, ?, ?, NOW());'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_COUNT_CHOICE_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) AS count FROM uvote_data WHERE `poll_ID` = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_COUNT_USERS extends \SYSTEM\DB\QQ {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT COUNT(*) AS count FROM system_user;'
);}}

View File

@ -0,0 +1,15 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_PER_PARTY_OVERALL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT party, sum(case when uvote_data.choice = uvote_votes_per_party.choice then 1 else 0 end) class_MATCH,
sum(case when uvote_data.choice = uvote_votes_per_party.choice then 0 else 1 end) class_MISSMATCH
FROM uvote_data INNER JOIN uvote_votes_per_party
ON uvote_data.poll_ID = uvote_votes_per_party.poll_ID
WHERE user_ID = ? GROUP BY party;'
);}}

View File

@ -0,0 +1,15 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_TO_BT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT sum(case when uvote_data.choice = uvote_votes.bt_choice then 1 else 0 end) class_MATCH,
sum(case when uvote_data.choice != uvote_votes.bt_choice then 1 else 0 end) class_MISSMATCH
FROM uvote_data LEFT JOIN uvote_votes
ON uvote_data.poll_ID = uvote_votes.ID
WHERE user_ID = ?;'
);}}

View File

@ -0,0 +1,15 @@
<?php
namespace DBD;
class UVOTE_DATA_USER_TO_PARTY_OVERALL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT sum(case when uvote_data.choice = uvote_votes_per_party.choice then 1 else 0 end) class_MATCH,
sum(case when uvote_data.choice != uvote_votes_per_party.choice then 1 else 0 end) class_MISSMATCH
FROM uvote_data LEFT JOIN uvote_votes_per_party
ON uvote_data.poll_ID = uvote_votes_per_party.poll_ID
WHERE party = ?;'
);}}

View File

@ -0,0 +1,14 @@
<?php
namespace DBD;
class UVOTE_DATA_UVOTE_TO_PARTY_OVERALL extends \SYSTEM\DB\QQ {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT party, sum(case when uvote_data.choice = uvote_votes_per_party.choice then 1 else 0 end) class_MATCH,
sum(case when uvote_data.choice != uvote_votes_per_party.choice then 1 else 0 end) class_MISSMATCH
FROM uvote_data INNER JOIN uvote_votes_per_party
ON uvote_data.poll_ID = uvote_votes_per_party.poll_ID GROUP BY party;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_GENERATE_COMMENTS_PER_POLL extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM `uvote_user_comments` WHERE `poll_ID` = ? AND c_choice = ? ORDER BY (txt_up-txt_down) ASC;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_GENERATE_VOTELIST extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM `uvote_votes` WHERE `group` = ? AND time_end > NOW() ORDER BY (time_end-time_start) ASC;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_GENERATE_VOTELIST_EXP extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM `uvote_votes` WHERE `group` = ? AND time_end < NOW() ORDER BY (time_end-time_start) ASC;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace DBD;
class UVOTE_POLL_EXPIRED extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT * FROM `uvote_votes` WHERE `ID` = ? AND time_end > CURDATE();'
);}}

View File

@ -0,0 +1,7 @@
SELECT
SUM(CASE WHEN a.choice = c.bt_choice THEN 1 ELSE 0 END) class_match,
SUM(CASE WHEN a.choice = c.bt_choice THEN 0 ELSE 1 END) class_mismatch
FROM uvote_data as a
LEFT JOIN (Select choice, poll_ID FROM uvote_data GROUP BY choice LIMIT 1) b ON a.poll_ID = b.poll_ID
LEFT JOIN uvote_votes as c ON a.poll_ID = c.ID
WHERE bt_choice

View File

@ -0,0 +1,9 @@
SELECT
DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(a.`timestamp`) - MOD(UNIX_TIMESTAMP(a.`timestamp`),86400)),"%Y/%m/%d %H:%i:%s") as day,
SUM(CASE WHEN a.choice = c.bt_choice THEN 1 ELSE 0 END) class_match,
SUM(CASE WHEN a.choice = c.bt_choice THEN 0 ELSE 1 END) class_mismatch
FROM uvote_data as a
LEFT JOIN (Select choice, poll_ID FROM uvote_data GROUP BY choice LIMIT 1) b ON a.poll_ID = b.poll_ID
LEFT JOIN uvote_votes as c ON a.poll_ID = c.ID
WHERE bt_choice
GROUP BY day

View File

@ -0,0 +1,2 @@
SELECT SUM(CASE WHEN uvote_data.user_ID = 15 THEN 1 ELSE 0 END) as voted,
SUM(CASE WHEN uvote_data.user_ID = 15 THEN 0 ELSE 1 END) as not_voted FROM uvote_data RIGHT JOIN uvote_votes ON ( uvote_data.poll_ID = uvote_votes.ID AND uvote_data.user_ID = 15);

View File

@ -0,0 +1,9 @@
<?php
namespace DBD;
class locale_string extends \SYSTEM\DBD\system_locale_string {
const VALUE_CATEGORY_MAINPAGE = 100;
}

BIN
uvote/docu/Konzept.docx Normal file

Binary file not shown.

BIN
uvote/docu/Kriterien.docx Normal file

Binary file not shown.

BIN
uvote/docu/ueber iVote.docx Normal file

Binary file not shown.

View File

@ -0,0 +1,4 @@
<?php
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'');
\SYSTEM\FILES\files::registerFolder(dirname(__FILE__).'/frontend_logos/','frontend_logos','*.png');

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

View File

@ -0,0 +1,2 @@
<?php
\SYSTEM\IMG\img::registerFolder(dirname(__FILE__).'/frontend_logos/','frontend_logos','*.png');

13
uvote/page/autoload.inc Normal file
View File

@ -0,0 +1,13 @@
<?php
SYSTEM\autoload::registerFolder(dirname(__FILE__),'');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_page','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_register','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_bulletin','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_comment','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_main','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_main_uVote','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_main_urVote','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_main_myVote','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_list','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_list_active','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/user_list_ended','');

View File

@ -0,0 +1,7 @@
<h5>${bulletin_bars_title}</h5>
${urvote_bars_user}
<div class="progress" id="progress_bars_user">
<div class="bar bar-success" style="width: ${vote_yes_perc}%;">${vote_yes_perc}%</div>
<div class="bar bar-danger" style="width: ${vote_no_perc}%;">${vote_no_perc}%</div>
<div class="bar bar-info" style="width: ${vote_ent_perc}%;">${vote_ent_perc}%</div>
</div>

View File

@ -0,0 +1,58 @@
<div id="bulletin_main">
<h4>${title}</h4>
${vote_buttons}
<div id="bulletin_left">
<img src="${frontend_logos}icon_urn_${vote_class}.png"/>
</div>
<div id="bulletin_sub1">
${openvote_help_text}
${title}
${openvote_help_text1}
</div>
<div>
${voice_weight}
</div>
<div id="bulletin_sub2">
${bars_user}<br>
${bars_bt}
</div>
<div id="bulletin_sub3">
${icons_party}
${choice_party}
</div>
<div id="divider"></div>
<br>
<div id="bulletin_sub4">
<h4>Kommentare</h4>
<div id="bulletin_sub5">
<div id="bulletin_sub5_sub">
<h5>Pro</h5>
${comments_pro}
</div>
<div id="bulletin_sub6">
<h5>Contra</h5>
${comments_con}
</div>
</div>
<div id="bulletin_sub7"></div>
<div>
<font size="2">Kommentar</font><br>
<textarea id="c_txt_pro"></textarea><br>
<font size="2">Quelle</font><br>
<input type="text" id="c_src_pro" placeholder="optional"/><br>
<select id="side_select" name="side_select">
<option>Seite</option>
<option value="1">Argument Pro</option>
<option value="2">Argument Con</option>
</select><br>
<div class="btn btn-primary submit_pro" id="submit_pro" poll_ID="${poll_ID}">${submit}</div>
</div>
</div>
<!--<div class="btn" id="test">
test
</div>
-->
</div><!-- /.modal -->

View File

@ -0,0 +1,17 @@
<div id="comment_main">
<div id="comment_sub1">${timestamp}</div>
<a style="float: right" class="btn btn-warning btn-mini c_spam" c_ID="${c_ID}"><i class="icon-white icon-exclamation-sign"></i></a>
<div id="comment_sub2"></div>
<div>${c_txt}</div>
<br>
<div id="comment_sub3">
${count_up}
<a class="btn btn-success btn-mini c_up" c_ID="${c_ID}"><i class="icon-white icon-thumbs-up"></i></a>
${count_down}
<a class="btn btn-danger btn-mini c_down" c_ID="${c_ID}"><i class="icon-white icon-thumbs-down"></i></a>
<div id="comment_sub4">Quelle:<font size="2">${c_src}</font></div>
</div>
</div>
<br>

View File

@ -0,0 +1,4 @@
.progress#progress_bars_user {
height: 20px;
width: 350px;
}

View File

@ -0,0 +1,48 @@
#bulletin_main {
float: left;
width: 100%;
}
#bulletin_left {
float: left;
}
#bulletin_sub1 {
margin-top: 30px;
}
#bulletin_sub2 {
float: left;
width: 50%;
padding-top: 30px;
}
#bulletin_sub3 {
float: right;
width: 50%;
padding-top: 30px;
}
#divider {
clear: both;
}
#bulletin_sub4 {
padding-top: 30px;
}
#bulletin_sub5 {
padding-top: 20px;
}
#bulletin_sub5_sub {
float: left;
width: 40%;
}
#bulletin_sub6 {
float: right;
width: 40%;
}
#bulletin_sub7 {
clear: both;
}

View File

@ -0,0 +1,22 @@
#comment_main {
float: left;
width: 90%;
}
#comment_sub1 {
float: left;
font-size: 1;
}
#comment_sub2 {
clear: both;
}
#comment_sub3 {
font-size: 2;
}
#comment_sub4 {
float: right;
font-size: 1;
}

View File

@ -0,0 +1,242 @@
<?php
class default_bulletin extends SYSTEM\PAGE\Page {
private $poll_ID = NULL;
public function __construct($poll_ID) {
$this->poll_ID=$poll_ID;}
public function vote_choice(){
$vars = votes::getUserPollData($this->poll_ID);
return $this->tablerow_class($vars);
}
private static function tablerow_class($choice){
switch($choice){
case 1:
return 'pro';
case 2:
return 'con';
case 3:
return 'ent';
default:
return 'open';
}
}
private function get_party_per_poll($choice){
switch($choice){
case 1:
return 'PRO';
case 2:
return 'CON';
case 3:
return 'ENT';
default:
return 'NONE';
}
}
private function choice_party (){
$result = '';
$party_votes = votes::get_barsperparty($this->poll_ID);
// $vote['bt_vote_class'] = $this->tablerow_class($vote['bt_choice']);
foreach($party_votes as $pv){
$result .= \SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/vote_bt.tpl'),
array( 'party' => $pv['party'],
'choice' => $this->get_party_per_poll($pv['choice']),
'choice_class' => $this->tablerow_class($pv['choice']),
'party_yes' => $pv['votes_pro'] > 0 ? round($pv['votes_pro']/$pv['total']*100,0) : $pv['votes_pro'],
'party_no' => $pv['votes_contra'] > 0 ? round($pv['votes_contra']/$pv['total']*100,0) : $pv['votes_contra'],
'party_off' => $pv['total'] > 0 ? round(($pv['total'] - $pv['nr_attending'])/$pv['total']*100,0) : $pv['total'],
'party_ent' => $pv['nr_attending'] > 0 ? round(($pv['nr_attending'] - $pv['votes_pro'] - $pv['votes_contra'])/$pv['nr_attending']*100,0) : $pv['nr_attending']));
}
return $result;
}
private function get_pro_comments (){
$result = '';
$vars = votes::getUserComments($this->poll_ID, 1);
foreach($vars as $com){
$rating = votes::get_commentrate($com['c_ID'], 1);
$com['count_up'] = $rating['count'];
$rating2 = votes::get_commentrate($com['c_ID'], 2);
$com['count_down'] = $rating2['count'];
// $com['c_txt'] = utf8_encode($com['c_txt']);
$result .= SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/comment.tpl'), $com);
}
return $result;
}
private function get_con_comments (){
$result = '';
$vars = votes::getUserComments($this->poll_ID, 2);
foreach($vars as $com){
$rating = votes::get_commentrate($com['c_ID'], 1);
$com['count_up'] = $rating['count'];
$rating2 = votes::get_commentrate($com['c_ID'], 2);
$com['count_down'] = $rating2['count'];
// $com['c_txt'] = utf8_encode($com['c_txt']);
$result .= SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/comment.tpl'), $com);
}
return $result;
}
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);
$bars['title'] = 'Gemessen auf uVote';
return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/bars_user.tpl'),$bars);
}
private function bars_party(){
$partyvotes = votes::get_barsperparty($this->poll_ID);
$result = "";
foreach($partyvotes as $vote){
$vote['party_yes'] = $vote['votes_pro'] > 0 ? round($vote['votes_pro']/$vote['total']*100,0) : $vote['votes_pro'];
$vote['party_no'] = $vote['votes_contra'] > 0 ? round($vote['votes_contra']/$vote['total']*100,0) : $vote['votes_contra'];
$vote['party_ent'] = $vote['nr_attending'] > 0 ? round(($vote['nr_attending'] - $vote['votes_pro'] - $vote['votes_contra'])/$vote['total']*100,0) : $vote['nr_attending'];
$result .= SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/table_parties.tpl'), $vote);
}
return $result;
}
private function icons_party(){
$vars = votes::get_bar_bt_per_poll($this->poll_ID);
if (!$vars['bt_total']){
return '';}
$info = array();
return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/icons_table_parties.tpl'), $info);
}
private function bars_bt(){
$vars = votes::get_bar_bt_per_poll($this->poll_ID);
if (!$vars['bt_total']){
return 'Keine Ergebnisse für den Bundestag verfügbar';}
$vars['bt_ent'] = round(($vars['bt_attending'] - $vars['bt_pro'] - $vars['bt_con'])/$vars['bt_total']*100,0);
$vars['bt_pro'] = round($vars['bt_pro']/$vars['bt_total']*100,0);
$vars['bt_con'] = round($vars['bt_con']/$vars['bt_total']*100,0);
return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/table_bt.tpl'), $vars);
}
private function voice_weight(){
$vars = votes::get_count_user_votes_per_poll($this->poll_ID);
$vars['voteweight'] = round(1/$vars['count']*100);
return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/voteweight.tpl'), $vars);
}
private function p_fields (){
$result = "";
$list = array (array(1, 'Aussenpolitik'),
array(2, 'Aussenpolitik'),
array(4, 'Aussenpolitik'),
array(8, 'Aussenpolitik'));
foreach($list as $l){
if($p_fields & $l[0]) $result .= $l[1];
}
return $result;
}
private function vote_buttons($poll_expired,$user_poll){
if($poll_expired){
if(!$user_poll){
return '<h5>Stimme hier ab</h5>
<a class="btn btn-success btn-default btnvote_yes"
style="width: 70px"
poll_ID="${poll_ID}"><font
size="3">Pro</font></a>
<a class="btn btn-danger btn-default btnvote_no"
style="width: 70px"
href="#"
poll_ID="${poll_ID}"><font
size="3">Contra</font></a>
<a class="btn btn-info btn-default btnvote_off"
style="width: 70px"
href="#"
poll_ID="${poll_ID}"><font
size="3">Enthaltung</font></a>';}
$classes = array('','','');
switch($user_poll){
case 1: $classes = array('btn-success disabled','btn-danger','btn-info'); break;
case 2: $classes = array('btn-success','btn-danger disabled','btn-info'); break;
case 3: $classes = array('btn-success','btn-danger','btn-info disabled'); break;
default: array('','','');
}
return ' <h5>Ändere deine Stimme hier ab</h5>
<a class="btn '.$classes[0].' btn-default btnvote_yes"
style="width: 70px"
poll_ID="${poll_ID}"><font
size="3">Pro</font></a>
<a class="btn '.$classes[1].' btn-default btnvote_no"
style="width: 70px"
href="#"
poll_ID="${poll_ID}"><font
size="3">Contra</font></a>
<a class="btn '.$classes[2].' btn-default btnvote_off"
style="width: 70px"
href="#"
poll_ID="${poll_ID}"><font
size="3">Enthaltung</font></a>
';
} else {
return 'ye soon to come infos';
}
}
private function js(){
return '<script src="'.SYSTEM\WEBPATH(new PPAGE(),'default_bulletin/js/vote.js').'"></script>';}
private function css(){
return '<link href="'.SYSTEM\WEBPATH(new PPAGE(),'default_bulletin\css\bars_user.css').'" rel="stylesheet">'.
'<link href="'.SYSTEM\WEBPATH(new PPAGE(),'default_bulletin\css\bulletin.css').'" rel="stylesheet">'.
'<link href="'.SYSTEM\WEBPATH(new PPAGE(),'default_bulletin\css\comment.css').'" rel="stylesheet">';}
public function html(){
$poll_expired = \DBD\UVOTE_POLL_EXPIRED::Q1(array($this->poll_ID));
$user_vote = votes::getUserPollData($this->poll_ID);
$vars = array();
$vars['choice_party'] = '';
$vars['voice_weight'] = $vars['bars_user'] = $vars['bars_bt'] = '';
$vars['bars_party'] = '';
$vars['icons_party'] = '';
$vars['vote_class'] = $this->vote_choice();
$vars['comments_pro'] = '';
$vars['comments_con'] = '';
$vars['js'] = $this->js();
$vars['css'] = $this->css();
$vars['vote_buttons'] = $this->vote_buttons($poll_expired,$user_vote);
// $vars['p_fields'] = $this->p_fields();
if($user_vote){
$vars['comments_pro'] = $this->get_pro_comments();
$vars['comments_con'] = $this->get_con_comments();
$vars['icons_party'] = $this->icons_party();
$vars['choice_party'] = $this->choice_party();
$vars['bars_party'] = $this->bars_party();
$vars['bars_user'] = $this->bars_user();
$vars['bars_bt'] = $this->bars_bt();
$vars['voice_weight'] = $this->voice_weight();
}
$vars['poll_ID'] = $this->poll_ID; //put it here - so its filled in!
$vars['frontend_logos'] = \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL).'api.php?call=img&cat=frontend_logos&id=';
$vars = array_merge($vars, \SYSTEM\locale::getStrings(DBD\locale_string::VALUE_CATEGORY_MAINPAGE));
$vars = array_merge($vars, \SYSTEM\locale::getStrings(150));
$vars = array_merge($vars, \SYSTEM\locale::getStrings(100));
$vars = array_merge($vars,votes::get_voteinfo($this->poll_ID));
return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/bulletin.tpl'),$vars);
}
}

View File

@ -0,0 +1,8 @@
<h5>${urvote_party_table_desc}</h5>
<div style="width: 500px;">
<div style="float: left"><img src="${frontend_logos}icon_urn.png" width="30"/></div>
<div style="float: left"></div>
<div style="margin-left: 50px; float: left"><img src="${frontend_logos}icon_urn_pro.png" width="30"/></div>
<div style="margin-left: 15px; float: left"><img src="${frontend_logos}icon_urn_con.png" width="30"/></div>
<div style="margin-left: 15px; float: left"><img src="${frontend_logos}icon_urn_ent.png" width="30"/></div>
</div>

View File

@ -0,0 +1,6 @@
Ergebnis Bundestag
<div class="progress" style="height: 20px; width: 350px;">
<div class="bar bar-success" style="width: ${bt_pro}%;">${bt_pro}%</div>
<div class="bar bar-danger" style="width: ${bt_con}%;">${bt_con}%</div>
<div class="bar bar-info" style="width: ${bt_ent}%;"><p>${bt_ent}%</p></div>
</div>

View File

@ -0,0 +1,6 @@
<div style="width: 50px; height: 20px; float: right; margin-right: 10px;">
<div class="badge badge-success" style="">${party_yes}%</div>
<div class="badge badge-danger" style="">${party_no}%</div>
<div class="badge badge-info" style="">${party_ent}%</div>
</div>

View File

@ -0,0 +1,8 @@
<div style="width: 500px; float: left">
<div style="float: left"><img src="${frontend_logos}icon_${party}.png" width="30"></div>
<div style="margin-left: 5px; width: 20px; float: left"class="badge ${choice_class}">${choice}</div>
<div style="margin-left: 5px; width: 20px; float: left"class="badge badge-success">${party_yes}%</div>
<div style="margin-left: 5px; width: 20px; float: left"class="badge badge-important">${party_no}%</div>
<div style="margin-left: 5px; width: 20px; float: left"class="badge badge-info">${party_ent}%</div>
<div style="margin-left: 5px; width: 20px; float: left"class="badge ">${party_off}%</div>
</div>

View File

@ -0,0 +1,4 @@
<div style="margin-top: 20px;">
Dein aktuelles Stimmgewicht bei dieser Abstimmung:
<span class="badge badge-info">${voteweight}%</span>
</div>

View File

@ -0,0 +1,4 @@
<div><font size="1">${timestamp}</font></div>
<div>${c_txt}</div>
<div><font size="2">${c_src}</font></div>
<br>

View File

@ -0,0 +1,87 @@
<?php
class default_comment extends SYSTEM\PAGE\Page {
private $poll_ID = NULL;
public function __construct($poll_ID) {
$this->poll_ID=$poll_ID;}
public function vote_choice(){
$vars = votes::getUserPollData($this->poll_ID);
return $this->tablerow_class($vars);
}
private static function tablerow_class($choice){
switch($choice){
case 1:
return 'pro';
case 2:
return 'con';
case 3:
return 'ent';
default:
return 'open';
}
}
private function get_pro_comments (){
$result = '';
$vars = votes::getUserComments($this->poll_ID, 1);
foreach($vars as $com){
$com['c_txt'] = utf8_encode($com['c_txt']);
$result .= SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/comment.tpl'), $com);
}
return $result;
}
private function get_con_comments (){
$result = '';
$vars = votes::getUserComments($this->poll_ID, 2);
foreach($vars as $com){
$com['c_txt'] = utf8_encode($com['c_txt']);
$result .= SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_bulletin/comment.tpl'), $com);
}
return $result;
}
private function js(){
return '<script src="'.SYSTEM\WEBPATH(new PPAGE(),'default_bulletin/js/vote.js').'"></script>';}
private function css(){
return '<link href="'.SYSTEM\WEBPATH(new PPAGE(),'default_page\css\default_page.css').'" rel="stylesheet">';}
public function html(){
$poll_expired = \DBD\UVOTE_POLL_EXPIRED::Q1(array($this->poll_ID));
$user_vote = votes::getUserPollData($this->poll_ID);
$vars = array();
$vars['comments_pro'] = '';
$vars['comments_con'] = '';
$vars['js'] = $this->js();
$vars['css'] = $this->css();
$vars['vote_buttons'] = $this->vote_buttons($poll_expired,$user_vote);
// $vars['p_fields'] = $this->p_fields();
if($user_vote){
$vars['comments_pro'] = $this->get_pro_comments();
$vars['comments_con'] = $this->get_con_comments();
}
$vars['poll_ID'] = $this->poll_ID; //put it here - so its filled in!
$vars['frontend_logos'] = \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL).'api.php?call=img&cat=frontend_logos&id=';
$vars = array_merge($vars, \SYSTEM\locale::getStrings(DBD\locale_string::VALUE_CATEGORY_MAINPAGE));
$vars = array_merge($vars, \SYSTEM\locale::getStrings(150));
$vars = array_merge($vars, \SYSTEM\locale::getStrings(100));
$vars = array_merge($vars,votes::get_voteinfo($this->poll_ID));
return SYSTEM\PAGE\replace::replaceFile(SYSTEM\SERVERPATH(new PPAGE(),'default_comment/comment.tpl'),$vars);
}
}

View File

@ -0,0 +1,6 @@
.row {
margin-right: 30px;
}
#cover_style {
margin-right: 25px;
}

View File

@ -0,0 +1,67 @@
body {
padding-top: 60px;
padding-bottom: 40px;
}
/*.list {
border: 2px solid #ccc;
}*/
.pro{
background: #5eb95e;
}
.con{
background: #ee5f5b;
}
.ent{
background: lightgrey;
}
.badge {
padding: 1px 9px 2px;
font-size: 12.025px;
font-weight: bold;
white-space: nowrap;
color: #ffffff;
background-color: #999999;
-webkit-border-radius: 9px;
-moz-border-radius: 9px;
border-radius: 9px;
}
.badge:hover {
color: #ffffff;
text-decoration: none;
cursor: pointer;
}
.badge-error {
background-color: #b94a48;
}
.badge-error:hover {
background-color: #953b39;
}
.badge-warning {
background-color: #f89406;
}
.badge-warning:hover {
background-color: #c67605;
}
.badge-success {
background-color: #468847;
}
.badge-success:hover {
background-color: #356635;
}
.badge-info {
background-color: #3a87ad;
}
.badge-info:hover {
background-color: #2d6987;
}
.badge-inverse {
background-color: #333333;
}
.badge-inverse:hover {
background-color: #1a1a1a;
}

View File

@ -0,0 +1,11 @@
.row {
margin: 0;
}
.span6 {
float: right
}
.span6#iframe_ {
width: 50%;
}

View File

@ -0,0 +1,9 @@
.row#row_loggedinform {
padding-bottom: 20px;
}
.btn#btn_loggedinform {
margin-left: 150px;
height: 100px;
width: 100px;
}

Some files were not shown because too many files have changed in this diff Show More