[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Noalyss-commit] [noalyss] 03/13: Code cleaning pg_fetch_array
From: |
Dany De Bontridder |
Subject: |
[Noalyss-commit] [noalyss] 03/13: Code cleaning pg_fetch_array |
Date: |
Sun, 16 Oct 2022 17:26:14 -0400 (EDT) |
sparkyx pushed a commit to branch master
in repository noalyss.
commit 4ffde0c1b0ca3fa857170c734bad3395337d7d5a
Author: sparkyx <danydb@noalyss.eu>
AuthorDate: Wed Oct 5 11:36:43 2022 +0200
Code cleaning pg_fetch_array
Postgresql fetch_array returns array with assoc only; except
on specific occasions
---
include/class/periode.class.php | 2 +-
include/lib/database_core.class.php | 7 ++++---
include/lib/manage_table_sql.class.php | 26 ++++++++++++++++++++------
scenario/test_manage_table_sql.php | 6 +++++-
unit-test/include/lib/ac_commonTest.php | 9 ++++++++-
5 files changed, 38 insertions(+), 12 deletions(-)
diff --git a/include/class/periode.class.php b/include/class/periode.class.php
index 44b4fc6f8..1e18583b9 100644
--- a/include/class/periode.class.php
+++ b/include/class/periode.class.php
@@ -346,7 +346,7 @@ class Periode
$Res=$this->cn->exec_sql($sql, array($p_periode));
if (Database::num_row($Res)==0)
return null;
- return Database::fetch_array($Res, 0);
+ return Database::fetch_array($Res, 0,PGSQL_BOTH);
}
/*!\brief return the first day of periode
diff --git a/include/lib/database_core.class.php
b/include/lib/database_core.class.php
index 19dbbc0cf..11b89ccb0 100644
--- a/include/lib/database_core.class.php
+++ b/include/lib/database_core.class.php
@@ -381,7 +381,7 @@ class DatabaseCore
{
if ($this->ret == false)
throw new Exception('this->ret is empty');
- return pg_fetch_array($this->ret, $p_indice);
+ return pg_fetch_array($this->ret, $p_indice,PGSQL_ASSOC);
}
/**
@@ -739,12 +739,13 @@ class DatabaseCore
/**\brief wrapper for the function pg_fetch_array
* \param $ret is the result of a pg_exec
* \param $p_indice is the index
+ * \param $p_indice is the index
* \return $array of column
*/
- static function fetch_array($ret, $p_indice = 0)
+ static function fetch_array($ret, $p_indice = 0,$p_mode=PGSQL_ASSOC)
{
- return pg_fetch_array($ret, $p_indice);
+ return pg_fetch_array($ret, $p_indice,$p_mode);
}
/**\brief wrapper for the function pg_fetch_all
diff --git a/include/lib/manage_table_sql.class.php
b/include/lib/manage_table_sql.class.php
index 2dcb8899e..ccaec8118 100644
--- a/include/lib/manage_table_sql.class.php
+++ b/include/lib/manage_table_sql.class.php
@@ -85,7 +85,7 @@ class Manage_Table_SQL
const UPDATABLE=1;
const VISIBLE=2;
- private $icon_mod; //!< place of right or left the icon update or mod,
default right, accepted value=left,right,first column for mod
+ private $icon_mod; //!< place of right or left the icon update or mod,
default right, accepted value=left,right,first,custom column for mod
private $icon_del; //!< place of right or left the icon update or mod,
default right, accepted value=left,right
private $dialogbox_style; //!< style of the dialog box
private $button_add_top; //!< place of the button add on the top, by
default true
@@ -573,13 +573,14 @@ function check()
return $this->row_update;
}
/**
- * @brief Set the icon to modify at the right ,the first col or left of
the row
- *
- * @param type $pString
- * @throws Exception
+ * @brief Set the icon to modify at the right ,the first col or left of
the row, if the mod if custom ,
+ * you have to override the function display_icon_custom
+ * @see Manage_Table_SQL::display_icon_custom($p_row)
+ * @param string $pString default right, accepted
value=left,right,first,custom column for mod
+ * @throws Exception if invalide choice
*/
function set_icon_mod($pString) {
- if ($pString != "right" && $pString != "left" && $pString!="first")
+ if (! in_array( $pString ,[ 'right','left','custom','first'] ) )
throw new Exception('set_icon_mod invalide '.$pString);
$this->icon_mod=$pString;
}
@@ -987,6 +988,8 @@ function check()
$this->display_icon_mod($p_row);
if ($this->icon_del=="left")
$this->display_icon_del($p_row);
+ if ( $this->icon_mod == "custom")
+ $this->display_icon_custom($p_row);
$nb_order=count($this->a_order);
for ($i=0; $i<$nb_order; $i++)
@@ -1501,4 +1504,15 @@ function check()
echo "</ul>";
}
+ /**
+ * @brief usually contain a link and calls another page, it must overriden
+ * @param array $p_row is the current database row
+ * @return void
+ */
+ function display_icon_custom($p_row)
+ {
+ echo '<td>'.'<a href="#">';
+ print_r($p_row);
+ echo '</a></td>';
+ }
}
diff --git a/scenario/test_manage_table_sql.php
b/scenario/test_manage_table_sql.php
index da6ea55cb..906260292 100644
--- a/scenario/test_manage_table_sql.php
+++ b/scenario/test_manage_table_sql.php
@@ -100,6 +100,10 @@ echo "<h2>"." Delete right"."</h2>";
$manage_table->set_icon_del("right");
$manage_table->display_table("where pcm_val::text >= '400' order by
pcm_val::text limit 10");
+echo "<h2>"." Custom , by default show the row"."</h2>";
+$manage_table->set_icon_mod("custom");
+$manage_table->display_table("where pcm_val::text >= '400' order by
pcm_val::text limit 10");
+
- ?>
+?>
diff --git a/unit-test/include/lib/ac_commonTest.php
b/unit-test/include/lib/ac_commonTest.php
index 510395b17..6cdb60209 100644
--- a/unit-test/include/lib/ac_commonTest.php
+++ b/unit-test/include/lib/ac_commonTest.php
@@ -393,7 +393,14 @@ class Ac_CommonTest extends TestCase
$expect=sprintf('<a
href="mailto:%s">%s</a>',h("test@noalyss.be"),h("test@noalyss.be"));
$expect=preg_replace('/\s+/','',$expect);
$this->assertEquals(strtoupper($expect),strtoupper(preg_replace("/\s+/",'',mailTo('test@noalyss.be'))),);
-
$this->assertEquals('test@noalyss.@be',mailTo('test@noalyss.@be'),"Send email
to invalidate email");
+ $expect=<<<EOF
+test@noalyss.@be<span tabindex="-1" onmouseover="showBulle('83')"
onclick="showBulle('83')" onmouseout="hideBulle(0)"style="color:red"
class="icon"></span>
+EOF;
+ $expect=preg_replace('/\s+/','',$expect);
+ $result=preg_replace('/\s+/','',mailTo("test@noalyss.@be"));
+ $this->assertEquals($expect,
+ $result,
+ "Send email to invalidate email");
$expect=sprintf('<a
href="mailto:%s">%s</a>',h("test@noalyss.be"),h("test@noalyss.be"));
$expect.=sprintf('<a
href="mailto:%s">%s</a>',h("test2@noalyss.be"),h("test2@noalyss.be"));
$expect=preg_replace('/\s+/','',$expect);
- [Noalyss-commit] [noalyss] 09/13: New Icon_Action for hidding or showing a DIV, (continued)
- [Noalyss-commit] [noalyss] 09/13: New Icon_Action for hidding or showing a DIV, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 12/13: Development : tools for debugging, add button for the $_REQUEST and correct a bug in dbg.php, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 13/13: merge, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 01/13: Improve DEBUG, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 05/13: add magic function toString, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 06/13: typo, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 08/13: Development : new tools for debugging in the new class \Noalyss\Dbg (dbg.php);, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 10/13: - Override the function __toString to comply with xdebug - Correct bug in input_switch.class.php when there is several input_switch - FicheDef the insertAttribut can have an order, usefull when installing new category + attribute, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 04/13: Cosmetic : warning, Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 07/13: Task #0001755: Dans Administration - dossier - «Sauvegarde» et non «Backup», Dany De Bontridder, 2022/10/16
- [Noalyss-commit] [noalyss] 03/13: Code cleaning pg_fetch_array,
Dany De Bontridder <=