Hack Like Dislike pour BulletShare Board




Voici un Hack pour BulletShare Board pour avoir j'aimes ou j'aimes pas en bas de chaque post

Installation

Téléchargez l'archives et envoyer via votre FTP!

Allez dans phpmyadmin et executer ce code
CREATE TABLE IF NOT EXISTS `dle_forum_rating_info` (
  `user_id` int(11) NOT NULL,
  `post_id` int(11) NOT NULL,
  `rating_action` varchar(30) NOT NULL,
  UNIQUE KEY `UC_dle_forum_rating_info` (`user_id`,`post_id`)
) ENGINE=InnoDB;


Ouvrez engine/forum/sources/showposts.php et cherchez

// ********************************************************************************
// POST TEXT
// ********************************************************************************


Ajoutez au dessus
// ********************************************************************************
// Like Dislike
// ********************************************************************************

	$result = $db->query( "SELECT * FROM " . PREFIX . "_forum_posts WHERE pid = {$row['pid']}" );

	// fetch all posts from database
	// return them as an associative array called $posts
		while($post = $db->get_row($result)){	
			
			$like_dislike = "<div class=\"post-info\">{$f_lang['likes']}
					<i";
					  if(userLiked($post['pid'])){
						  $like_dislike .= " class=\"fa fa-thumbs-up \" id=\"like-btn\"";
					  }else{
						  $like_dislike .= " class=\"fa fa-thumbs-o-up \" id=\"like-btn\"";
					  }
					  $like_dislike .= " data-id=\"{$post['pid']}\"></i>

					<span class=\"likes\">".getLikes($post['pid'])."</span>

					&nbsp;&nbsp;&nbsp;&nbsp;{$f_lang['dislikes']}
					<i"; 
					  if (userDisliked($post['pid'])){
						  $like_dislike .= " class=\"fa fa-thumbs-down\" id=\"dislike-btn\"";
					  }else{
						  $like_dislike .= " class=\"fa fa-thumbs-o-down\" id=\"dislike-btn\"";
					  }
		$like_dislike .= " data-id=\"{$post['pid']}\"></i>";

					$like_dislike .= " <span class=\"dislikes\">".getDislikes($post['pid'])."</span>
				</div>";
		}
		
		$tpl->set('{rating}',$like_dislike);


Ouvrez engine/forum/sources/components/functions.php ajoutez tout en bas avant ?>
// ********************************************************************************
// Like Dislike
// ********************************************************************************
	function getLikes($id)
	{
		global $db;
		
		$rs = $db->query("SELECT COUNT(*) FROM " . PREFIX . "_forum_rating_info WHERE post_id = {$id} AND rating_action='like'");
		$result = $db->get_array($rs);
		
		return $result[0];
	}


	function getDislikes($id)
	{
		global $db;

		$rs = $db->query("SELECT COUNT(*) FROM " . PREFIX . "_forum_rating_info WHERE post_id = {$id} AND rating_action='dislike'");
		$result = $db->get_array($rs);
		
		return $result[0];
	}

	function getRating($id)
	{
		global $db;
		
		$rating = array();

		$likes_rs = $db->query("SELECT COUNT(*) FROM " . PREFIX . "_forum_rating_info WHERE post_id = {$id} AND rating_action='like'");
		$dislikes_rs = $db->query("SELECT COUNT(*) FROM " . PREFIX . "_forum_rating_info WHERE post_id = {$id} AND rating_action='dislike'");

		$likes = $db->get_row($likes_rs);
		$dislikes = $db->get_row($dislikes_rs);

		$rating = [
			'likes' => $likes[0],
			'dislikes' => $dislikes[0]
		];

		return json_encode($rating);
	}



	function userLiked($post_id)
	{
		global $db, $member_id;

	$result = $db->query("SELECT * FROM " . PREFIX . "_forum_rating_info WHERE user_id={$member_id['user_id']} AND post_id={$post_id} AND rating_action='like'");


		if ($db->num_rows($result) > 0) {
			return true;
		}else{
			return false;
		}
	}

	function userDisliked($post_id)
	{
		global $db, $member_id;

		$result = $db->query("SELECT * FROM " . PREFIX . "_forum_rating_info WHERE user_id={$member_id['user_id']} AND post_id={$post_id} AND rating_action='dislike'");


		if ($db->num_rows($result) > 0) {
			return true;
		}else{
			return false;
		}
	}


Ouvrez engine/forum/languages/French/forum.lng trouvez
$f_lang = array(


Ajoutez en dessous
'likes'	    =>	"J'aimes",
'dislikes'	    =>	"J'aimes pas",


Ouvrez engine/forum/languages/English/forum.lng trouvez
$f_lang = array(


Ajoutez en dessous
'likes' => "I like",
'dislikes' => "I don't like",


Ouvrez engine/forum/languages/Polski/forum.lng trouvez
$f_lang = array(


Ajoutez en dessous
'likes' => "Lubię",
'dislikes' => "Nie lubię",


Ouvrez engine/forum/ajax/js/bulletshare.js ajoutez tout en bas
// ********************************************************************************
// Like Dislike
// ********************************************************************************
	$(document).ready(function(){
		// if the user clicks on the like button ...
		$('#like-btn').on('click', function(){
			var post_id = $(this).data('id');
			$clicked_btn = $(this);

			if ($clicked_btn.hasClass('fa-thumbs-o-up')) {
				action = 'like';
			} else if($clicked_btn.hasClass('fa-thumbs-up')){
				action = 'unlike';
			}


			$.ajax({
				url: forum_ajax + 'like.php',
				type: 'post',
				data: {
					'action': action,
					'post_id': post_id
				},
				success: function(data){
					res = JSON.parse(data);

					if (action == "like") {
						$clicked_btn.removeClass('fa-thumbs-o-up');
						$clicked_btn.addClass('fa-thumbs-up');
					} else if(action == "unlike") {
						$clicked_btn.removeClass('fa-thumbs-up');
						$clicked_btn.addClass('fa-thumbs-o-up');
					}

					$clicked_btn.siblings('span.likes').text(res.likes);
					$clicked_btn.siblings('span.dislikes').text(res.dislikes);

					$clicked_btn.siblings('i.fa-thumbs-down').removeClass('fa-thumbs-down').addClass('fa-thumbs-o-down');
				}
			});		

		});

		// if the user clicks on the dislike button ...
		$('#dislike-btn').on('click', function(){
			var post_id = $(this).data('id');
			$clicked_btn = $(this);

			if ($clicked_btn.hasClass('fa-thumbs-o-down')) {
				action = 'dislike';
			} else if($clicked_btn.hasClass('fa-thumbs-down')){
				action = 'undislike';
			}
			
			$.ajax({
				url: forum_ajax + 'like.php',
				type: 'post',
				data: {
					'action': action,
					'post_id': post_id
				},
				success: function(data){
					res = JSON.parse(data);

					if (action == "dislike") {
						$clicked_btn.removeClass('fa-thumbs-o-down');
						$clicked_btn.addClass('fa-thumbs-down');
					} else if(action == "undislike") {
						$clicked_btn.removeClass('fa-thumbs-down');
						$clicked_btn.addClass('fa-thumbs-o-down');
					}

					$clicked_btn.siblings('span.likes').text(res.likes);
					$clicked_btn.siblings('span.dislikes').text(res.dislikes);

					$clicked_btn.siblings('i.fa-thumbs-up').removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
				}
			});	

		});



	});


Ouvrez templates/VOTRE8THEME/forum/css/bulletshare.css et ajoutez tout en bas
/* --------------------------------------------------

 Classes like dislike...

-------------------------------------------------- */
		.post-info {
			margin: 10px auto 0px;
			padding: 5px;
		}
		.fa {
			font-size: 1.2em;
		}
		.fa-thumbs-down, .fa-thumbs-o-down {
			transform:rotateY(180deg);
			color: red;
		}
		.fa-thumbs-up, .fa-thumbs-o-up {
			transform:rotateY(180deg);
			color: green;
		}
		.likes{font-size: 11px;font-weight: bold;}
		.dislikes{font-size: 11px;font-weight: bold;}


Ouvrez templates/VOTRE_THEME/forum/post.tpl et cherchez
<td class="postdetails" rowspan="2">


remplacer par
<td class="postdetails" rowspan="3">


toujours le même fichier cherchez
   <tr>
    <td style="border-top:none;height:15%;"><div id="thx-layer" style="text-align: justify;">{thank_user}</div></td>
   </tr>


ajoutez en dessous
   <tr>
    <td style="border-top:none;height:15%;">{rating}</td>
   </tr>


Vous pouvez voir une démo sur notre forum https://www.templatedlefr.fr/forum/


Informations

Les visiteurs du groupe Invités ne peuvent pas télécharger de fichiers sur le site.
Connectez-vous au site avec votre identifiant et mot de passe ou si vous êtes un nouvel utilisateur suivez le processus d'inscription sur le site.


N'importe qui peut critiquer.
Créer quelque chose qui sera critiqué n'est pas donné à tout le monde.


Soutenez l'auteur
Tous les fonds collectés seront reversés à l'auteur de cet article - DarkLane
Merci d'avance!
Qui est en ligne
1 Visiteur(s)  sur le site!
Robot(s) 1
Populaires
    DLE Collections Nulled Dle  13.0 - 17.1
  • DLE Collections Nulled Dle 13.0 - 17.1
  • Le module de LazyDev organise un système de collections d'actualités sur divers sujets, dont vous pouvez optimiser les pages pour les moteurs
    DLE 17.1 Build 101 (Nulled FR)
  • DLE 17.1 Build 101 (Nulled FR)
  • Nous vous présentons une nouvelle version de notre script DataLife Engine v.17.1. Dans cette version, vous pourrez créer des plans de site améliorés
    TimAnn Dle 16.x-17.x
  • TimAnn Dle 16.x-17.x
  • «Le modèle est un chef-d'œuvre de conception et de fonctionnalité, développé en tenant compte de toutes les normes modernes de beauté et de
    Very Dle 17.x
  • Very Dle 17.x
  • Nous vous présentons un modèle de film adaptatif de haute qualité et magnifique Very pour DLE 17.0, 17.1. Solution unique pour votre blog de cinéma,
    Very Dle 15.x-16.x
  • Very Dle 15.x-16.x
  • Nous vous présentons un modèle de film adaptatif de haute qualité et magnifique Very pour DLE 15.x, 16.x. Solution unique pour votre blog de cinéma,
    Newsletter pour Datalife Engine 2.0
  • Newsletter pour Datalife Engine 2.0
  • Avec ce module pour DLE 15.x 17.x, vous pouvez facilement gérer et envoyer des abonnements à vos abonnés, les tenant informés des dernières mises à
    Catalogue AJAX de Sander v.1.2
  • Catalogue AJAX de Sander v.1.2
  • Répertoire symbolique intelligent automatisé utilisant AJAX. Modules pour Dle 13.0-17.1