Example #1
0
 public static function prepareEnvironment(ConnectionManagement $connection)
 {
     $database = $connection->getDatabase();
     $newConnection = new ConnectionManagement(str_replace("/{$database}", "/", $connection->getDbConnectionString()));
     $dbDataset = new DBDataset($newConnection->getDbConnectionString());
     $dbDataset->execSQL("CREATE SCHEMA IF NOT EXISTS `{$database}` DEFAULT CHARACTER SET utf8 ;");
 }
Example #2
0
 public function Format($row, $fieldname, $value)
 {
     if ($value != "") {
         return $this->_dbData->getDbFunctions()->fromDate($value, $this->_dateFormat, $this->_hour);
     } else {
         return "";
     }
 }
Example #3
0
 public function setUp()
 {
     $this->prefix = "";
     $db = new DBDataset('sqlite:///tmp/teste.db');
     $db->execSQL('create table users (
         userid integer primary key  autoincrement, 
         name varchar(45), 
         email varchar(200), 
         username varchar(20), 
         password varchar(40), 
         created datetime, 
         admin char(1));');
     $db->execSQL('create table users_property (
         customid integer primary key  autoincrement, 
         userid integer, 
         name varchar(45), 
         value varchar(45));');
     $this->object = new UsersDBDataset('sqlite:///tmp/teste.db');
     $this->object->addUser('User 1', 'user1', '*****@*****.**', 'pwd1');
     $this->object->addUser('User 2', 'user2', '*****@*****.**', 'pwd2');
     $this->object->addUser('User 3', 'user3', '*****@*****.**', 'pwd3');
 }
Example #4
0
 /**
  * Return all custom's fields from this user
  *
  * @param SingleRow $userRow
  */
 protected function setCustomFieldsInUser($userRow)
 {
     if ($this->getCustomTable()->table == "") {
         return;
     }
     $userId = $userRow->getField($this->getUserTable()->id);
     $sql = $this->_sqlHelper->createSafeSQL($this->sqlSetCustomFieldsInUser(), array("@@Table" => $this->getCustomTable()->table, "@@Id" => $this->getUserTable()->id));
     $param = array('id' => $userId);
     $it = $this->_db->getIterator($sql, $param);
     while ($it->hasNext()) {
         $sr = $it->moveNext();
         $userRow->addField($sr->getField($this->getCustomTable()->name), $sr->getField($this->getCustomTable()->value));
     }
 }
Example #5
0
 /**
  * Format a date field from Database values
  * @param $curValue
  * @return string
  */
 protected function dateFromSource($curValue, $hour = false)
 {
     try {
         return $this->_dbData->getDbFunctions()->fromDate($curValue, $this->_dateFormat, $hour);
     } catch (Exception $ex) {
         return "??/??/????";
     }
 }
Example #6
0
 /**
  *
  * @param DBDataset $dbdataset
  * @param string $sql
  * @param array $param
  * @param string $sequence
  * @return int
  */
 function executeAndGetInsertedId($dbdataset, $sql, $param, $sequence = null)
 {
     $dbdataset->execSQL($sql, $param);
     return -1;
 }
Example #7
0
 public function generateObject($current)
 {
     // Is there some error?
     if ($this->_error) {
         $nodeWorking = XmlUtil::CreateChild($current, "poll");
         XmlUtil::CreateChild($nodeWorking, "error", $this->_myWords->Value("ERROR_POLLNOTSETUP"));
     } else {
         // Get Data to SHOW the answers OR chart.
         $itf = new IteratorFilter();
         $itf->addRelation("name", Relation::EQUAL, $this->_poll);
         $itf->addRelation("lang", Relation::EQUAL, $this->_lang);
         if ($this->_isdb) {
             $dbdata = new DBDataset($this->_connection);
             $param = array();
             $sql = $itf->getSql($this->_tblpoll, $param);
             $itPoll = $dbdata->getIterator($sql, $param);
             $param = array();
             $sql = $itf->getSql($this->_tblanswer, $param);
             $itAnswer = $dbdata->getIterator($sql, $param);
         } else {
             $this->getAnyData();
             $itPoll = $this->_anyPoll->getIterator($itf);
             $itAnswer = $this->_anyAnswer->getIterator($itf);
         }
         // Show the answers if not was called the method processVote()
         if (!$this->_processed) {
             $nodeWorking = XmlUtil::CreateChild($current, "poll");
             XmlUtil::AddAttribute($nodeWorking, "url", $this->_url);
             XmlUtil::AddAttribute($nodeWorking, "name", $this->_poll);
             XmlUtil::AddAttribute($nodeWorking, "lang", $this->_lang);
             // Show Data Only if Poll is active
             if ($itPoll->hasNext()) {
                 $sr = $itPoll->moveNext();
                 XmlUtil::AddAttribute($nodeWorking, "multiple", $sr->getField("multiple") == "Y" ? "true" : "false");
                 if ($sr->getField("active") == "Y") {
                     XmlUtil::AddAttribute($nodeWorking, "active", "true");
                     XmlUtil::AddAttribute($nodeWorking, "sendbtn", $this->_myWords->Value("SENDBTN"));
                     XmlUtil::CreateChild($nodeWorking, "question", $sr->getField("question"));
                     while ($itAnswer->hasNext()) {
                         $sr = $itAnswer->moveNext();
                         $nodeanswer = XmlUtil::CreateChild($nodeWorking, "answer", $sr->getField("answer"));
                         XmlUtil::AddAttribute($nodeanswer, "code", $sr->getField("code"));
                     }
                 } else {
                     XmlUtil::AddAttribute($nodeWorking, "sendbtn", $this->_myWords->Value("VIEWRESULTSBTN"));
                     XmlUtil::CreateChild($nodeWorking, "question", $sr->getField("question") . " - " . $this->_myWords->Value("POLLENDED"));
                 }
             } else {
                 XmlUtil::CreateChild($nodeWorking, "error", $this->_myWords->Value("ERROR_POLLEMPTY"));
             }
         } else {
             $srPoll = $itPoll->moveNext();
             if ($srPoll->getField("showresults") == "Y") {
                 $colors = array('#FFF8A3', '#A9CC8F', '#B2C8D9', '#BEA37A', '#F3AA79', '#B5B5A9', '#E6A5A4', '#F8D753', '#5C9746', '#3E75A7', '#7A653E', '#E1662A', '#74796F', '#C4384F', '#F0B400', '#1E6C0B', '#00488C', '#332600', '#D84000', '#434C43', '#B30023', '#FAE16B', '#82B16A', '#779DBF', '#907A52', '#EB8953', '#8A8D82', '#D6707B', '#F3C01C', '#3D8128', '#205F9A', '#63522B', '#DC5313', '#5D645A', '#BC1C39');
                 //\Xmlnuke\Util\Debug::PrintValue($itAnswer);
                 $info = array();
                 $info[] = array("column" => "answer", "type" => ChartColumnType::String, "name" => "Legend");
                 $info[] = array("column" => "votes", "type" => ChartColumnType::Number, "name" => "Value");
                 $chart = new ChartObject("");
                 $chart->setChartType(ChartType::Pie);
                 $chart->setIs3d(true);
                 $chart->setWidth($this->_width);
                 $chart->setHeight($this->_height);
                 $chart->addSeriesIterator($itAnswer, $info);
                 $object = new ObjectHandler($current, $chart, "xmlnuke");
                 $object->CreateObjectFromModel();
             } else {
                 if ($srPoll->getField("active") == "Y") {
                     $txt = new XmlnukeText($this->_myWords->Value("VOTECOMPUTED"), true);
                 } else {
                     $txt = new XmlnukeText($this->_myWords->Value("CANNOTSHOWRESULTS"), true);
                 }
                 $txt->generateObject($current);
             }
         }
     }
 }
Example #8
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 #9
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);
 }