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>
{$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.