Ejemplo n.º 1
0
 function getFormElement($v, $value = '')
 {
     $this->toTpl('hasForm', 1);
     $v = $this->doQoolHook('front_pre_getformelement_element', $v);
     $value = $this->doQoolHook('front_pre_getformelement_value', $value);
     switch ($v['value']) {
         case "editor":
             $this->loadEditorBtns();
             $this->toTpl("loadEditor", 1);
             $this->toTpl("isEditor", 1);
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'editor span12');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "fileinput":
             $element = new Zend_Form_Element_File($v['name']);
             $element->setAttrib('class', 'input-file');
             break;
         case "captcha":
             $element = new Zend_Form_Element_Captcha($v['name'], array('label' => $this->t("Please verify you are a human"), 'captcha' => $config->site->captcha_adapter, 'captchaOptions' => array('captcha' => $config->site->captcha_adapter, 'wordLen' => 6, 'timeout' => 300)));
             return $element;
             break;
         case "multifileinputs":
             $element = new Zend_Form_Element_File($v['name']);
             $element->setAttrib('class', 'input-file');
             $element->setMultiFile(10);
             break;
         case "multifileinput":
             $name = $v['name'] . "[]";
             $element = new Zend_Form_Element_File($name);
             $element->setAttrib('class', 'input-file');
             $element->setAttrib('multiple', 'multiple');
             $element->setMultiFileForQool(1);
             $this->toTpl('filelist', true);
             break;
         case "checkbox":
             $element = new Zend_Form_Element_Checkbox($v['name']);
             $element->setAttrib('class', 'checkbox');
             $element->setValue($value);
             break;
         case "editarea":
             $this->toTpl('editarea', 1);
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'editarea span12');
             $element->setAttrib('id', 'editarea');
             $element->setAttrib('style', 'height:500px');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "password":
             $element = new Zend_Form_Element_Password($v['name']);
             break;
         case "textarea":
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'span9');
             $element->setAttrib('style', 'height:80px');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "hidden":
             $element = new Zend_Form_Element_Hidden($v['name']);
             $element->setValue($value);
             $element->setDecorators(array("ViewHelper"));
             break;
         case "textinput":
             $element = new Zend_Form_Element_Text($v['name']);
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "selectbox":
             $element = new Zend_Form_Element_Select($v['name']);
             if ($v['use_pool'] && method_exists($this, $v['use_pool'])) {
                 if ($v['pool_type'] != '0') {
                     $this->pool_type = $v['pool_type'];
                 }
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($this->{$v}['use_pool']() as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
             }
             break;
         case "multiselectbox":
             $element = new Zend_Form_Element_Multiselect($v['name']);
             if ($v['use_pool'] && method_exists($this, $v['use_pool'])) {
                 if ($v['pool_type'] != '0') {
                     $this->pool_type = $v['pool_type'];
                 }
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($this->{$v}['use_pool']() as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if (is_array($value)) {
                     foreach ($value as $a) {
                         $vals[] = $a['selected_value'];
                     }
                     $element->setValue($vals);
                 }
             }
             break;
         case "treeselectbox":
             $element = new Zend_Form_Element_Select($v['name']);
             if ($v['use_pool'] && method_exists($this, $v['use_pool'])) {
                 if ($v['pool_type'] != '0') {
                     $this->pool_type = $v['pool_type'];
                 }
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
                 //x10 times nested support. Needs fix
                 foreach ($this->{$v}['use_pool']() as $vo) {
                     $element->addMultiOption($vo['id'], $vo['title']);
                     foreach ($vo['kids'] as $a) {
                         $element->addMultiOption($a['id'], "|_" . $a['title']);
                         foreach ($a['kids'] as $b) {
                             $element->addMultiOption($b['id'], "|__" . $b['title']);
                             foreach ($b['kids'] as $c) {
                                 $element->addMultiOption($c['id'], "|___" . $c['title']);
                                 foreach ($c['kids'] as $d) {
                                     $element->addMultiOption($d['id'], "|____" . $d['title']);
                                     foreach ($d['kids'] as $e) {
                                         $element->addMultiOption($e['id'], "|_____" . $e['title']);
                                         foreach ($e['kids'] as $f) {
                                             $element->addMultiOption($f['id'], "|______" . $f['title']);
                                             foreach ($f['kids'] as $g) {
                                                 $element->addMultiOption($g['id'], "|______" . $g['title']);
                                                 foreach ($g['kids'] as $h) {
                                                     $element->addMultiOption($h['id'], "|_______" . $h['title']);
                                                     foreach ($h['kids'] as $i) {
                                                         $element->addMultiOption($i['id'], "|________" . $i['title']);
                                                         foreach ($i['kids'] as $j) {
                                                             $element->addMultiOption($j['id'], "|_________" . $j['title']);
                                                             foreach ($j['kids'] as $l) {
                                                                 $element->addMultiOption($l['id'], "|__________" . $l['title']);
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             break;
     }
     if ($v['required']) {
         $element->setRequired(true);
     }
     if ($v['title']) {
         $element->setLabel($v['title']);
     } else {
         $element->setLabel($this->t(ucfirst(str_replace("_", " ", $v['name']))));
     }
     if ($v['attributes']) {
         foreach ($v['attributes'] as $k => $r) {
             $element->setAttrib($k, $r);
         }
     }
     //$element->setDecorators(array("ViewHelper"));
     $element = $this->doQoolHook('front_post_getformelement_object', $element);
     return $element;
 }
Ejemplo n.º 2
0
 /**
  * Accepts an array with parameters and mixed values and returns a Zend Form Element to be used by a Zend Form object
  *
  * @param array $v
  * @param mixed $value
  * @return object
  */
 function getFormElement($v, $value = '')
 {
     $config = $this->config;
     $this->toTpl('hasForm', 1);
     $v = $this->doQoolHook('pre_getformelement_element', $v);
     $value = $this->doQoolHook('pre_getformelement_value', $value);
     switch ($v['value']) {
         case "editor":
             $this->loadEditorBtns();
             $this->toTpl("loadEditor", 1);
             $this->toTpl("isEditor", 1);
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'editor span12');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "rte":
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'cleditor span12');
             $this->toTpl("isRTE", 1);
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "fileinput":
             $element = new Zend_Form_Element_File($v['name']);
             $element->setAttrib('class', 'input-file');
             break;
         case "dropboxchooser":
             $element = new Zend_Form_Element_Dropbox($v['name']);
             $element->setAttrib('style', 'visibility:hidden');
             $element->setAttrib('data-multiselect', true);
             break;
         case "captcha":
             if ($config->site->captcha_adapter == 'ReCaptcha') {
                 //Do whats needed for recaptcha to work with form
             }
             $element = new Zend_Form_Element_Captcha($v['name'], array('label' => $this->t("Please verify you are a human"), 'captcha' => $config->site->captcha_adapter, 'captchaOptions' => array('captcha' => $config->site->captcha_adapter, 'wordLen' => 6, 'timeout' => 300)));
             return $element;
             break;
         case "multifileinputs":
             $element = new Zend_Form_Element_File($v['name']);
             $element->setAttrib('class', 'input-file');
             $element->setMultiFile(10);
             break;
         case "multifileinput":
             $name = $v['name'] . "[]";
             $element = new Zend_Form_Element_File($name);
             $element->setAttrib('class', 'input-file');
             $element->setAttrib('multiple', 'multiple');
             $element->setMultiFileForQool(1);
             $this->toTpl('filelist', true);
             break;
         case "checkbox":
             $element = new Zend_Form_Element_Checkbox($v['name']);
             $element->setAttrib('class', 'checkbox');
             $element->setValue($value);
             break;
         case "editarea":
             $this->toTpl('editarea', 1);
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'editarea span12');
             $element->setAttrib('id', 'editarea');
             $element->setAttrib('style', 'height:500px');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "password":
             $element = new Zend_Form_Element_Password($v['name']);
             break;
         case "textarea":
             $element = new Zend_Form_Element_Textarea($v['name']);
             $element->setAttrib('class', 'span9');
             $element->setAttrib('style', 'height:80px');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "hidden":
             $element = new Zend_Form_Element_Hidden($v['name']);
             $element->setValue($value);
             $element->setDecorators(array("ViewHelper"));
             break;
         case "textinput":
             $element = new Zend_Form_Element_Text($v['name']);
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "datepicker":
             $element = new Zend_Form_Element_Text($v['name']);
             $element->setAttrib('class', 'input-xlarge datepicker');
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "imageselect":
             $element = new Zend_Form_Element_Text($v['name']);
             $element->setAttrib('class', 'imageselector');
             $this->toTpl("hiddenEditor", 1);
             if ($value != '') {
                 $element->setValue($value);
             }
             break;
         case "selectbox":
             $element = new Zend_Form_Element_Select($v['name']);
             if ($v['use_pool'] && method_exists($this, $v['use_pool'])) {
                 if ($v['pool_type'] != '0') {
                     $this->pool_type = $v['pool_type'];
                 }
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($this->{$v}['use_pool']() as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
             } elseif (is_array($v['use_pool'])) {
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($v['use_pool'] as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
             } elseif ($v['use_pool']) {
                 //the pools might have been assigned by an addon
                 //include the file and run it.
                 require_once $this->dirs['structure']['addons'] . DIR_SEP . Zend_Registry::get('controller') . DIR_SEP . "func.php";
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($v['use_pool']($this) as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
             }
             break;
         case "multiselectbox":
             $element = new Zend_Form_Element_Multiselect($v['name']);
             $element->setAttrib('data-rel', 'chosen');
             if ($v['use_pool'] && method_exists($this, $v['use_pool'])) {
                 if ($v['pool_type'] != '0') {
                     $this->pool_type = $v['pool_type'];
                 }
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($this->{$v}['use_pool']() as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if (is_array($value)) {
                     foreach ($value as $a) {
                         $vals[] = $a['selected_value'];
                     }
                     $element->setValue($vals);
                 }
             } else {
                 //the pools might have been assigned by an addon
                 //include the file and run it.
                 require_once $this->dirs['structure']['addons'] . DIR_SEP . Zend_Registry::get('controller') . DIR_SEP . "func.php";
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 foreach ($v['use_pool']($this) as $ko => $vo) {
                     if ($v['noself'] && $vo['id'] == $v['noself']) {
                     } else {
                         $element->addMultiOption($vo['id'], $vo['title']);
                     }
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
             }
             break;
         case "treeselectbox":
             $element = new Zend_Form_Element_Select($v['name']);
             if ($v['use_pool'] && method_exists($this, $v['use_pool'])) {
                 if ($v['pool_type'] != '0') {
                     $this->pool_type = $v['pool_type'];
                 }
                 if ($v['novalue']) {
                     $element->addMultiOption(0, $this->t('No Selection'));
                 }
                 if ($value != '') {
                     $element->setValue($value);
                 }
                 //x10 times nested support. Needs fix
                 foreach ($this->{$v}['use_pool']() as $vo) {
                     $element->addMultiOption($vo['id'], $vo['title']);
                     foreach ($vo['kids'] as $a) {
                         $element->addMultiOption($a['id'], "|_" . $a['title']);
                         foreach ($a['kids'] as $b) {
                             $element->addMultiOption($b['id'], "|__" . $b['title']);
                             foreach ($b['kids'] as $c) {
                                 $element->addMultiOption($c['id'], "|___" . $c['title']);
                                 foreach ($c['kids'] as $d) {
                                     $element->addMultiOption($d['id'], "|____" . $d['title']);
                                     foreach ($d['kids'] as $e) {
                                         $element->addMultiOption($e['id'], "|_____" . $e['title']);
                                         foreach ($e['kids'] as $f) {
                                             $element->addMultiOption($f['id'], "|______" . $f['title']);
                                             foreach ($f['kids'] as $g) {
                                                 $element->addMultiOption($g['id'], "|______" . $g['title']);
                                                 foreach ($g['kids'] as $h) {
                                                     $element->addMultiOption($h['id'], "|_______" . $h['title']);
                                                     foreach ($h['kids'] as $i) {
                                                         $element->addMultiOption($i['id'], "|________" . $i['title']);
                                                         foreach ($i['kids'] as $j) {
                                                             $element->addMultiOption($j['id'], "|_________" . $j['title']);
                                                             foreach ($j['kids'] as $l) {
                                                                 $element->addMultiOption($l['id'], "|__________" . $l['title']);
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             break;
     }
     if ($v['required']) {
         $element->setRequired(true);
     }
     if ($v['title']) {
         $element->setLabel($v['title']);
     } else {
         $element->setLabel($this->t(ucfirst(str_replace("_", " ", $v['name']))));
     }
     if ($v['attributes']) {
         foreach ($v['attributes'] as $k => $r) {
             $element->setAttrib($k, $r);
         }
     }
     //$element->setDecorators(array("ViewHelper"));
     $element = $this->doQoolHook('post_getformelement_object', $element);
     return $element;
 }