예제 #1
0
 /**
  *  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;
         }
     }
 }
예제 #2
0
 /**
  *@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;
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }