function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/mixed.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/mixed.js'); $this->_translateable = NextendXmlGetAttribute($this->_xml, 'translateable'); $this->_translateable = $this->_translateable === '0' ? false : true; $default = explode($this->_separator, $this->_default); $this->_value = $this->_form->get($this->_name, $this->_default); $value = explode($this->_separator, $this->_value); $value = $value + $default; $html = "<div class='nextend-mixed' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $this->_elements = array(); $i = 0; foreach ($this->_xml->param as $element) { $html .= "<div class='nextend-mixed-group' style='" . NextendXmlGetAttribute($element, 'mixedstyle') . "'>"; $type = NextendXmlGetAttribute($element, 'type'); $class = 'NextendElement' . $type; if (!class_exists($class, false)) { if (!nextendimportpath($this->_form->_xmlfolder . 'element/' . $type)) { nextendimport('nextend.form.element.' . $type); } } $element->addAttribute('name', $this->_name . '_' . $i); $element->addAttribute('hidename', 1); if (isset($value[$i])) { $element->addAttribute('default', $value[$i]); } $el = new $class($this->_form, $this, $element); $el->parent =& $this; $elementHtml = $el->render($this->_name . $this->control_name, $this->_translateable); $html .= "<div class='nextend-mixed-label'>"; $html .= $elementHtml[0]; $html .= "</div>"; $html .= "<div class='nextend-mixed-element'>"; $html .= $elementHtml[1]; $html .= "</div>"; $this->_elements[$i] = $el->_id; $i++; $html .= "</div>"; } $this->_form->set($this->_name, $this->_value); $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $js->addLibraryJs('dojo', ' new NextendElementMixed({ hidden: "' . $this->_id . '", elements: ' . json_encode($this->_elements) . ', separator: "' . $this->_separator . '" }); '); return $html; }
function initElements() { $this->_elements = array(); foreach ($this->_xml->param as $element) { $test = NextendXmlGetAttribute($element, 'test'); if (!empty($test) && (!isset($this->_form->{$test}) || !$this->_form->{$test})) { continue; } $type = NextendXmlGetAttribute($element, 'type'); $name = NextendXmlGetAttribute($element, 'name'); $class = 'NextendElement' . $type; if (!class_exists($class, false)) { if (!nextendimportpath($this->_form->_xmlfolder . 'element/' . $type)) { nextendimport('nextend.form.element.' . $type); } } $this->_elements[$name] = new $class($this->_form, $this, $element); } }