Current Path : /var/www/html/clients/nsmk.e-nk.ru/application/maxsite/plugins/samborsky_polls/ |
Current File : /var/www/html/clients/nsmk.e-nk.ru/application/maxsite/plugins/samborsky_polls/ajax-ajax.php |
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); $return = array( 'error_code' => 1, 'error_description' => 'Не указан ID голосования', 'resp' => '' ); if( isset($_POST['q_id']) && is_numeric($_POST['q_id']) && $_POST['type'] ){ // Учесть голос if( 'vote' == $_POST['type'] ){ $question = new sp_question($_POST['q_id']); // Получим данные о голосовании if( $question->get() ){ // Проверим, можно ли голосовать if( $question->check_allow() ){ if( isset($_POST['a_id']) ){ // Ставим кукис if( 1 == $question->data->q_protection ){ set_cookie(array( 'name' => 'sp_' . $question->id, 'value' => TRUE, // На 3 месяца 'expire' => 3600*24*30*3 )); } // Учитываем голоса foreach( $_POST['a_id'] as $a_id ){ $answer = new sp_answer($a_id); $answer->inc(); } // Запишем логи sp_write_logs(); $question->update(array( // +1 проголосовавший 'q_totalvoters' => $question->data->q_totalvoters + 1, // + добавляем голоса 'q_totalvotes' => $question->data->q_totalvotes + count($_POST['a_id']) )); if( $question->get() ){ $return['error_code'] = 0; $return['error_description'] = ''; $return['resp'] = $question->results(); } else{ $return['error_description'] = 'Проблема с загрузкой результатов голосования'; } } else{ $return['error_description'] = 'Не указан вариант ответа'; } } else{ $return['error_description'] = $question->last_error; } } else{ $return['error_description'] = 'Голосования не существует'; } } // Показать результаты else if( 'results' == $_POST['type'] ){ $question = new sp_question($_POST['q_id']); // Получим данные о голосовании if( $question->get() ){ $return['error_code'] = 0; $return['error_description'] = ''; $return['resp'] = $question->results(); } else{ $return['error_description'] = 'Голосования не существует'; } } else{ $return['error_description'] = 'Не известный метод'; } } echo json_encode($return); function sp_write_logs(){ global $MSO; $CI = &get_instance(); $host = @gethostbyaddr($_SERVER['REMOTE_ADDR']); if( empty($host) ) $host = $_SERVER['REMOTE_ADDR']; $ip = ip2long($_SERVER['REMOTE_ADDR']); foreach( $_POST['a_id'] as $a_id ){ $CI->db->insert('sp_logs',array( 'l_qid' => $_POST['q_id'], 'l_aid' => $a_id, 'l_ip' => $ip, 'l_host' => $host, 'l_timestamp' => gmmktime(), 'l_userid' => is_login() ? $MSO->data['session']['users_id'] : 0, 'l_user' => is_login() ? $MSO->data['session']['users_login'] : '-' )); } } ?>