Example #1
0
 public function CreatePage()
 {
     parent::CreatePage();
     $this->myWords = $this->WordCollection();
     $this->setTitlePage($this->myWords->Value("TITLE"));
     $this->setHelp($this->myWords->Value("DESCRIPTION"));
     $block = new XmlBlockCollection($this->myWords->Value("BLOCK_TITLE"), BlockPosition::Center);
     $anydatafile = new AnydatasetFilenameProcessor("_db");
     if ($this->_action != "test") {
         $processfields = new CrudFieldCollection();
         $field = new CrudField();
         $field->fieldName = "dbname";
         $field->editable = true;
         $field->key = true;
         $field->visibleInList = true;
         $field->dataType = INPUTTYPE::TEXT;
         $field->fieldXmlInput = XmlInputObjectType::TEXTBOX;
         $field->fieldCaption = $this->myWords->Value("DBNAME");
         $field->size = 20;
         $field->maxLength = 20;
         $field->required = true;
         $field->newColumn = true;
         $processfields->addCrudField($field);
         $field = new CrudField();
         $field->fieldName = "dbtype";
         $field->editable = true;
         $field->key = false;
         $field->visibleInList = true;
         $field->dataType = INPUTTYPE::TEXT;
         $field->fieldXmlInput = XmlInputObjectType::SELECTLIST;
         $field->fieldCaption = $this->myWords->Value("DBTYPE");
         $field->size = 15;
         $field->maxLength = 15;
         $field->required = true;
         $field->arraySelectList = array("dsn" => "dsn (use it)", "literal" => "PDO Literal connection string", "dblib" => "FreeTDS / Microsoft SQL Server / Sybase", "firebird" => "Firebird/Interbase 6", "informix" => "IBM Informix Dynamic Server", "mysql" => "MySQL 3.x/4.x/5.x", "oci" => "Oracle Call Interface", "odbc" => "ODBC v3 (IBM DB2, unixODBC and win32 ODBC)", "pgsql" => "PostgreSQL", "sqlite" => "SQL Lite");
         $field->defaultValue = "dsn";
         $field->newColumn = true;
         $processfields->addCrudField($field);
         $field = new CrudField();
         $field->fieldName = "dbconnectionstring";
         $field->editable = true;
         $field->key = false;
         $field->visibleInList = true;
         $field->dataType = INPUTTYPE::TEXT;
         $field->fieldXmlInput = XmlInputObjectType::TEXTBOX;
         $field->fieldCaption = $this->myWords->Value("DBCONNECTIONSTRING");
         $field->size = 50;
         $field->maxLength = 200;
         $field->required = true;
         $field->defaultValue = "adodriver://*****:*****@server/datasource?persist";
         $field->newColumn = true;
         $processfields->addCrudField($field);
         $buttons = new CustomButtons();
         $buttons->action = "test";
         $buttons->alternateText = $this->myWords->Value("TESTALTERNATETEXT");
         $buttons->enabled = true;
         $buttons->icon = "common/editlist/ic_selecionar.gif";
         $buttons->message = $this->myWords->Value("TESTMESSAGETEXT");
         $buttons->multiple = MultipleSelectType::ONLYONE;
         $crud = new XmlnukeCrudAnydata($this->_context, $processfields, $this->myWords->Value("AVAILABLELANGUAGES"), "module:Xmlnuke.Admin.ManageDBConn", array($buttons), $anydatafile);
         $block->addXmlnukeObject($crud);
         $p = new XmlParagraphCollection();
         $p->addXmlnukeObject(new XmlnukeText($this->myWords->Value("NOTE"), true));
         $p->addXmlnukeObject(new XmlnukeText($this->myWords->Value("PHPNOTE")));
         $block->addXmlnukeObject($p);
     } else {
         $p = new XmlParagraphCollection();
         $db = $this->_context->get("valueid");
         if ($db == "") {
             $p->addXmlnukeObject(new XmlnukeText($this->myWords->Value("ERRORDBEMPTY")));
         } else {
             try {
                 $dbdataset = new DBDataset($db);
                 $dbdataset->TestConnection();
                 $p->addXmlnukeObject(new XmlnukeText($this->myWords->Value("SEEMSOK")));
             } catch (Exception $ex) {
                 $p->addXmlnukeObject(new XmlnukeText($this->myWords->Value("GOTERROR", $ex->getMessage())));
             }
         }
         $block->addXmlnukeObject($p);
         $p = new XmlParagraphCollection();
         $href = new XmlAnchorCollection("module:Xmlnuke.Admin.ManageDBConn");
         $href->addXmlnukeObject(new XmlnukeText($this->myWords->Value("GOBACK")));
         $p->addXmlnukeObject($href);
         $block->addXmlnukeObject($p);
     }
     $this->defaultXmlnukeDocument->addXmlnukeObject($block);
     return $this->defaultXmlnukeDocument->generatePage();
 }
Example #2
0
 /**
  * Edit DataBase
  *
  */
 protected function actionEditDB()
 {
     $blockCenter = new XmlBlockCollection($this->_myWords->Value("DATABASE"), BlockPosition::Center);
     $breakline = new XmlnukeBreakLine();
     $paragraph = new XmlParagraphCollection();
     $paragraph->addXmlnukeObject(new XmlnukeText($this->_myWords->Value("DATABASETEXT")));
     $paragraph->addXmlnukeObject($breakline);
     $secop = $this->_context->get("secop");
     // Menu
     $form = new XmlFormCollection($this->_context, $this->_url . "?op=5", "Menu");
     $optionlist = array();
     $optionlist[""] = "-- Selecione --";
     $optionlist["setup"] = "Configurar a Conexão";
     $optionlist["test"] = "Testar a conexão";
     $optionlist["create"] = "Create Sample Table";
     $optionlist["edit"] = "Edit Sample Table";
     $list = new XmlEasyList(EasyListType::SELECTLIST, "secop", "Selecione a Ação", $optionlist, $secop);
     $form->addXmlnukeObject($list);
     $btnmenu = new XmlInputButtons();
     $btnmenu->addSubmit("Selecionar");
     $form->addXmlnukeObject($btnmenu);
     $blockCenter->addXmlnukeObject($form);
     // Opções:
     switch ($secop) {
         case "setup":
             $formsetup = new XmlFormCollection($this->_context, $this->_url . "?op=5", "Editar Conexão");
             $formsetup->addXmlnukeObject(new XmlInputHidden("secop", "setupconf"));
             $text = new XmlInputTextBox("Connection String", "connection", "adodriver://*****:*****@server/datasource");
             $text->setRequired(true);
             $formsetup->addXmlnukeObject($text);
             $btn = new XmlInputButtons();
             $btn->addSubmit("Salvar");
             $formsetup->addXmlnukeObject($btn);
             $blockCenter->addXmlnukeObject($formsetup);
             break;
         case "setupconf":
             $filename = new AnydatasetFilenameProcessor("_db");
             $anydata = new AnyDataset($filename->FullQualifiedNameAndPath());
             $itf = new IteratorFilter();
             $itf->addRelation("dbname", Relation::EQUAL, "sampledb");
             $it = $anydata->getIterator($itf);
             if ($it->hasNext()) {
                 $sr = $it->moveNext();
                 $sr->setField("dbtype", "dsn");
                 $sr->setField("dbconnectionstring", $this->_context->get("connection"));
             } else {
                 $anydata->appendRow();
                 $anydata->addField("dbname", "sampledb");
                 $anydata->addField("dbtype", "dsn");
                 $anydata->addField("dbconnectionstring", $this->_context->get("connection"));
             }
             $anydata->Save();
             $paragraph->addXmlnukeObject(new XmlnukeText("Updated!", true));
             break;
         case "test":
             $db = new DBDataset("sampledb");
             $db->TestConnection();
             $paragraph->addXmlnukeObject(new XmlnukeText("I suppose it is fine the connection string!", true));
             break;
         case "create":
             $db = new DBDataset("sampledb");
             $sql = "create table sample (fieldkey integer, fieldname varchar(20))";
             $db->execSQL($sql);
             $db->TestConnection();
             $paragraph->addXmlnukeObject(new XmlnukeText("Table Created!", true));
             break;
         case "edit":
             // Cria um acesso a $crud
             $pageFields = new CrudFieldCollection();
             $fieldPage = new CrudField();
             $fieldPage->fieldName = "fieldkey";
             $fieldPage->key = true;
             $fieldPage->dataType = INPUTTYPE::NUMBER;
             $fieldPage->fieldCaption = "Código";
             $fieldPage->fieldXmlInput = XmlInputObjectType::TEXTBOX;
             $fieldPage->visibleInList = true;
             $fieldPage->editable = true;
             $fieldPage->required = true;
             $fieldPage->rangeMin = "100";
             $fieldPage->rangeMax = "999";
             $pageFields->addCrudField($fieldPage);
             $fieldPage = new CrudField();
             $fieldPage->fieldName = "fieldname";
             $fieldPage->key = false;
             $fieldPage->dataType = INPUTTYPE::TEXT;
             $fieldPage->fieldCaption = "Name";
             $fieldPage->fieldXmlInput = XmlInputObjectType::TEXTBOX;
             $fieldPage->visibleInList = true;
             $fieldPage->editable = true;
             $fieldPage->required = true;
             $fieldPage->maxLength = 20;
             $pageFields->addCrudField($fieldPage);
             $crud = new XmlnukeCrudDB($this->_context, $pageFields, "Edição teste usando Banco de Dados", $this->_url . "?op=5", null, "sample", "sampledb");
             $crud->setPageSize(3, 0);
             $crud->addParameter("secop", "edit");
             $paragraph->addXmlnukeObject($crud);
             break;
     }
     $blockCenter->addXmlnukeObject($paragraph);
     $this->_document->addXmlnukeObject($blockCenter);
 }