Example #1
0
 function widget($args, $instance)
 {
     extract($args, EXTR_SKIP);
     $title = $instance['title'] ? esc_attr($instance['title']) : __yop_poll('Yop Poll Widget');
     $poll_id = $instance['poll_id'] ? intval($instance['poll_id']) : -1;
     $tr_id = $instance['tr_id'] ? $instance['tr_id'] : '';
     $poll_unique_id = uniqid('_yp');
     wp_enqueue_script('yop-poll-supercookie-js', YOP_POLL_URL . "js/yop-poll-supercookie.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_script('superCookie-min-js', YOP_POLL_URL . "js/super-cookie/superCookie-min.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_script('swfobject-js', YOP_POLL_URL . "js/super-cookie/swfobject/swfobject.js", array('jquery'), YOP_POLL_VERSION, true);
     if (-99 == $poll_id) {
         return '';
     }
     $pro_options = get_option('yop_poll_pro_options');
     require_once YOP_POLL_MODELS . 'poll_model.php';
     $yop_poll_model = new YOP_POLL_Poll_Model($poll_id);
     $yop_poll_model->unique_id = $poll_unique_id;
     $poll_id = $yop_poll_model->ID;
     $template = $yop_poll_model->return_poll_html(array('tr_id' => $tr_id, 'location' => 'widget', 'load_css' => true, 'load_js' => true));
     if ('yes' == $yop_poll_model->use_default_loading_image) {
         $loading_image_src = YOP_POLL_URL . 'images/loading36x36.gif';
     } else {
         $loading_image_src = $yop_poll_model->loading_image_url;
     }
     wp_enqueue_script('jquery');
     wp_enqueue_script('yop-poll-jquery-popup-windows', YOP_POLL_URL . "js/jquery.popupWindow.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_style('yop-poll-public', YOP_POLL_URL . "css/yop-poll-public.css", array(), YOP_POLL_VERSION);
     wp_enqueue_script('yop-poll-widget-user-defined_' . $poll_id . $poll_unique_id, add_query_arg(array('id' => $poll_id, 'location' => 'widget', 'unique_id' => $poll_unique_id), admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http') . '?action=yop_poll_load_js'), array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-public-js', YOP_POLL_URL . 'js/yop-poll-public.js', array(), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-json-2', YOP_POLL_URL . "js/yop-poll-json2.js", array(), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-jquery-base64', YOP_POLL_URL . "js/yop-poll-jquery.base64.min.js", array(), YOP_POLL_VERSION, true);
     $yop_poll_public_config_general = array('ajax' => array('url' => admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http'), 'vote_action' => 'yop_poll_do_vote', 'yop_poll_show_vote_options' => 'yop_poll_show_vote_options', 'captcha_action' => 'yop_poll_show_captcha', 'view_results_action' => 'yop_poll_view_results', 'back_to_vote_action' => 'yop_poll_back_to_vote', 'is_wordpress_user_action' => 'yop_poll_is_wordpress_user', 'is_facebook_user_action' => 'yop_poll_is_facebook_user'), 'pro' => array(), 'yop_poll_version' => YOP_POLL_VERSION, 'vote_with_wordpress_login_url' => wp_login_url(admin_url('admin-ajax.php?action=yop_poll_set_wordpress_vote', is_ssl() ? 'https' : 'http')), 'vote_with_facebook_ajax_url' => admin_url('admin-ajax.php?action=yop_poll_set_facebook_vote', is_ssl() ? 'https' : 'http'));
     $vote_permisions_types = 0;
     if ('guest-only' != $yop_poll_model->vote_permisions) {
         if ('yes' == $yop_poll_model->vote_permisions_wordpress) {
             $vote_permisions_types += 1;
         }
         if ('yes' == $yop_poll_model->vote_permisions_anonymous) {
             $vote_permisions_types += 2;
         }
         if ('yes' == $yop_poll_model->vote_permisions_facebook) {
             $vote_permisions_types += 4;
         }
     }
     $yop_poll_public_config = array('poll_options' => array('vote_permisions' => $yop_poll_model->vote_permisions, 'vote_permisions_facebook_label' => $yop_poll_model->vote_permisions_facebook_label, 'vote_permisions_wordpress_label' => $yop_poll_model->vote_permisions_wordpress_label, 'vote_permisions_anonymous_label' => $yop_poll_model->vote_permisions_anonymous_label, 'vote_permisions_types' => $vote_permisions_types, 'share_after_vote' => $yop_poll_model->share_after_vote, 'share_name' => $yop_poll_model->share_name, 'share_caption' => $yop_poll_model->share_caption, 'share_description' => $yop_poll_model->share_description, 'share_picture' => $yop_poll_model->share_picture, 'share_link' => $yop_poll_model->poll_page_url == '' ? site_url() : $yop_poll_model->poll_options['poll_page_url'], 'redirect_after_vote' => $yop_poll_model->redirect_after_vote, 'redirect_after_vote_url' => $yop_poll_model->redirect_after_vote_url), 'loading_image_src' => $loading_image_src, 'loading_image_alt' => __('Loading', 'yop_poll'));
     wp_localize_script('yop-poll-public-js', 'yop_poll_public_config_general', $yop_poll_public_config_general);
     wp_localize_script('yop-poll-public-js', 'yop_poll_public_config_' . $poll_id . $poll_unique_id, $yop_poll_public_config);
     echo $before_widget;
     echo $before_title . $title . $after_title;
     echo do_shortcode($template);
     echo $after_widget;
 }
Example #2
0
 public static function reset_poll_stats_from_database($poll_id)
 {
     global $message;
     $current_poll = new YOP_POLL_Poll_Model($poll_id);
     $message = self::delete_result_from_db_by_poll_id($poll_id);
     $current_poll->poll_total_votes = 0;
     foreach ($current_poll->questions as &$question) {
         foreach ($question->answers as &$answer) {
             $answer->votes = 0;
         }
     }
     $current_poll->update_no_votes();
     $current_poll->save();
 }
Example #3
0
 public static function save_poll($preview = false)
 {
     $new_poll = new YOP_POLL_Poll_Model($_POST['poll_id']);
     $new_poll->poll_title = stripslashes(trim($_POST['poll_title']));
     $new_poll->poll_name = sanitize_title($new_poll->poll_title);
     $new_poll->poll_author = $GLOBALS['current_user']->ID;
     $new_poll->poll_date = current_time('mysql');
     $new_poll->poll_status = 'active';
     $new_poll->poll_modified = current_time('mysql');
     $new_poll->poll_start_date = $_POST['poll_start_date'];
     $new_poll->poll_end_date = isset($_POST['poll_never_expire']) && 'yes' == $_POST['poll_never_expire'] ? '01-01-2038 23:59:59' : $_POST['poll_end_date'];
     $new_poll->poll_total_votes = 0;
     //poll options area
     if (isset($_POST['yop_poll_options']) && is_array($_POST['yop_poll_options']) && count($_POST['yop_poll_options']) > 0) {
         foreach ($_POST['yop_poll_options'] as $poll_option_field => $poll_option_value) {
             $new_poll->{$poll_option_field} = $poll_option_value;
         }
     }
     if (isset($_POST['yop_poll_options']['use_the_same_template_for_widget'])) {
         $new_poll->use_the_same_template_for_widget = 'yes';
         $new_poll->widget_template_width = $new_poll->template_width;
         $new_poll->widget_template = $new_poll->template;
     } else {
         $new_poll->use_the_same_template_for_widget = 'no';
     }
     $questions = array();
     if (isset($_POST['yop_poll_question']) && is_array($_POST['yop_poll_question']) && count($_POST['yop_poll_question']) > 0) {
         foreach ($_POST['yop_poll_question'] as $question_args) {
             $new_question = new YOP_POLL_Question_Model($question_args['question_id']);
             $new_question->question = trim($question_args['question']);
             $new_question->type = trim($question_args['type']);
             $new_question->question_modified = current_time('mysql');
             $new_question->poll_order = intval($question_args['poll_order']);
             if (!$new_question->exists()) {
                 //for insert
                 $new_question->question_author = $GLOBALS['current_user']->ID;
                 $new_question->question_date = current_time('mysql');
                 $new_question->question_status = 'active';
             }
             //question options area
             if (isset($question_args['options']) && is_array($question_args['options']) && count($question_args['options']) > 0) {
                 foreach ($question_args['options'] as $question_option_field => $question_option_value) {
                     $new_question->{$question_option_field} = $question_option_value;
                 }
             }
             $custom_fields = array();
             //question custom fields area
             if (isset($question_args['custom_fields']) && is_array($question_args['custom_fields']) && count($question_args['custom_fields']) > 0) {
                 foreach ($question_args['custom_fields'] as $question_custom_field) {
                     $cf_id = isset($question_custom_field['id']) ? trim($question_custom_field['id']) : 0;
                     $new_custom_field = new YOP_POLL_Custom_Field_Model($cf_id);
                     $new_custom_field->custom_field = trim($question_custom_field['custom_field']);
                     $new_custom_field->required = isset($question_custom_field['required']) ? trim($question_custom_field['required']) : 'no';
                     $new_custom_field->status = "active";
                     if ($new_custom_field->custom_field == "") {
                         $response['success'] = 0;
                         $response['id'] = -1;
                         $response['error'] = 1;
                         $response['message'] = __yop_poll('Custom Field') . ' ' . $question_custom_field['order'] . ' ' . __yop_poll('from Question') . ' ' . $new_question->poll_order . ' ' . __yop_poll('is empty!');
                         wp_die(json_encode($response));
                     }
                     $custom_fields[] = $new_custom_field;
                 }
             }
             $new_question->custom_fields = $custom_fields;
             $answers = array();
             if (isset($_POST['yop_poll_answer'][$question_args['question_id']]) && is_array($_POST['yop_poll_answer'][$question_args['question_id']]) && count($_POST['yop_poll_answer'][$question_args['question_id']]) > 0) {
                 foreach ($_POST['yop_poll_answer'][$question_args['question_id']] as $answer_args) {
                     $new_answer = new YOP_POLL_Answer_Model($answer_args['answer_id']);
                     $new_answer->answer = trim($answer_args['answer']);
                     $new_answer->type = trim($answer_args['type']);
                     if (isset($answer_args['is_default_answer'])) {
                         $new_answer->is_default_answer = 'yes';
                     } else {
                         $new_answer->is_default_answer = 'no';
                     }
                     $new_answer->description = "";
                     if ($new_answer->type == 'video') {
                         $new_answer->description = trim($answer_args['description_video']);
                     } else {
                         if ($new_answer->type == 'image') {
                             $new_answer->description = trim($answer_args['description_image']);
                         }
                     }
                     $new_answer->question_order = trim($answer_args['question_order']);
                     $new_answer->answer_modified = current_time('mysql');
                     if (!$new_answer->exists()) {
                         //for insert
                         $new_answer->answer_author = $GLOBALS['current_user']->ID;
                         $new_answer->answer_date = current_time('mysql');
                         $new_answer->answer_status = 'active';
                     }
                     if ($new_answer->answer == '') {
                         $response['success'] = 0;
                         $response['id'] = -1;
                         $response['error'] = 1;
                         $response['message'] = __yop_poll('Answer') . ' ' . $new_answer->question_order . ' ' . __yop_poll('from Question') . ' ' . $new_question->poll_order . ' ' . __yop_poll('is empty!');
                         wp_die(json_encode($response));
                     }
                     $answers[] = $new_answer;
                 }
             }
             $new_question->answers = $answers;
             if ($new_question->question == '') {
                 $response['success'] = 0;
                 $response['id'] = -1;
                 $response['error'] = 1;
                 $response['message'] = __yop_poll('Question') . ' ' . $new_question->poll_order . ' ' . __yop_poll('is empty!');
                 wp_die(json_encode($response));
             }
             $questions[] = $new_question;
         }
     }
     $new_poll->questions = $questions;
     if ($preview) {
         $new_poll->ID = 'preview';
         return $new_poll->return_poll_html(array('tr_id' => '', 'location' => 'page', 'load_css' => true, 'load_js' => false));
     } else {
         if (!$new_poll->exists() && YOP_POLL_Poll_Model::get_data_by('name', $new_poll->poll_name)) {
             $response['success'] = 0;
             $response['id'] = -1;
             $response['error'] = 1;
             $response['message'] = __yop_poll('This poll already exists! Please choose another name!');
             wp_die(json_encode($response));
         }
         if ($new_poll->exists() && YOP_POLL_Poll_Model::get_other_model_data_by('name', $new_poll->poll_name, $new_poll->id)) {
             $response['success'] = 0;
             $response['id'] = -1;
             $response['error'] = 1;
             $response['message'] = __yop_poll('This poll already exists! Please choose another name!');
             wp_die(json_encode($response));
         }
         if ($new_poll->save()) {
             self::save_poll_order($new_poll->get('ID'), $_POST['poll_archive_order']);
             $response['success'] = 1;
             $response['id'] = $new_poll->ID;
             $response['error'] = 0;
             $response['message'] = __yop_poll('Poll successfully saved!');
             wp_die(json_encode($response));
         } else {
             $response['success'] = 0;
             $response['id'] = -1;
             $response['error'] = 1;
             $response['message'] = __yop_poll('Poll couldn`t be saved!');
             wp_die(json_encode($response));
         }
     }
 }
Example #4
0
 public function return_yop_poll($id, $results, $tr_id = '', $show_results = "", $offset = 0)
 {
     //$pro_options = get_option( 'yop_poll_pro_options' );
     $options = get_option('yop_poll_options');
     require_once YOP_POLL_MODELS . "poll_model.php";
     $poll_unique_id = uniqid('_yp');
     $yop_poll_model = new YOP_POLL_Poll_Model($id);
     $yop_poll_model->unique_id = $poll_unique_id;
     if (!$yop_poll_model->ID) {
         return '';
     }
     $yop_poll_public_config_general = array('ajax' => array('url' => admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http'), 'vote_action' => 'yop_poll_do_vote', 'yop_poll_show_vote_options' => 'yop_poll_show_vote_options', 'captcha_action' => 'yop_poll_show_captcha', 'view_results_action' => 'yop_poll_view_results', 'back_to_vote_action' => 'yop_poll_back_to_vote', 'is_wordpress_user_action' => 'yop_poll_is_wordpress_user', 'is_facebook_user_action' => 'yop_poll_is_facebook_user'), 'pro' => array(), 'yop_poll_version' => YOP_POLL_VERSION, 'vote_with_wordpress_login_url' => wp_login_url(admin_url('admin-ajax.php?action=yop_poll_set_wordpress_vote', is_ssl() ? 'https' : 'http')), 'vote_with_facebook_ajax_url' => admin_url('admin-ajax.php?action=yop_poll_set_facebook_vote', is_ssl() ? 'https' : 'http'));
     $vote_permisions_types = 0;
     if (in_array('registered', $yop_poll_model->vote_permisions)) {
         if ('yes' == $yop_poll_model->vote_permisions_wordpress) {
             $vote_permisions_types += 1;
         }
         if ('yes' == $yop_poll_model->vote_permisions_anonymous && in_array('guest', $yop_poll_model->vote_permisions) || 'yes' == $yop_poll_model->vote_permisions_anonymous && in_array('registered', $yop_poll_model->vote_permisions)) {
             $vote_permisions_types += 2;
         }
     } else {
         if (in_array('guest', $yop_poll_model->vote_permisions)) {
             if ('yes' == $yop_poll_model->vote_permisions_anonymous && in_array('guest', $yop_poll_model->vote_permisions)) {
                 $vote_permisions_types += 2;
             }
         }
     }
     if ('yes' == $options["use_default_loading_image"]) {
         $loading_image_src = YOP_POLL_URL . 'images/loading36x36.gif';
     } else {
         $loading_image_src = $options["loading_image_url"];
     }
     if ($results) {
         $yop_poll_model->vote = true;
     }
     $template = $yop_poll_model->return_poll_html(array('tr_id' => $tr_id, 'location' => 'page', 'load_css' => true, 'load_js' => true, 'show_results' => $show_results));
     $yop_poll_public_config = array('poll_options' => array('vote_permisions' => $yop_poll_model->vote_permisions, 'vote_permisions_facebook_label' => $yop_poll_model->vote_permisions_facebook_label, 'vote_permisions_wordpress_label' => $yop_poll_model->vote_permisions_wordpress_label, 'vote_permisions_anonymous_label' => $yop_poll_model->vote_permisions_anonymous_label, 'vote_permisions_google_label' => $yop_poll_model->vote_permisions_google_label, 'vote_permisions_types' => $vote_permisions_types, 'share_after_vote' => $yop_poll_model->share_after_vote, 'share_name' => $yop_poll_model->share_name, 'share_caption' => $yop_poll_model->share_caption, 'share_description' => $yop_poll_model->share_description, 'share_picture' => $yop_poll_model->share_picture, 'share_poll_name' => $yop_poll_model->poll['name'], 'share_link' => $yop_poll_model->poll_page_url == '' ? site_url() : $yop_poll_model->poll_page_url, 'redirect_after_vote' => $yop_poll_model->redirect_after_vote, 'redirect_after_vote_url' => $yop_poll_model->redirect_after_vote_url, 'facebook_share_after_vote' => $yop_poll_model->facebook_share_after_vote), 'loading_image_src' => $loading_image_src, 'loading_image_alt' => __yop_poll('Loading'));
     $tabulate['results'] = false;
     $tabulate['answers'] = false;
     $tabulate['orizontal_answers'] = 0;
     $tabulate['orizontal_results'] = 0;
     wp_enqueue_script('yop-poll-public-js', YOP_POLL_URL . "js/yop-poll-public.js", array('jquery'), YOP_POLL_VERSION, true);
     foreach ($yop_poll_model->questions as $question) {
         $answers_tabulated_cols = 1;
         //vertical display
         $results_tabulated_cols = 1;
         $include_others = false;
         $display_answers = array('text', 'image', 'video');
         if (isset($question->allow_other_answers) && 'yes' == $question->allow_other_answers) {
             if (isset($question->display_other_answers_values) && 'yes' == $question->display_other_answers_values) {
                 $include_others = true;
                 $display_answers = array('text', 'image', 'video', 'other');
             }
         }
         if ('orizontal' == $question->display_answers) {
             $ans_no = $question->countanswers($display_answers, $include_others);
             if ($ans_no > 0) {
                 $tabulate['orizontal_answers'] = $ans_no;
             }
             if (isset($question->allow_other_answers) && 'yes' == $question->allow_other_answers) {
                 $tabulate['orizontal_answers']++;
             }
         }
         if ('orizontal' == $question->display_results) {
             $ans_no = $question->countanswers($display_answers, $include_others);
             if ($ans_no > 0) {
                 $tabulate['orizontal_results'] = $ans_no;
             }
         }
         if ('tabulated' == $question->display_answers) {
             $tabulate['answers'] = true;
         }
         if ('tabulated' == $question->display_results) {
             $tabulate['results'] = true;
         }
     }
     wp_enqueue_script('yop-poll-public-js', YOP_POLL_URL . "js/yop-poll-public.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_localize_script('yop-poll-public-js', 'tabulate', $tabulate);
     wp_enqueue_script('yop-poll-supercookie-js', YOP_POLL_URL . "js/yop-poll-supercookie.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_script('superCookie-min-js', YOP_POLL_URL . "js/super-cookie/superCookie-min.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_script('swfobject-js', YOP_POLL_URL . "js/super-cookie/swfobject/swfobject.js", array('jquery'), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-jquery-popup-windows', YOP_POLL_URL . "js/jquery.popupWindow.js", array(), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-jquery-base64', YOP_POLL_URL . "js/yop-poll-jquery.base64.min.js", array(), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-json-2', YOP_POLL_URL . "js/yop-poll-json2.js", array(), YOP_POLL_VERSION, true);
     wp_enqueue_script('yop-poll-user-defined_' . $yop_poll_model->ID . $poll_unique_id, add_query_arg(array('id' => $id, 'location' => 'page', 'unique_id' => $poll_unique_id), admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http') . '?action=yop_poll_load_js'), array('jquery'), YOP_POLL_VERSION, true);
     wp_localize_script('yop-poll-public-js', 'yop_poll_public_config_general', $yop_poll_public_config_general);
     wp_localize_script('yop-poll-public-js', 'yop_poll_public_config_' . $yop_poll_model->ID . $poll_unique_id, $yop_poll_public_config);
     // wp_enqueue_style( 'yop-poll-public-css', "{$this->_config->plugin_url}css/yop-poll-admin.css", array(), YOP_POLL_VERSION );
     /*wp_enqueue_style( 'yop-poll-public-css', "{$this->_config->plugin_url}/css/yop-poll-public.css", array(), $this->_config->version );
       wp_enqueue_script( 'jquery' );
       wp_enqueue_script( 'yop-poll-jquery-popup-windows', "{$this->_config->plugin_url}/js/jquery.popupWindow.js", array(), $this->_config->version, true );
       wp_enqueue_script( 'yop-poll-user-defined_' . $id . $poll_unique_id, add_query_arg( array( 'id' => $id, 'location' => 'page', 'unique_id' => $poll_unique_id ), admin_url( 'admin-ajax.php', ( is_ssl() ? 'https' : 'http' ) ) . '?action=yop_poll_load_js' ), array( 'jquery' ), $this->_config->version, true );
       wp_enqueue_script( 'yop-poll-public-js', "{$this->_config->plugin_url}js/yop-poll-public.js", array(), $this->_config->version, true );
       wp_enqueue_script( 'yop-poll-json2', "{$this->_config->plugin_url}/js/yop-poll-json2.js", array(), $this->_config->version, true );
       wp_enqueue_script( 'yop-poll-jquery-base64', "{$this->_config->plugin_url}/js/yop-poll-jquery.base64.min.js", array(), $this->_config->version, true );
       */
     return $template;
 }
Example #5
0
 public function yop_poll_load_js()
 {
     header('Content-Type: text/javascript');
     // check_ajax_referer('yop-poll-public-js');
     if (is_admin()) {
         $poll_id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
         $location = isset($_REQUEST['location']) ? $_REQUEST['location'] : null;
         $unique_id = isset($_REQUEST['unique_id']) ? $_REQUEST['unique_id'] : null;
         if ($poll_id) {
             require_once YOP_POLL_MODELS . 'poll_model.php';
             $yop_poll_model = new YOP_POLL_Poll_Model($poll_id);
             $yop_poll_model->unique_id = $unique_id;
             $poll_js = $yop_poll_model->return_poll_js(array('location' => $location));
             print $poll_js;
             unset($yop_poll_model);
         }
     }
     die;
 }
Example #6
0
    public function activation_hook($default)
    {
        ini_set('max_execution_time', 700);
        $current_options = get_option('yop_poll_options');
        $polls = self::yop_poll_get_polls_from_db();
        $answers = self::yop_poll_get_answers_from_db();
        $logs = self::yop_poll_get_logs_from_db();
        $bans = self::yop_poll_get_bans_from_db();
        $custom_fields = self::yop_poll_get_custom_fields_from_db();
        $custom_votes = self::yop_poll_get_custom_fields_votes_from_db();
        $metas = self::yop_poll_get_polls_meta_from_db();
        $answers_meta = self::yop_poll_get_answers_meta_from_db();
        $templates = self::yop_poll_get_templates_from_db();
        foreach ($templates as $template) {
            $template['before_vote_template'] = "[QUESTION_CONTAINER]" . $template['before_vote_template'];
            $template['before_vote_template'] = str_replace('%POLL-ANSWER-LABEL%', '%POLL-ANSWER-LABEL% [ANSWER_RESULT_CONTAINER]', $template['before_vote_template']);
            $template['before_vote_template'] = str_replace('%POLL-TOTAL-ANSWERS%', '%POLL-TOTAL-ANSWERS-LABEL%', $template['before_vote_template']);
            $template['before_vote_template'] = str_replace('%POLL-TOTAL-VOTES%', '%POLL-TOTAL-VOTES-LABEL%', $template['before_vote_template']);
            $template['after_vote_template'] = str_replace('%POLL-TOTAL-VOTES%', '%POLL-TOTAL-VOTES-LABEL%', $template['after_vote_template']);
            $template['after_vote_template'] = str_replace('%POLL-TOTAL-ANSWERS%', '%POLL-TOTAL-ANSWERS-LABEL%', $template['after_vote_template']);
            $template['after_end_date_template'] = str_replace('%POLL-TOTAL-ANSWERS%', '%POLL-TOTAL-ANSWERS-LABEL%', $template['after_end_date_template']);
            $template['after_end_date_template'] = str_replace('%POLL-TOTAL-VOTES%', '%POLL-TOTAL-VOTES-LABEL%', $template['after_end_date_template']);
            $template['before_vote_template'] = preg_replace('/%POLL-ANSWER-RESULT-BAR%/', '%POLL-ANSWER-RESULT-BAR%  [/ANSWER_RESULT_CONTAINER]', $template['before_vote_template'], 1);
            $find = '[/ANSWER_RESULT_CONTAINER]';
            $replace = '';
            //   $template['before_vote_template']= preg_replace(strrev("/$find/"),strrev($replace),strrev( $template['before_vote_template']),1);
            $template['after_vote_template'] = "[QUESTION_CONTAINER]" . $template['after_vote_template'];
            $template['after_end_date_template'] = "[QUESTION_CONTAINER]" . $template['after_end_date_template'];
            /*  if(strpos($template['before_vote_template'],"[CAPTCHA_CONTAINER]"))
                    $template['before_vote_template']=str_replace('[CAPTCHA_CONTAINER]','[/QUESTION_CONTAINER][CAPTCHA_CONTAINER]',$template['before_vote_template']);
                else{
                    $template['before_vote_template']=str_replace('<div id="yop-poll-vote-%POLL-ID%" class="yop-poll-footer">','[/QUESTION_CONTAINER]<div id="yop-poll-vote-%POLL-ID%" class="yop-poll-footer">',$template['before_vote_template']);
                } */
            $template['before_vote_template'] = $template['before_vote_template'] . '[/QUESTION_CONTAINER]';
            if (strpos($template['before_vote_template'], "%POLL-QUESTION%") && strpos($template['before_vote_template'], '%POLL-NAME%')) {
                $template['before_vote_template'] = str_replace('%POLL-QUESTION%', '', $template['before_vote_template']);
                $template['before_vote_template'] = str_replace('%POLL-NAME%', '%POLL-QUESTION%', $template['before_vote_template']);
            }
            if (strpos($template['after_vote_template'], "%POLL-QUESTION%") && strpos($template['after_vote_template'], '%POLL-NAME%')) {
                $template['after_vote_template'] = str_replace('%POLL-QUESTION%', '', $template['after_vote_template']);
                $template['after_vote_template'] = str_replace('%POLL-NAME%', '%POLL-QUESTION%', $template['after_vote_template']);
            }
            $template['after_vote_template'] = $template['after_vote_template'] . '[/QUESTION_CONTAINER]';
            $template['after_end_date_template'] = $template['after_end_date_template'] . '[/QUESTION_CONTAINER]';
            $template['js'] = <<<NOWDOC
function stripBorder_%POLL-ID%(object) {
\tobject.each(function() {
\t\tif( parseInt(jQuery(this).width() ) > 0) {
\t\t\tjQuery(this).width(
\t\t\t\tparseInt(
\t\t\t\t\tjQuery(this).width() ) -
\t\t\t\t\tparseInt(jQuery(this).css("border-left-width")) -
\t\t\t\t\tparseInt(jQuery(this).css("border-right-width"))
\t\t\t);
\t\t\t}
\t\telse {
\t\tjQuery(this).css("border-left-width", "0px");
\t\tjQuery(this).css("border-right-width", "0px");
\t\t}
\t});
}
function stripPadding_%POLL-ID%(object) {
\tobject.each(function() {
\t\tjQuery(this).width(
\t\tparseInt( jQuery(this).width() ) -
\t\tparseInt(jQuery(this).css("padding-left")) -
\t\tparseInt(jQuery(this).css("padding-left"))
\t\t);
\t});
}

function strip_results_%POLL-ID%() {
\tstripPadding_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop_poll_li_result-%POLL-ID%") );
\tstripBorder_%POLL-ID%(  jQuery("#yop-poll-container-%POLL-ID% .yop-poll-result-bar-%POLL-ID%") );
}

jQuery(document).ready(function(e) {
   jQuery('.yop-poll-forms').removeClass('yop-poll-forms-display');
\tif(typeof window.strip_results_%POLL-ID% == "function")
\t\tstrip_results_%POLL-ID%();
\tif(typeof window.tabulate_answers_%POLL-ID% == "function")
\t\ttabulate_answers_%POLL-ID%();
\tif(typeof window.tabulate_results_%POLL-ID% == "function")
\t\ttabulate_results_%POLL-ID%();



});

function equalWidth_%POLL-ID%(obj, cols, findWidest ) {

    findWidest  = typeof findWidest  !== "undefined" ? findWidest  : false;
    var quest=0;
    if ( findWidest ) {
        obj.each(function() {
            var thisWidth = jQuery(this).width();
            width = parseInt(thisWidth / cols);
            jQuery(this).width(width);
            jQuery(this).css("float", "left");
        });
    }
    else {
        var widest = 0;
        var count  = 0;
        var poz_each_question=0;

        obj.each(function() {

            count++;
            cols[quest][2]=(jQuery('#yop-poll-answers-%POLL-ID%-'+ cols[quest][3] +' li').length);
            var thisWidth = jQuery(this).width();
            if(thisWidth > widest) {
                widest = thisWidth;
            }
            if(count<cols[quest][2])
            { width = parseInt( %POLL-WIDTH% / cols[quest][0]);
             if(cols[quest][0]==1)
                        jQuery(".yop-poll-li-answer-%POLL-ID%-"+cols[quest][3]).css("width","100%");
             else
                         jQuery(".yop-poll-li-answer-%POLL-ID%-"+cols[quest][3]).width(width-20);
             jQuery(".yop-poll-li-answer-%POLL-ID%-"+cols[quest][3]).css("float", "left");
            }
            else
            {
                count=0;


                width = parseInt( %POLL-WIDTH% / cols[quest][0]);
                jQuery(".yop-poll-li-answer-%POLL-ID%-"+cols[quest][3]).width(width-20);
                jQuery(".yop-poll-li-answer-%POLL-ID%-"+cols[quest][3]).css("float", "left");
                quest++;
            }

        });
}
}

function equalWidth2_%POLL-ID%(obj, cols, findWidest ) {
    findWidest  = typeof findWidest  !== "undefined" ? findWidest  : false;
    var quest=0;

    if ( findWidest ) {
        obj.each(function() {
            var thisWidth = jQuery(this).width();
            width = parseInt(thisWidth / cols);
            jQuery(this).width(width);
            jQuery(this).css("float", "left");
        });
    }
    else {
        var widest = 0;
        var count  = 0;
        var poz_each_question=0;

        obj.each(function() {
            count++;
            cols[quest][2]=(jQuery('#yop-poll-answers-%POLL-ID%-'+ cols[quest][3] +' li').length);
            var thisWidth = jQuery(this).width();
            if(thisWidth > widest) {
                widest = thisWidth;
            }
            if(count<cols[quest][2])
            { width = parseInt( %POLL-WIDTH% / cols[quest][1]);
             jQuery(".yop-poll-li-result-%POLL-ID%-"+cols[quest][3]).width(width-20);
             jQuery(".yop-poll-li-result-%POLL-ID%-"+cols[quest][3]).css("float", "left");
            }
            else
            {
                count=0;


                width = parseInt( %POLL-WIDTH% / cols[quest][1]);
                jQuery(".yop-poll-li-result-%POLL-ID%-"+cols[quest][3]).width(width-20);
                jQuery(".yop-poll-li-result-%POLL-ID%-"+cols[quest][3]).css("float", "left");
                quest++;
            }

        });
}
}
function tabulate_answers_%POLL-ID%() {

\tequalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-answer-%POLL-ID%"), %ANSWERS-TABULATED-COLS% );
\t//equalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-answer-%POLL-ID% .yop-poll-results-bar-%POLL-ID% div "), %ANSWERS-TABULATED-COLS%, true );
}

function tabulate_results_%POLL-ID%() {
\tequalWidth2_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-result-%POLL-ID%"), %RESULTS-TABULATED-COLS% );
\t//equalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-result-%POLL-ID% .yop-poll-results-bar-%POLL-ID% div "), %RESULTS-TABULATED-COLS%, true );
\t}

jQuery(document).ready(function(){
\trunOnPollStateChange_%POLL-ID%();
});

function runOnPollStateChange_%POLL-ID%() {

};

NOWDOC;
            $template['js'] = addslashes($template['js']);
            $templates_ids[$template['id']] = self::insert_template_in_databease($template);
        }
        foreach ($polls as $poll) {
            foreach ($answers as $answer) {
                if ($answer['poll_id'] == $poll['id']) {
                    $answers_ordonate[$poll['id']][] = (array) $answer;
                }
                if ($answer['poll_id'] > $poll['id']) {
                    break;
                }
                foreach ($logs as $log) {
                    if ($log['poll_id'] == $poll['id'] && $log['answer_id'] == $answer['id']) {
                        $logs_ordonate[$poll['id']][] = (array) $log;
                        $logs_ordonate_details[$log['id']][] = $answer['answer'];
                    }
                }
                foreach ($answers_meta as $answer_meta) {
                    if ($answer_meta['yop_poll_answer_id'] == $answer['id']) {
                        $answer_meta_ordonate[$answer['id']][] = (array) $answer_meta;
                    }
                }
            }
            foreach ($bans as $ban) {
                if ($ban['poll_id'] == $poll['id']) {
                    $bans_ordonate[$poll['id']][] = (array) $ban;
                }
                if ($ban['poll_id'] > $poll['id']) {
                    break;
                }
            }
            foreach ($metas as $meta) {
                if ($meta['yop_poll_id'] == $poll['id']) {
                    $metas_ordonate[$poll['id']][] = (array) $meta;
                }
                if ($meta['yop_poll_id'] > $poll['id']) {
                    break;
                }
            }
            foreach ($custom_fields as $custom_field) {
                if ($custom_field['poll_id'] == $poll['id']) {
                    $custom_fields_ordonate[$poll['id']][] = (array) $custom_field;
                    if ($custom_field['poll_id'] > $poll['id']) {
                        break;
                    }
                    foreach ($custom_votes as $custom_vote) {
                        if ($custom_field['id'] == $custom_vote['custom_field_id']) {
                            $custom_votes_fields_ordonate[$custom_field['id']][] = (array) $custom_vote;
                        }
                    }
                }
            }
        }
        foreach ($polls as $poll) {
            $current_poll = new YOP_POLL_Poll_Model();
            $current_poll->poll_author = $poll['poll_author'];
            $current_poll->ID = $poll['id'];
            $current_poll->poll_title = $poll['name'];
            $current_poll->poll_name = $poll['name'];
            $current_poll->poll_date = $poll['date_added'];
            $current_poll->poll_modified = $poll['last_modified'];
            $current_poll->poll_status = $poll['status'];
            $current_poll->poll_type = "poll";
            $current_poll->poll_status = $poll['status'];
            $current_poll->email_notifications_body = '<p>A new vote was registered on %VOTE_DATE% for %POLL_NAME%</p>

                                                            <p>Vote Details:</p>

                [QUESTION]

                                                            <p><b>Question:</b> %QUESTION_TEXT%</p>

                                                            <p><b>Answers:</b> <br />

                                                            [ANSWERS]

                                                            %ANSWER_VALUE%

                                                            [/ANSWERS]

                                                            </p>

                                                            <p><b>Custom Fields:</b> <br />

                                                            [CUSTOM_FIELDS]

                                                            %CUSTOM_FIELD_NAME% - %CUSTOM_FIELD_VALUE%

                                                            [/CUSTOM_FIELDS]

                                                            </p>

                [/QUESTION]

                                                            <p><b>Vote ID:</b> <br />%VOTE_ID%</p>';
            if ($poll['end_date'] <= "2038-01-18 23:59:59") {
                $current_poll->poll_end_date = convert_date($poll['end_date'], 'd-m-Y H:i:s', 1);
            } else {
                $current_poll->poll_end_date = "01-01-2038 23:59:59";
            }
            if ($poll['start_date'] <= "2038-01-18 23:59:59") {
                $current_poll->poll_start_date = convert_date($poll['start_date'], 'd-m-Y H:i:s', 1);
            } else {
                $current_poll->poll_start_date = "01-01-2038 23:59:59";
            }
            $current_poll->poll_total_votes = $poll['total_votes'];
            $question = new YOP_POLL_Question_Model();
            $question->type = "text";
            $question->question = $poll['question'];
            $question->question_date = $current_poll->poll_date;
            $question->question_author = $current_poll->poll_author;
            $question->question_modified = $current_poll->poll_modified;
            $question->question_status = $current_poll->poll_status;
            $question->poll_order = 1;
            $i = 0;
            foreach ($answers_ordonate[$poll['id']] as $answer_ordonate) {
                if ($answer_ordonate['type'] == "other") {
                    $current_poll->allow_other_answers = 'yes';
                    $question->allow_other_answers = 'yes';
                }
            }
            $q[] = $question;
            // yop_poll_dump($current_poll);
            $current_poll->questions = $q;
            $current_poll->auto_generate_poll_page = "no";
            $current_poll_id = $current_poll->insert();
            $current_poll_id = $current_poll->ID;
            // yop_poll_dump($current_poll->save())
            $no_modif = 0;
            $no_modif2 = 0;
            $current_poll_meta = $current_options;
            if (isset($metas_ordonate[$poll['id']])) {
                $poll_option = maybe_unserialize($metas_ordonate[$poll['id']][0]['meta_value']);
                foreach ($current_options as $key => $value) {
                    if (isset($poll_option[$key])) {
                        if ($key == 'view_results_permissions') {
                            list($g1, $d) = explode('-', $poll_option[$key]);
                            if ($g1 == "quest") {
                                $g1 = "guest";
                            }
                            $current_poll_meta[$key] = array($g1, $d);
                            $no_modif = 1;
                        } else {
                            if ($key == 'vote_permisions') {
                                list($g1, $d) = explode('-', $poll_option['vote_permisions']);
                                if ($g1 == "quest") {
                                    $g1 = "guest";
                                }
                                $no_modif2 = 1;
                                $current_poll_meta[$key] = array($g1, $d);
                            } else {
                                $current_poll_meta[$key] = $poll_option[$key];
                            }
                        }
                    } else {
                        $current_poll_meta[$key] = $default[$key];
                    }
                }
            }
            $current_poll_meta['view_results'] = array($poll_option['view_results']);
            $current_poll_meta['sorting_results'] = $default['sorting_answers'];
            if (!isset($poll_option['view_results_link'])) {
                $current_poll_meta['view_results_link'] = "yes";
            } else {
                $current_poll_meta['view_results_link'] = $poll_option['view_results_link'];
            }
            if ($poll_option['view_results'] == 'custom-date') {
                $current_poll_meta['view_results_start_date'] = $poll_option['view_results_start_date'];
            }
            if (empty($current_poll_meta['view_results'][0])) {
                $current_poll_meta['view_results'] = array('after');
            }
            if ($no_modif == 0 || empty($current_poll_meta['view_results'])) {
                $current_poll_meta['view_results_permissions'] = array('guest', 'registered');
            }
            if ($no_modif2 == 0 || empty($current_poll_meta['vote_permisions'])) {
                $current_poll_meta['vote_permisions'] = array('guest', 'registered');
            }
            if ($poll_option['blocking_voters'] == 'cookie-ip') {
                $current_poll_meta['blocking_voters'] = array("cookie", 'ip');
            } else {
                if ($poll_option['blocking_voters'] == 'username') {
                    $current_poll_meta['blocking_voters'] = array("user_id");
                } else {
                    $current_poll_meta['blocking_voters'] = array('dont-block');
                }
            }
            $current_poll_meta['facebook_share_after_vote'] = "no";
            $current_poll_meta['show_google_share_button'] = "no";
            $current_poll_meta['facebook_show_comments_widget'] = "no";
            $current_poll_meta['facebook_share_description'] = __yop_poll('Just casted an YOP Poll vote on ') . get_bloginfo('name');
            if (isset($poll_option['show_in_archive'])) {
                $current_poll_meta['show_poll_in_archive'] = $poll_option['show_in_archive'];
            }
            if (isset($poll_option['schedule_reset_poll_date'])) {
                $current_poll_meta['schedule_reset_poll_date'] = $poll_option['schedule_reset_poll_date'];
            }
            if (isset($poll_option['template'])) {
                $current_poll_meta['template'] = $templates_ids[$poll_option['template']];
            } else {
                $current_poll_meta['template'] = 1;
            }
            if (isset($poll_option['widget_template'])) {
                $current_poll_meta['widget_template'] = $templates_ids[$poll_option['widget_template']];
            } else {
                $current_poll_meta['widget_template'] = 1;
            }
            if (isset($poll_option['widget_template']) && isset($poll_option['template']) && $poll_option['template'] != $poll_option['widget_template']) {
                $current_poll_meta['use_the_same_template_for_widget'] = "no";
            }
            if (isset($poll_option['view_total_answers_label'])) {
                $current_poll_meta['view_total_answers_label'] = $default['view_total_answers_label'];
            }
            if (isset($poll_option['answer_result_label'])) {
                $current_poll_meta['answer_result_label'] = $default['answer_result_label'];
            }
            if ($current_poll_meta['vote_permisions_anonymous'] == "no" && $current_poll_meta['vote_permisions_wordpress'] == "no") {
                $current_poll_meta['vote_permisions_anonymous'] = "yes";
            }
            update_yop_poll_question_meta($current_poll_id, 'options', $current_poll_meta);
            update_yop_poll_meta($current_poll_id, 'options', $current_poll_meta);
            if ($poll['show_in_archive'] == "yes") {
                self::save_poll_order($current_poll_id, $poll['archive_order']);
            }
            if ($default['sorting_answers'] == "votes") {
                $answers_ordonate[$poll['id']] = self::get_answers_order_by_votes($poll['id'], $default['sorting_answers_direction']);
            }
            if ($default['sorting_answers'] == "alphabetical") {
                $answers_ordonate[$poll['id']] = self::get_answers_order_by_alph($poll['id'], $default['sorting_answers_direction']);
            }
            foreach ($answers_ordonate[$poll['id']] as $answer_ordonate) {
                $ans = new YOP_POLL_Answer_Model();
                $ans->answer = $answer_ordonate['answer'];
                $ans->answer_author = $current_poll->poll_author;
                $ans->answer_date = $current_poll->poll_date;
                $ans->answer_modified = $poll['last_modified'];
                if ($answer_ordonate['type'] != "other") {
                    $ans->type = "text";
                } else {
                    $current_poll->allow_other_answers = 'yes';
                    $question->allow_other_answers = 'yes';
                    $ans->type = "other";
                }
                $ans->answer_status = $answer['status'];
                $ans->votes = $answer_ordonate['votes'];
                $ans->question_order = $i++;
                if ($answer_ordonate['type'] != "other") {
                    $answersa[] = $ans;
                    if (isset($answer_meta_ordonate[$answer_ordonate['id']])) {
                        $answer_option = maybe_unserialize($answer_meta_ordonate[$answer_ordonate['id']][0]['meta_value']);
                        $answer_options = $ans->options;
                        foreach ($ans->options as $key => &$value) {
                            if (isset($answer_option[$key])) {
                                $ans->{$key} = $answer_option[$key];
                            }
                        }
                        $ans->options = $answer_options;
                    }
                    $question->addAnswer($ans);
                    $question->save_answers();
                    $answersids[$answer_ordonate['id']] = $ans->ID;
                }
            }
            if (!empty($custom_fields_ordonate[$poll['id']])) {
                foreach ($custom_fields_ordonate[$poll['id']] as $custom_ordonate) {
                    $oldid = $custom_ordonate['id'];
                    //   $question                       = $current_poll->questions;
                    $custom_ordonate['question_id'] = $current_poll_id;
                    $custom_ordonate['poll_id'] = $current_poll_id;
                    $newid = insert_custom_field_in_db($custom_ordonate);
                    foreach ($custom_votes_fields_ordonate[$oldid] as $votes) {
                        $votes['custom_field_id'] = $newid;
                        $votes['question_id'] = $current_poll_id;
                        $votes['poll_id'] = $current_poll_id;
                        $votes['id'] = insert_votes_custom_in_db($votes);
                        $custom_field_vote[$poll['id']][] = $votes;
                    }
                }
            }
            if (!empty($logs_ordonate[$poll['id']])) {
                foreach ($logs_ordonate[$poll['id']] as $log_ordonate) {
                    $log['poll_id'] = $current_poll_id;
                    $log['vote_id'] = $log_ordonate['vote_id'];
                    $log['ip'] = $log_ordonate['ip'];
                    $log['user_id'] = $log_ordonate['user_id'];
                    $log['user_type'] = $log_ordonate['user_type'];
                    $log['vote_date'] = $log_ordonate['vote_date'];
                    $log['tr_id'] = $log_ordonate['tr_id'];
                    $vote_details[1]["q-" . $current_poll_id]['question'] = $poll['question'];
                    $vote_details[1]["q-" . $current_poll_id]['id'] = $current_poll_id;
                    $vote_details[1]["q-" . $current_poll_id]['a'][] = $answersids[$log_ordonate['answer_id']];
                    if ($log_ordonate['other_answer_value'] != "" && isset($log_ordonate['other_answer_value'])) {
                        $ans = new YOP_POLL_Answer_Model();
                        $ans->answer = $answer_ordonate['answer'];
                        $ans->answer_author = $current_poll->poll_author;
                        $ans->answer_date = $current_poll->poll_date;
                        $ans->answer_modified = $poll['last_modified'];
                        $ans->answer = $log_ordonate['other_answer_value'];
                        $ans->answer_status = 'active';
                        $ans->votes = 1;
                        $ans->type = 'other';
                        $ans->question_order = $i++;
                        $question->addAnswer($ans);
                        $question->save_answers();
                    }
                    if (!empty($custom_field_vote[$poll['id']])) {
                        foreach ($custom_field_vote[$poll['id']] as $vote) {
                            if ($vote['vote_id'] == $log_ordonate['vote_id']) {
                                $vote_details[1]["q-" . $current_poll_id]['cf'][] = $vote['id'];
                            }
                        }
                    }
                    foreach ($logs_ordonate_details[$log_ordonate['id']] as $a) {
                        $vote_details[1]["q-" . $current_poll_id]['answers'][] = $a;
                        $log['vote_details'] = json_encode($vote_details[1]);
                        $log['message'] = "Succes";
                        insert_result_in_db($log);
                        insert_log_in_db($log);
                        unset($vote_details[1]["q-" . $current_poll_id]['answers']);
                    }
                    unset($vote_details);
                }
            }
            if (!empty($bans_ordonate[$poll['id']])) {
                foreach ($bans_ordonate[$poll['id']] as $ban_ordonate) {
                    $ban = $ban_ordonate;
                    $ban['poll_id'] = $current_poll_id;
                    self::insert_ban_in_db($ban);
                }
            }
        }
    }
 public function view_templates()
 {
     wp_enqueue_script('yop-poll-admin-js', YOP_POLL_URL . '/js/polls/yop-poll-admin.js', array('jquery', 'jquery-ui-datepicker'), YOP_POLL_VERSION, true);
     wp_enqueue_style('yop-poll-slider-css', YOP_POLL_URL . 'css/yop-poll-slider.css', array(), YOP_POLL_VERSION);
     wp_enqueue_script('yop-poll-slider-js', YOP_POLL_URL . 'js/yop-poll-slider.js', array('jquery', 'jquery-ui-dialog'), YOP_POLL_VERSION, true);
     global $wpdb, $message;
     global $page, $action, $orderby, $order, $current_user;
     $orderby = empty($GLOBALS['orderby']) ? 'name' : $GLOBALS['orderby'];
     $order = empty($GLOBALS['order']) ? 'desc' : $GLOBALS['order'];
     $data['per_page'] = isset($_REQUEST['per_page']) ? intval($_REQUEST['per_page']) : 100;
     $data['page_no'] = isset($_REQUEST['page_no']) ? (int) $_REQUEST['page_no'] : 1;
     $order_fields = array('name', 'last_modified');
     $data['title'] = __yop_poll("Templates");
     $data['REQUEST'] = $_REQUEST;
     $data['poll_url'] = YOP_POLL_URL;
     $data['orderby'] = empty($data['REQUEST']['orderby']) ? 'name' : $data['REQUEST']['orderby'];
     $data['order'] = empty($data['REQUEST']['order']) ? 'desc' : $data['REQUEST']['order'];
     $data['order_direction'] = $this->make_order_array($order_fields, 'asc', $orderby, 'desc' == $order ? 'asc' : 'desc');
     $data['order_sortable'] = $this->make_order_array($order_fields, 'sortable', $orderby, 'sorted');
     $data['order_direction_reverse'] = $this->make_order_array($order_fields, 'desc', $orderby, 'desc' == $order ? 'desc' : 'asc');
     $data['search'] = array('fields' => array('name', 'last_modified'), 'value' => isset($_REQUEST['s']) ? $_REQUEST['s'] : '');
     $data['yop_poll_templates'] = Yop_Poll_Model::get_yop_poll_templates_search($data['orderby'], $data['order'], $data['search'], $data['page_no'] - 1, $data['per_page']);
     $data['total_templates'] = self::count_yop_poll_templates_search($data['orderby'], $data['order'], $data['search']);
     $data['message'] = array('error' => $message['error'], 'succes' => $message['success']);
     $data['templates'] = YOP_POLL_MODEL::get_yop_poll_templates_search('id', 'desc');
     $n = count($data['templates']);
     for ($i = 0; $i < $n; $i++) {
         $data['templates'][$i]['preview'] = YOP_POLL_Poll_Model::return_template_preview_html($data['templates'][$i]['id']);
     }
     if (intval($data['page_no']) > intval($data['total_templates'])) {
         $data['page_no'] = 1;
     }
     $args = array('base' => remove_query_arg('page_no', $_SERVER['REQUEST_URI']) . '%_%', 'format' => '&page_no=%#%', 'current' => max(1, $data['page_no']), 'total' => ceil($data['total_templates'] / $data['per_page']), 'prev_next' => true, 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'));
     $data['pagination'] = paginate_links($args);
     $_SERVER['REQUEST_URI'] = remove_query_arg(array('action'), $_SERVER['REQUEST_URI']);
     $data['request']['uri'] = $_SERVER["REQUEST_URI"];
     $this->display('templates.html', $data);
 }
function insert_result_in_db($result)
{
    global $wpdb;
    $response['success'] = "";
    $response['error'] = "";
    $sql = $wpdb->query($wpdb->prepare("\r\r\n\t\t\t\tINSERT INTO {$wpdb->yop_poll_results} (\r\r\n\t\t\t\tpoll_id,\r\r\n\t\t\t\tvote_id,\r\r\n\t\t\t\tip ,\r\r\n\t\t\t\tuser_id,\r\r\n\t\t\t\tuser_type,\r\r\n\t\t\t\ttr_id,\r\r\n\t\t\t\tresult_details,\r\r\n\t\t\t\tuser_details,\r\r\n\t\t\t\tcountry,\r\r\n\t\t\t\tvote_date\r\r\n\t\t\t\t) VALUES ( %d, %s, %s, %s, %s, %s, %s, %s,%s, %s)", $result['poll_id'], $result['vote_id'], $result['ip'], $result['user_id'], $result['user_type'], $result['tr_id'], $result['vote_details'], $result['user_details'], $result['country'], isset($result['vote_date']) ? $result['vote_date'] : YOP_POLL_Poll_Model::get_mysql_curent_date()));
    if ($sql) {
        $response['success'] = __yop_poll('Votes added');
        $response['insert_id'] = $wpdb->insert_id;
    } else {
        $response['error'] = __yop_poll('Could not insert log into database!');
    }
    return $response;
}
Example #9
0
 public function add_votes()
 {
     $ok = 1;
     global $current_user;
     get_currentuserinfo();
     $cheked = 0;
     global $message;
     $poll_total_votes = 0;
     if (isset($_POST['total_number_of_votes']) && $_POST['total_number_of_votes'] != 0) {
         $no_of_votes = $_REQUEST['total_number_of_votes'];
     }
     $add_to_results = "";
     $current_poll = new YOP_POLL_Poll_Model($_POST['poll_id']);
     if (current_user_can('add_yop_poll_votes')) {
         $index = 0;
         $i = 0;
         $message['append_row'] = "";
         $append_row = "";
         while ($ok == 1) {
             // yop_poll_dump($answer_details);
             $ok = 0;
             $i = 0;
             $details = "";
             $max = 100;
             $question_count = 0;
             foreach ($current_poll->questions as $question) {
                 $bulkanswers = $_POST['yoppollresultsanswerscheck'][$question->ID];
                 $details .= $question->question . ": ";
                 $answer_count = 0;
                 foreach ($question->answers as $answer) {
                     $answer_count++;
                     if (isset($bulkanswers)) {
                         foreach ($bulkanswers as $bulkanswer) {
                             if ($bulkanswer == $answer->ID) {
                                 $cheked = 1;
                                 if ($_POST['yop_poll_no_of_votes_' . $answer->ID . '_per_answer'] != "") {
                                     if ($_POST['yop_poll_no_of_votes_' . $answer->ID . '_per_answer'] != 0) {
                                         if ($_POST['yop_poll_no_of_votes_' . $answer->ID . '_per_answer'] > $index) {
                                             $answer_details["q-" . $question->ID]['question'] = $question->question . ": ";
                                             $answer_details["q-" . $question->ID]['id'] = $question->ID;
                                             $ok = 1;
                                             $details .= $answer->answer . ",";
                                             $add_to_results .= $answer->answer;
                                             $answer->votes = $answer->votes + 1;
                                             $answer_details["q-" . $question->ID]['a'][] = $answer->ID;
                                             $answer_details["q-" . $question->ID]['answers'][] = $answer->answer;
                                             $a = new YOP_POLL_Answer_Model($answer->ID);
                                             $a->votes++;
                                             $a->update();
                                             $poll_total_votes++;
                                         }
                                     } else {
                                         $message['error'] = "Answer input from answer " . $answer_count . " Question " . ($question_count + 1) . " is zero!";
                                         wp_die(json_encode($message));
                                     }
                                 } else {
                                     $message['error'] = "Answer input from answer " . $answer_count . " Question " . ($question_count + 1) . " is not set!";
                                     wp_die(json_encode($message));
                                 }
                             }
                         }
                     }
                 }
                 $details .= "<br>";
                 $question_count++;
             }
             if ($ok == 1) {
                 $current_poll->poll_total_votes += $poll_total_votes;
                 $poll_total_votes = 0;
                 $current_poll->update_no_votes();
                 $current_poll->save();
                 $result['vote_details'] = json_encode($answer_details);
                 $result['poll_id'] = $_POST['poll_id'];
                 $result['ip'] = yop_poll_get_ip();
                 $result['user_type'] = "admin";
                 $result['vote_id'] = uniqid('vote_id_');
                 $result['user_id'] = $current_user->ID;
                 $message = insert_result_in_db($result);
                 $index++;
                 $append_row[$i] .= " <tr valign=" . 'middle' . " class=" . 'alternate' . "\r\n                    id=" . 'yop-poll-log{{log.id}}' . ">\r\n                    <th class=" . 'check-column' . " scope=" . 'row' . ">\r\n                        <input type=" . 'checkbox' . " value=" . $message['insert_id'] . "\r\n                               name=" . 'yoppollresultscheck[]' . ">\r\n                    </th>\r\n                    <td><strong>" . $result['vote_id'] . "</strong>\r\n                        <br>\r\n                        <div class=" . 'row-actions' . ">\r\n                                                    <span class=" . 'delete' . ">\r\n                                                       <a\tonclick=" . 'return confirm( ' . ' "You are about to delete this result" ' . ') :  "Cancel"   "to stop" ,  "OK"  "to delete' . ')' . "\r\n\r\n                                                              href=" . '?page=yop-polls&action=delete_result&resultid=' . $message['insert_id'] . "\r\n\r\n                                                            class=" . 'submitdelete' . ">Delete</a></span>|<span class=" . 'delete' . ">\r\n                                                         <a\r\n                                                              onclick=" . 'show_pop_up_ban(' . ($max + 1) . ')' . "\r\n                                                            class=" . 'submitdelete' . ">Ban</a></span>\r\n                        </div></td>\r\n                    <td style=" . 'display:none;' . " class=" . 'hidden_tds' . "><input  id=" . 'yop-poll-results-ip_' . ($max + 1) . " value=" . $result['ip'] . "><input></td>\r\n                    <td style=" . 'display: none' . " class=" . 'hidden_tds' . "><input  id=" . 'yop-poll-results-userid_' . ($max + 1) . " value=" . $current_user->ID . "><input></td>\r\n                    <td>\r\n                        Admin\r\n                    </td>\r\n                    <td>\r\n                    </td>\r\n                    <td>\r\n                " . $result['ip'] . "\r\n                    </td>\r\n                    <td>\r\n                     " . current_time('mysql') . "\r\n                    </td>\r\n                    <td class=" . 'more_details' . " style=" . '"' . 'cursor:pointer;' . '"' . ">\r\n                    </td>\r\n                      <td class=" . 'less_details' . " style=" . '"' . 'cursor:pointer;' . '"' . " >\r\n                     </td>\r\n                </tr>\r\n                <tr  class=" . 'results_details' . " class=" . 'hidden_tds' . ">\r\n                    <td></td> <td></td>\r\n                    <td>  Questions<br><strong>" . $details . "</strong><br></td>\r\n                </tr>";
                 //   yop_poll_dump($i);
                 $i = $i + 1;
                 unset($answer_details);
             }
             if ($cheked == 0) {
                 $message['error'] = "You must select at least one answer!";
                 wp_die(json_encode($message));
             }
         }
     } else {
         $message['error'] = "You don't have enough permissions do add a vote!";
         wp_die(json_encode($message));
     }
     //yop_poll_dump($append_row);
     foreach ($append_row as $a) {
         $message['append_row'] .= $a;
     }
     wp_die(json_encode($message));
     // self::view_results_votes();
 }
Example #10
0
 public static function return_template_preview_html($template_id = '', $loc = 1)
 {
     if ('' == $template_id) {
         return "";
     } else {
         $uID = uniqid('t');
         $poll = new YOP_POLL_Poll_Model();
         $template_details = self::get_poll_template_from_database(intval($template_id));
         $template = $template_details['before_vote_template'];
         $template = stripslashes_deep($template);
         $template = str_ireplace('%POLL-NAME%', "Poll Name", $template);
         $template = str_ireplace('%POLL-VOTE-BUTTON%', '<button class="yop_poll_vote_button" onclick="return false;">Vote</button>', $template);
         $question = new YOP_POLL_Question_Model();
         $question->question = "Poll Question";
         $question->allow_multiple_answers = "no";
         $question->allow_other_answers = "no";
         for ($i = 0; $i < 5; $i++) {
             $a = new YOP_POLL_Answer_Model();
             $j = $i + 1;
             $a->ID = $i + 1;
             $a->answer = "Answer {$j}";
             $question->addAnswer($a);
             unset($a);
         }
         $poll->questions = $question;
         $t = $template;
         $pattern = '\\[(\\[?)(QUESTION_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)';
         preg_match("/{$pattern}/s", $t, $m);
         //print_r($m);
         $m = $m[5];
         $m = str_ireplace("%POLL-QUESTION%", $question->question, $m);
         $pattern = '/\\[(\\[?)(ANSWER_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)/';
         preg_match($pattern, $m, $m1);
         $m1 = $m1[5];
         $ts = "";
         /** Start Answer Description replace */
         $pattern = '\\[(\\[?)(ANSWER_DESCRIPTION_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)';
         $m1 = preg_replace("/{$pattern}/s", "", $m1);
         /** End Answer Description replace */
         /** Start Answer Result replace */
         $pattern = '\\[(\\[?)(ANSWER_RESULT_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)';
         $m1 = preg_replace("/{$pattern}/s", "", $m1);
         /** End Answer Result replace */
         foreach ($question->answers as $answer) {
             $temps = str_ireplace('%POLL-ANSWER-CHECK-INPUT%', '<input type="radio" value="' . $answer->ID . '" name="yop_poll_answer-' . $uID . '" id="yop-poll-answer-' . $uID . '-' . $answer->ID . '" />', $m1);
             $temps = str_ireplace('%POLL-ANSWER-LABEL%', '<label>' . $answer->answer . '</label>', $temps);
             $ts .= $temps;
         }
         $pattern = '/\\[(\\[?)(ANSWER_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)/';
         $m = preg_replace($pattern, $ts, $m);
         $pattern = '\\[(\\[?)(QUESTION_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)';
         $template = preg_replace("/{$pattern}/s", $m, $template);
         $pattern = array('/\\[(\\[?)(OTHER_ANSWER_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)/', '/\\[(\\[?)(CUSTOM_FIELD_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)/', '/\\[(\\[?)(ANSWER_RESULT_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)/', '/\\[(\\[?)(CAPTCHA_CONTAINER)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)/');
         $template = preg_replace($pattern, "", $template);
         $template = preg_replace('/\\[\\/?QUESTION_CONTAINER\\]/', "", $template);
         $template = str_ireplace("%POLL-ID%", "preview-" . $uID, $template);
         $template = self::strip_all_tags($template);
         $t = '<style type="text/css">' . $poll->return_poll_css($template_details['css'], array("location" => 'page', 'preview' => true, 'template_id' => $uID, 'loc' => $loc)) . '</style>';
         $t .= '<div id="yop-poll-container-preview-' . $uID . '" class="yop-poll-container" style="position: relative; z-index: 1;">';
         $t .= '' . $template . '</div>';
         $qID = uniqid('q');
         $t = str_ireplace("%QUESTION-ID%", $qID, $t);
         return $t;
     }
 }
 private function import_wp_polls()
 {
     if (check_admin_referer('yop-poll-import', 'yop-poll-imports')) {
         if (current_user_can('import_wp_polls')) {
             $current_date = date('Y/m/d H:i:s');
             $wp_polls = self::get_wp_polls_from_db();
             foreach ($wp_polls as $wp_poll) {
                 $poll = new YOP_POLL_Poll_Model(0);
                 $answers = self::get_wp_poll_answers_from_db_by_id($wp_poll->pollq_id);
                 $poll->poll_title = $wp_poll->pollq_question;
                 $poll->poll_name = $wp_poll->pollq_question;
                 $poll->poll_author = get_current_user_id();
                 $poll->poll_start_date = date("Y-m-d H:i:s", $wp_poll['pollq_timestamp']);
                 if ($wp_poll['pollq_expiry'] != "") {
                     $poll->poll_end_date = date("Y-m-d H:i:s", $wp_poll['pollq_expiry']);
                 } else {
                     $poll->poll_end_date = "01-01-2038 23:59:59";
                 }
                 $poll->poll_status = "active";
                 $poll->poll_date = $current_date;
                 $poll->poll_modified = $current_date;
                 $poll->poll_total_votes = $wp_poll->pollq_totalvotes;
                 $question = new YOP_POLL_Question_Model();
                 $poll_id = $poll->save();
                 $question->poll_d = $poll_id;
                 $question->question = $wp_poll->pollq_question;
                 $question->question_status = "active";
                 $question->question_author = get_current_user_id();
                 $question->poll_order = 1;
                 $question->question_date = $current_date;
                 $question->question_modified = $current_date;
                 $question->save();
                 foreach ($answers as $answer) {
                     $poll_answer = new YOP_POLL_Answer_Model();
                     $poll_answer->poll_id = $poll_id;
                     $poll_answer->question_id = $question->ID;
                     $poll_answer->answer = $answer['polla_answers'];
                     $poll_answer->answer_status = "active";
                     $poll_answer->question_order = 1;
                     $poll_answer->answer_author = get_current_user_id();
                     $poll_answer->votes = $answer['polla_votes'];
                     $poll_answer->answer_date = $current_date;
                     $poll_answer->answer_modified = $current_date;
                     $poll_answer->save();
                     unset($log_details);
                     $log_details = self::get_log_from_db_by_poll_id($wp_poll->pollq_id, $answer['polla_aid']);
                     foreach ($log_details as $log) {
                         $arg['poll_id'] = $poll->ID;
                         $arg['ip'] = $log['pollip_ip'];
                         if ($log['pollip_user'] == 'Guest') {
                             $arg['user_type'] = 'anonymous';
                         } else {
                             $arg['user_type'] = "wordpress";
                         }
                         $arg['user_id'] = $log['pollip_userid'];
                         $arg['vote_date'] = $log['pollip_timestamp'];
                         $a = self::get_answer_from_db_by_id($log['pollip_aid']);
                         $arg[1]["q-" . $question->ID]['a'][0] = $poll_answer->ID;
                         $arg[1]["q-" . $question->ID]['answers'][0] = $a[0]['polla_answers'];
                         $q = self::get_question_from_db_by_id($log['pollip_qid']);
                         $arg[1]["q-" . $question->ID]['question'] = $q[0]['pollq_question'];
                         $arg['vote_details'] = json_encode($arg[1]);
                         $message = $this->insert_log_in_db($arg);
                         if ($message['error'] != "" || $message['success'] != "") {
                             $data['message'] = $message;
                         }
                         unset($arg);
                     }
                 }
             }
         } else {
             wp_die(__yop_poll('You do not have enough permission to import a Wp-poll'));
         }
     } else {
         wp_die(__yop_poll('You do not have enough permission to import a Wp-poll'));
     }
     $data['title'] = __yop_poll("Import Polls from Wp-Poll");
     $this->display('imports.html', $data);
 }