Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[SUPPORT]PoPuP pour les MOD MP et ABUS

Feu follet
Avatar de Automate FSB
  • Messages : 178
  • Inscrit : 09 Juin 2005
Message édité 1 fois, dernière édition par Grummfy, 10 Janvier 2008, 3:17     Lien vers ce message 14 Juillet 2005, 20:43
Le support de ce MOD s'effectue uniquement à la suite de ce topic, afin de regrouper au maximum les réponses aux problèmes posés.
  1. [size=18]Données du MOD :[/size]
    1. Nom : MOD PoPuP pour les MOD MP et ABUS
    2. Version : 1.0.0
    3. Installation : 5 minute(s)
    4. Cache : non
    5. Requètes SQL : non
    6. Description : Ouvre un PoPuP quand on reçoit des nouveaux MP ou des nouveaux ABUS quand on est sur l'index du forum

    7. Fiche du MOD : http://www.fire-soft-board.com/fiche_mods.php?mod=71
    8. Télécharger le MOD : http://www.fire-soft-board.com/telecharger_mod.php?mod=71




  2. [size=18]Données de l'auteur :[/size]
    1. Auteur : piranas
    2. Contact : http://www.fire-soft-board.com/images/mail.gif http://www.fire-soft-board.com/images/mp.gif


Inutile de me parler, je ne suis qu'un robot :p
 
Volcan
Avatar de piranas
  • Age : 22 ans
  • Messages : 1640
  • Inscrit : 17 Avril 2005
  Lien vers ce message 18 Juillet 2005, 7:37
Le zip a été mis a jour, a la demande du modeateur :)

Piranas


http://www.piranas-geek.info/Fichiers/Banniere.gif

Mes Mods : Listing de mes mods
 
Brasier
Avatar de subzeros
  • Age : 26 ans
  • Messages : 615
  • Inscrit : 13 Mai 2005
  Lien vers ce message 03 Janvier 2006, 0:41
bonsoir je suis en train d installer se mod et il me dise de chercher

Citation
#
# [4]---------- ouvrir -------------------------------------------------------
#

includes/header_forum.php

#
# [5]---------- chercher -------------------------------------------------------
#

$nouveaux_messages = $tmp['nouveaux_messages'];

#
# [6] ---------- après ajouter -------------------------------------------------------
#

//Debut MOD PoPuP MP
if ($nouveaux_messages){
$tpl->create_block('new_mp');
}
//Fin MOD PoPuP MP


donc je trouve pas je vous montre mon fichier

Citation
<?php
/*******************************************************************************
*
* [ ./includes/header_forum.php (français) ]
*
* --------------------------------------------------------------------------
* Commencé le : 28 juillet 2004
* Copyright : Groupe Fire Soft Board
* Site Web : http://www.fire-soft-board.com
* E-mail : support@fire-soft-board.com
* --------------------------------------------------------------------------
* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les
* termes de la Licence Publique Générale GNU publiée par la Free Software Foundation
* (version 2). Reportez-vous à la Licence Publique Générale GNU pour plus de détails.
* Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps
* que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.
* --------------------------------------------------------------------------
*
* Derniére modification le 15 avril 2005 v1.00
* Templates : 1
* - header.tpl
*
*******************************************************************************/

if ( ! defined('FORUM') )
{
die('-[interdit]-');
}

// Cette constante annonce que le header a été parsé (utile pour la fonction info())
define('HEADER', TRUE);

//
// On empèche la mise en cache des pages.
// La documentation sur les headers est disponible ici:
// http://fr2.php.net/manual/fr/function.header.php
//
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Expires: 0');
header('Pragma: no-cache');

$tpl->set_filenames(array('header' => ( $simple_header ) ? 'simple_header.tpl' : 'header.tpl'));

$tpl->assign_vars( array(
'L_CONNEXION' => $langue['connexion'],
'L_DECONNEXION' => $langue['deconnexion'],
'L_SENREGISTRER' => $langue['senregistrer'],
'L_PROFIL' => $langue['profil'],
'L_ADMIN' => $langue['administration'],
'L_INDEX' => $langue['index'],
'L_FAQ' => $langue['faq'],
'L_LISTEMEMBRE' => $langue['listemembre'],
'DESCRIPTION_SITE' => $config['description_site'],
'NOM_SITE' => $config['nom_site'],
'PAGE_TITRE' => $page_titre,

'U_CONNEXION' => ajout_sid($racine . 'connexion.php'),
'U_DECONNEXION' => ajout_sid($racine . 'connexion.php?deconnexion=1'),
'U_SENREGISTRER' => ajout_sid($racine . 'profil.php?mode=nouveau'),
'U_PROFIL' => ajout_sid($racine . 'profil.php?mode=edite'),
'U_ADMIN' => ajout_sid($racine . 'admin/index.php'),
'U_INDEX' => ajout_sid($racine . 'index.php'),
'U_FAQ' => ajout_sid($racine . 'faq.php?mode=general'),
'U_LISTEMEMBRE' => ajout_sid($racine . 'liste_membre.php'),
'RACINE' => $racine,
'SID' => 'sid=' . $membre['session_sid'],
'THEME' => $membre['membre_theme'],
'V_FICHIER_CSS' => substr($membre['membre_theme'], 0, -1)
));

//
// S'il s'agit d'un super modérateur ou bien d'un administrateur on affiche le lien vers la panneau d'administration
//
if (($membre['membre_aut'] == MODOSUP || $membre['membre_aut'] == ADMIN) && $membre['membre_id'] != INVITE)
{
$tpl->create_block('admin');
}

//
// Suivant si le membre est connecté ou non on active le swtich 'est_connecte' ou 'est_pas_connecte'
//
if ($membre['membre_id'] != INVITE)
{
$tpl->create_block('est_connecte');
}
else
{
$tpl->create_block('est_pas_connecte');
}

$tpl->assign_block_vars('liens_pages', array('LIENS' => $liens_header ));

$tpl->pparse('header');

?>
 
Volcan
Avatar de piranas
  • Age : 22 ans
  • Messages : 1640
  • Inscrit : 17 Avril 2005
  Lien vers ce message 03 Janvier 2006, 20:17
Tu a deja installer le MOD MP?

Ce mod est compatible seulement si tu a le MOD Mp de geno d'installer.


http://www.piranas-geek.info/Fichiers/Banniere.gif

Mes Mods : Listing de mes mods
 
Brasier
Avatar de subzeros
  • Age : 26 ans
  • Messages : 615
  • Inscrit : 13 Mai 2005
  Lien vers ce message 03 Janvier 2006, 21:02
j avais pas installer celu ide geno donc jai installer celui de geno maintenant j ai reprit se mod donc et j ai une erreur arffff

Citation
Parse error: parse error, unexpected '}' in /home/.filer3/subzeros/www/Zone_subzeros/includes/class/class_tpl.php(469) : eval()'d code on line 71
 
Volcan
Avatar de piranas
  • Age : 22 ans
  • Messages : 1640
  • Inscrit : 17 Avril 2005
  Lien vers ce message 04 Janvier 2006, 18:15
tu peut nous passer le code TPL que tu a modifier stp


http://www.piranas-geek.info/Fichiers/Banniere.gif

Mes Mods : Listing de mes mods
 
Brasier
Avatar de subzeros
  • Age : 26 ans
  • Messages : 615
  • Inscrit : 13 Mai 2005
  Lien vers ce message 05 Janvier 2006, 2:21
on fait jai pas modifier de fichier tpl masi je te montre le fichier en question

Citation
<?php
/*******************************************************************************
*
* [ ./includes/class/class_tpl.php (français) ]
*
* --------------------------------------------------------------------------
* Commencé le : 25 septembre 2005
* Copyright : Groupe Fire Soft Board
* Site Web : http://www.fire-soft-board.com
* E-mail : support@fire-soft-board.com
* --------------------------------------------------------------------------
* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les
* termes de la Licence Publique Générale GNU publiée par la Free Software Foundation
* (version 2). Reportez-vous à la Licence Publique Générale GNU pour plus de détails.
* Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps
* que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.
* --------------------------------------------------------------------------
*
* Dernière modification le 25 septembre 2005 par Genova
* Templates : 0
*
*******************************************************************************/

/*
** Classe Tpl, codée par Genova, inspirée de la classe originale PHPLib.
**
** Cette classe permet la manipultion simple et efficace de fichiers
** templates, avec gestion de blocks. Une gestion de structure de controle
** est aussi disponible (IF, ELSE, etc...) ainsi qu'une gestion automatique
** du cache des fichiers templates.
*/

define('PREG_LIMIT', 1);
define('ECHO_CODE', 1);
define('GET_CODE', 2);

class Tpl
{
var $root;
var $cache_dir;
var $use_cache;
var $data = array();
var $last_mask;

var $stack = array();
var $curent_stack = 0;

var $switch = array();

/*
** Constructeur de la classe.
** Assigne les chemins d'accès à la racine du dossier du
** thèmes ainsi que le chemin d'accès au dossier du cache
** si on utilise le cache.
** -----
** $root :: Chemin d'accès au thème.
** $cache_dir :: Chemin d'accès au dossier du cache.
*/
function Tpl($root, $cache_dir = '')
{
$this->root = $root;
if (!empty($cache_dir))
{
$this->use_cache = TRUE;
$this->cache_dir = $cache_dir;
}
else
{
$this->use_cache = FALSE;
}

$this->data['parent'] = array(
'file' => '',
'cache_file' => $this->cache_dir . '/' . $file . '.php',
'vars' => array(),
'blocks' => array()
);
return (TRUE);
}

/*
** Assigne un masque au fichier chargé. Ce masque servira a
** assigner des variables ou des blocks pour ce fichier, il sera
** donc possible de charger plusieurs fichiers templates de manière
** indépendante.
** -----
** $file :: Fichier a charger, chemin relatif à $this->root.
** $mask :: Masque du fichier.
*/
function set_filenames($array)
{
list($mask, $file) = each($array);
if (file_exists($this->root . $file))
{
$this->last_mask = $mask;
$this->curent_stack++;
$this->stack[$this->curent_stack] = $mask;
$this->data[$mask] = array(
'file' => $this->root . $file,
'cache_file' => $this->cache_dir . '/' . $file . '.php',
'vars' => array(),
'blocks' => array(),
);
}
else
{
die("Tpl->load_file() :: Le fichier $this->root$file n'existe pas.");
}
return (TRUE);
}

/*
** Assigne un paquet de variables globales au masque. Une variable
** globale a un masque est accessible partout dans le fichier template
** a condition de ne pas utiliser la notation de block (::) devant.
** Pour rendre ces variables utilisables pour n'importe quel masque
** utilisez le mot clé "parent".
** -----
** $mask :: Masque du fichier cible.
** $vars :: Variables à assigner, chaque clé du tableau sera récupérée dans le
** fichier template par les variables de type {KEY}.
*/
function assign_vars($vars = array(), $mask = 'parent')
{
$this->data[$mask]['vars'] = array_merge($this->data[$mask]['vars'], $vars);
return (TRUE);
}

/*
** Rajoute le tableau $vars à la fin du dernier block désigné par
** $block. Par exemple si on prend test::bidule on va
** effectuer $this->data[$mask]['block']['test'][count($this->data[$mask]['block']['test']) - 1]['bidule'][] = $vars.
** -----
** $mask :: Masque du fichier cible.
** $block :: Contient les blocks séparés entre eux par des ::.
** $vars :: Variables à assigner, chaque clé du tableau sera récupérée dans le
** fichier template par les variables de type {$block::KEY}.
** En prenant l'exemple ci dessus ce serait {test::bidule::KEY}
*/
function assign_block_vars($block, $vars, $mask = '')
{
if (empty($mask))
{
$mask = $this->stack[$this->curent_stack];
}
$get_blocks = $this->get_blocks($block, $mask);
eval('$this->data[\'' . $mask . '\'][\'blocks\']' . $get_blocks . '[] = $vars;');
return (TRUE);
}

/*
** Permet de créer un block, son existence sera testée dans le template
** avec IFEXIST.
** -----
** $block :: Block à créer.
** $mask :: Masque du fichier cible.
*/
function create_block($block)
{
$this->switch[$block] = TRUE;
}

/*
** Renvoie sous forme de cases de tableaux PHP les blocks, la meilleure
** facon de comprendre est par un exemple:
** echo get_blocks('bloc1::bloc2::block3', 'test');
** affichera ['bloc1'][count_bloc1 - 1]['bloc2'][count_bloc2 - 1]['bloc3']
** -----
** $block :: recoit les blocks, separés par des ::.
** $mask :: Masque du fichier cible.
*/
function get_blocks($block, $mask)
{
$blocks_str = '';
if (preg_match('/\./', $block))
{
$blocks_array = explode('.', $block);
$count_blocks = count($blocks_array);
for ($i = 0; $i < $count_blocks - 1; $i++)
{
$blocks_str .= '[\'' . $blocks_array[$i] . '\']';
eval('$count = count($this->data[\'' . $mask . '\'][\'blocks\']' . $blocks_str . ');');
$blocks_str .= '[' . ($count - 1) . ']';
}
$blocks_str .= '[\'' . $blocks_array[$count_blocks - 1] . '\']';
}
else
{
$blocks_str = '[\'' . $block . '\']';
}

return ($blocks_str);
}

/*
** Renvoie sous forme de cases de tableaux PHP les blocks courants, la meilleure
** facon de comprendre est par un exemple:
** echo get_current_blocks(array('bloc1', 'bloc2', 'bloc3'), 2);
** affichera ['bloc1'][$i_0]['bloc2'][$i_1]['bloc3']
** -----
** $block_array :: recoit les blocks sous forme de tableau.
*/
function get_current_blocks($blocks_array, $iteration)
{
$blocks_str = '';
$count_array = count($blocks_array);
for ($i = $count_array - 2; $i >= 0; $i--)
{
$blocks_str = '[\'' . $blocks_array[$i] . '\'][$i_' . ($iteration - ($count_array - $i) + 1) . ']' . $blocks_str;
}
$blocks_str .= '[\'' . $blocks_array[$count_array - 1] . '\']';
return ($blocks_str);
}

/*
** Même effet que la fonction $this->get_current_blocks mais
** prend en paramètre une chaine de block au lieu d'un tableau.
** -----
** $blocks :: Chaine de blocks (par exemple bloc1::bloc2::)
*/
function get_vars_blocks($blocks)
{
$blocks_array = explode('.', $blocks);
array_pop($blocks_array);
$count = count($blocks_array) - 1;
return ($this->get_current_blocks($blocks_array, $count) . '[$i_' . $count .']');
}

/*
** Parse le code template fourni a la fonction.
** -----
** $str :: Code à parser.
** $mask :: Masque du fichier cible.
** $type :: Type du parsage. Si type vaut ECHO_CODE on renvoie le
** code a evaluer avec un echo ce qui génèrera un affichage.
** Si $type vaut GET_CODE on renvoie le code à evaluer en
** assignement a une variable.
*/
function parse_code($str, $mask, $type)
{
$assign = ($type == ECHO_CODE) ? 'echo ' : '$_result_tpl .= ';

/*
** On remplace les <!-- INCLUDE_TPL file --> par le contenu du
** fichier file, qui doit être relatif à la racine du template
** ($this->root). Les inclusions de fichiers templates dans les
** autres fichiers sont aussi prises en compte.
*/
$total_inc_tpl = 0;
$f = 0;
do
{
preg_match_all('/<!-- INCLUDE_TPL ([a-zA-Z0-9\/._-]+) -->/si', $str, $inc_tpl);
$count_inc_tpl = count($inc_tpl[1]);
$total_inc_tpl += $count_inc_tpl;
for ($v = 0; $v < $count_inc_tpl; $v++)
{
if (file_exists($this->root . $inc_tpl[1][$v]))
{
$str = str_replace($inc_tpl[0][$v], implode("", file($this->root . $inc_tpl[1][$v])), $str);
}
else
{
die("Tpl->get_code() :: Le fichier " . $inc_tpl[1][$v] . " n'existe pas.");
}
}
unset($inc_tpl);
$f++;
}
while ($f < $total_inc_tpl + 1);

$str = str_replace('\'', '\\\'', str_replace('\\', '\\\\', $str));

/*
** On récupère le code PHP compris entre les balises
** <!-- BEGIN_PHP --> et <!-- END_PHP -->.
*/
preg_match_all('/<!-- BEGIN_PHP -->(.*?)<!-- END_PHP -->/si', $str, $php_code);
$count_php_code = count($php_code);
for ($v = 0; $v < $count_php_code; $v++)
{
$str = str_replace($php_code[0][$v], "';\n" . str_replace('\\\'', '\'', str_replace('\\\\', '\\', $php_code[1][$v])) . "\n$assign '", $str);
}

/*
** On parse la variable spéciale [bloc1::etc..blocn::ITERATION] qui
** contient la valeur de l'itération actuelle.
*/
$str = $this->parse_iteration_var($str);

/*
** On parse les variables "globales" du template, à savoir les {VARIABLE}.
** Elles sont remplacées par $this->data[$mask]['vars']['VARIABLE'].
*/
$str = preg_replace('/\{([A-Z0-9\-_]+)\}/s', '\' . ((isset($this->data[\'' . $mask . '\'][\'vars\'][\'\\1\'])) ? $this->data[\'' . $mask . '\'][\'vars\'][\'\\1\'] : $this->data[\'parent\'][\'vars\'][\'\\1\']) . \'', $str);

/*
** On parse les variables de blocks. Le nombre de blocks détermine la
** position dans le tableau $this->data[$mask]['blocks'].
*/
preg_match_all('/\{(([a-z0-9\-_]+?\.)+?)([A-Z0-9\-_]+?)\}/s', $str, $vars_b);
$count_vars_b = count($vars_b[1]);
for ($v = 0; $v < $count_vars_b; $v++)
{
$str = str_replace($vars_b[0][$v], '\' . $this->data[\'' . $mask . '\'][\'blocks\']' . $this->get_vars_blocks($vars_b[1][$v]) . '[\'' . $vars_b[3][$v] . '\'] . \'', $str);
}

/*
** On parse les blocks conditionels (IF, ELSEIF, ELSE, ENDIF, IFEXIST).
*/
$str = $this->parse_cond_blocks($str, $assign, $mask);

/*
** On parcourt ligne par ligne le fichier template en remplacant
** les débuts de blocks par des ouvertures de boucles et les fermetures
** de blocks par des fins de boucles.
*/
$line = explode("\n", $str);
if ($count_line = count($line))
{
$block_array = array();
$b = 0;
$code = '';
for ($i = 0; $i < $count_line; $i++)
{
if (preg_match('/<!-- BEGIN ([a-z0-9\-_]+) -->/si', $line[$i], $matches))
{
$block_array[$b] = $matches[1];
$code .= preg_replace('/<!-- BEGIN ([a-z0-9\-_]+) -->/si', "';\n" . '$count_i_' . $b . ' = count($this->data[\'' . $mask . '\'][\'blocks\']' . $this->get_current_blocks($block_array, $b) . ')' . ";\n" . 'for($i_' . $b . ' = 0; $i_' . $b . ' < $count_i_' . $b . '; $i_' . $b . '++)' . "\n" . '{' . "\n$assign '", $line[$i], PREG_LIMIT);
$b++;
}
else if (preg_match('/<!-- END ([a-z0-9\-_]+) -->/', $line[$i]))
{
array_pop($block_array);
$code .= preg_replace('/<!-- END ([a-z0-9\-_]+ )?-->/si', "';\n}\n$assign '", $line[$i], PREG_LIMIT);
$b--;
}
else
{
$code .= $line[$i] . "\n";
}
unset($matches);
}
}
else
{
die("Tpl->get_code() :: Le fichier $this->data[$mask]['file'] est vide.");
}
return ($assign . '\'' . $code . '\';');
}

/*
** Parse les structures conditionelles IF, ELSEIF, ELSE, ENDIF et IFEXIST.
** -----
** $str :: Code.
** $assign :: Assignement du code (affichage avec echo ou recuperation
** dans la variable $_result_tpl).
** $mask :: Masque du fichier cible.
*/
function parse_cond_blocks($str, $assign, $mask)
{
/*
** On parse les variables globales et de blocks des structures
** conditionelles. On les parse de la même façon que les autres variables
** à la différence prèt que leur structure est de la forme [VAR] ou bien
** [bloc1::bloc2::VAR].
*/
$str = preg_replace('/\[([A-Z0-9\-_]+)\]/s', '(isset($this->data[\'' . $mask . '\'][\'vars\'][\'\\1\']) ? $this->data[\'' . $mask . '\'][\'vars\'][\'\\1\'] : $this->data[\'parent\'][\'vars\'][\'\\1\'])', $str);
preg_match_all('/\[(([a-z0-9\-_]+?\.)+?)([A-Z0-9\-_]+?)\]/s', $str, $vars_b);
$count_vars_b = count($vars_b[1]);
for ($v = 0; $v < $count_vars_b; $v++)
{
$str = str_replace($vars_b[0][$v], '$this->data[\'' . $mask . '\'][\'blocks\']' . $this->get_vars_blocks($vars_b[1][$v]) . '[\'' . $vars_b[3][$v] . '\']', $str);
}

/*
** On parse les blocks conditionels IF et ELSEIF, ces blocks doivent
** automatiquement être suivi d'une condition.
*/
preg_match_all('/<!-- (ELSE)?IF (.+?) -->/si', $str, $if);
$count_if = count($if);
for ($v = 0; $v < $count_if; $v++)
{
$str = str_replace($if[0][$v], "';\n" . (($if[1][$v] == 'ELSE') ? "}\nelse " : '') . "if (" . $if[2][$v] . ")\n{\n$assign '", $str);
}

/*
** On parse le block IFEXIST. Ce block permet directement de tester si un block
** a été défini a l'aide de la fonction $this->create_block($mask, 'BLOCK');.
*/
$str = preg_replace('/<!-- IFEXIST ([a-zA-Z0-9\-_]+?) -->/si', "';\n" . 'if ($this->switch[\'\\1\'])' . "\n{\n$assign '", $str);

/*
** On parse très simplement le block ELSE et ENDIF avec une fin de
** boucle.
*/
$str = str_replace('<!-- ELSE -->', "';\n}\nelse\n{\n$assign '", $str);
$str = str_replace('<!-- ENDIF -->', "';\n}\n$assign '", $str);

return ($str);
}

/*
** Parse la variable spéciale [ITERATION] (ou {ITERATION}) par l'itération
** actuelle de la boucle. Cette variable doit donc toujours être précédée
** d'un block, par exemple [bloc1::ITERATION].
** -----
** $str :: Code à parser.
*/
function parse_iteration_var($str)
{
preg_match_all('/(([a-z0-9\-_]+?\.)+?)ITERATION/si', $str, $it);
$count = count($it[0]);
for ($i = 0; $i < $count; $i++)
{
$count_elmt = substr_count($it[1][$i], '.');
$str = str_replace('{' . $it[0][$i] . '}', '\' . $i_' . ($count_elmt - 1) . ' . \'', $str);
$str = str_replace('[' . $it[0][$i] . ']', '$i_' . ($count_elmt - 1), $str);
}

preg_match_all('/(([a-z0-9\-_]+?\.)+?)COUNT_ITERATION/si', $str, $it);
$count = count($it[0]);
for ($i = 0; $i < $count; $i++)
{
$count_elmt = substr_count($it[1][$i], '.');
$str = str_replace('{' . $it[0][$i] . '}', '\' . $count_i_' . ($count_elmt - 1) . ' . \'', $str);
$str = str_replace('[' . $it[0][$i] . ']', '$count_i_' . ($count_elmt - 1), $str);
}
return ($str);
}

/*
** Parse le fichier tpl associé au masque passé.
** -----
** $mask :: Masque du fichier cible.
** $type :: Si $type vaut ECHO_CODE le code parsé sera
** directement affiché, si cependant $type vaut
** GET_CODE, la fonction renvera le code créé.
** $interfer :: Empèche la mise en cache si TRUE.
*/
function pparse($mask, $type = ECHO_CODE, $interfer = FALSE)
{
/*
** Gestion automatique des masques
*/
$this->curent_stack--;
array_pop($this->stack);

/*
** Si on utilise le cache du template on inclu le fichier
** du cache à condition que la dernière date de modification
** du fichier .tpl corespondant et celle du fichier d'origine
** concordent.
*/
unset($_result_tpl);
if (!$interfer && $this->use_cache && file_exists($this->data[$mask]['cache_file']) && filemtime($this->data[$mask]['file']) == filemtime($this->data[$mask]['cache_file']))
{
include($this->data[$mask]['cache_file']);
}
else if (file_exists($this->data[$mask]['file']))
{
$str = implode("", file($this->data[$mask]['file']));
$code = $this->parse_code($str, $mask, GET_CODE);
if (!$interfer && $this->use_cache)
{
$this->write_cache_tpl($this->data[$mask]['cache_file'], "<?php\n$code\n?>", filemtime($this->data[$mask]['file']));
}
eval($code);
unset($code);
}
else
{
;die("Tpl->load_file() :: Le fichier $this->data[$mask]['file'] n'existe pas.");
}

if ($type == ECHO_CODE)
{
echo $_result_tpl;
}
return ($_result_tpl);
}

/*
** Ecrit des données dans un fichier et modifie sa derniere date de
** modification vers la même date de modification que le fichier
** template.
** -----
** $file :: Fichier ou les données seront écrites.
** $code :: Données à écrire.
** $time :: Dernière date de modification du fichier.
*/
function write_cache_tpl($file, $code, $time)
{
$fd = @fopen($file, 'w+');
@flock($fd, LOCK_EX);
$result = @fwrite($fd, $code);
@flock($fd, LOCK_UN);
@fclose($fd);
@touch($file, $time);
@umask(0);
@chmod($file, 0666);
return ($result);
}
}

?>
 
Brasier
Avatar de Faer Onaur
  • Age : 27 ans
  • Messages : 830
  • Inscrit : 18 Septembre 2005
  Lien vers ce message 05 Janvier 2006, 10:08
Cherche cette ligne
;die("Tpl->load_file() :: Le fichier $this->data[$mask]['file'] n'existe pas.");

et enlève le premier point virgule

Pourquoi tu as toucher a ce fichier il n'y a rien a modifier dedans ?!?

PS: Sub cherche un peu mieux tu fais énormément d'erreur revérifie ton travail :=)


<a href="http://www.nintendo-europe.com/NOE/fr/FR/register/index.jsp?a=Faer Onaur&m=b" target="_blank"> <img src="http://www.nintendo-europe.com/NOE/fr/FR/images/ambassador/banner_1_full.gif" /></a><a href="http://www.nintendo-europe.com/NOE/fr/FR/register/index.jsp?m=l&a=Faer Onaur" target="_blank"> <img src="http://media.nintendo-europe.com/NOE/images/profile/mod_stars_catalogue.jpg" /></a>
 
Brasier
Avatar de subzeros
  • Age : 26 ans
  • Messages : 615
  • Inscrit : 13 Mai 2005
  Lien vers ce message 05 Janvier 2006, 12:14
j ai supprimer le premier point virgule mais toujours pareil :'(
 
Brasier
Avatar de Faer Onaur
  • Age : 27 ans
  • Messages : 830
  • Inscrit : 18 Septembre 2005
  Lien vers ce message 05 Janvier 2006, 14:14
Après avoir installer le mod MP de Genova tu as refait les modifs de ce Mod ???
As tu reverifié ton install à la virgule près.

Revérifie les tpl que tu as modifié ou post les


<a href="http://www.nintendo-europe.com/NOE/fr/FR/register/index.jsp?a=Faer Onaur&m=b" target="_blank"> <img src="http://www.nintendo-europe.com/NOE/fr/FR/images/ambassador/banner_1_full.gif" /></a><a href="http://www.nintendo-europe.com/NOE/fr/FR/register/index.jsp?m=l&a=Faer Onaur" target="_blank"> <img src="http://media.nintendo-europe.com/NOE/images/profile/mod_stars_catalogue.jpg" /></a>
 
Brasier
Avatar de subzeros
  • Age : 26 ans
  • Messages : 615
  • Inscrit : 13 Mai 2005
  Lien vers ce message 05 Janvier 2006, 14:59
LAISSER TOMBER CE NEST PAS GRAVE JE SUPPRIME LE FORUM MERCI A VOUS DE VOTRE AIDE ;)
 
Flammeche
Avatar de vincent_w
  • Messages : 47
  • Inscrit : 24 Juillet 2006
  Lien vers ce message 28 Aout 2006, 22:16
Bonjour alors voila je tenais a signaler qu'il y a un bug dans le mod enfin une petite erreur a corrigé dans un des fichier fourni.

car je viens de l'installer et j'ai du editer les fichier pour vérifié c'est comme sa quue je me suis rendu compte mais je n'ai installé que la partie MP donc possible que le meme bug soit rpesent dans la partie abus avérifié.

Dans le fichier New_mp.php

a corriger :

Ligne 32 et 33

[html]// Instance
$tpl = new Tpl("./themes/IceCold/", "./cache/cache_tpl/IceCold/");[/html]

si on a le theme par defaut sa marche pas de souci mais suffit de mettre un autre theme et boom marche pas il ne trouvera pas le fichier Tpl
 
Flammeche
Avatar de Tylpho
  • Age : 22 ans
  • Messages : 55
  • Inscrit : 13 Janvier 2006
  Lien vers ce message 17 Mai 2008, 11:32
Bonjour je viens d'installer se mod, mais voila j'ai un petit soucis. En effet la fenetre pop up apparait mais ne contient rien =/

http://img177.imageshack.us/img177/400/sanstitre1xp6.jpg

J'ai vérifié les 3 fichiers à modifier et il ne semble pas y avoir d'erreur. Je tiens à préciser que je n'utilise pas le theme icecold.
Merci d'avance aux personnes qui vont jettez un oeil. =)
 
Flammeche
Avatar de Tylpho
  • Age : 22 ans
  • Messages : 55
  • Inscrit : 13 Janvier 2006
  Lien vers ce message 18 Mai 2008, 14:19
Petit up =s
 
Equipe des MODS
Avatar de Met@lnono
  • Age : 26 ans
  • Messages : 1206
  • Inscrit : 17 Octobre 2005
  Lien vers ce message 18 Mai 2008, 14:23
Est ce que ça fonctionne avec un autre thème ?


 
Répondre


.