public function isValid($revalidate = false)
{
if (!$this->validated || $revalidate) {
$this->validated = true;
$this->validationErrors()->reset();
if (!isset($this->params['title']) || !present($this->params['title'])) {
$this->validationErrors()->add('title', 'required');
}
if (count($this->params['options']) < count(array_unique($this->params['options']))) {
$this->validationErrors()->add('options', '.duplicate_options');
}
if (count($this->params['options']) < 2) {
$this->validationErrors()->add('options', '.minimum_two_options');
}
if (count($this->params['options']) > 10) {
$this->validationErrors()->add('options', '.too_many_options');
}
if ($this->params['max_options'] < 1) {
$this->validationErrors()->add('max_options', '.minimum_one_selection');
}
if ($this->params['max_options'] > count($this->params['options'])) {
$this->validationErrors()->add('max_options', '.invalid_max_options');
}
}
return $this->validationErrors()->isAny();
}