/** * Contains specific instructions to generate all XML informations * This method is processed only one time * Usually is the last method processed * * @param DOMNode $current */ public function generateObject($current) { $nodeWorking = null; // Criando o objeto que conterĂ¡ a lista switch ($this->_easyListType) { case EasyListType::CHECKBOX: XmlUtil::CreateChild($current, "caption", $this->_caption); $nodeWorking = $current; $iHid = new XmlInputHidden("qty" . $this->_name, count($this->_values)); $iHid->generateObject($nodeWorking); break; case EasyListType::RADIOBOX: XmlUtil::CreateChild($current, "caption", $this->_caption); $nodeWorking = $current; break; case EasyListType::SELECTLIST: case EasyListType::SELECTIMAGELIST: if ($this->_readOnly) { if ($this->_easyListType == EasyListType::SELECTLIST) { $deliLeft = strlen($this->_readOnlyDeli) != 0 ? $this->_readOnlyDeli[0] : ""; $deliRight = strlen($this->_readOnlyDeli) != 0 ? $this->_readOnlyDeli[1] : ""; //XmlInputHidden $xih //XmlInputLabelField $xlf $xlf = new XmlInputLabelField($this->_caption, $deliLeft . $this->_values[$this->_selected] . $deliRight); $xih = new XmlInputHidden($this->_name, $this->_selected); $xlf->generateObject($current); $xih->generateObject($current); } elseif ($this->_easyListType == EasyListType::SELECTIMAGELIST) { $img = new XmlnukeImage($this->_values[$this->_selected]); $img->generateObject($current); } return; } else { $nodeWorking = XmlUtil::CreateChild($current, "select", ""); XmlUtil::AddAttribute($nodeWorking, "caption", $this->_caption); XmlUtil::AddAttribute($nodeWorking, "name", $this->_name); if ($this->_required) { XmlUtil::AddAttribute($nodeWorking, "required", "true"); } if ($this->_size > 1) { XmlUtil::AddAttribute($nodeWorking, "size", $this->_size); } if ($this->_easyListType == EasyListType::SELECTIMAGELIST) { XmlUtil::AddAttribute($nodeWorking, "imagelist", "true"); XmlUtil::AddAttribute($nodeWorking, "thumbnailsize", $this->_thumbnailSize); XmlUtil::AddAttribute($nodeWorking, "notfoundimage", $this->_notFoundImage); XmlUtil::AddAttribute($nodeWorking, "noimage", $this->_noImage); } } break; case EasyListType::UNORDEREDLIST: XmlUtil::CreateChild($current, "b", $this->_caption); $nodeWorking = XmlUtil::CreateChild($current, "ul", ""); break; } $i = 0; foreach ($this->_values as $key => $value) { switch ($this->_easyListType) { case EasyListType::CHECKBOX: // XmlInputCheck $iCk $iCk = new XmlInputCheck($value, $this->_name . $i++, $key); $iCk->setType(InputCheckType::CHECKBOX); $iCk->setChecked($key == $this->_selected); $iCk->setReadOnly($this->_readOnly); $iCk->generateObject($nodeWorking); break; case EasyListType::RADIOBOX: // XmlInputCheck $iCk $iCk = new XmlInputCheck($value, $this->_name, $key); $iCk->setType(InputCheckType::RADIOBOX); $iCk->setChecked($key == $this->_selected); $iCk->setReadOnly($this->_readOnly); $iCk->generateObject($nodeWorking); break; case EasyListType::SELECTLIST: case EasyListType::SELECTIMAGELIST: $node = XmlUtil::CreateChild($nodeWorking, "option", ""); XmlUtil::AddAttribute($node, "value", $key); if ($key == $this->_selected) { XmlUtil::AddAttribute($node, "selected", "yes"); } XmlUtil::AddTextNode($node, $value); break; case EasyListType::UNORDEREDLIST: XmlUtil::CreateChild($nodeWorking, "li", $value); break; } } }
/** *@desc *@param CrudField $field *@param string $curValue *@return IXmlnukeDocumentObject */ public function renderField($field, $curValue) { if ($field->fieldXmlInput == XmlInputObjectType::TEXTBOX || $field->fieldXmlInput == XmlInputObjectType::PASSWORD || $field->fieldXmlInput == XmlInputObjectType::TEXTBOX_AUTOCOMPLETE) { // XmlInputTextBox $itb $itb = new XmlInputTextBox($field->fieldCaption, $field->fieldName, $curValue, $field->size); $itb->setRequired($field->required); $itb->setRange($field->rangeMin, $field->rangeMax); $itb->setDescription($field->fieldCaption); if ($field->fieldXmlInput == XmlInputObjectType::PASSWORD) { $itb->setInputTextBoxType(InputTextBoxType::PASSWORD); } elseif ($field->fieldXmlInput == XmlInputObjectType::TEXTBOX_AUTOCOMPLETE) { if (!is_array($field->arraySelectList) || $field->arraySelectList["URL"] == "" || $field->arraySelectList["PARAMREQ"] == "") { throw new XMLNukeException("You have to pass a array to arraySelectList field parameter with the following keys: URL, PARAMREQ. Optional: ATTRINFO, ATTRID, JSCALLBACK"); } $itb->setInputTextBoxType(InputTextBoxType::TEXT); $itb->setAutosuggest($this->_context, $field->arraySelectList["URL"], $field->arraySelectList["PARAMREQ"], $field->arraySelectList["JSCALLBACK"]); } else { $itb->setInputTextBoxType(InputTextBoxType::TEXT); } $itb->setReadOnly($this->isReadOnly($field)); $itb->setMaxLength($field->maxLength); $itb->setDataType($field->dataType); return $itb; } else { if ($field->fieldXmlInput == XmlInputObjectType::RADIOBUTTON || $field->fieldXmlInput == XmlInputObjectType::CHECKBOX) { // XmlInputCheck $ic $ic = new XmlInputCheck($field->fieldCaption, $field->fieldName, $field->defaultValue); if ($field->fieldXmlInput == XmlInputObjectType::TEXTBOX) { $ic->setType(InputCheckType::CHECKBOX); } else { $ic->setType(InputCheckType::CHECKBOX); } $ic->setChecked($field->defaultValue == $curValue); $ic->setReadOnly($this->isReadOnly($field)); return $ic; } else { if ($field->fieldXmlInput == XmlInputObjectType::MEMO) { // XmlInputMemo $im $im = new XmlInputMemo($field->fieldCaption, $field->fieldName, $curValue); $im->setWrap("SOFT"); $im->setSize(50, 8); $im->setReadOnly($this->isReadOnly($field)); return $im; } else { if ($field->fieldXmlInput == XmlInputObjectType::HTMLTEXT) { // XmlInputMemo $im $im = new XmlInputMemo($field->fieldCaption, $field->fieldName, $curValue); //$im->setWrap("SOFT"); //$im->setSize(50, 8); $im->setVisualEditor(true); $im->setReadOnly($this->isReadOnly($field)); return $im; } else { if ($field->fieldXmlInput == XmlInputObjectType::HIDDEN) { // XmlInputHidden $ih $ih = new XmlInputHidden($field->fieldName, $curValue); return $ih; } else { if ($field->fieldXmlInput == XmlInputObjectType::SELECTLIST) { // XmlEasyList $el $el = new XmlEasyList(EasyListType::SELECTLIST, $field->fieldName, $field->fieldCaption, $field->arraySelectList, $curValue); $el->setReadOnly($this->isReadOnly($field)); return $el; } else { if ($field->fieldXmlInput == XmlInputObjectType::DUALLIST) { $ards = new ArrayDataset($field->arraySelectList, "value"); $duallist = new XmlDualList($this->_context, $field->fieldName, $this->_lang->Value("TXT_AVAILABLE", $field->fieldCaption), $this->_lang->Value("TXT_USED", $field->fieldCaption)); $duallist->createDefaultButtons(); $duallist->setDataSourceFieldName("key", "value"); if ($curValue != "") { $ardt = explode(",", $curValue); $ardt = array_flip($ardt); foreach ($ardt as $key => $value) { $ardt[$key] = $field->arraySelectList[$key]; } } else { $ardt = array(); } $ards2 = new ArrayDataset($ardt, "value"); $duallist->setDataSource($ards->getIterator(), $ards2->getIterator()); $label = new XmlInputLabelObjects("=>"); $label->addXmlnukeObject($duallist); return $label; } else { if ($field->fieldXmlInput == XmlInputObjectType::DATE || $field->fieldXmlInput == XmlInputObjectType::DATETIME) { $cur = explode(" ", $curValue); if (count($cur) == 0) { $cur = array('', ''); } else { if (count($cur) == 1) { $cur[] = ''; } } $idt = new XmlInputDateTime($field->fieldCaption, $field->fieldName, $this->_dateFormat, $field->fieldXmlInput == XmlInputObjectType::DATETIME, $cur[0], $cur[1]); return $idt; } else { if ($field->fieldXmlInput == XmlInputObjectType::FILEUPLOAD) { $file = new XmlInputFile($field->fieldCaption, $field->fieldName); return $file; } else { // XmlInputLabelField xlf $xlf = new XmlInputLabelField($field->fieldCaption, $curValue); return $xlf; } } } } } } } } } }