Skip to content

Commit 1f3f9b4

Browse files
committed
refactor: ottimizzazione prestazioni di lettura zz_settings
1 parent 5affaec commit 1f3f9b4

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

lib/helpers.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
* @since 2.4.2
2525
*/
2626
use HTMLBuilder\HTMLBuilder;
27-
use Models\Setting;
2827

2928
/**
3029
* Restituisce l'oggetto dedicato alla gestione della connessione con il database.
@@ -98,23 +97,27 @@ function get($param, $raw = false)
9897
/**
9998
* Legge il valore di un'impostazione dalla tabella zz_settings.
10099
*
101-
* @param string $name
102-
* @param bool $again
100+
* @param string $name Nome dell'impostazione
103101
*
104102
* @since 2.4.2
105103
*
106104
* @return string
107105
*/
108-
function setting($name, $again = false)
106+
function setting($name)
109107
{
110-
$setting = Setting::where('nome', '=', $name)->first();
108+
// Utilizza la classe Settings che implementa il caching per ridurre le query
109+
/** @var \Models\Setting $setting */
110+
$setting = Settings::get($name);
111111

112112
$user = Auth::user();
113+
$user_options = [];
114+
113115
if ($user) {
114116
$user_options = json_decode((string) $user->options ?: '', true) ?: [];
115117
}
116118

117-
if ($user_options['settings'][$setting->id] !== null) {
119+
// Controlla se l'utente ha una personalizzazione per questa impostazione
120+
if (isset($user_options['settings'][$setting->id]) && $user_options['settings'][$setting->id] !== null) {
118121
$value = $user_options['settings'][$setting->id];
119122
$value = is_array($value) ? implode(',', $value) : $value;
120123
} else {

0 commit comments

Comments
 (0)