/** * Return an array with the elements according to the parameters * * @param int $id * @param int $langId * @param string $type * * @return array */ protected function _selectElements($id, $all = false) { $oElem = new FormElement(); $oElemType = new FormElementType(); $select = $oElem->select()->setIntegrityCheck(false)->from($oElem->getName())->joinInner($oElemType->getName(), 'FET_ID = FE_TypeID', 'FET_Title'); if (!$all) { $select->where('FE_ID = ?', $id); } else { $select->where('FE_SectionID = ?', $id); } $select->order('FE_Seq ASC'); $elements = $oElem->fetchAll($select)->toArray(); return $elements; }
public static function process_form_elements(FormElement $element) { ($element->getLabel() != null and $element->getLabel() != "") ? $isLabel = true : ($isLabel = false); ($element->getId() != null and $element->getId() != "") ? $label = $element->getId() : ($label = $element->getName()); $output = ""; // On case les checkbox / radio dans une div chez nous :) if (isset($element->getAttributes()['type'])) { if (!self::$flag_process_form_elements_radio_list_open) { if (!self::$flag_process_form_elements_checkbox_list_open and $element->getAttributes()['type'] == 'checkbox') { self::$flag_process_form_elements_checkbox_list_open = true; $output .= "<div style=\"float:left;\">"; } else { if (self::$flag_process_form_elements_checkbox_list_open and $element->getAttributes()['type'] != 'checkbox') { self::$flag_process_form_elements_checkbox_list_open = false; $output .= "</div><div style=\"clear:both;\"></div>"; } } } if (!self::$flag_process_form_elements_checkbox_list_open) { if (!self::$flag_process_form_elements_radio_list_open and $element->getAttributes()['type'] == 'radio') { self::$flag_process_form_elements_radio_list_open = true; $output .= "<div style=\"float:left;\">"; } else { if (self::$flag_process_form_elements_radio_list_open and $element->getAttributes()['type'] != 'radio') { self::$flag_process_form_elements_radio_list_open = false; $output .= "</div><div style=\"clear:both;\"></div>"; } } } } else { if (self::$flag_process_form_elements_radio_list_open or self::$flag_process_form_elements_checkbox_list_open) { self::$flag_process_form_elements_checkbox_list_open = false; self::$flag_process_form_elements_radio_list_open = false; $output .= "</div><div style=\"clear:both;\"></div>"; } } // Element auto-fermable if ($element->is_closed()) { if ($isLabel and isset($element->getAttributes()['type']) and ($element->getAttributes()['type'] != 'radio' and $element->getAttributes()['type'] != 'checkbox')) { $output .= "<div class=\"formulaire_ligne\"><label for=\"" . $label . "\">" . $element->getLabel() . "</label>"; } if (isset($element->getAttributes()['type']) and ($element->getAttributes()['type'] == 'checkbox' or $element->getAttributes()['type'] == 'radio')) { $output .= "<div class=\"FormElementCheckboxRadio\">"; } $output .= "<" . $element->getBalise(); if ($element->getId() != null and $element->getId() != "") { $output .= " id=\"" . $element->getId() . "\""; } if ($element->getName() != null and $element->getName() != "") { $output .= " name=\"" . $element->getName() . "\""; } $output .= " value=\"" . $element->getValue() . "\""; foreach ($element->getAttributes() as $k => $v) { $output .= " {$k}=\"{$v}\""; if ($k == 'type' and $v == 'radio') { $output .= " class=\"radio\""; } } $output .= "/>"; if ($isLabel and isset($element->getAttributes()['type']) and $element->getAttributes()['type'] == 'checkbox') { $output .= "<label for=\"" . $label . "\"><span class=\"ui\"></span><span class=\"label\">" . $element->getLabel() . "</span></label>"; $output .= "</div>"; } else { if ($isLabel and isset($element->getAttributes()['type']) and $element->getAttributes()['type'] == 'radio') { $output .= "<label for=\"" . $label . "\"><span class=\"ui\"></span><span class=\"label\">" . $element->getLabel() . "</span></label>"; $output .= "</div>"; } else { if ($isLabel and isset($element->getAttributes()['type']) and ($element->getAttributes()['type'] != 'radio' and $element->getAttributes()['type'] != 'checkbox')) { $output .= "</div>"; } } } } else { if ($isLabel and (strtolower($element->getBalise()) == "select" or strtolower($element->getBalise()) == "textarea")) { $output .= "<label for=\"" . $label . "\">" . $element->getLabel() . "</label>"; } $output .= "<" . $element->getBalise(); if ($element->getId() != null and $element->getId() != "") { $output .= " id=\"" . $element->getId() . "\""; } if ($element->getName() != null and $element->getName() != "") { $output .= " name=\"" . $element->getName() . "\""; } $output .= " value=\"" . $element->getValue() . "\""; foreach ($element->getAttributes() as $k => $v) { $output .= " {$k}=\"{$v}\""; } $output .= ">"; if (sizeof($element->getElements()) > 0) { foreach ($element->getElements() as $v) { $output .= self::process_form_elements($v); } } else { if (strtolower($element->getBalise()) != "textarea") { $output .= $element->getLabel(); } else { $output .= $element->getValue(); } } $output .= "</" . $element->getBalise() . ">"; } return $output; }
/** * add an element to the form * @param FormElement $element * @return FormElement */ private function addElement(FormElement $element) { return $this->_elements[$element->getName()] = $element; }
/** * Renders a list of errors * * * @param FormElement $field A form element */ public function renderFieldErrors(FormElement $field) { // Strip brakets on field to fix problem with arrays. // this happens with the multi select elements $name = str_replace(array('[', ']'), array('', ''), $field->getName()); if (isset($this->errors[$name]) && count($this->errors[$name])) { echo "<ul class=\"form_input_error\">"; foreach ($this->errors[$name] as $error) { echo "<li>{$error}</li>"; } echo "</ul>"; } }
public static function process_form_elements(FormElement $element) { ($element->getLabel() != null and $element->getLabel() != "") ? $isLabel = true : ($isLabel = false); ($element->getId() != null and $element->getId() != "") ? $label = $element->getId() : ($label = $element->getName()); $output = ""; // Element auto-fermable if ($element->is_closed()) { if ($isLabel and ($element->getAttributes()['type'] != 'radio' and $element->getAttributes()['type'] != 'checkbox')) { $output .= "<label for=\"" . $label . "\">" . $element->getLabel() . "</label>"; } $output .= "<" . $element->getBalise(); if ($element->getId() != null and $element->getId() != "") { $output .= " id=\"" . $element->getId() . "\""; } if ($element->getName() != null and $element->getName() != "") { $output .= " name=\"" . $element->getName() . "\""; } $output .= " value=\"" . $element->getValue() . "\""; foreach ($element->getAttributes() as $k => $v) { $output .= " {$k}=\"{$v}\""; } $output .= "/>"; if ($isLabel and ($element->getAttributes()['type'] == 'radio' or $element->getAttributes()['type'] == 'checkbox')) { $output .= "<label for=\"" . $label . "\">" . $element->getLabel() . "</label>"; } } else { if ($isLabel and (strtolower($element->getBalise()) == "select" or strtolower($element->getBalise()) == "textarea")) { $output .= "<label for=\"" . $label . "\">" . $element->getLabel() . "</label>"; } $output .= "<" . $element->getBalise(); if ($element->getId() != null and $element->getId() != "") { $output .= " id=\"" . $element->getId() . "\""; } if ($element->getName() != null and $element->getName() != "") { $output .= " name=\"" . $element->getName() . "\""; } $output .= " value=\"" . $element->getValue() . "\""; foreach ($element->getAttributes() as $k => $v) { $output .= " {$k}=\"{$v}\""; } $output .= ">"; if (sizeof($element->getElements()) > 0) { foreach ($element->getElements() as $v) { $output .= self::process_form_elements($v); } } else { if (strtolower($element->getBalise()) != "textarea") { $output .= $element->getLabel(); } else { $output .= $element->getValue(); } } $output .= "</" . $element->getBalise() . ">"; } return $output; }