From 9fbcc602c8d178a9a7d278ee3fc6b09872ab353d Mon Sep 17 00:00:00 2001 From: Hector Cortez Date: Thu, 10 Mar 2011 16:24:21 +0000 Subject: [PATCH] Various settings in the Suggest --- gulliver/system/class.database_mssql.php | 12 +++++++++ gulliver/system/class.database_mysql.php | 13 ++++++++++ gulliver/system/class.xmlform.php | 3 ++- .../engine/methods/dynaforms/fields_Edit.php | 26 +++++++++++++------ .../engine/methods/dynaforms/fields_Save.php | 2 +- 5 files changed, 46 insertions(+), 10 deletions(-) diff --git a/gulliver/system/class.database_mssql.php b/gulliver/system/class.database_mssql.php index e8b9740ee..4e7793118 100644 --- a/gulliver/system/class.database_mssql.php +++ b/gulliver/system/class.database_mssql.php @@ -709,4 +709,16 @@ class database extends database_base { return $sql; } + /** + * Determining the existence of a table + */ + function tableExists ($table, $db) { + $sql = "SELECT * FROM sysobjects WHERE name='" . $table . "' AND type='u'"; + $bExists = true; + $oConnection = mssql_connect(DB_HOST, DB_USER, DB_PASS); + mssql_select_db(DB_NAME); + $oDataset = mssql_query($sql) || ($bExists = false); + return $bExists; + } + } \ No newline at end of file diff --git a/gulliver/system/class.database_mysql.php b/gulliver/system/class.database_mysql.php index 8bf50d0e9..5c6346d67 100644 --- a/gulliver/system/class.database_mysql.php +++ b/gulliver/system/class.database_mysql.php @@ -714,4 +714,17 @@ class database extends database_base { return $sql; } + /** + * Determining the existence of a table + */ + function tableExists ($table, $db) { + $tables = mysql_list_tables ($db); + while (list ($temp) = @mysql_fetch_array ($tables)) { + if ($temp == $table) { + return TRUE; + } + } + return FALSE; + } + } \ No newline at end of file diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index 61f18603e..088c72632 100644 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -258,7 +258,6 @@ class XmlForm_Field { return 1; if ($this->sql === '') return 1; - if (! $this->sqlConnection) $this->sqlConnection = 'workflow'; @@ -995,6 +994,8 @@ class XmlForm_Field_Suggest extends XmlForm_Field_SimpleText //by neyek { //echo $this->sqlConnection; + if (! $this->sqlConnection) + $this->sqlConnection = 'workflow'; //NOTE: string functions must be in G class if ($this->strTo === 'UPPER') diff --git a/workflow/engine/methods/dynaforms/fields_Edit.php b/workflow/engine/methods/dynaforms/fields_Edit.php index 7429df4d2..de4dd28b0 100644 --- a/workflow/engine/methods/dynaforms/fields_Edit.php +++ b/workflow/engine/methods/dynaforms/fields_Edit.php @@ -155,15 +155,25 @@ if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Respons if( $type == 'suggest' && isset($Fields['PME_SQLCONNECTION']) && $Fields['PME_SQLCONNECTION']!='') { //define the dbArray with the table fields //g::pr($Fields); - $con = Propel::getConnection($Fields['PME_SQLCONNECTION']); - $rs = $con->executeQuery("SHOW COLUMNS FROM USERS"); - $result = Array(); - $i=0; - while ($rs->next()) { - $result[$i++] = $rs->getRow(); - } - //g::pr($result); + + $tableExists = true; + $sDataBase = 'database_' . strtolower(DB_ADAPTER); + if(G::LoadSystemExist($sDataBase)){ + G::LoadSystem($sDataBase); + $oDataBase = new database(); + $tableExists = $oDataBase->tableExists('USERS', $Fields['PME_SQLCONNECTION']); + } + if($tableExists) { + $con = Propel::getConnection($Fields['PME_SQLCONNECTION']); + $rs = $con->executeQuery("SHOW COLUMNS FROM USERS"); + $result = Array(); + $i=0; + while ($rs->next()) { + $result[$i++] = $rs->getRow(); + } + } } + //g::pr($result); if( isset($Fields['PME_HINT']) ) { diff --git a/workflow/engine/methods/dynaforms/fields_Save.php b/workflow/engine/methods/dynaforms/fields_Save.php index c341a65d0..3af2f4184 100644 --- a/workflow/engine/methods/dynaforms/fields_Save.php +++ b/workflow/engine/methods/dynaforms/fields_Save.php @@ -59,7 +59,7 @@ if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Respons $_POST['form']['PME_SAVELABEL'] = 0; } - if (isset($_POST['form']['PME_SAVELABEL'])){ + if (isset($_POST['form']['PME_SAVELABEL']) && isset($_POST['form']['PME_CODE'])){ $pmeCode = $_POST['form']['PME_CODE']; $pmeCode = str_replace("'", "''", $pmeCode); $pmeCode = str_replace('"', '""', $pmeCode);