1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-17 03:51:06 +01:00
openstamanager/src/Settings.php

70 lines
1.9 KiB
PHP
Raw Normal View History

<?php
/**
* Classe per la gestione dell impostazioni del progetto.
*
* @since 2.3
*/
class Settings
{
/** @var array Elenco delle impostazioni ottenute */
protected static $values = [];
/**
* Restituisce il valore corrente dell'impostazione ricercata.
* Se l'impostazione viene cercata più volte, il primo valore individuato viene salvato; per costringere a aggiornare i contenuto, usare l'opzione $again.
*
* @param string $nome
* @param string $descrizione
* @param bool $again
*
* @return string
*/
2018-07-08 18:11:17 +02:00
public static function get($nome, $descrizione = false, $again = false)
{
if (Update::isUpdateAvailable()) {
return null;
}
2018-07-08 18:11:17 +02:00
if (!isset(self::$values[$nome]) || !empty($again)) {
$database = Database::getConnection();
if (!$database->isInstalled()) {
return null;
}
2018-07-08 18:11:17 +02:00
$results = $database->fetchArray('SELECT valore, tipo FROM zz_settings WHERE nome='.prepare($nome));
$value = null;
if (!empty($results)) {
$result = $results[0];
$value = $result['valore'];
if (!empty($descrizione) && str_contains($result['tipo'], 'query=')) {
$data = $database->fetchArray(str_replace('query=', '', $result['tipo']));
if (!empty($data)) {
$value = $data[0]['descrizione'];
}
}
}
2018-07-08 18:11:17 +02:00
self::$values[$nome] = $value;
}
2018-07-08 18:11:17 +02:00
return self::$values[$nome];
}
public static function set($name, $value)
{
$database = Database::getConnection();
$database->update('zz_settings', [
'valore' => $value,
], [
'nome' => $name,
]);
self::get($nome, null, null, true);
}
}