/justjs/wp-content/plugins/wp-polls/wp-polls.php
PHP | 1597 lines | 1322 code | 96 blank | 179 comment | 283 complexity | 16cd076de2b62224b46d89e807eb7738 MD5 | raw file
Possible License(s): GPL-2.0
Large files files are truncated, but you can click here to view the full file
- <?php
- /*
- Plugin Name: WP-Polls
- Plugin URI: http://lesterchan.net/portfolio/programming/php/
- Description: Adds an AJAX poll system to your WordPress blog. You can easily include a poll into your WordPress's blog post/page. WP-Polls is extremely customizable via templates and css styles and there are tons of options for you to choose to ensure that WP-Polls runs the way you wanted. It now supports multiple selection of answers.
- Version: 2.50
- Author: Lester 'GaMerZ' Chan
- Author URI: http://lesterchan.net
- */
-
-
- /*
- Copyright 2009 Lester Chan (email : lesterchan@gmail.com)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
- ### Load WP-Config File If This File Is Called Directly
- if (!function_exists('add_action')) {
- $wp_root = '../../..';
- if (file_exists($wp_root.'/wp-load.php')) {
- require_once($wp_root.'/wp-load.php');
- } else {
- require_once($wp_root.'/wp-config.php');
- }
- }
-
-
- ### Create Text Domain For Translations
- add_action('init', 'polls_textdomain');
- function polls_textdomain() {
- load_plugin_textdomain('wp-polls', false, 'wp-polls');
- }
-
-
- ### Polls Table Name
- global $wpdb;
- $wpdb->pollsq = $wpdb->prefix.'pollsq';
- $wpdb->pollsa = $wpdb->prefix.'pollsa';
- $wpdb->pollsip = $wpdb->prefix.'pollsip';
-
-
- ### Function: Poll Administration Menu
- add_action('admin_menu', 'poll_menu');
- function poll_menu() {
- if (function_exists('add_menu_page')) {
- add_menu_page(__('Polls', 'wp-polls'), __('Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php', '', plugins_url('wp-polls/images/poll.png'));
- }
- if (function_exists('add_submenu_page')) {
- add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
- add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
- add_submenu_page('wp-polls/polls-manager.php', __('Poll Options', 'wp-polls'), __('Poll Options', 'wp-polls'), 'manage_polls', 'wp-polls/polls-options.php');
- add_submenu_page('wp-polls/polls-manager.php', __('Poll Templates', 'wp-polls'), __('Poll Templates', 'wp-polls'), 'manage_polls', 'wp-polls/polls-templates.php');
- add_submenu_page('wp-polls/polls-manager.php', __('Uninstall WP-Polls', 'wp-polls'), __('Uninstall WP-Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-uninstall.php');
- }
- }
-
-
- ### Function: Get Poll
- function get_poll($temp_poll_id = 0, $display = true) {
- global $wpdb, $polls_loaded;
- // Poll Result Link
- $pollresult_id = intval($_GET['pollresult']);
- $temp_poll_id = intval($temp_poll_id);
- // Check Whether Poll Is Disabled
- if(intval(get_option('poll_currentpoll')) == -1) {
- if($display) {
- echo stripslashes(get_option('poll_template_disable'));
- return;
- } else {
- return stripslashes(get_option('poll_template_disable'));
- }
- // Poll Is Enabled
- } else {
- // Hardcoded Poll ID Is Not Specified
- switch($temp_poll_id) {
- // Random Poll
- case -2:
- $poll_id = $wpdb->get_var("SELECT pollq_id FROM $wpdb->pollsq WHERE pollq_active = 1 ORDER BY RAND() LIMIT 1");
- break;
- // Latest Poll
- case 0:
- // Random Poll
- if(intval(get_option('poll_currentpoll')) == -2) {
- $random_poll_id = $wpdb->get_var("SELECT pollq_id FROM $wpdb->pollsq WHERE pollq_active = 1 ORDER BY RAND() LIMIT 1");
- $poll_id = intval($random_poll_id);
- if($pollresult_id > 0) {
- $poll_id = $pollresult_id;
- } elseif(intval($_POST['poll_id']) > 0) {
- $poll_id = intval($_POST['poll_id']);
- }
- // Current Poll ID Is Not Specified
- } elseif(intval(get_option('poll_currentpoll')) == 0) {
- // Get Lastest Poll ID
- $poll_id = intval(get_option('poll_latestpoll'));
- } else {
- // Get Current Poll ID
- $poll_id = intval(get_option('poll_currentpoll'));
- }
- break;
- // Take Poll ID From Arguments
- default:
- $poll_id = $temp_poll_id;
- }
- }
-
- // Assign All Loaded Poll To $polls_loaded
- if(empty($polls_loaded)) {
- $polls_loaded = array();
- }
- if(!in_array($poll_id, $polls_loaded)) {
- $polls_loaded[] = $poll_id;
- }
-
- // User Click on View Results Link
- if($pollresult_id == $poll_id) {
- if($display) {
- echo display_pollresult($poll_id);
- return;
- } else {
- return display_pollresult($poll_id);
- }
- // Check Whether User Has Voted
- } else {
- $poll_active = $wpdb->get_var("SELECT pollq_active FROM $wpdb->pollsq WHERE pollq_id = $poll_id");
- $poll_active = intval($poll_active);
- $check_voted = check_voted($poll_id);
- if($poll_active == 0) {
- $poll_close = intval(get_option('poll_close'));
- } else {
- $poll_close = 0;
- }
- if($check_voted > 0 || ($poll_active == 0 && $poll_close == 1)) {
- if($display) {
- echo display_pollresult($poll_id, $check_voted);
- return;
- } else {
- return display_pollresult($poll_id, $check_voted);
- }
- } elseif(!check_allowtovote() || ($poll_active == 0 && $poll_close == 3)) {
- $disable_poll_js = '<script type="text/javascript">jQuery("#polls_form_'.$poll_id.' :input").each(function (i){jQuery(this).esc_attr("disabled","disabled")});</script>';
- if($display) {
- echo display_pollvote($poll_id).$disable_poll_js;
- return;
- } else {
- return display_pollvote($poll_id).$disable_poll_js;
- }
- } elseif($poll_active == 1) {
- if($display) {
- echo display_pollvote($poll_id);
- return;
- } else {
- return display_pollvote($poll_id);
- }
- }
- }
- }
-
-
- ### Function: Print Polls Stylesheets That Are Dynamic And jQuery At The Top
- add_action('wp_head', 'poll_head_scripts');
- function poll_head_scripts() {
- $pollbar = get_option('poll_bar');
- echo '<style type="text/css">'."\n";
- if($pollbar['style'] == 'use_css') {
- echo '.wp-polls .pollbar {'."\n";
- echo "\t".'margin: 1px;'."\n";
- echo "\t".'font-size: '.($pollbar['height']-2).'px;'."\n";
- echo "\t".'line-height: '.$pollbar['height'].'px;'."\n";
- echo "\t".'height: '.$pollbar['height'].'px;'."\n";
- echo "\t".'background: #'.$pollbar['background'].';'."\n";
- echo "\t".'border: 1px solid #'.$pollbar['border'].';'."\n";
- echo '}'."\n";
- } else {
- echo '.wp-polls .pollbar {'."\n";
- echo "\t".'margin: 1px;'."\n";
- echo "\t".'font-size: '.($pollbar['height']-2).'px;'."\n";
- echo "\t".'line-height: '.$pollbar['height'].'px;'."\n";
- echo "\t".'height: '.$pollbar['height'].'px;'."\n";
- echo "\t".'background-image: url(\''.plugins_url('wp-polls/images/'.$pollbar['style'].'/pollbg.gif').'\');'."\n";
- echo "\t".'border: 1px solid #'.$pollbar['border'].';'."\n";
- echo '}'."\n";
- }
- echo '</style>'."\n";
- wp_print_scripts('jquery');
- }
-
-
- ### Function: Enqueue Polls JavaScripts/CSS
- add_action('wp_enqueue_scripts', 'poll_scripts');
- function poll_scripts() {
- global $text_direction;
- if(@file_exists(TEMPLATEPATH.'/polls-css.css')) {
- wp_enqueue_style('wp-polls', get_stylesheet_directory_uri().'/polls-css.css', false, '2.50', 'all');
- } else {
- wp_enqueue_style('wp-polls', plugins_url('wp-polls/polls-css.css'), false, '2.50', 'all');
- }
- if('rtl' == $text_direction) {
- if(@file_exists(TEMPLATEPATH.'/polls-css-rtl.css')) {
- wp_enqueue_style('wp-polls-rtl', get_stylesheet_directory_uri().'/polls-css-rtl.css', false, '2.50', 'all');
- } else {
- wp_enqueue_style('wp-polls-rtl', plugins_url('wp-polls/polls-css-rtl.css'), false, '2.50', 'all');
- }
- }
- $poll_ajax_style = get_option('poll_ajax_style');
- $pollbar = get_option('poll_bar');
- wp_enqueue_script('wp-polls', plugins_url('wp-polls/polls-js.js'), array('jquery'), '2.50', true);
- wp_localize_script('wp-polls', 'pollsL10n', array(
- 'ajax_url' => plugins_url('wp-polls/wp-polls.php'),
- 'text_wait' => __('Your last request is still being processed. Please wait a while ...', 'wp-polls'),
- 'text_valid' => __('Please choose a valid poll answer.', 'wp-polls'),
- 'text_multiple' => __('Maximum number of choices allowed: ', 'wp-polls'),
- 'show_loading' => intval($poll_ajax_style['loading']),
- 'show_fading' => intval($poll_ajax_style['fading'])
- ));
- }
-
-
- ### Function: Enqueue Polls Stylesheets/JavaScripts In WP-Admin
- add_action('admin_enqueue_scripts', 'poll_scripts_admin');
- function poll_scripts_admin($hook_suffix) {
- global $text_direction;
- $poll_admin_pages = array('wp-polls/polls-manager.php', 'wp-polls/polls-add.php', 'wp-polls/polls-options.php', 'wp-polls/polls-templates.php', 'wp-polls/polls-uninstall.php');
- if(in_array($hook_suffix, $poll_admin_pages)) {
- wp_enqueue_style('wp-polls-admin', plugins_url('wp-polls/polls-admin-css.css'), false, '2.50', 'all');
- wp_enqueue_script('wp-polls-admin', plugins_url('wp-polls/polls-admin-js.js'), array('jquery'), '2.50', true);
- wp_localize_script('wp-polls-admin', 'pollsAdminL10n', array(
- 'admin_ajax_url' => plugins_url('wp-polls/polls-admin-ajax.php'),
- 'text_direction' => ('rtl' == $text_direction) ? 'left' : 'right',
- 'text_delete_poll' => __('Delete Poll', 'wp-polls'),
- 'text_no_poll_logs' => __('No poll logs available.', 'wp-polls'),
- 'text_delete_all_logs' => __('Delete All Logs', 'wp-polls'),
- 'text_checkbox_delete_all_logs' => __('Please check the \\\'Yes\\\' checkbox if you want to delete all logs.', 'wp-polls'),
- 'text_delete_poll_logs' => __('Delete Logs For This Poll Only', 'wp-polls'),
- 'text_checkbox_delete_poll_logs' => __('Please check the \\\'Yes\\\' checkbox if you want to delete all logs for this poll ONLY.', 'wp-polls'),
- 'text_delete_poll_ans' => __('Delete Poll Answer', 'wp-polls'),
- 'text_open_poll' => __('Open Poll', 'wp-polls'),
- 'text_close_poll' => __('Close Poll', 'wp-polls'),
- 'text_answer' => __('Answer', 'wp-polls'),
- 'text_remove_poll_answer' => __('Remove', 'wp-polls')
- ));
- }
- }
-
-
- ### Function: Displays Polls Footer In WP-Admin
- add_action('admin_footer-post-new.php', 'poll_footer_admin');
- add_action('admin_footer-post.php', 'poll_footer_admin');
- add_action('admin_footer-page-new.php', 'poll_footer_admin');
- add_action('admin_footer-page.php', 'poll_footer_admin');
- function poll_footer_admin() {
- // Javascript Code Courtesy Of WP-AddQuicktag (http://bueltge.de/wp-addquicktags-de-plugin/120/)
- echo '<script type="text/javascript">'."\n";
- echo '/* <![CDATA[ */'."\n";
- echo "\t".'var pollsEdL10n = {'."\n";
- echo "\t\t".'enter_poll_id: "'.js_escape(__('Enter Poll ID', 'wp-polls')).'",'."\n";
- echo "\t\t".'enter_poll_id_again: "'.js_escape(__('Error: Poll ID must be numeric', 'wp-polls')).'\n\n'.js_escape(__('Please enter Poll ID again', 'wp-polls')).'",'."\n";
- echo "\t\t".'poll: "'.js_escape(__('Poll', 'wp-polls')).'",'."\n";
- echo "\t\t".'insert_poll: "'.js_escape(__('Insert_Poll', 'wp-polls')).'",'."\n";
- echo "\t".'};'."\n";
- echo "\t".'function insertPoll(where, myField) {'."\n";
- echo "\t\t".'var poll_id = jQuery.trim(prompt(pollsEdL10n.enter_poll_id));'."\n";
- echo "\t\t".'while(isNaN(poll_id)) {'."\n";
- echo "\t\t\t".'poll_id = jQuery.trim(prompt(pollsEdL10n.enter_poll_id_again));'."\n";
- echo "\t\t".'}'."\n";
- echo "\t\t".'if (poll_id >= -1 && poll_id != null && poll_id != "") {'."\n";
- echo "\t\t\t".'if(where == \'code\') {'."\n";
- echo "\t\t\t\t".'edInsertContent(myField, \'[poll id="\' + poll_id + \'"]\');'."\n";
- echo "\t\t\t".'} else {'."\n";
- echo "\t\t\t\t".'return \'[poll id="\' + poll_id + \'"]\';'."\n";
- echo "\t\t\t".'}'."\n";
- echo "\t\t".'}'."\n";
- echo "\t".'}'."\n";
- echo "\t".'if(document.getElementById("ed_toolbar")){'."\n";
- echo "\t\t".'qt_toolbar = document.getElementById("ed_toolbar");'."\n";
- echo "\t\t".'edButtons[edButtons.length] = new edButton("ed_poll",pollsEdL10n.poll, "", "","");'."\n";
- echo "\t\t".'var qt_button = qt_toolbar.lastChild;'."\n";
- echo "\t\t".'while (qt_button.nodeType != 1){'."\n";
- echo "\t\t\t".'qt_button = qt_button.previousSibling;'."\n";
- echo "\t\t".'}'."\n";
- echo "\t\t".'qt_button = qt_button.cloneNode(true);'."\n";
- echo "\t\t".'qt_button.value = pollsEdL10n.poll;'."\n";
- echo "\t\t".'qt_button.title = pollsEdL10n.insert_poll;'."\n";
- echo "\t\t".'qt_button.onclick = function () { insertPoll(\'code\', edCanvas);}'."\n";
- echo "\t\t".'qt_button.id = "ed_poll";'."\n";
- echo "\t\t".'qt_toolbar.appendChild(qt_button);'."\n";
- echo "\t".'}'."\n";
- echo '/* ]]> */'."\n";
- echo '</script>'."\n";
- }
-
-
- ### Function: Add Favourite Actions >= WordPress 2.7
- add_filter('favorite_actions', 'poll_favorite_actions');
- function poll_favorite_actions($favorite_actions) {
- $favorite_actions['admin.php?page=wp-polls/polls-add.php'] = array(__('Add Poll', 'wp-polls'), 'manage_polls');
- return $favorite_actions;
- }
-
-
- ### Function: Add Quick Tag For Poll In TinyMCE >= WordPress 2.5
- add_action('init', 'poll_tinymce_addbuttons');
- function poll_tinymce_addbuttons() {
- if(!current_user_can('edit_posts') && ! current_user_can('edit_pages')) {
- return;
- }
- if(get_user_option('rich_editing') == 'true') {
- add_filter("mce_external_plugins", "poll_tinymce_addplugin");
- add_filter('mce_buttons', 'poll_tinymce_registerbutton');
- }
- }
- function poll_tinymce_registerbutton($buttons) {
- array_push($buttons, 'separator', 'polls');
- return $buttons;
- }
- function poll_tinymce_addplugin($plugin_array) {
- $plugin_array['polls'] = plugins_url('wp-polls/tinymce/plugins/polls/editor_plugin.js');
- return $plugin_array;
- }
-
-
- ### Function: Check Who Is Allow To Vote
- function check_allowtovote() {
- global $user_ID;
- $user_ID = intval($user_ID);
- $allow_to_vote = intval(get_option('poll_allowtovote'));
- switch($allow_to_vote) {
- // Guests Only
- case 0:
- if($user_ID > 0) {
- return false;
- }
- return true;
- break;
- // Registered Users Only
- case 1:
- if($user_ID == 0) {
- return false;
- }
- return true;
- break;
- // Registered Users And Guests
- case 2:
- default:
- return true;
- }
- }
-
-
- ### Funcrion: Check Voted By Cookie Or IP
- function check_voted($poll_id) {
- $poll_logging_method = intval(get_option('poll_logging_method'));
- switch($poll_logging_method) {
- // Do Not Log
- case 0:
- return 0;
- break;
- // Logged By Cookie
- case 1:
- return check_voted_cookie($poll_id);
- break;
- // Logged By IP
- case 2:
- return check_voted_ip($poll_id);
- break;
- // Logged By Cookie And IP
- case 3:
- $check_voted_cookie = check_voted_cookie($poll_id);
- if(!empty($check_voted_cookie)) {
- return $check_voted_cookie;
- } else {
- return check_voted_ip($poll_id);
- }
- break;
- // Logged By Username
- case 4:
- return check_voted_username($poll_id);
- break;
- }
- }
-
-
- ### Function: Check Voted By Cookie
- function check_voted_cookie($poll_id) {
- if(!empty($_COOKIE["voted_$poll_id"])) {
- $get_voted_aids = explode(',', $_COOKIE["voted_$poll_id"]);
- } else {
- $get_voted_aids = 0;
- }
- return $get_voted_aids;
- }
-
-
- ### Function: Check Voted By IP
- function check_voted_ip($poll_id) {
- global $wpdb;
- $log_expiry = intval(get_option('poll_cookielog_expiry'));
- $log_expiry_sql = '';
- if($log_expiry > 0) {
- $log_expiry_sql = 'AND ('.current_time('timestamp').'-(pollip_timestamp+0)) < '.$log_expiry;
- }
- // Check IP From IP Logging Database
- $get_voted_aids = $wpdb->get_col("SELECT pollip_aid FROM $wpdb->pollsip WHERE pollip_qid = $poll_id AND pollip_ip = '".get_ipaddress()."' $log_expiry_sql");
- if($get_voted_aids) {
- return $get_voted_aids;
- } else {
- return 0;
- }
- }
-
-
- ### Function: Check Voted By Username
- function check_voted_username($poll_id) {
- global $wpdb, $user_ID;
- // Check IP If User Is Guest
- if (!is_user_logged_in()) {
- return 1;
- }
- $pollsip_userid = intval($user_ID);
- $log_expiry = intval(get_option('poll_cookielog_expiry'));
- $log_expiry_sql = '';
- if($log_expiry > 0) {
- $log_expiry_sql = 'AND ('.current_time('timestamp').'-(pollip_timestamp+0)) < '.$log_expiry;
- }
- // Check User ID From IP Logging Database
- $get_voted_aids = $wpdb->get_col("SELECT pollip_aid FROM $wpdb->pollsip WHERE pollip_qid = $poll_id AND pollip_userid = $pollsip_userid $log_expiry_sql");
- if($get_voted_aids) {
- return $get_voted_aids;
- } else {
- return 0;
- }
- }
-
-
- ### Function: Display Voting Form
- function display_pollvote($poll_id, $display_loading = true) {
- global $wpdb;
- // Temp Poll Result
- $temp_pollvote = '';
- // Get Poll Question Data
- $poll_question = $wpdb->get_row("SELECT pollq_id, pollq_question, pollq_totalvotes, pollq_timestamp, pollq_expiry, pollq_multiple, pollq_totalvoters FROM $wpdb->pollsq WHERE pollq_id = $poll_id LIMIT 1");
- // Poll Question Variables
- $poll_question_text = stripslashes($poll_question->pollq_question);
- $poll_question_id = intval($poll_question->pollq_id);
- $poll_question_totalvotes = intval($poll_question->pollq_totalvotes);
- $poll_question_totalvoters = intval($poll_question->pollq_totalvoters);
- $poll_start_date = mysql2date(sprintf(__('%s @ %s', 'wp-polls'), get_option('date_format'), get_option('time_format')), gmdate('Y-m-d H:i:s', $poll_question->pollq_timestamp));
- $poll_expiry = trim($poll_question->pollq_expiry);
- if(empty($poll_expiry)) {
- $poll_end_date = __('No Expiry', 'wp-polls');
- } else {
- $poll_end_date = mysql2date(sprintf(__('%s @ %s', 'wp-polls'), get_option('date_format'), get_option('time_format')), gmdate('Y-m-d H:i:s', $poll_expiry));
- }
- $poll_multiple_ans = intval($poll_question->pollq_multiple);
- $template_question = stripslashes(get_option('poll_template_voteheader'));
- $template_question = str_replace("%POLL_QUESTION%", $poll_question_text, $template_question);
- $template_question = str_replace("%POLL_ID%", $poll_question_id, $template_question);
- $template_question = str_replace("%POLL_TOTALVOTES%", $poll_question_totalvotes, $template_question);
- $template_question = str_replace("%POLL_TOTALVOTERS%", $poll_question_totalvoters, $template_question);
- $template_question = str_replace("%POLL_START_DATE%", $poll_start_date, $template_question);
- $template_question = str_replace("%POLL_END_DATE%", $poll_end_date, $template_question);
- if($poll_multiple_ans > 0) {
- $template_question = str_replace("%POLL_MULTIPLE_ANS_MAX%", $poll_multiple_ans, $template_question);
- } else {
- $template_question = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_question);
- }
- // Get Poll Answers Data
- $poll_answers = $wpdb->get_results("SELECT polla_aid, polla_answers, polla_votes FROM $wpdb->pollsa WHERE polla_qid = $poll_question_id ORDER BY ".get_option('poll_ans_sortby').' '.get_option('poll_ans_sortorder'));
- // If There Is Poll Question With Answers
- if($poll_question && $poll_answers) {
- // Display Poll Voting Form
- $temp_pollvote .= "<div id=\"polls-$poll_question_id\" class=\"wp-polls\">\n";
- $temp_pollvote .= "\t<form id=\"polls_form_$poll_question_id\" class=\"wp-polls-form\" action=\"".htmlspecialchars($_SERVER['REQUEST_URI'])."\" method=\"post\">\n";
- $temp_pollvote .= "\t\t<p style=\"display: none;\"><input type=\"hidden\" name=\"poll_id\" value=\"$poll_question_id\" /></p>\n";
- if($poll_multiple_ans > 0) {
- $temp_pollvote .= "\t\t<p style=\"display: none;\"><input type=\"hidden\" id=\"poll_multiple_ans_$poll_question_id\" name=\"poll_multiple_ans_$poll_question_id\" value=\"$poll_multiple_ans\" /></p>\n";
- }
- // Print Out Voting Form Header Template
- $temp_pollvote .= "\t\t$template_question\n";
- foreach($poll_answers as $poll_answer) {
- // Poll Answer Variables
- $poll_answer_id = intval($poll_answer->polla_aid);
- $poll_answer_text = stripslashes($poll_answer->polla_answers);
- $poll_answer_votes = intval($poll_answer->polla_votes);
- $template_answer = stripslashes(get_option('poll_template_votebody'));
- $template_answer = str_replace("%POLL_ID%", $poll_question_id, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_ID%", $poll_answer_id, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER%", $poll_answer_text, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_VOTES%", number_format_i18n($poll_answer_votes), $template_answer);
- if($poll_multiple_ans > 0) {
- $template_answer = str_replace("%POLL_CHECKBOX_RADIO%", 'checkbox', $template_answer);
- } else {
- $template_answer = str_replace("%POLL_CHECKBOX_RADIO%", 'radio', $template_answer);
- }
- // Print Out Voting Form Body Template
- $temp_pollvote .= "\t\t$template_answer\n";
- }
- // Determine Poll Result URL
- $poll_result_url = $_SERVER['REQUEST_URI'];
- $poll_result_url = preg_replace('/pollresult=(\d+)/i', 'pollresult='.$poll_question_id, $poll_result_url);
- if(intval($_GET['pollresult']) == 0) {
- if(strpos($poll_result_url, '?') !== false) {
- $poll_result_url = "$poll_result_url&pollresult=$poll_question_id";
- } else {
- $poll_result_url = "$poll_result_url?pollresult=$poll_question_id";
- }
- }
- // Voting Form Footer Variables
- $template_footer = stripslashes(get_option('poll_template_votefooter'));
- $template_footer = str_replace("%POLL_ID%", $poll_question_id, $template_footer);
- $template_footer = str_replace("%POLL_RESULT_URL%", $poll_result_url, $template_footer);
- $template_footer = str_replace("%POLL_START_DATE%", $poll_start_date, $template_footer);
- $template_footer = str_replace("%POLL_END_DATE%", $poll_end_date, $template_footer);
- if($poll_multiple_ans > 0) {
- $template_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", $poll_multiple_ans, $template_footer);
- } else {
- $template_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_footer);
- }
- // Print Out Voting Form Footer Template
- $temp_pollvote .= "\t\t$template_footer\n";
- $temp_pollvote .= "\t</form>\n";
- $temp_pollvote .= "</div>\n";
- if($display_loading) {
- $poll_ajax_style = get_option('poll_ajax_style');
- if(intval($poll_ajax_style['loading']) == 1) {
- $temp_pollvote .= "<div id=\"polls-$poll_question_id-loading\" class=\"wp-polls-loading\"><img src=\"".plugins_url('wp-polls/images/loading.gif')."\" width=\"16\" height=\"16\" alt=\"".__('Loading', 'wp-polls')." ...\" title=\"".__('Loading', 'wp-polls')." ...\" class=\"wp-polls-image\" /> ".__('Loading', 'wp-polls')." ...</div>\n";
- }
- }
- } else {
- $temp_pollvote .= stripslashes(get_option('poll_template_disable'));
- }
- // Return Poll Vote Template
- return $temp_pollvote;
- }
-
-
- ### Function: Display Results Form
- function display_pollresult($poll_id, $user_voted = '', $display_loading = true) {
- global $wpdb;
- // User Voted
- if(!is_array($user_voted)) {
- $user_voted = array();
- }
- // Temp Poll Result
- $temp_pollresult = '';
- // Most/Least Variables
- $poll_most_answer = '';
- $poll_most_votes = 0;
- $poll_most_percentage = 0;
- $poll_least_answer = '';
- $poll_least_votes = 0;
- $poll_least_percentage = 0;
- // Get Poll Question Data
- $poll_question = $wpdb->get_row("SELECT pollq_id, pollq_question, pollq_totalvotes, pollq_active, pollq_timestamp, pollq_expiry, pollq_multiple, pollq_totalvoters FROM $wpdb->pollsq WHERE pollq_id = $poll_id LIMIT 1");
- // Poll Question Variables
- $poll_question_text = stripslashes($poll_question->pollq_question);
- $poll_question_id = intval($poll_question->pollq_id);
- $poll_question_totalvotes = intval($poll_question->pollq_totalvotes);
- $poll_question_totalvoters = intval($poll_question->pollq_totalvoters);
- $poll_question_active = intval($poll_question->pollq_active);
- $poll_start_date = mysql2date(sprintf(__('%s @ %s', 'wp-polls'), get_option('date_format'), get_option('time_format')), gmdate('Y-m-d H:i:s', $poll_question->pollq_timestamp));
- $poll_expiry = trim($poll_question->pollq_expiry);
- if(empty($poll_expiry)) {
- $poll_end_date = __('No Expiry', 'wp-polls');
- } else {
- $poll_end_date = mysql2date(sprintf(__('%s @ %s', 'wp-polls'), get_option('date_format'), get_option('time_format')), gmdate('Y-m-d H:i:s', $poll_expiry));
- }
- $poll_multiple_ans = intval($poll_question->pollq_multiple);
- $template_question = stripslashes(get_option('poll_template_resultheader'));
- $template_question = str_replace("%POLL_QUESTION%", $poll_question_text, $template_question);
- $template_question = str_replace("%POLL_ID%", $poll_question_id, $template_question);
- $template_question = str_replace("%POLL_TOTALVOTES%", $poll_question_totalvotes, $template_question);
- $template_question = str_replace("%POLL_TOTALVOTERS%", $poll_question_totalvoters, $template_question);
- $template_question = str_replace("%POLL_START_DATE%", $poll_start_date, $template_question);
- $template_question = str_replace("%POLL_END_DATE%", $poll_end_date, $template_question);
- if($poll_multiple_ans > 0) {
- $template_question = str_replace("%POLL_MULTIPLE_ANS_MAX%", $poll_multiple_ans, $template_question);
- } else {
- $template_question = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_question);
- }
- // Get Poll Answers Data
- $poll_answers = $wpdb->get_results("SELECT polla_aid, polla_answers, polla_votes FROM $wpdb->pollsa WHERE polla_qid = $poll_question_id ORDER BY ".get_option('poll_ans_result_sortby').' '.get_option('poll_ans_result_sortorder'));
- // If There Is Poll Question With Answers
- if($poll_question && $poll_answers) {
- // Store The Percentage Of The Poll
- $poll_answer_percentage_array = array();
- // Is The Poll Total Votes 0?
- $poll_totalvotes_zero = true;
- if($poll_question_totalvotes > 0) {
- $poll_totalvotes_zero = false;
- }
- // Print Out Result Header Template
- $temp_pollresult .= "<div id=\"polls-$poll_question_id\" class=\"wp-polls\">\n";
- $temp_pollresult .= "\t\t$template_question\n";
- foreach($poll_answers as $poll_answer) {
- // Poll Answer Variables
- $poll_answer_id = intval($poll_answer->polla_aid);
- $poll_answer_text = stripslashes($poll_answer->polla_answers);
- $poll_answer_votes = intval($poll_answer->polla_votes);
- $poll_answer_percentage = 0;
- $poll_answer_imagewidth = 0;
- // Calculate Percentage And Image Bar Width
- if(!$poll_totalvotes_zero) {
- if($poll_answer_votes > 0) {
- $poll_answer_percentage = round((($poll_answer_votes/$poll_question_totalvoters)*100));
- $poll_answer_imagewidth = round($poll_answer_percentage);
- if($poll_answer_imagewidth == 100) {
- $poll_answer_imagewidth = 99;
- }
- } else {
- $poll_answer_percentage = 0;
- $poll_answer_imagewidth = 1;
- }
- } else {
- $poll_answer_percentage = 0;
- $poll_answer_imagewidth = 1;
- }
- // Make Sure That Total Percentage Is 100% By Adding A Buffer To The Last Poll Answer
- if($poll_multiple_ans == 0) {
- $poll_answer_percentage_array[] = $poll_answer_percentage;
- if(sizeof($poll_answer_percentage_array) == sizeof($poll_answers)) {
- $percentage_error_buffer = 100 - array_sum($poll_answer_percentage_array);
- $poll_answer_percentage = $poll_answer_percentage + $percentage_error_buffer;
- }
- }
- // Let User See What Options They Voted
- if(in_array($poll_answer_id, $user_voted)) {
- // Results Body Variables
- $template_answer = stripslashes(get_option('poll_template_resultbody2'));
- $template_answer = str_replace("%POLL_ANSWER_ID%", $poll_answer_id, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER%", $poll_answer_text, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_TEXT%", htmlspecialchars(strip_tags($poll_answer_text)), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_VOTES%", number_format_i18n($poll_answer_votes), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_PERCENTAGE%", $poll_answer_percentage, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_IMAGEWIDTH%", $poll_answer_imagewidth, $template_answer);
- // Print Out Results Body Template
- $temp_pollresult .= "\t\t$template_answer\n";
- } else {
- // Results Body Variables
- $template_answer = stripslashes(get_option('poll_template_resultbody'));
- $template_answer = str_replace("%POLL_ANSWER_ID%", $poll_answer_id, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER%", $poll_answer_text, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_TEXT%", htmlspecialchars(strip_tags($poll_answer_text)), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_VOTES%", number_format_i18n($poll_answer_votes), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_PERCENTAGE%", $poll_answer_percentage, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_IMAGEWIDTH%", $poll_answer_imagewidth, $template_answer);
- // Print Out Results Body Template
- $temp_pollresult .= "\t\t$template_answer\n";
- }
- // Get Most Voted Data
- if($poll_answer_votes > $poll_most_votes) {
- $poll_most_answer = $poll_answer_text;
- $poll_most_votes = $poll_answer_votes;
- $poll_most_percentage = $poll_answer_percentage;
- }
- // Get Least Voted Data
- if($poll_least_votes == 0) {
- $poll_least_votes = $poll_answer_votes;
- }
- if($poll_answer_votes <= $poll_least_votes) {
- $poll_least_answer = $poll_answer_text;
- $poll_least_votes = $poll_answer_votes;
- $poll_least_percentage = $poll_answer_percentage;
- }
- }
- // Results Footer Variables
- if(!empty($user_voted) || $poll_question_active == 0 || !check_allowtovote()) {
- $template_footer = stripslashes(get_option('poll_template_resultfooter'));
- } else {
- $template_footer = stripslashes(get_option('poll_template_resultfooter2'));
- }
- $template_footer = str_replace("%POLL_START_DATE%", $poll_start_date, $template_footer);
- $template_footer = str_replace("%POLL_END_DATE%", $poll_end_date, $template_footer);
- $template_footer = str_replace("%POLL_ID%", $poll_question_id, $template_footer);
- $template_footer = str_replace("%POLL_TOTALVOTES%", number_format_i18n($poll_question_totalvotes), $template_footer);
- $template_footer = str_replace("%POLL_TOTALVOTERS%", number_format_i18n($poll_question_totalvoters), $template_footer);
- $template_footer = str_replace("%POLL_MOST_ANSWER%", $poll_most_answer, $template_footer);
- $template_footer = str_replace("%POLL_MOST_VOTES%", number_format_i18n($poll_most_votes), $template_footer);
- $template_footer = str_replace("%POLL_MOST_PERCENTAGE%", $poll_most_percentage, $template_footer);
- $template_footer = str_replace("%POLL_LEAST_ANSWER%", $poll_least_answer, $template_footer);
- $template_footer = str_replace("%POLL_LEAST_VOTES%", number_format_i18n($poll_least_votes), $template_footer);
- $template_footer = str_replace("%POLL_LEAST_PERCENTAGE%", $poll_least_percentage, $template_footer);
- if($poll_multiple_ans > 0) {
- $template_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", $poll_multiple_ans, $template_footer);
- } else {
- $template_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_footer);
- }
- // Print Out Results Footer Template
- $temp_pollresult .= "\t\t$template_footer\n";
- $temp_pollresult .= "</div>\n";
- if($display_loading) {
- $poll_ajax_style = get_option('poll_ajax_style');
- if(intval($poll_ajax_style['loading']) == 1) {
- $temp_pollresult .= "<div id=\"polls-$poll_question_id-loading\" class=\"wp-polls-loading\"><img src=\"".plugins_url('wp-polls/images/loading.gif')."\" width=\"16\" height=\"16\" alt=\"".__('Loading', 'wp-polls')." ...\" title=\"".__('Loading', 'wp-polls')." ...\" class=\"wp-polls-image\" /> ".__('Loading', 'wp-polls')." ...</div>\n";
- }
- }
- } else {
- $temp_pollresult .= stripslashes(get_option('poll_template_disable'));
- }
- // Return Poll Result
- return $temp_pollresult;
- }
-
-
- ### Function: Get IP Address
- if(!function_exists('get_ipaddress')) {
- function get_ipaddress() {
- if (empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {
- $ip_address = $_SERVER["REMOTE_ADDR"];
- } else {
- $ip_address = $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- if(strpos($ip_address, ',') !== false) {
- $ip_address = explode(',', $ip_address);
- $ip_address = $ip_address[0];
- }
- return $ip_address;
- }
- }
-
-
- ### Function: Short Code For Inserting Polls Archive Into Page
- add_shortcode('page_polls', 'poll_page_shortcode');
- function poll_page_shortcode($atts) {
- return polls_archive();
- }
-
-
- ### Function: Short Code For Inserting Polls Into Posts
- add_shortcode('poll', 'poll_shortcode');
- function poll_shortcode($atts) {
- extract(shortcode_atts(array('id' => 0, 'type' => 'vote'), $atts));
- if(!is_feed()) {
- if($type == 'vote') {
- return get_poll($id, false);
- } elseif($type == 'result') {
- return display_pollresult($id);
- }
- } else {
- return __('Note: There is a poll embedded within this post, please visit the site to participate in this post\'s poll.', 'wp-polls');
- }
- }
-
-
- ### Function: Get Poll Total Questions
- if(!function_exists('get_pollquestions')) {
- function get_pollquestions($display = true) {
- global $wpdb;
- $totalpollq = intval($wpdb->get_var("SELECT COUNT(pollq_id) FROM $wpdb->pollsq"));
- if($display) {
- echo $totalpollq;
- } else {
- return $totalpollq;
- }
- }
- }
-
-
- ### Function: Get Poll Total Answers
- if(!function_exists('get_pollanswers')) {
- function get_pollanswers($display = true) {
- global $wpdb;
- $totalpolla = intval($wpdb->get_var("SELECT COUNT(polla_aid) FROM $wpdb->pollsa"));
- if($display) {
- echo $totalpolla;
- } else {
- return $totalpolla;
- }
- }
- }
-
-
- ### Function: Get Poll Total Votes
- if(!function_exists('get_pollvotes')) {
- function get_pollvotes($display = true) {
- global $wpdb;
- $totalvotes = intval($wpdb->get_var("SELECT SUM(pollq_totalvotes) FROM $wpdb->pollsq"));
- if($display) {
- echo $totalvotes;
- } else {
- return $totalvotes;
- }
- }
- }
-
-
- ### Function: Get Poll Total Voters
- if(!function_exists('get_pollvoters')) {
- function get_pollvoters($display = true) {
- global $wpdb;
- $totalvoters = intval($wpdb->get_var("SELECT SUM(pollq_totalvoters) FROM $wpdb->pollsq"));
- if($display) {
- echo $totalvoters;
- } else {
- return $totalvoters;
- }
- }
- }
-
-
- ### Function: Check Voted To Get Voted Answer
- function check_voted_multiple($poll_id, $polls_ips) {
- if(!empty($_COOKIE["voted_$poll_id"])) {
- return explode(',', $_COOKIE["voted_$poll_id"]);
- } else {
- if($polls_ips) {
- return $polls_ips;
- } else {
- return array();
- }
- }
- }
-
-
- ### Function: Polls Archive Link
- function polls_archive_link($page) {
- $polls_archive_url = get_option('poll_archive_url');
- if($page > 0) {
- if(strpos($polls_archive_url, '?') !== false) {
- $polls_archive_url = "$polls_archive_url&poll_page=$page";
- } else {
- $polls_archive_url = "$polls_archive_url?poll_page=$page";
- }
- }
- return $polls_archive_url;
- }
-
-
- ### Function: Displays Polls Archive Link
- function display_polls_archive_link($display = true) {
- $template_pollarchivelink = stripslashes(get_option('poll_template_pollarchivelink'));
- $template_pollarchivelink = str_replace("%POLL_ARCHIVE_URL%", get_option('poll_archive_url'), $template_pollarchivelink);
- if($display) {
- echo $template_pollarchivelink;
- } else{
- return $template_pollarchivelink;
- }
- }
-
-
- ### Function: Display Polls Archive
- function polls_archive() {
- global $wpdb, $in_pollsarchive;
- // Polls Variables
- $in_pollsarchive = true;
- $page = intval($_GET['poll_page']);
- $polls_questions = array();
- $polls_answers = array();
- $polls_ip = array();
- $polls_perpage = intval(get_option('poll_archive_perpage'));
- $poll_questions_ids = '0';
- $poll_voted = false;
- $poll_voted_aid = 0;
- $poll_id = 0;
- $pollsarchive_output_archive = '';
- $polls_type = intval(get_option('poll_archive_displaypoll'));
- $polls_type_sql = '';
- // Determine What Type Of Polls To Show
- switch($polls_type) {
- case 1:
- $polls_type_sql = 'pollq_active = 0';
- break;
- case 2:
- $polls_type_sql = 'pollq_active = 1';
- break;
- case 3:
- $polls_type_sql = 'pollq_active IN (0,1)';
- break;
- }
- // Get Total Polls
- $total_polls = $wpdb->get_var("SELECT COUNT(pollq_id) FROM $wpdb->pollsq WHERE $polls_type_sql AND pollq_active != -1");
-
- // Calculate Paging
- $numposts = $total_polls;
- $perpage = $polls_perpage;
- $max_page = ceil($numposts/$perpage);
- if(empty($page) || $page == 0) {
- $page = 1;
- }
- $offset = ($page-1) * $perpage;
- $pages_to_show = 10;
- $pages_to_show_minus_1 = $pages_to_show-1;
- $half_page_start = floor($pages_to_show_minus_1/2);
- $half_page_end = ceil($pages_to_show_minus_1/2);
- $start_page = $page - $half_page_start;
- if($start_page <= 0) {
- $start_page = 1;
- }
- $end_page = $page + $half_page_end;
- if(($end_page - $start_page) != $pages_to_show_minus_1) {
- $end_page = $start_page + $pages_to_show_minus_1;
- }
- if($end_page > $max_page) {
- $start_page = $max_page - $pages_to_show_minus_1;
- $end_page = $max_page;
- }
- if($start_page <= 0) {
- $start_page = 1;
- }
- if(($offset + $perpage) > $numposts) {
- $max_on_page = $numposts;
- } else {
- $max_on_page = ($offset + $perpage);
- }
- if (($offset + 1) > ($numposts)) {
- $display_on_page = $numposts;
- } else {
- $display_on_page = ($offset + 1);
- }
-
- // Get Poll Questions
- $questions = $wpdb->get_results("SELECT * FROM $wpdb->pollsq WHERE $polls_type_sql ORDER BY pollq_id DESC LIMIT $offset, $polls_perpage");
- if($questions) {
- foreach($questions as $question) {
- $polls_questions[] = array('id' => intval($question->pollq_id), 'question' => stripslashes($question->pollq_question), 'timestamp' => $question->pollq_timestamp, 'totalvotes' => intval($question->pollq_totalvotes), 'start' => $question->pollq_timestamp, 'end' => trim($question->pollq_expiry), 'multiple' => intval($question->pollq_multiple), 'totalvoters' => intval($question->pollq_totalvoters));
- $poll_questions_ids .= intval($question->pollq_id).', ';
- }
- $poll_questions_ids = substr($poll_questions_ids, 0, -2);
- }
-
- // Get Poll Answers
- $answers = $wpdb->get_results("SELECT polla_aid, polla_qid, polla_answers, polla_votes FROM $wpdb->pollsa WHERE polla_qid IN ($poll_questions_ids) ORDER BY ".get_option('poll_ans_result_sortby').' '.get_option('poll_ans_result_sortorder'));
- if($answers) {
- foreach($answers as $answer) {
- $polls_answers[intval($answer->polla_qid)][] = array('aid' => intval($answer->polla_aid), 'qid' => intval($answer->polla_qid), 'answers' => stripslashes($answer->polla_answers), 'votes' => intval($answer->polla_votes));
- }
- }
-
- // Get Poll IPs
- $ips = $wpdb->get_results("SELECT pollip_qid, pollip_aid FROM $wpdb->pollsip WHERE pollip_qid IN ($poll_questions_ids) AND pollip_ip = '".get_ipaddress()."' ORDER BY pollip_qid ASC");
- if($ips) {
- foreach($ips as $ip) {
- $polls_ips[intval($ip->pollip_qid)][] = intval($ip->pollip_aid);
- }
- }
- // Poll Archives
- $pollsarchive_output_archive .= "<div class=\"wp-polls wp-polls-archive\">\n";
- foreach($polls_questions as $polls_question) {
- // Most/Least Variables
- $poll_most_answer = '';
- $poll_most_votes = 0;
- $poll_most_percentage = 0;
- $poll_least_answer = '';
- $poll_least_votes = 0;
- $poll_least_percentage = 0;
- // Is The Poll Total Votes 0?
- $poll_totalvotes_zero = true;
- if($polls_question['totalvotes'] > 0) {
- $poll_totalvotes_zero = false;
- }
- $poll_start_date = mysql2date(sprintf(__('%s @ %s', 'wp-polls'), get_option('date_format'), get_option('time_format')), gmdate('Y-m-d H:i:s', $polls_question['start']));
- if(empty($polls_question['end'])) {
- $poll_end_date = __('No Expiry', 'wp-polls');
- } else {
- $poll_end_date = mysql2date(sprintf(__('%s @ %s', 'wp-polls'), get_option('date_format'), get_option('time_format')), gmdate('Y-m-d H:i:s', $polls_question['end']));
- }
- // Archive Poll Header
- $template_archive_header = stripslashes(get_option('poll_template_pollarchiveheader'));
- // Poll Question Variables
- $template_question = stripslashes(get_option('poll_template_resultheader'));
- $template_question = str_replace("%POLL_QUESTION%", $polls_question['question'], $template_question);
- $template_question = str_replace("%POLL_ID%", $polls_question['id'], $template_question);
- $template_question = str_replace("%POLL_TOTALVOTES%", number_format_i18n($polls_question['totalvotes']), $template_question);
- $template_question = str_replace("%POLL_TOTALVOTERS%", number_format_i18n($polls_question['totalvoters']), $template_question);
- $template_question = str_replace("%POLL_START_DATE%", $poll_start_date, $template_question);
- $template_question = str_replace("%POLL_END_DATE%", $poll_end_date, $template_question);
- if($polls_question['multiple'] > 0) {
- $template_question = str_replace("%POLL_MULTIPLE_ANS_MAX%", $polls_question['multiple'], $template_question);
- } else {
- $template_question = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_question);
- }
- // Print Out Result Header Template
- $pollsarchive_output_archive .= $template_archive_header;
- $pollsarchive_output_archive .= $template_question;
- // Store The Percentage Of The Poll
- $poll_answer_percentage_array = array();
- foreach($polls_answers[$polls_question['id']] as $polls_answer) {
- // Calculate Percentage And Image Bar Width
- if(!$poll_totalvotes_zero) {
- if($polls_answer['votes'] > 0) {
- $poll_answer_percentage = round((($polls_answer['votes']/$polls_question['totalvoters'])*100));
- $poll_answer_imagewidth = round($poll_answer_percentage*0.9);
- } else {
- $poll_answer_percentage = 0;
- $poll_answer_imagewidth = 1;
- }
- } else {
- $poll_answer_percentage = 0;
- $poll_answer_imagewidth = 1;
- }
- // Make Sure That Total Percentage Is 100% By Adding A Buffer To The Last Poll Answer
- if($polls_question['multiple'] == 0) {
- $poll_answer_percentage_array[] = $poll_answer_percentage;
- if(sizeof($poll_answer_percentage_array) == sizeof($polls_answers[$polls_question['id']])) {
- $percentage_error_buffer = 100 - array_sum($poll_answer_percentage_array);
- $poll_answer_percentage = $poll_answer_percentage + $percentage_error_buffer;
- }
- }
- // Let User See What Options They Voted
- if(in_array($polls_answer['aid'], check_voted_multiple($polls_question['id'], $polls_ips[$polls_question['id']]))) {
- // Results Body Variables
- $template_answer = stripslashes(get_option('poll_template_resultbody2'));
- $template_answer = str_replace("%POLL_ANSWER_ID%", $polls_answer['aid'], $template_answer);
- $template_answer = str_replace("%POLL_ANSWER%", $polls_answer['answers'], $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_TEXT%", htmlspecialchars(strip_tags($polls_answer['answers'])), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_VOTES%", number_format_i18n($polls_answer['votes']), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_PERCENTAGE%", $poll_answer_percentage, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_IMAGEWIDTH%", $poll_answer_imagewidth, $template_answer);
- // Print Out Results Body Template
- $pollsarchive_output_archive .= $template_answer;
- } else {
- // Results Body Variables
- $template_answer = stripslashes(get_option('poll_template_resultbody'));
- $template_answer = str_replace("%POLL_ANSWER_ID%", $polls_answer['aid'], $template_answer);
- $template_answer = str_replace("%POLL_ANSWER%", $polls_answer['answers'], $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_TEXT%", htmlspecialchars(strip_tags($polls_answer['answers'])), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_VOTES%", number_format_i18n($polls_answer['votes']), $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_PERCENTAGE%", $poll_answer_percentage, $template_answer);
- $template_answer = str_replace("%POLL_ANSWER_IMAGEWIDTH%", $poll_answer_imagewidth, $template_answer);
- // Print Out Results Body Template
- $pollsarchive_output_archive .= $template_answer;
- }
- // Get Most Voted Data
- if($polls_answer['votes'] > $poll_most_votes) {
- $poll_most_answer = $polls_answer['answers'];
- $poll_most_votes = $polls_answer['votes'];
- $poll_most_percentage = $poll_answer_percentage;
- }
- // Get Least Voted Data
- if($poll_least_votes == 0) {
- $poll_least_votes = $polls_answer['votes'];
- }
- if($polls_answer['votes'] <= $poll_least_votes) {
- $poll_least_answer = $polls_answer['answers'];
- $poll_least_votes = $polls_answer['votes'];
- $poll_least_percentage = $poll_answer_percentage;
- }
- }
- // Results Footer Variables
- $template_footer = stripslashes(get_option('poll_template_resultfooter'));
- $template_footer = str_replace("%POLL_START_DATE%", $poll_start_date, $template_footer);
- $template_footer = str_replace("%POLL_END_DATE%", $poll_end_date, $template_footer);
- $template_footer = str_replace("%POLL_TOTALVOTES%", number_format_i18n($polls_question['totalvotes']), $template_footer);
- $template_footer = str_replace("%POLL_TOTALVOTERS%", number_format_i18n($polls_question['totalvoters']), $template_footer);
- $template_footer = str_replace("%POLL_MOST_ANSWER%", $poll_most_answer, $template_footer);
- $template_footer = str_replace("%POLL_MOST_VOTES%", number_format_i18n($poll_most_votes), $template_footer);
- $template_footer = str_replace("%POLL_MOST_PERCENTAGE%", $poll_most_percentage, $template_footer);
- $template_footer = str_replace("%POLL_LEAST_ANSWER%", $poll_least_answer, $template_footer);
- $template_footer = str_replace("%POLL_LEAST_VOTES%", number_format_i18n($poll_least_votes), $template_footer);
- $template_footer = str_replace("%POLL_LEAST_PERCENTAGE%", $poll_least_percentage, $template_footer);
- if($polls_question['multiple'] > 0) {
- $template_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", $polls_question['multiple'], $template_footer);
- } else {
- $template_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_footer);
- }
- // Archive Poll Footer
- $template_archive_footer = stripslashes(get_option('poll_template_pollarchivefooter'));
- $template_archive_footer = str_replace("%POLL_START_DATE%", $poll_start_date, $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_END_DATE%", $poll_end_date, $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_TOTALVOTES%", number_format_i18n($polls_question['totalvotes']), $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_TOTALVOTERS%", number_format_i18n($polls_question['totalvoters']), $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_MOST_ANSWER%", $poll_most_answer, $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_MOST_VOTES%", number_format_i18n($poll_most_votes), $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_MOST_PERCENTAGE%", $poll_most_percentage, $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_LEAST_ANSWER%", $poll_least_answer, $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_LEAST_VOTES%", number_format_i18n($poll_least_votes), $template_archive_footer);
- $template_archive_footer = str_replace("%POLL_LEAST_PERCENTAGE%", $poll_least_percentage, $template_archive_footer);
- if($polls_question['multiple'] > 0) {
- $template_archive_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", $polls_question['multiple'], $template_archive_footer);
- } else {
- $template_archive_footer = str_replace("%POLL_MULTIPLE_ANS_MAX%", '1', $template_archive_footer);
- }
- // Print Out Results Footer Template
- $pollsarchive_output_archive .= $template_footer;
- // Print Out Archive Poll Footer Template
- $pollsarchive_output_archive .= $template_archive_footer;
- }
- $pollsarchive_output_archive .= "</div>\n";
-
- // Polls Archive Paging
- if($max_page > 1) {
- $pollsarchive_output_archive .= stripslashes(get_option('poll_template_pollarchivepagingheader'));
- if(function_exists('wp_pagenavi')) {
- $pollsarchive_output_archive .= '<div class="wp-pagenavi">'."\n";
- } else {
- $pollsarchive_output_archive .= '<div class="wp-polls-paging">'."\n";
- }
- $pollsarchive_output_archive .= '<span class="pages"> '.sprintf(__('Page %s of %s', 'wp-polls'), number_format_i18n($page), number_format_i18n($max_page)).' </span>';
- if ($start_page >= 2 && $pages_to_show < $max_page) {
- $pollsarchive_output_archive .= '<a href="'.polls_archive_link(1).'" title="'.__('« First', 'wp-polls').'"> '.__('« First', 'wp-polls').' </a>';
- $pollsarchive_output_archive .= '<span class="extend">...</span>';
- }
- if($page > 1) {
- $pollsarchive_output_archive .= '<a href="'.polls_archive_link(($page-1)).'" title="'.__('«', 'wp-polls').'"> '.__('«', 'wp-polls').' </a>';
- }
- for($i = $start_page; $i <= $end_page; $i++) {
- if($i == $page) {
- $pollsarchive_output_archive .= '<span class="current"> '.number_f…
Large files files are truncated, but you can click here to view the full file