// // This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. // // To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ // // or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. // // Francais (brouillon): http://creativecommons.org/projects/international/fr/translated-license // ////////////////////////////////////////////////////////////////////////////////////////////////////// // Gestion des visuels // v0.1.8 class visuels { // Fichier nécessaires à un visuel var $files = array("default.css","accueil.html","mois.html","ecrit.html","forum_message.html","forum_page.html"); var $err = array( "stop" => "oui", "log" => "oui", "debug" => "oui"); // Gestion des erreurs function _err($err,$debug="") { // Si le debug est activé if($this->err[debug] == "oui" && !empty($debug)) $err.= "\n// DEBUG //\n".$debug; // Si on log les erreurs if($this->err[log] == "oui") $this->erreurs[] = $err; // Si on s'arrête sur les erreurs if($this->err[stop] == "oui") { echo "
".htmlentities(stripslashes($err))."
"; exit; } $this->erreur = $err; return FALSE; } function liste() { $file = $this->chemin."templates/list.txt"; if(!file_exists($file)) return $this->_err("Aucun visuel enregistré."); $f = @file($file); if(!$f) return $this->_err("Problème d'ouverture du fichier {$file}."); foreach($f as $lig) { $val = explode("=",trim($lig)); $out[] = array( "style" => $val[0], "name" => $val[1], "preview"=>$val[2], "auteur"=> $val[3]); } return $out; } function ajout($style,$name,$preview) { $liste = $this->liste(); $fp = @fopen($this->chemin."templates/list.txt","w"); if(!$fp) return $this->_err("Problème d'ouverture du fichier list.txt en écriture."); fputs($fp,$style."=".$name."=".$preview."\n"); fclose($fp); return TRUE; } function set_journal($journal,$visuel) { mysql_unbuffered_query('UPDATE journaux SET visuel="'.$visuel.'" WHERE id="'.$journal.'"'); return TRUE; } function install($journal) { foreach($this->files as $file) { $source = $this->chemin."templates/default/".$file; if(strpos($file,"html")) $destination = $this->chemin."documents/".$journal."/skel_".$file; else $destination = $this->chemin."documents/".$journal."/".$file; if(file_exists($destination)) @unlink($destination); if(!@copy($source,$destination)) return $this->_err("Impossible d'installer les fichiers.","Erreur de copie du fichier {$source}"); } return TRUE; } function is_newbie($journal) { foreach($this->files as $file) { if(file_exists($this->chemin."documents/".$journal."/".$file)) return FALSE; } return TRUE; } } ?>