Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 09-05-2006 19:30:38

nico_somb
Membre

Sous-Forum VF 1.1

Auteur : Nicolas Loeuillet (nico_somb)

Cette modification vous permet d'ajouter des sous catégories.
Elle affecte la base de données, et modifie la liste des fichiers suivants :
- admin_forums.php
- index.php
- viewforum.php
- viewtopic.php
- include/cache.php
- include/functions.php

Une fois cette modification installée, il vous suffira d'éditer un forum pour lui dire quel est son forum parent.

/!\ Attention /!\ cette modification est totalement incompatible avec la modification Mark topics as read (http://www.punres.org/desc.php?pid=46).

Vous pouvez voir un aperçu de cette modification sur ce site de test : http://www.nicosomb.info/punbb/

Modifications apportées par rapport à la 1.0 :

- bugs corrigés sur le fichier viewforum.php
- si vous souhaitez poster dans un forum parent, il y a des morceaux de code à ne pas mettre : tout est écrit dans le lisez-moi.txt wink !

Télécharger

Hors ligne

#2 10-05-2006 09:23:23

nico_somb
Membre

Re : Sous-Forum VF 1.1

Pour le code modifié, y'a que ça :

fichier viewforum.php, ligne 83, chercher [c]last_post, last_poster,[/c] et ajouter [c]last_post_id,[/c]


Pour ton problème, peux-tu nous donner l'adresse de ton site? Car par exemple, sur mon site de test (http://nloeuillet.free.fr/punbb/index.php), je viens d'essayer, et tout fonctionne bien.

Hors ligne

#3 10-05-2006 10:02:39

nico_somb
Membre

Re : Sous-Forum VF 1.1

en effet, ça ne se met pas à jour... (j'ai posté là : http://forum.paubc.info/viewtopic.php?pid=11504#p11504 tu peux supprimer)

à mon avis, y'a incompatibilité avec une autre mod... ou alors tu aurais modifié la fonction update_forum() du fichier include/functions.php... je ne vois pas comme ça.

Hors ligne

#4 10-05-2006 13:17:21

nico_somb
Membre

Re : Sous-Forum VF 1.1

aaaah c'est cool alors wink !

Hors ligne

#5 10-05-2006 15:48:20

nico_somb
Membre

Re : Sous-Forum VF 1.1

Le forum de test a changé. Voici la nouvelle adresse :

http://www.nicosomb.info/punbb/

Celui-ci sera plus rapide que l'ancien, hébergé sur les supers serveurs de Free.fr ...

Ce site sera d'ailleurs mon site de test pour divers hacks et mes prochaines mods (s'il y en a tongue )

Hors ligne

#6 17-05-2006 23:01:30

rnbstyle
Membre

Re : Sous-Forum VF 1.1

Hello, j'ai telecharger le mod dans le but de récupéré le bout de code qui permet d'afficher l'icone de nouveau post sur l'index, lorsque un message est posté dans un sous forum ... j'ai du mal a metre la main dessu...

Est ce que quelqun aurait la gentillesse de me dire que morceau de code je doit utiliser pour réglé mon probleme svp ?

Hors ligne

#7 18-05-2006 10:45:05

nico_somb
Membre

Re : Sous-Forum VF 1.1

il faut utiliser tout le code pour que ça fonctionne. Réinstalle bien la Mod!!

Hors ligne

#8 18-05-2006 10:47:09

rnbstyle
Membre

Re : Sous-Forum VF 1.1

Arg, c'est ce qe je voulai évité, de metre tout le mod...
Tampich, merci de ta reponse en tout cas smile

Hors ligne

#9 21-05-2006 15:54:52

neofutur
Membre

Re : Sous-Forum VF 1.1

dis, j'aurai bien besoin d'un diff du genre

( tiens le lien passe pas dans la quote ci dessus je le remets dessous) :
http://www.punbb.org/download/hdiff/hdi … .2.12.html

pour faire la migration, j'ai integre ta v1 dans MyBestBB ( regroupement de plein de mods, plugins et themes )

aurai tu par hasard les outils pour faire ce genre de diff ?

( si tu veux tu peux aussi m'aider a integrer la nouvelle version, je cherche des contributeurs pour http://mybestbb.ww7.be/t6-c%27est-quoi-MyBestBB.html )

Dernière modification par neofutur (21-05-2006 15:57:50)

Hors ligne

#10 21-05-2006 22:48:02

nico_somb
Membre

Re : Sous-Forum VF 1.1

bonsoir!

je ne sais pas comment faire un hdiff tout simplement. quelqu'un peut il me le dire?

Hors ligne

#11 21-05-2006 22:51:46

vin100
Membre

Re : Sous-Forum VF 1.1

avec cvs et/ou subversion ; si t'es motivé à lire de l'anglais ...

Hors ligne

#12 21-05-2006 22:58:35

MT
Admin rasé

Re : Sous-Forum VF 1.1

Ou alors, l'utilisateur motivé peut utiliser un éditeur de texte capable de faire les comparaisons entre les fichiers...


(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

#13 21-05-2006 23:02:45

vin100
Membre

Re : Sous-Forum VF 1.1

oui il y a bien winmerge qui est très efficace mais j'ai jamais vu de fonction capable de générer un hdif, mais c'est p'tete possible en fouinant

Hors ligne

#14 21-05-2006 23:04:55

nico_somb
Membre

Re : Sous-Forum VF 1.1

ok, merci pour vos réponses wink !

Hors ligne

#15 21-05-2006 23:08:04

Pandark
Guide

Re : Sous-Forum VF 1.1

@vin100
Bah si, dans winmerge, c'est outil>générer des retouches (ou quelque chose comme ça..) mais ce n'est pas très lisible ^^


=>  Plugins | Modifications | Liens utiles   <=
                .._ -Pandark- _..
                Serial Dreamer

Hors ligne

#16 26-05-2006 17:12:18

neofutur
Membre

Re : Sous-Forum VF 1.1

c'est bon j'ai pu ajouter les corrections de la nouvelle version dans le viewforum de MyBestBB, en fait ct pas si sorcier, meme sans le hdiff wink

Hors ligne

#17 26-05-2006 17:13:48

neofutur
Membre

Re : Sous-Forum VF 1.1

cette histoire de hdiff me fait penser que ca serait sympa si punbb.fr pouvait fournir une cvs ou svn ( subversion ) + l'interface web qui va bien pour les diff , pour les developpements de mods/plugins.

Hors ligne

#18 26-05-2006 17:18:46

vin100
Membre

Re : Sous-Forum VF 1.1

euh oui ... tu nous fourni le serveur et tu nous l'install ? wink

Hors ligne

#19 26-05-2006 17:49:52

neofutur
Membre

Re : Sous-Forum VF 1.1

euh c'est envisageable, faut que j'en cause a mes collègues du projet NeoSkills ( http://neoskills.com )

Hors ligne

#20 29-05-2006 07:30:18

vin100
Membre

Re : Sous-Forum VF 1.1

Parse error ? c'est toi qui as fait une erreur en modifiant

Hors ligne

#21 29-05-2006 08:09:08

nico_somb
Membre

Re : Sous-Forum VF 1.1

sur ton forum je ne vois pas d'erreur...  Cette mod tourne sur 1.2.12, puisque ça tourne chez moi : http://www.somb.org

Si jamais tu trouves pas, j'te balance le fichier functions.php

Hors ligne

#22 29-05-2006 10:11:12

nico_somb
Membre

Re : Sous-Forum VF 1.1

Remplace juste la fonction UPDATE_FORUM par celle ci :

function update_forum($forum_id)
{
    global $db;
    
    $num_posts_fils = 0;
    $num_topics_fils = 0;
    $last_post_fils = $last_post_id_fils = $last_poster_fils = 0;
    $post_fils = $post_id_fils = $poster_fils = 0;
    $total_posts_fils = $total_topics_fils = 0;
    # MAJ du forum courant
    $result = $db->query('SELECT COUNT(id), SUM(num_replies) FROM '.$db->prefix.'topics WHERE moved_to IS NULL AND forum_id='.$forum_id) or error('Impossible de retrouver le total de discussions du forum', __FILE__, __LINE__, $db->error());
    list($num_topics, $num_posts) = $db->fetch_row($result);

    $num_posts = $num_posts + $num_topics;
    $sql = 'SELECT SUM(num_topics), SUM(num_posts), id FROM '.$db->prefix.'forums WHERE parent_forum_id = '.$forum_id.' GROUP BY id';
    $result = $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
    # on compte le nombre de posts des fils
    if ($db->num_rows($result))
    {
        while($line = $db->fetch_row($result))
        {
            $num_posts = $num_posts + $line[1];
            $num_topics = $num_topics + $line[0];
            $sql = 'SELECT last_post, last_post_id, last_poster FROM '.$db->prefix.'topics WHERE forum_id='.$line[2].' AND moved_to IS NULL ORDER BY last_post DESC LIMIT 1';
            $result2 = $db->query($sql) or error('Impossible de retrouver last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
            list($post_fils, $post_id_fils, $poster_fils) = $db->fetch_row($result2);
            if($post_fils > $last_post_fils)
            {
                $last_post_fils = $post_fils;
                $last_post_id_fils = $post_id_fils;
                $last_poster_fils = $poster_fils;
            }
        }
    }

    $result = $db->query('SELECT last_post, last_post_id, last_poster FROM '.$db->prefix.'topics WHERE forum_id='.$forum_id.' AND moved_to IS NULL ORDER BY last_post DESC LIMIT 1') or error('Impossible de retrouver last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
    if ($db->num_rows($result) > 0)
    {
        # le forum courant n'est pas vide
        list($last_post, $last_post_id, $last_poster) = $db->fetch_row($result);
        if($last_post_fils != 0)
        {
            if($last_post_fils > $last_post)
            {
                $last_post = $last_post_fils;
                $last_post_id = $last_post_id_fils;
                $last_poster =  $last_poster_fils;
            }
        }
        $sql = 'UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics.', num_posts='.$num_posts.', last_post='.$last_post.', last_post_id='.$last_post_id.', last_poster=\''.$db->escape($last_poster).'\' WHERE id='.$forum_id;
        $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster 1', __FILE__, __LINE__, $db->error());
    }
    else
    {
        # le forum courant est vide
        if($num_topics == 0 && $num_posts == 0)
        {
            # les fils du forum courant sont vides
            $sql = 'UPDATE '.$db->prefix.'forums SET num_topics=0, num_posts=0, last_post=NULL, last_post_id=NULL, last_poster=NULL WHERE id='.$forum_id;
            $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster 2', __FILE__, __LINE__, $db->error());
        }
        else
        {
            # les fils du forum courant ne sont pas vides
            $sql = 'UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics.', num_posts='.$num_posts.', last_post='.$last_post_fils.', last_post_id='.$last_post_id_fils.', last_poster=\''.$db->escape($last_poster_fils).'\' WHERE id='.$forum_id;
            $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster 2', __FILE__, __LINE__, $db->error());
        }
    }

    $last_post_fils = $last_post_id_fils = $last_poster_fils = 0;
    $post_fils = $post_id_fils = $poster_fils = 0;

    # MAJ du forum père (s'il y en a)

    $result = $db->query('SELECT parent_forum_id FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Impossible de retrouver les informations du forum', __FILE__, __LINE__, $db->error());
    $line = $db->fetch_assoc($result);
    $id_papa = $line['parent_forum_id'];
    if($id_papa != 0)
    {
        $result = $db->query('SELECT COUNT(id), SUM(num_replies) FROM '.$db->prefix.'topics WHERE moved_to IS NULL AND forum_id='.$id_papa ) or error('Impossible de retrouver le total de discussions du forum', __FILE__, __LINE__, $db->error());
        list($num_topics_papa, $num_posts_papa) = $db->fetch_row($result);
    
        # MAJ du nb de posts/topics
        $result = $db->query('SELECT last_post, last_post_id, last_poster FROM '.$db->prefix.'topics WHERE forum_id='.$id_papa.' AND moved_to IS NULL ORDER BY last_post DESC LIMIT 1') or error('Impossible de retrouver last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
        list($last_post_papa, $last_post_id_papa, $last_poster_papa) = $db->fetch_row($result);
        $num_posts_papa = $num_posts_papa + $num_posts + $num_topics_papa;
        $num_topics_papa = $num_topics_papa + $num_topics;
        $sql = 'SELECT SUM(num_topics), SUM(num_posts), id FROM '.$db->prefix.'forums WHERE parent_forum_id = '.$id_papa.' AND id <> '.$forum_id.' GROUP BY id';
        $result = $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
        # on compte le nombre de posts des fils de ce père
        if ($db->num_rows($result))
        {
            while(list($num_topics_fils, $num_posts_fils, $id_fils) = $db->fetch_row($result))
            {
                $num_posts_papa = $num_posts_papa + $num_posts_fils;
                $num_topics_papa = $num_topics_papa + $num_topics_fils;
                $result = $db->query('SELECT last_post, last_post_id, last_poster FROM '.$db->prefix.'topics WHERE forum_id='.$id_fils.' AND moved_to IS NULL ORDER BY last_post DESC LIMIT 1') or error('Impossible de retrouver last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
                list($post_fils, $post_id_fils, $poster_fils) = $db->fetch_row($result);
                if($post_fils > $last_post)
                {
                    $last_post = $post_fils;
                    $last_post_id = $post_id_fils;
                    $last_poster = $poster_fils;
                }
            }
        }
        # Requête MAJ du nb de posts/topics
        $sql = 'UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics_papa.', num_posts='.$num_posts_papa.' WHERE id='.$id_papa;
        $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster 3', __FILE__, __LINE__, $db->error());

        $result = $db->query('SELECT last_post, last_post_id, last_poster FROM '.$db->prefix.'topics WHERE forum_id='.$forum_id.' AND moved_to IS NULL ORDER BY last_post DESC LIMIT 1') or error('Impossible de retrouver last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());
        if ($db->num_rows($result))
        {
            list($last_post, $last_post_id, $last_poster) = $db->fetch_row($result);
        }
        if($last_post_papa > $last_post)
        {
            $last_post = $last_post_papa;
            $last_post_id = $last_post_id_papa;
            $last_poster =  $last_poster_papa;
        }
        
        #MAJ de la date
        if($last_post != '')
            $sql = 'UPDATE '.$db->prefix.'forums SET last_post='.$last_post.', last_post_id='.$last_post_id.', last_poster=\''.$db->escape($last_poster).'\' WHERE id='.$id_papa;
        else
            $sql = 'UPDATE '.$db->prefix.'forums SET num_topics=0, num_posts=0, last_post=NULL, last_post_id=NULL, last_poster=NULL WHERE id='.$id_papa;
        $db->query($sql) or error($sql.'<br />Impossible de mettre à jour last_post/last_post_id/last_poster 4', __FILE__, __LINE__, $db->error());
    }

}

Là, ça devrait être correct!

Hors ligne

#23 29-05-2006 12:23:30

LeChapitre
Membre

Re : Sous-Forum VF 1.1

Pare-feux, ou ton anti-virus qui bloque ou quelque chose dans le genre....

Tape sur ce forum dans recherche  http_referer pas mal de sujet concernant celui ci ZeFrog

Dernière modification par LeChapitre (29-05-2006 12:24:20)

Hors ligne

#24 29-05-2006 20:20:59

nico_somb
Membre

Re : Sous-Forum VF 1.1

merci pour ton message, ça fait plaisir wink !

Hors ligne

#25 29-05-2006 22:39:51

nico_somb
Membre

Re : Sous-Forum VF 1.1

La version GB est sortie sur punres.org smile !

l'adresse du site est : http://www.nicosomb.info/punbb

Hors ligne

Pied de page des forums