[Partage] Like button forum< Sujet précédent  Sujet suivant >
Index du Forum -> DEVELOPPEMENT -> Patchs
AuteurMessage
France.gif KnucklesSkills
Newbie



Messages : 3
Inscrit(e) le: 08/08/2014
[Partage] Like button forum
<p>Bonjour,</p> <p>&nbsp;</p> <p>Je vous partage mon impl&eacute;mentation du like button pour les messages au sein du forum.</p> <p>Voici avant tout un aper&ccedil;ue graphique du r&eacute;sultat :</p> <p>&nbsp;</p> <p><img alt="" src="http://i.gyazo.com/28c0cf64a6900bf9c24e37fe097adfb8.png" style="height:350px;width:700px" /></p> <p>Le 1er&nbsp;post montre un message du forum &quot;lik&eacute;&quot; et le second un message non &quot;lik&eacute;&quot; de notre part.</p> <p>Afin de voir combien de personne ont &quot;lik&eacute;&quot; un message il suffit juste de passer la souris au dessus de l&#39;image.</p> <p>&nbsp;</p> <p>Voici la partie impl&eacute;mentation :</p> <p>&nbsp;</p> <p>Cr&eacute;ation de la table au sein de la base de donn&eacute;es.</p> <p>&nbsp;</p> <p>CREATE TABLE IF NOT EXISTS `nuked_forums_likes` (<br /> &nbsp; `id` int(Cool NOT NULL AUTO_INCREMENT,<br /> &nbsp; `id_message` int(Cool NOT NULL,<br /> &nbsp; `auteur_id` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,<br /> &nbsp; `id_sender` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,<br /> &nbsp; PRIMARY KEY (`id`)<br /> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;</p> <p>&nbsp;</p> <p>Ajout du code PHP au sein du fichier : &quot;viewtopic.php&quot;</p> <p>&nbsp;</p> <p>- 1 Ajout &agrave; la suite de la boucle While :</p> <p>&nbsp;</p> <p>while (list($mess_id, $title, $auteur, $auteur_id, $auteur_ip, $txt, $date, $edition, $usersig, $fichier) = mysql_fetch_row($sql4))<br /> &nbsp; &nbsp; {<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$like_key = mysql_num_rows(mysql_query(&quot;SELECT id FROM nuked_forums_likes WHERE id_sender = &#39;&quot;.$user[0].&quot;&#39; AND id_message = &quot;.$mess_id.&quot;&quotWink); //variable bool&eacute;enne servant &agrave; v&eacute;rifier si l&#39;utilisateur parcourant la message a d&eacute;j&agrave; vot&eacute; celui-ci<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$like_count = mysql_num_rows(mysql_query(&quot;SELECT id FROM nuked_forums_likes WHERE id_message = &quot;.$mess_id.&quot;&quotWink); //cette variable va comptabiliser le nombre de like du message<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$link_post = &quot;index.php?file=Forum&amp;amp;page=viewtopic&amp;amp;forum_id=&quot; . $_REQUEST[&#39;forum_id&#39;] . &quot;&amp;amp;thread_id=&quot; . $_REQUEST[&#39;thread_id&#39;] . &quot;&amp;amp;p=&quot; . $_REQUEST[&#39;p&#39;]; //cette variable est notre lien pour la variable action de notre form<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$like_html = &quot;<br><img title=""Nombre" style="height:38px" src=""/images/liked.png"/" />&quot;;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(!$like_key) {&nbsp;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$like_html = &quot;&lt;form &nbsp;method=&quot;post&quot; action=&quot;&quot;.$link_post.&quot;&quot;&gt;n&quot;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;.&quot;&lt;input type=&quot;hidden&quot; name=&quot;like&quot; value=&quot;1&quot; /&gt;n&quot;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;.&quot;&lt;input type=&quot;hidden&quot; name=&quot;like_msg&quot; value=&quot;&quot;.$mess_id.&quot;&quot; /&gt;&lt;input type=&quot;hidden&quot; name=&quot;like_auteur&quot; value=&quot;&quot;.$auteur_id.&quot;&quot; /&gt;&lt;input type=&quot;hidden&quot; name=&quot;like_sender&quot; value=&quot;&quot;.$user[0].&quot;&quot; /&gt;n&quot;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;.&quot;&lt;input title=&quot;Nombre de like : &quot;.$like_count.&quot;&quot; name=&quot;like_input&quot; type=&quot;image&quot; src=&quot;/images/like.png&quot; alt=&quot;Like !&quot; style=&quot;width:38px;height:38px;&quot; onmouseout=&quot;this.src=&#39;/images/like.png&#39;;&quot; onmouseover=&quot;this.src=&#39;/images/liked.png&#39;;&quot;/&gt;&quot;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;.&quot;&lt;/form&gt;&quot;;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;...</p> <p>&nbsp;</p> <p>- 2 Mise en place de la variable $like_html :</p> <p>&nbsp;</p> <p>//Vers la fin de cet echo rajouter le code suivante : &quot;&quot; . $like_html .&nbsp;<br /> echo &quot;</td><td style="">n&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; . &quot;<table cellpadding=""5" cellspacing=""1" border=""0">n&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; . &quot;<tr><td><a href=""index.php?file=Forum&amp;page=viewtopic&amp;forum_id=" title=""><img src=""images/posticon.gif" style="" alt=""" /></a>&quot; . _POSTEDON . &quot; &quot; . $date . &quot;&amp;nbsp;&amp;nbsp;&quot; . $attach_file . &quot;&quot; . $like_html . &quot;</td><td>&quot;;</p> <p>&nbsp;</p> <p>- 3 Ajout de l&#39;INSERT pour la comptabilisation des likes :</p> <p>&nbsp;</p> <p>echo &quot;<tr><td style="">&lt;b&gt;&quot; . _AUTHOR . &quot;&lt;/b&gt;</td><td style="">&lt;b&gt;&quot; . _MESSAGE . &quot;&lt;/b&gt;</td></tr>n&quot;;<br /> //A la suite de cet echo rajouter la ligne suivante :<br /> if(isset($_REQUEST[&#39;like&#39;])) $insert_like = mysql_query(&quot;INSERT INTO `nuked_forums_likes`(`id`, `id_message`, `auteur_id`, `id_sender`) VALUES (&#39;&#39;,&#39;&quot;.$_REQUEST[&#39;like_msg&#39;].&quot;&#39;,&#39;&quot;.$_REQUEST[&#39;like_auteur&#39;].&quot;&#39;,&#39;&quot;.$_REQUEST[&#39;like_sender&#39;].&quot;&#39Wink&quotWink;</p> <p>&nbsp;</p> <p>En fichier joint vous trouverez les deux images.</p> <p>&nbsp;</p> <p>Voila n&#39;h&eacute;sitez pas &agrave; me faire part de vos suggestions.</p> <p>A+</p>

Edité par KnucklesSkills le 08/08/2014 - 20:35:44
Posté le 08/08/2014 - 19:15:44  e9d94983e6.rar (10 Ko) Revenir en haut | Permalien
France.gif KnucklesSkills
Newbie



Messages : 3
Inscrit(e) le: 08/08/2014
RE : [Partage] Like button forum

Est-ce qu'un admin pourrait consulter le probleme de mise en page de ce post, car de mon coté le code source m'a l'air bon.

 

Test par stive


 

Bonjour,

 

Je vous partage mon implémentation du like button pour les messages au sein du forum.

Voici avant tout un aperçue graphique du résultat :

 

Le 1er post montre un message du forum "liké" et le second un message non "liké" de notre part.

Afin de voir combien de personne ont "liké" un message il suffit juste de passer la souris au dessus de l'image.

 

Voici la partie implémentation :

Création de la table au sein de la base de données.

 

CREATE TABLE IF NOT EXISTS `nuked_forums_likes` (
  `id` int( NOT NULL AUTO_INCREMENT,
  `id_message` int( NOT NULL,
  `auteur_id` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `id_sender` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

Ajout du code PHP au sein du fichier : "viewtopic.php"

 

- 1 Ajout à la suite de la boucle While :

while (list($mess_id, $title, $auteur, $auteur_id, $auteur_ip, $txt, $date, $edition, $usersig, $fichier) = mysql_fetch_row($sql4))
    {
		$like_key = mysql_num_rows(mysql_query("SELECT id FROM nuked_forums_likes WHERE id_sender = '".$user[0]."' AND id_message = ".$mess_id.""); //variable booléenne servant à vérifier si l'utilisateur parcourant la message a déjà voté celui-ci
		$like_count = mysql_num_rows(mysql_query("SELECT id FROM nuked_forums_likes WHERE id_message = ".$mess_id.""); //cette variable va comptabiliser le nombre de like du message
		$link_post = "index.php?file=Forum&page=viewtopic&forum_id=" . $_REQUEST['forum_id'] . "&thread_id=" . $_REQUEST['thread_id'] . "&p=" . $_REQUEST['p']; //cette variable est notre lien pour la variable action de notre form
		$like_html = "

 

- 2 Mise en place de la variable $like_html :

//Vers la fin de cet echo rajouter le code suivante : "" . $like_html . 
echo "n"
            . "n"
            . "n";
//A la suite de cet echo rajouter la ligne suivante :
if(isset($_REQUEST['like'])) $insert_like = mysql_query("INSERT INTO `nuked_forums_likes`(`id`, `id_message`, `auteur_id`, `id_sender`) VALUES ('','".$_REQUEST['like_msg']."','".$_REQUEST['like_auteur']."','".$_REQUEST['like_sender']."'Wink"Wink;

En fichier joint vous trouverez les deux images.

 

Voila n'hésitez pas à me faire part de vos suggestions.

A+

- 3 Ajout de l'INSERT pour la comptabilisation des likes :
echo "
<b>" . _AUTHOR . "</b> <b>" . _MESSAGE . "</b>


Edité par Stive le 08/08/2014 - 20:11:59
Posté le 08/08/2014 - 19:23:51   Revenir en haut | Permalien
France.gif GoRiLliAz
Member



Messages : 206
Inscrit(e) le: 09/03/2013
RE : [Partage] Like button forum

Salut ,

 

Ce Ckeditor qui fais encore des betise ! je vais le brulé moi !



Posté le 08/08/2014 - 19:36:41   Revenir en haut | Permalien
Belgium.gif Stive
Chef de projet

Messages : 1186
Inscrit(e) le: 13/06/2004
RE : [Partage] Like button forum

j'ai essayé mais l'editeur merde comme d'hab Sad

 

des choses on du disparaitre et d'autre c'est transformé en émoticones...



Website : https://bel-cms.dev ou https://github.com/BEL-CMS/BEL-CMS-V3

Website : https://palacewar.eu

Avant d'ouvrir un sujet, n'oubliez pas de lire le règlement et faire une recherche sur le forum !

Posté le 08/08/2014 - 20:13:08   Revenir en haut | Permalien
France.gif KnucklesSkills
Newbie



Messages : 3
Inscrit(e) le: 08/08/2014
RE : [Partage] Like button forum

Voici ma news sur un autre site : http://shrib.com/Af7m6Krq

A+



Edité par KnucklesSkills le 08/08/2014 - 20:39:02
Posté le 08/08/2014 - 20:38:38   Revenir en haut | Permalien