Hack : les commentaires s'effacent, le forum les remplace

Date : dimanche 18 avril 2004 @ 23:43:01 :: Sujet : Php, Mysql, ...

Salut à tous,
J'ai réalisé un hack qui permet d'utiliser le forum pour les commentaires. Ainsi plus besoin de reposter vos news dans le forum !
Pour en voir la démonstration allez à cette adresse [Spider-Man: The Webspinner] et regardez en bas des articles vous découvrirez mon forum...
Pour plus d'infos lisez la suite.


Alors comment cela fonctionne...
Opérations effectuées dans la base de données
Tout d'abord il faut ajouter le champs topicforum dans votre table topics apres le champs topictext. Inserez y les numéros d'id des forums correspondant au topic. La correspondance fonctionne. Puis ensuite ajoutez un champ idforum apres le champs comments. Vous avez ainsi fait toutes les transformations à faire dans la bdd.

Fichier à installer/ créér
J'ai créé le fichier viewcomments.php qui permet de configurer comment on veut afficher les posts. Il permet de dire que l'on veut afficher les 5 posts suivant le 1er [la copie de la news sur le forum afin que ceux qui n'est pas lu la news puisse savoir de quoi on parle]. Et surtout d'afficher les avatars nom etc des posteurs...
C'est en fait une modification du fichier viewtopic.php.
L'important est de récupérer les id du forum et du topic du forum. On se servira de $comments pour stocker l'id du topic. Méthode bourrin à la pomme, on remplace tous les $topic par des $comments et ça marche béton [la preuve sur mon site].
Fichiers à modifier
Il faut modifier le fichier /article.php afin qu'il insère le fichier viwcomments.php et non comments.php [qu'il ne faut pas pour autant supprimer, étant donné qu'il gère encore les commentaires du sondage].
Comme ça serait trop simple comme ça. Il faut aussi modifier le fichier Mainfile... ou du moins la fonction aff_news définie dans celui-ci afin d'afficher le bon nombre de réaction à la news [si vous changez pas ça va afficher l'id du topic ds le forum]. Pour cela il suffit de trafiquer un peu la fonction de récupération du nombre de réponse d'un post dans le forum [NPDS fournit déja tous les scripts y'a qu'à lire : d]

Comme il faut créer le topic lié à la news... il faut modif l'admin... j'avouerais que c'était... le plus dur... Tito a finalement trouvé ce qu'il fallait mettre [après près de 15 essais différents on a trouvé.. ouf]. Il faut donc faire une correspondance des choses à insérer dans la fonction PostStory du fichier admin/stories.php.
Voici le code à mettre.

       if ($type_pub=="pub_immediate") {
           $resultat = mysql_query("SELECT topicforum FROM topics WHERE topicid='$topic'"); // id forum
            $row = mysql_fetch_row($resultat);
            $topicforum = $row[0];

        $result = mysql_query("INSERT INTO forumtopics VALUES (NULL, '$subject', '$uid', now(), '1', '$topicforum', '0', '0')");
        
        $requete = "SELECT topic_id FROM forumtopics ORDER BY topic_id DESC LIMIT 0,1"; //
            $res = mysql_query($requete) or die (mysql_error()); //
            $ray = mysql_fetch_array($res); //
            $comments = $ray[0]; //
        
        $result = mysql_query("INSERT INTO posts VALUES (NULL, '0', '', '$comments', '$topicforum', '$uid', '".meta_lang($bodytext)."', now(), '', '', '1')");     
           $result = mysql_query("INSERT INTO stories VALUES (NULL, '$catid', '$aid', '$subject', now(), '".meta_lang($hometext)."', '".meta_lang($bodytext)."', '$comments', '$topicforum', '0', '$topic','$author', '".meta_lang($notes)."', '$ihome', '0', '$date_finval','$epur')");

       } else {

Ca se passe aux alentours de la ligne 509. J'ai récopié des bouts de code inutile pour que vous vous y retrouviez...
J'pense qu'on est bon là ... testez la chose... ça marche.

PS : pour ce qui trouve que mon site ressemble pas à NPDS j'ferais peut etre un petit post de toutes les modifs que j'ai réalisé mis à part celle-ci.

[axel] Du grand art, je trouve...





Cet article provient de NPDS

L'URL pour cet article est : http://www.npds.org/article.php?sid=878