<?php
/*
* Classe che crea i file di configurazione
* Creata da Silvio Rainoldi - 15 novembre 2007
*/
class Configurazione {
var $NomeFile;
var $NomeVariabile;
var $debug = array (); // Array contenente tutti i passi
var $valori;
// Costruttore: Posizione e nome del file + il nome che dovra avere la variabile (senza il $)
function Configurazione($nome, $NomeVariabile) {
$this->NomeFile = $nome;
$this->NomeVariabile = $NomeVariabile;
$this->aggiungiaDebug('Nome file settato a ' . $this->NomeFile . ', nome variabile: $' . $this->NomeVariabile . '');
}
// Aggiungi al file di configurazione un array di valori
public function addVariabile($cfg, $add = false) {
$this->valori = $cfg;
$this->aggiungiaDebug('Array aggiunto');
}
public function generaFile($nuovo = true){
if($nuovo){
$mode = "w+";
}
else {
$mode = "a+";
}
$file = fopen($this->NomeFile, $mode);
$this->aggiungiaDebug("Scrivo sul file");
if($nuovo){
fwrite($file, "<?php\n");
fwrite($file, "/*\n File di configurazione generato automaticamente dalla classe Configurazione\n Silvio Rainoldi - www.ianaz.org \n*/\n\n");
}
foreach($this->valori as $chiave => $valore){
if(is_numeric($valore)){
fwrite($file, "\t\$" . $this->NomeVariabile . "['" . $chiave . "'] = " . $valore . ";\n");
}
else {
fwrite($file, "\t\$" . $this->NomeVariabile . "['" . $chiave . "'] = '" . addslashes($valore) . "';\n");
}
}
if($nuovo){
fwrite($file, "?>");
}
fclose($file);
}
public function getValore($chiave){
if($this->valori[$chiave] != null){
$this->aggiungiaDebug('Richiesta la chiave ' . $chiave . '');
return stripslashes($this->valori[$chiave]);
}
else {
$this->aggiungiaDebug('Si รจ verificato un errore con la richiesta di <i>' . $chiave . '</i>');
return '<div><span style="font-weight: bold;">ERRORE NEL FILE DI CONFIGURAZIONE</span></div>';
}
}
// Aggiunge all'array debug un passo eseguito
private function aggiungiaDebug($testo) {
array_push($this->debug, $testo);
}
// Fa scorrere l'array e stampa tutti i passi
public function debugga() {
echo '<div style="background-color: red; font-weight: bold; margin: 10px; padding: 10px;">';
foreach ($this->debug as $stringa) {
echo $stringa . '<br />';
}
echo '*** DEBUG TERMINATO ***</div>';
}
}