Может быть пригодится кому... Понадобилось в 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` опрос может выглядеть, как на иллюстрации. Для отмеченных вариантов добавляется по голосу.