mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-30 09:15:15 +02:00
Allow enable or disable cache in Entity and some minor fixes
This commit is contained in:
parent
18b1a1e14e
commit
9dff230b65
@ -248,7 +248,11 @@ class CredentialStore extends Wizard
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$groups = [ $filter['filter_id_group'] ];
|
$groups = [ $filter['filter_id_group'] ];
|
||||||
$childrens = groups_get_children($id_group, null, true);
|
$childrens = groups_get_children(
|
||||||
|
$filter['filter_id_group'],
|
||||||
|
null,
|
||||||
|
true
|
||||||
|
);
|
||||||
if (!empty($childrens)) {
|
if (!empty($childrens)) {
|
||||||
foreach ($childrens as $child) {
|
foreach ($childrens as $child) {
|
||||||
$groups[] = (int) $child['id_grupo'];
|
$groups[] = (int) $child['id_grupo'];
|
||||||
@ -353,6 +357,10 @@ class CredentialStore extends Wizard
|
|||||||
|
|
||||||
$return = db_get_all_rows_sql($sql);
|
$return = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
|
if ($return === false) {
|
||||||
|
$return = [];
|
||||||
|
}
|
||||||
|
|
||||||
// Filter out those items of group all that cannot be edited by user.
|
// Filter out those items of group all that cannot be edited by user.
|
||||||
$return = array_filter(
|
$return = array_filter(
|
||||||
$return,
|
$return,
|
||||||
|
@ -883,7 +883,7 @@ function mysql_db_get_row_sql($sql, $search_history_db=false, $cache=true)
|
|||||||
*
|
*
|
||||||
* @return mixed Array of the row or false in case of error.
|
* @return mixed Array of the row or false in case of error.
|
||||||
*/
|
*/
|
||||||
function mysql_db_get_row_filter($table, $filter, $fields=false, $where_join='AND', $historydb=false)
|
function mysql_db_get_row_filter($table, $filter, $fields=false, $where_join='AND', $historydb=false, $cache=true)
|
||||||
{
|
{
|
||||||
if (empty($fields)) {
|
if (empty($fields)) {
|
||||||
$fields = '*';
|
$fields = '*';
|
||||||
@ -905,7 +905,7 @@ function mysql_db_get_row_filter($table, $filter, $fields=false, $where_join='AN
|
|||||||
|
|
||||||
$sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);
|
$sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);
|
||||||
|
|
||||||
return db_get_row_sql($sql, $historydb);
|
return db_get_row_sql($sql, $historydb, $cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1041,7 +1041,7 @@ function oracle_db_get_row_sql($sql, $search_history_db=false, $cache=true)
|
|||||||
*
|
*
|
||||||
* @return mixed Array of the row or false in case of error.
|
* @return mixed Array of the row or false in case of error.
|
||||||
*/
|
*/
|
||||||
function oracle_db_get_row_filter($table, $filter, $fields=false, $where_join='AND')
|
function oracle_db_get_row_filter($table, $filter, $fields=false, $where_join='AND', $history_db=false, $cache=true)
|
||||||
{
|
{
|
||||||
if (empty($fields)) {
|
if (empty($fields)) {
|
||||||
$fields = '*';
|
$fields = '*';
|
||||||
@ -1063,7 +1063,7 @@ function oracle_db_get_row_filter($table, $filter, $fields=false, $where_join='A
|
|||||||
|
|
||||||
$sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);
|
$sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);
|
||||||
|
|
||||||
return db_get_row_sql($sql);
|
return db_get_row_sql($sql, $history_db, $cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -750,7 +750,7 @@ function postgresql_db_get_row_sql($sql, $search_history_db=false, $cache=true)
|
|||||||
*
|
*
|
||||||
* @return mixed Array of the row or false in case of error.
|
* @return mixed Array of the row or false in case of error.
|
||||||
*/
|
*/
|
||||||
function postgresql_db_get_row_filter($table, $filter, $fields=false, $where_join='AND')
|
function postgresql_db_get_row_filter($table, $filter, $fields=false, $where_join='AND', $historydb=false, $cache=true)
|
||||||
{
|
{
|
||||||
if (empty($fields)) {
|
if (empty($fields)) {
|
||||||
$fields = '*';
|
$fields = '*';
|
||||||
@ -772,7 +772,7 @@ function postgresql_db_get_row_filter($table, $filter, $fields=false, $where_joi
|
|||||||
|
|
||||||
$sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);
|
$sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);
|
||||||
|
|
||||||
return db_get_row_sql($sql);
|
return db_get_row_sql($sql, $historydb, $cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -518,24 +518,25 @@ function db_get_row($table, $field_search, $condition, $fields=false, $cache=tru
|
|||||||
* @param mixed Fields of the table to retrieve. Can be an array or a coma
|
* @param mixed Fields of the table to retrieve. Can be an array or a coma
|
||||||
* separated string. All fields are retrieved by default
|
* separated string. All fields are retrieved by default
|
||||||
* @param string Condition to join the filters (AND, OR).
|
* @param string Condition to join the filters (AND, OR).
|
||||||
|
* @param boolean $cache Use cache or not.
|
||||||
*
|
*
|
||||||
* @return mixed Array of the row or false in case of error.
|
* @return mixed Array of the row or false in case of error.
|
||||||
*/
|
*/
|
||||||
function db_get_row_filter($table, $filter, $fields=false, $where_join='AND', $historydb=false)
|
function db_get_row_filter($table, $filter, $fields=false, $where_join='AND', $historydb=false, $cache=true)
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
switch ($config['dbtype']) {
|
||||||
case 'mysql':
|
case 'mysql':
|
||||||
return mysql_db_get_row_filter($table, $filter, $fields, $where_join, $historydb);
|
return mysql_db_get_row_filter($table, $filter, $fields, $where_join, $historydb, $cache);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'postgresql':
|
case 'postgresql':
|
||||||
return postgresql_db_get_row_filter($table, $filter, $fields, $where_join);
|
return postgresql_db_get_row_filter($table, $filter, $fields, $where_join, $historydb, $cache);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'oracle':
|
case 'oracle':
|
||||||
return oracle_db_get_row_filter($table, $filter, $fields, $where_join);
|
return oracle_db_get_row_filter($table, $filter, $fields, $where_join, $historydb, $cache);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -98,13 +98,15 @@ abstract class Entity
|
|||||||
* @param string $table Table.
|
* @param string $table Table.
|
||||||
* @param array|null $filters Filters, for instance ['id' => $id].
|
* @param array|null $filters Filters, for instance ['id' => $id].
|
||||||
* @param string|null $enterprise_class Enterprise class name.
|
* @param string|null $enterprise_class Enterprise class name.
|
||||||
|
* @param boolean $cache Use cache or not.
|
||||||
*
|
*
|
||||||
* @throws \Exception On error.
|
* @throws \Exception On error.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
string $table,
|
string $table,
|
||||||
?array $filters=null,
|
?array $filters=null,
|
||||||
?string $enterprise_class=null
|
?string $enterprise_class=null,
|
||||||
|
bool $cache=true
|
||||||
) {
|
) {
|
||||||
if (empty($table) === true) {
|
if (empty($table) === true) {
|
||||||
throw new \Exception(
|
throw new \Exception(
|
||||||
@ -116,7 +118,14 @@ abstract class Entity
|
|||||||
|
|
||||||
if (is_array($filters) === true) {
|
if (is_array($filters) === true) {
|
||||||
// New one.
|
// New one.
|
||||||
$data = \db_get_row_filter($this->table, $filters);
|
$data = \db_get_row_filter(
|
||||||
|
$this->table,
|
||||||
|
$filters,
|
||||||
|
false,
|
||||||
|
'AND',
|
||||||
|
false,
|
||||||
|
$cache
|
||||||
|
);
|
||||||
|
|
||||||
if ($data === false) {
|
if ($data === false) {
|
||||||
throw new \Exception(
|
throw new \Exception(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user