Darathor
Citation :
But : Ce Sous-MOD propose des fonctions d'enregistrement de fichiers.
Prérequis :
- [Sous-MOD] Auto-included files (1.0)
Auteur : Darathor (darathor@free.fr)
Version : 1.1 TEST - D (14/10/2006)
Compatibilité phpBB : 2.0.21
Changements :
1.1 (14/10/2006) :
- ajout d'une fonction simplifiant la gestion d'un numéro de version pour les fichier générés (pour éviter les problème de cache lors des mises à jour).
- ajout d'une fonction de supperssion de fichier.
- ajout d'une fonction générant un nouveau template pour un thème différent de celui sélectionné (pour générer des fichiers différents pour chaque thème).
- ajout d'une fonction enregistrant une chaîne de caractères dans un fichier.
- suppression de l'affichage en texte du fichier généré dans le message d'erreur en cas d'échec de l'enregistrement.
- exploitation du Sous-MOD Auto-included files
Dans "template.php" :
Code :
#
# Trouver
#
/**
* Inserts the uncompiled code for $handle as the
* value of $varname in the root-level. This can be used
* to effectively include a template in the middle of another
* template.
* Note that all desired assignments to the variables in $handle should be done
* BEFORE calling this function.
*/
#
# Ajouter avant
#
// DEBUT MOD Export fichier
/**
* Similaire à pparse mais envoie le résultat dans le fichier $destination plutôt que sur la sortie standard.
*
* @param $handle bloc tpl à exporter dans le fichier.
* @param $destination fichier destination.
* @param $error_message message d'erreur à indiquer au cas où il serait impossible d'enregistrer le fichier (si le message contient un %s, il sera remplacé par le la variable $destination). Si aucun message n'est donnée, un message par défaut sera utilisé.
*/
function pparse_in_file($handle, $destination, $error_message = '')
{
if (!$this->loadfile($handle))
{
die("Template->pparse(): Couldn't load template file for handle $handle");
}
// actually compile the template now.
if (!isset($this->compiled_code[$handle]) || empty($this->compiled_code[$handle]))
{
// Actually compile the code now.
$this->compiled_code[$handle] = $this->compile($this->uncompiled_code[$handle]);
}
// Run the compiled code.
$file = @fopen($destination, 'w'); // Ouverture du fichier destination.
if(!$file) // Si le fichier n'est pas accessible, on envoie un message d'erreur.
{
global $lang;
message_die(GENERAL_ERROR, sprintf($error_message, $destination));
}
ob_start(); // Redirection de la sortie standard dans un buffer.
eval($this->compiled_code[$handle]); // Evaluation du code compilé.
fputs($file, ob_get_contents()); // Récupération du contenu du buffer et envoi dans le fichier.
fclose($file); // Fermeture du fichier.
ob_clean(); // Vidage du buffer.
return true;
}
// FIN MOD Export fichier
Uploader les fichiers suivants :
- includes/functions_all/functions_all_file_export.php