Example #1
0
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, '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('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'] = t('Проблема с загрузкой результатов голосования');
                    }
                } else {
                    $return['error_description'] = t('Не указан вариант ответа');
                }
Example #2
0
 function form()
 {
     $CI =& get_instance();
     $CI->load->library('table');
     $CI->table->clear();
     $CI->table->set_template(array('table_open' => '<table class="sp_polls" id="sp_polls_' . $this->id . '">'));
     $CI->table->set_caption("<strong>{$this->data->q_question}</strong>");
     $answers = new sp_answer();
     $answers_array = $answers->get_array($this->id);
     foreach ($answers_array as $a) {
         $CI->table->add_row("<label><input type=\"radio\" id=\"sp_answer_{$a->a_id}\" class=\"sp_question_{$this->id}\" name=\"sp_question_{$this->id}\" value=\"{$a->a_id}\"> {$a->a_answer}</label>");
         /*
         $CI->table->add_row(
         	"<input type=\"radio\" id=\"sp_answer_{$a->a_id}\" class=\"sp_question_{$this->id}\" name=\"sp_question_{$this->id}\" value=\"{$a->a_id}\">",
         	"<label for=\"sp_answer_{$a->a_id}\">{$a->a_answer}</label>"
         );
         */
     }
     // Куда отправлять POST
     $ajax_path = getinfo('ajax') . base64_encode('plugins/samborsky_polls/ajax-ajax.php');
     $results_link = $this->options['show_results_link'] ? '&nbsp;&nbsp; <a href="javascript: void(0);" onclick="javascript:sp_polls_results(' . $this->id . ');" class="sp_polls_ajax_link">' . t('Результаты') . '</a>' : '';
     $CI->table->add_row('<input type="hidden" id="sp_ajax_path_' . $this->id . '" value="' . $ajax_path . '">' . '<input type="button" value="' . t('Проголосовать') . '" onclick="javascript:sp_polls_vote(' . $this->id . ');">' . $results_link);
     if ($this->options['show_archives_link']) {
         $CI->table->add_row('<a href="' . getinfo('siteurl') . $this->options['archive_url'] . '">' . t('Архивы голосований') . '</a>');
     }
     // Генерируем таблицу и форму загрузки
     $out = $CI->table->generate() . "<div class=\"sp_polls_loader\" id=\"sp_polls_loader_{$this->id}\">\n\t\t\t\t<img src=\"" . getinfo('plugins_url') . 'samborsky_polls/ajax-loader.gif' . "\" alt=\"" . t('Идет загрузка…') . "\">\n\t\t\t\t<p>" . t('Идет загрузка…') . "</p>\n\t\t\t</div>";
     return $out;
 }
Example #3
0
        if ($_POST['act'] == 'edit') {
            $CI->db->insert('sp_logs', array('l_qid' => $id, 'l_host' => t('Отредактировано'), 'l_timestamp' => mktime(), 'l_user' => is_login() ? $MSO->data['session']['users_login'] : '******'));
            header("Location: " . getinfo('site_url') . "admin/samborsky_polls/list/edit_ok");
        } else {
            $CI->db->insert('sp_logs', array('l_qid' => $id, 'l_host' => t('Создано'), 'l_timestamp' => mktime(), 'l_user' => is_login() ? $MSO->data['session']['users_login'] : '******'));
            header("Location: " . getinfo('site_url') . "admin/samborsky_polls/list/add_ok");
        }
    } else {
        echo '<div class="error">' . t(implode('<br />', $data['errors']), 'admin') . '</div>';
    }
}
// данные для редактирования голосования
if (is_numeric(mso_segment(4)) and !isset($data['errors'])) {
    $qu = new sp_question(mso_segment(4));
    $qu->get();
    $answers = new sp_answer();
    $answers_array = $answers->get_array(mso_segment(4));
    $answers_array = add_empty_answers($answers_array);
    $act = 'edit';
    $no_expiry = '';
    if ($qu->data->q_expiry == 0) {
        $no_expiry = 'checked="checked"';
        $qu->data->q_expiry = $qu->data->q_timestamp;
    }
    //pr($qu);
} elseif (!isset($data['errors'])) {
    $act = 'new';
    $no_expiry = '';
    $date = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    if (!($exp = get_len_polls($date, $options['len_polls']))) {
        $exp = $date;