/** * Constructor * @param object $title the caption of the form * @param string $key the key * @param object $object reference to targetobject (@todo, which object will be passed here?) */ function __construct($title, $key, $object) { parent::__construct($title, ' '); $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_URLLINK_URL)); $this->addElement(new Xmf_Object_Form_Element_Text($object, 'url_' . $key)); $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_CAPTION)); $this->addElement(new Xmf_Object_Form_Element_Text($object, 'caption_' . $key)); $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_DESC . '<br/>')); $this->addElement(new Xmf_Form_Element_Textarea('', 'desc_' . $key, $object->getVar('description'))); $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_URLLINK_TARGET)); $targ_val = $object->getVar('target'); $targetRadio = new Xmf_Form_Element_Radio('', 'target_' . $key, $targ_val != '' ? $targ_val : '_blank'); $control = $object->getControl('target'); $targetRadio->addOptionArray($control['options']); $this->addElement($targetRadio); }
/** * Gets a control from the targetobject (@todo, which object will be passed here?) * * @param string $controlName name of the control element * @param string $key key of the form variables in the targetobject */ function getControl($controlName, $key) { if (!$controlName) { $controlName = 'select'; } switch ($controlName) { case 'check': $control = $this->targetObject->getControl($key); $controlObj = new Xmf_Form_Element_Checkbox_Check($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key)); $controlObj->addOptionArray($control['options']); return $controlObj; break; case 'color': $control = $this->targetObject->getControl($key); $controlObj = new Xmf_Form_Element_Colorpicker($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key)); return $controlObj; break; case 'radio': $control = $this->targetObject->getControl($key); $controlObj = new Xmf_Form_Element_Radio($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key)); $controlObj->addOptionArray($control['options']); return $controlObj; break; case 'label': return new Xmf_Form_Element_Label($this->targetObject->vars[$key]['title'], $this->targetObject->getVar($key)); break; case 'textarea': $form_rows = isset($this->targetObject->controls[$key]['rows']) ? $this->targetObject->controls[$key]['rows'] : 5; $form_cols = isset($this->targetObject->controls[$key]['cols']) ? $this->targetObject->controls[$key]['cols'] : 60; $editor = new Xmf_Form_Element_Textarea($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key, 'e'), $form_rows, $form_cols); if ($this->targetObject->vars[$key]['desc']) { $editor->setDescription($this->targetObject->vars[$key]['desc']); } return $editor; break; case 'dhtmltextarea': $editor = new Xmf_Form_Element_Textarea_Dhtml($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key, 'e'), 20, 60); if ($this->targetObject->vars[$key]['desc']) { $editor->setDescription($this->targetObject->vars[$key]['desc']); } return $editor; break; case 'theme': return $this->getThemeSelect($key, $this->targetObject->vars[$key]); case 'theme_multi': return $this->getThemeSelect($key, $this->targetObject->vars[$key], true); break; case 'timezone': return new Xmf_Form_Element_Select_Timezone($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key)); break; case 'group': return new Xmf_Form_Element_Select_Group($this->targetObject->vars[$key]['title'], $key, false, $this->targetObject->getVar($key, 'e'), 1, false); break; case 'group_multi': return new Xmf_Form_Element_Select_Group($this->targetObject->vars[$key]['title'], $key, false, $this->targetObject->getVar($key, 'e'), 5, true); break; /*case 'user': return new XoopsFormSelectUser($this->targetObject->vars[$key]['title'], $key, false, $this->targetObject->getVar($key, 'e'), 1, false); break;*/ /*case 'user': return new XoopsFormSelectUser($this->targetObject->vars[$key]['title'], $key, false, $this->targetObject->getVar($key, 'e'), 1, false); break;*/ case 'user_multi': return new Xmf_Form_Element_Select_User($this->targetObject->vars[$key]['title'], $key, false, $this->targetObject->getVar($key, 'e'), 5, true); break; case 'password': return new Xmf_Form_Element_Password($this->targetObject->vars[$key]['title'], $key, 50, 255, $this->targetObject->getVar($key, 'e')); break; case 'country': return new Xmf_Form_Element_Select_Country($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key, 'e')); break; case 'urllink': return new Xmf_Object_Form_Element_Tray_UrlLink($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getUrlLinkObj($key)); break; case 'richfile': return new Xmf_Object_Form_Element_Tray_Richfile($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getFileObj($key)); break; case 'source': case 'sourceeditor': return new Xmf_Form_Element_Textarea_Sourceeditor($this->targetObject->vars[$key]['title'], $key, $this->targetObject->getVar($key, 'e')); break; case 'hidden': return new Xmf_Form_Element_Hidden($key, $this->targetObject->vars[$key]['value']); break; /*case 'readonly'; $control = new Xmf_Form_Element_Hidden($key, $this->targetObject->vars[$key]['value']); $control->setExtra('disabled="disabled"'); $control->setName($key . '-readonly'); return $control; break;*/ /*case 'readonly'; $control = new Xmf_Form_Element_Hidden($key, $this->targetObject->vars[$key]['value']); $control->setExtra('disabled="disabled"'); $control->setName($key . '-readonly'); return $control; break;*/ default: $classname = "Xmf_Object_Form_Element_" . ucfirst($controlName) . ""; return new $classname($this->targetObject, $key); break; } }