Example #1
0
 /**
  * Add element to collection
  * 
  * @todo get it straight with $after
  * @param $element Varien_Data_Form_Element_Abstract
  * @param $after boolean|'^'|string
  * @return Varien_Data_Form_Element_Abstract
  */
 public function add(Varien_Data_Form_Element_Abstract $element, $after = false)
 {
     // Set the Form for the node
     if ($this->_container->getForm() instanceof Varien_Data_Form) {
         $element->setContainer($this->_container);
         $element->setForm($this->_container->getForm());
     }
     if ($after === false) {
         $this->_elements[] = $element;
     } elseif ($after === '^') {
         array_unshift($this->_elements, $element);
     } elseif (is_string($after)) {
         $newOrderElements = array();
         foreach ($this->_elements as $index => $currElement) {
             if ($currElement->getId() == $after) {
                 $newOrderElements[] = $currElement;
                 $newOrderElements[] = $element;
                 $this->_elements = array_merge($newOrderElements, array_slice($this->_elements, $index + 1));
                 return $element;
             }
             $newOrderElements[] = $currElement;
         }
         $this->_elements[] = $element;
     }
     return $element;
 }