mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-29 09:11:11 +01:00
61 lines
1.8 KiB
PHP
61 lines
1.8 KiB
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* Classe per la gestione dell impostazioni del progetto.
|
||
|
*
|
||
|
* @since 2.3
|
||
|
*/
|
||
|
class Settings
|
||
|
{
|
||
|
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) && strpos($result['tipo'], 'query=') !== false) {
|
||
|
$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];
|
||
|
}
|
||
|
}
|