Location: PHPKode > scripts > Ianaz Configuration Class > ianaz-configuration-class/Configuration.class.php
<?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>';
	}
}
Return current item: Ianaz Configuration Class