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 ;"); }
public function Format($row, $fieldname, $value) { if ($value != "") { return $this->_dbData->getDbFunctions()->fromDate($value, $this->_dateFormat, $this->_hour); } else { return ""; } }
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'); }
/** * 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)); } }
/** * 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 "??/??/????"; } }
/** * * @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; }
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); } } } }
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(); }
/** * 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); }