Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[Sous-MOD] Export fichier (1.1 TEST - A)

Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets. Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 20 Jan 2006 17:49
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Citation :
But : Ce Sous-MOD ajoute une méthode à la classe template qui permet d'enregistrer la page générée dans un fichier plutôt que de l'afficher dans le navigateur.

Auteur : Darathor (darathor@free.fr)
Version : 1.1 TEST - A (20/01/2006)
Compatibilité phpBB : 2.0.19

Changements :
1.1 (20/01/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).
- suppression de l'affichage en texte du fichier généré dans le message d'erreur en cas d'échec de l'enregistrement.


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


Dans "includes/functions.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Export fichier
/**
 * Incrémente la valeur d'une entrée de la table de configuration (supposée de type entier).
 *
 * @param $key nom de l'entrée à incrémenter.
 * @param $last_file argument optionnel indiquant le précédent fichier à effacer (s'il existe).
 * @return nouvelle valeur de l'entrée incrémentée.
 */
function ExFi_increment_config_number($key, $last_file = '')
{
   global $lang, $board_config, $phpbb_root_path, $phpEx, $db;
   
   // Effacement du ficheir précédent si demandé.
   if(($last_file != '') && file_exists($last_file))
   {
      unlink($last_file);
   }
   
   // Incrémentation de la valeur.
   $board_config[$key]++;
   
   // Mise à jour dans la base.
   $sql = "UPDATE " . CONFIG_TABLE . "
      SET config_value = '" . $board_config[$key] . "'
      WHERE config_name = '$key'";
      
   if(!$result = $db->sql_query($sql))
   {
      message_die(GENERAL_ERROR, "Couldn't update '$key' value in config table", "", __LINE__, __FILE__, $sql);
   }
   
   // Retour de na nouvelle valeur.
   return $board_config[$key];
}
// FIN MOD Export fichier

Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum