Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonsoir,
Voilà le mod Hide permettant de cacher un texte/lien tant que la personne ne répond pas au sujet.
Le problème c'est qu'il ne fonctionne plus correctement.
#
#---------[ 2. OPEN ]-----------------------------------------------------
#
include/parser.php
#
#---------[ 3. FIND ]-----------------------------------------------------
#
//
// Convert BBCodes to their HTML equivalent
//
function do_bbcode($text)
{
global $lang_common, $pun_user;
#
#---------[ 4. AFTER, ADD ]------------------------------------------------
#
// MOD HIDE TAG begin
require PUN_ROOT.'lang/'.$pun_user['language'].'/topic.php';
// MOD HIDE TAG end
#
#---------[ 5. FIND ]-----------------------------------------------------
#
$pattern = array('#\[b\](.*?)\[/b\]#s',
#
#---------[ 6. BEFORE, ADD ]-----------------------------------------------
#
// MOD HIDE TAG begin
if (strpos($text, 'hide') !== false && strpos($text, '/hide') !== false)
{
if ($pun_user['is_guest'])
{
$text = preg_replace("#\[hide\](.+?)\[/hide\]#is", '<b>['.$lang_topic['Hidden text guest'].']</b>', $text);
$text = preg_replace("#\[hide\=\"(.+?)\"\](.+?)\[/hide\]#is", '<b>['.$lang_topic['Hidden text guest'].']</b>', $text);
}
else if(($pun_user['g_id'] == PUN_MOD) || ($pun_user['g_id'] == PUN_ADMIN))
{
$text = preg_replace("#\[hide\=(.+?)\](.+?)\[/hide\]#is", '[hide]$2[/hide]', $text);
$text = str_replace('[hide]', '<blockquote>'.$lang_topic['Hidden text'].':<br><i>', $text);
$text = preg_replace('#\[\/hide\]\s*#', '</i></blockquote>', $text);
}
else
{
$occurances = preg_match_all("#\[hide\=.+?\](.+?)\[/hide\]#is", $text, $temp);
for($i=0;$i<=$occurances;$i++)
{
preg_match("#\[hide\=(.+?)\].+?\[/hide\]#i", $text,$user_post);
$text = preg_replace("#\[hide\=(.+?)\](.+?)\[/hide\]#i", '[hide]$2[/hide]', $text,1);
if (strcmp($user_post[1],$pun_user['username']) == 0 ){
$text = str_replace('[hide]', '<blockquote>'.$lang_topic['Hidden text'].':<br><i>', $text);
$text = preg_replace('#\[\/hide\]\s*#', '</i></blockquote>', $text,1);
}
}
$text = preg_replace("#\[hide\](.+?)\[/hide\]#i", '<b>['.$lang_topic['Hidden text'].']</b>', $text,1);
}
}
// MOD HIDE TAG end
#
#---------[ 7. OPEN ]-----------------------------------------------------
#
post.php
#
#---------[ 8. FIND ]-----------------------------------------------------
#
$q_message = str_replace('[img]', '[url]', $q_message);
$q_message = str_replace('[/img]', '[/url]', $q_message);
#
#---------[ 9. ADD, AFTER ]------------------------------------------------
#
// MOD HIDE TAG begin
$q_message = preg_replace("#\[hide](.+?)\[/hide\]#is", '[b][[i]'.$lang_topic['Hidden text'].'.[/i]][/b]', $q_message);
$q_message = preg_replace("#\[hide\=.+?].+?\[/hide\]#is", '[b][[i]'.$lang_topic['Hidden text'].'.[/i]][/b]', $q_message);
// MOD HIDE TAG end
#
#---------[ 10. OPEN ]----------------------------------------------------
#
viewtopic.php
#
#---------[ 11. FIND ]----------------------------------------------------
#
LIMIT '.$start_from.','.$pun_user['disp_posts'], true
#
#---------[ 12. REPLACE WITH ]-----------------------------------------------
#
LIMIT '.$start_from.','.$pun_user['disp_posts']
#
#---------[ 13. FIND ]----------------------------------------------------
#
$cur_post['message'] = parse_message($cur_post['message'], $cur_post['hide_smilies']);
#
#---------[ 14. BEFORE, ADD ]-----------------------------------------------
#
// MOD HIDE TAG begin
$result_num_post = $db->query('SELECT count(message) as num_message FROM '.$db->prefix.'posts WHERE poster_id='.$pun_user['id'].' AND topic_id='.$id, true) or error('Cannot found the amount of message of the user', __FILE__, __LINE__, $db->error());
$num_post_user_in_topic = $db->fetch_assoc($result_num_post);
$pun_user['num_post_in_topic'] = $num_post_user_in_topic['num_message'];
// MOD HIDE TAG end
#
#---------[ 15. OPEN ]----------------------------------------------------
#
lang/LANGUAGE/topic.php
#
#---------[ 16. FIND ]----------------------------------------------------
#
'Quick post' => 'Quick post',
#
#---------[ 17. AFTER, ADD ]-----------------------------------------------
#
// MOD HIDE TAG begin
'Hidden text guest' => 'You must login to view hidden text\link.',
'Hidden text' => 'Hidden Text\Link',
'Hidden text num_post' => 'You need to reply to this post to see the hidden text\link.',
#
#---------[ 18. OPEN ]---------------------------------------------------
#
search.php
#
#---------[ 19. FIND ]----------------------------------------------------
#
$message = str_replace("\n", '<br />', pun_htmlspecialchars($search_set[$i]['message']));
#
#---------[ 20. BEFORE, ADD ]-----------------------------------------------
#
// MOD HIDE TAG begin
require PUN_ROOT.'lang/'.$pun_user['language'].'/topic.php';
$search_set[$i]['message'] = preg_replace('#\[hide\](.*?)\[/hide\]#s',$lang_topic['Hidden text'],$search_set[$i]['message']);
$search_set[$i]['message'] = preg_replace('#\[hide\](.*?)$#s',$lang_topic['Hidden text'],$search_set[$i]['message']);
// MOD HIDE TAG end
#
#---------[ 21. SAVE/UPLOAD ]---------------------------------------------------
#Vous pouvez le retrouver ici : http://www.punres.org/viewtopic.php?pid=19459#p19459
Le problème est que, même si vous répondez au sujet, le texte/lien ne s'affiche pas. Il s'affiche uniquement si on "quote" le message ayant les balises [hide].
Si une âme charitable pouvait le rendre opérationnel, cela serait sympathique vu que c'est un des mods les plus recherchés.
Dernière modification par Dk (30-09-2009 20:30:06)
Hors ligne
Je doute que ce soit l'une des mods les plus recherchées, à part pour le warez peut-être...
Quand tu dis qu'il ne fonctionne plus correctement, c'est qu'il marchait bien avant et que ce n'est plus le cas depuis que tu modifié certains fichiers ?
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Bonjour,
J'utilise cette mod, sauf pour les x billets, j'avais remarqué une erreur dans le script ou du moins une incompatibilité.
Sur mon forum, il faut être membre d'un groupe pour pouvoir voir certains messages, j'ai modifié dans le fichier parser.php :
if ($pun_user['is_guest'])
{
$text = preg_replace("#\[hide\](.+?)\[/hide\]#is", '<b>['.$lang_topic['Hidden text guest'].']</b>', $text);
$text = preg_replace("#\[hide\=\"(.+?)\"\](.+?)\[/hide\]#is", '<b>['.$lang_topic['Hidden text guest'].']</b>', $text);
}Par :
if ($pun_user['g_id'] == PUN_ADMIN || $pun_user['g_id'] == ID_GROUPE)
{
$text = TES_VARIABLES_ETC;
}Ensuite si c'est un visiteur, j'ai modifié :
else if(($pun_user['g_id'] == PUN_MOD) || ($pun_user['g_id'] == PUN_ADMIN))
{
$text = preg_replace("#\[hide\=(.+?)\](.+?)\[/hide\]#is", '[hide]$2[/hide]', $text);
$text = str_replace('[hide]', '<blockquote>'.$lang_topic['Hidden text'].':<br><i>', $text);
$text = preg_replace('#\[\/hide\]\s*#', '</i></blockquote>', $text);
}
else
{
$occurances = preg_match_all("#\[hide\=.+?\](.+?)\[/hide\]#is", $text, $temp);
for($i=0;$i<=$occurances;$i++)
{
preg_match("#\[hide\=(.+?)\].+?\[/hide\]#i", $text,$user_post);
$text = preg_replace("#\[hide\=(.+?)\](.+?)\[/hide\]#i", '[hide]$2[/hide]', $text,1);
if (strcmp($user_post[1],$pun_user['username']) == 0 ){
$text = str_replace('[hide]', '<blockquote>'.$lang_topic['Hidden text'].':<br><i>', $text);
$text = preg_replace('#\[\/hide\]\s*#', '</i></blockquote>', $text,1);
}
}
$text = preg_replace("#\[hide\](.+?)\[/hide\]#i", '<b>['.$lang_topic['Hidden text'].']</b>', $text,1);
}
}Par :
else
{
$text = TES_VARIABLES_ETC;
}
}C'est donc une version simplifiée mais qui fonctionne pour ma part, bon courage.
Hors ligne
Pages : 1