1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-28 00:30:45 +01:00
openstamanager/lib/classes/Settings.php
Thomas Zilio aaabb18fe6 Aggiornamento della documentazione integrata
Miglioramento della documentazione integrata delle classi principali.
2017-08-31 11:32:49 +02:00

62 lines
1.8 KiB
PHP

<?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 $sezione
* @param string $descrizione
* @param bool $again
*
* @return string
*/
public static function get($nome, $sezione = null, $descrizione = false, $again = false)
{
if (Update::isUpdateAvailable()) {
return null;
}
if (empty(self::$values[$sezione.'.'.$nome]) || !empty($again)) {
$database = Database::getConnection();
if (!$database->isInstalled()) {
return null;
}
$query = 'SELECT valore, tipo FROM zz_settings WHERE nome='.prepare($nome);
if (!empty($sezione)) {
$query .= ' AND sezione='.prepare($sezione);
}
$results = $database->fetchArray($query);
$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'];
}
}
}
self::$values[$sezione.'.'.$nome] = $value;
}
return self::$values[$sezione.'.'.$nome];
}
}