We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26883
    • 137 Posts
    Может быть пригодится кому... Понадобилось в EasyPoll делать многовариантные опросы - чтобы можно было отметить в чекбоксах несколько вариантов ответа. Оказалось, можно сделать просто.
    1. Менеджер опросов не трогаем.

    2. В сниппет вводим дополнительный параметр &multi
    $config['multi']             = isset($multi) ? $multi == true : false;


    3. В файле easypoll.class.php код, создающий форму. Вместо

    $values = array(
    				'answer' => htmlentities($row['title'], ENT_COMPAT, 'UTF-8'),
    				'select' => '<input type="radio" name="poll_choice" value="' . $row['choiceid'] . '"/>'
    			);


    пишем

    	if ( $this->config['multi'] ) {
    			$values = array(
    				'answer' => htmlentities($row['title'], ENT_COMPAT, 'UTF-8'),
    				'select' => '<input type="checkbox" name="poll_choice[]"   value="' . $row['choiceid'] . '"/>'
    			);
    
            } else {
    			$values = array(
    				'answer' => htmlentities($row['title'], ENT_COMPAT, 'UTF-8'),
    				'select' => '<input type="radio" name="poll_choice" value="' . $row['choiceid'] . '"/>'
    			);
           }


    4. Вместо
    $success = $this->submitVote(intval($_POST['poll_choice']));


    пишем
    		if ( $this->config['multi'] ) {
    		  foreach ($_POST['poll_choice'] as $choice)
    		   {
    			$success = $this->submitVote($choice);
    		
    		   }
    		} else {
    			$success = $this->submitVote(intval($_POST['poll_choice']));
    		}


    И всё. Теперь, при вызове EasyPoll с параметром &multi=`1` опрос может выглядеть, как на иллюстрации. Для отмеченных вариантов добавляется по голосу.