Example #1
0
 /**
  * Remove a form element
  *
  * @param string $elementName
  * @return $this
  */
 public function removeElement($elementName)
 {
     $i = $this->getElementIndex($elementName);
     $newInitValues = array();
     $keys = array_keys($this->initFieldsValues);
     if (isset($keys[0]) && is_numeric($keys[0])) {
         foreach ($this->initFieldsValues as $fields) {
             $newInitValuesAry = array();
             foreach ($fields as $name => $field) {
                 if (isset($name) && $name == $elementName) {
                     unset($fields[$name]);
                 } else {
                     $newInitValuesAry[$name] = $field;
                 }
             }
             $newInitValues[] = $newInitValuesAry;
         }
     } else {
         foreach ($this->initFieldsValues as $name => $field) {
             if (isset($name) && $name == $elementName) {
                 unset($this->initFieldsValues[$name]);
             } else {
                 $newInitValues[$name] = $field;
             }
         }
     }
     $this->initFieldsValues = $newInitValues;
     if (isset($this->fields[$elementName])) {
         unset($this->fields[$elementName]);
     }
     if (null !== $i) {
         $this->form->removeChild($i);
     }
     return $this;
 }