Example #1
0
 protected function renameChild(HTML_QuickForm2_Node $element)
 {
     $tokens = explode('[', str_replace(']', '', $element->getName()));
     if ($this === $element->getContainer()) {
         // Child has already been renamed by its group before
         if (!is_null($this->previousName) && $this->previousName !== '') {
             $gtokens = explode('[', str_replace(']', '', $this->previousName));
             $pos = array_search(end($gtokens), $tokens);
             if (!is_null($pos)) {
                 $tokens = array_slice($tokens, $pos + 1);
             }
         }
     }
     if (is_null($this->name) || $this->name === '') {
         if (is_null($this->previousName) || $this->previousName === '') {
             return $element;
         } else {
             $elname = $tokens[0];
             unset($tokens[0]);
             foreach ($tokens as $v) {
                 $elname .= '[' . $v . ']';
             }
         }
     } else {
         $elname = $this->getName() . '[' . implode('][', $tokens) . ']';
     }
     $element->setName($elname);
     return $element;
 }
Example #2
0
 /**
  * Prepends group's name to contained element's name
  *
  * Used when adding an element to the group or changing group's name
  *
  * @param HTML_QuickForm2_Node $element
  *
  * @return HTML_QuickForm2_Node
  */
 protected function renameChild(HTML_QuickForm2_Node $element)
 {
     $tokens = explode('[', str_replace(']', '', $element->getName()));
     // Child has already been renamed by its group before
     if ($this === $element->getContainer() && strlen($this->previousName)) {
         $gtokens = explode('[', str_replace(']', '', $this->previousName));
         if ($gtokens === array_slice($tokens, 0, count($gtokens))) {
             array_splice($tokens, 0, count($gtokens));
         }
     }
     if (strlen($this->name)) {
         $element->setName($this->name . '[' . implode('][', $tokens) . ']');
     } elseif (strlen($this->previousName)) {
         $elname = array_shift($tokens);
         foreach ($tokens as $token) {
             $elname .= '[' . $token . ']';
         }
         $element->setName($elname);
     }
     return $element;
 }