/** * Recursive method to add classes to form fields even when they're deep * * @param sfFormField $field * @param string $errorClass * @param string $validClass * @return void */ protected function _recursiveFormFieldClases($field, $errorClass, $validClass) { // recursive form field schemas; if ($field instanceof sfFormFieldSchema) { foreach ($field as $f) { $this->_recursiveFormFieldClases($f, $errorClass, $validClass); } return; } if ($field->hasError()) { $field->getWidget()->setAttribute('class', $field->getWidget()->getAttribute('class') ? $field->getWidget()->getAttribute('class') . ' ' . $errorClass : $errorClass); } else { if ($this->getUseFieldValidClassServerSide() && ($this->getUseValidClassOnEmptyFields() || $field->getValue())) { $field->getWidget()->setAttribute('class', $field->getWidget()->getAttribute('class') ? $field->getWidget()->getAttribute('class') . ' ' . $validClass : $validClass); } } }