/** * 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 */ private function getControl($controlName, $key) { switch ($controlName) { case 'color': $control = $this->targetObject->getControl($key); $controlObj = new icms_form_elements_Colorpicker($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key)); return $controlObj; break; case 'label': return new icms_form_elements_Label($this->targetObject->vars[$key]['form_caption'], $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 icms_form_elements_Textarea($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key, 'e'), $form_rows, $form_cols); if ($this->targetObject->vars[$key]['form_dsc']) { $editor->setDescription($this->targetObject->vars[$key]['form_dsc']); } return $editor; break; case 'dhtmltextarea': $editor = new icms_form_elements_Dhtmltextarea($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key, 'e'), 15, 50); if ($this->targetObject->vars[$key]['form_dsc']) { $editor->setDescription($this->targetObject->vars[$key]['form_dsc']); } return $editor; break; case 'theme': return $this->getThemeSelect($key, $this->targetObject->vars[$key]); break; case 'theme_multi': return $this->getThemeSelect($key, $this->targetObject->vars[$key], TRUE); break; case 'timezone': return new icms_form_elements_select_Timezone($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key)); break; case 'group': return new icms_form_elements_select_Group($this->targetObject->vars[$key]['form_caption'], $key, FALSE, $this->targetObject->getVar($key, 'e'), 1, FALSE); break; case 'group_multi': return new icms_form_elements_select_Group($this->targetObject->vars[$key]['form_caption'], $key, FALSE, $this->targetObject->getVar($key, 'e'), 5, TRUE); break; case 'user_multi': return new icms_form_elements_select_User($this->targetObject->vars[$key]['form_caption'], $key, FALSE, $this->targetObject->getVar($key, 'e'), 5, TRUE); break; case 'password': return new icms_form_elements_Password($this->targetObject->vars[$key]['form_caption'], $key, 50, 255, $this->targetObject->getVar($key, 'e')); break; case 'country': return new icms_form_elements_select_Country($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key, 'e')); break; case 'sourceeditor': // leave as last element so that default is executed for sourceeditor as well icms_core_Debug::setDeprecated('icms_ipf_form_elements_Source', sprintf(_CORE_REMOVE_IN_VERSION, '1.4')); $controlName = "source"; default: $classname = "icms_ipf_form_elements_" . ucfirst($controlName); if (!class_exists($classname)) { /** @todo remove in 1.4 or even for 1.3 final */ $classname = "IcmsForm" . ucfirst($controlName) . "Element"; if (!class_exists($classname)) { if (file_exists(ICMS_ROOT_PATH . "/class/icmsform/elements/" . strtolower($classname) . ".php")) { include_once ICMS_ROOT_PATH . "/class/icmsform/elements/" . strtolower($classname) . ".php"; } else { // perhaps this is a control created by the module $moduleName = $this->targetObject->handler->_moduleName; if ($moduleName != 'system') { $moduleFormElementsPath = $this->targetObject->handler->_modulePath . "/class/form/elements/"; } else { $moduleFormElementsPath = $this->targetObject->handler->_modulePath . "/admin/{$name}/class/form/elements/"; } $classname = ucfirst($moduleName) . ucfirst($controlName) . "Element"; $classFileName = strtolower($classname) . ".php"; if (file_exists($moduleFormElementsPath . $classFileName)) { include_once $moduleFormElementsPath . $classFileName; } else { trigger_error($classname . " not found", E_USER_WARNING); return new icms_form_elements_Label(); } } } } return new $classname($this->targetObject, $key); break; } }