###[ВЫПОЛНИТЬ]-----SQL
CREATE TABLE `bb_like_post` (
`lk_post_id` mediumint(11) unsigned NOT NULL DEFAULT '0',
`lk_autor_id` mediumint(11) unsigned NOT NULL DEFAULT '0',
`lk_user_id` mediumint(11) NOT NULL DEFAULT '0',
`lk_time` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`lk_autor_id`,`lk_post_id`,`lk_user_id`,`lk_time`)
);
ALTER TABLE `bb_posts` ADD `like_for_post` INT( 10 ) NOT NULL DEFAULT '0';
ALTER TABLE `bb_users` ADD `user_likes` int(11) DEFAULT '0' NOT NULL;
####[КОНЕЦ]-----SQL
####[ОТКРЫТЬ]----- config.php
$bb_cfg['like_post'] = array(
'on' => true,
'cache' => 24, //кеш держится в часах
'cache_autor' => 24, //кеш держится в часах
);
####[СОХРАНИТЬ_ФАЙЛ]####
####[ОТКРЫТЬ]----- init_bb.php
-----[найти]-----
define('BB_USERS', 'bb_users');
-----[добавить после]-----
define('BB_LIKE_POST', 'bb_like_post');
####[СОХРАНИТЬ_ФАЙЛ]####
####[ОТКРЫТЬ]----- ajax.php
-----[найти]-----
'index_data' => array('guest'),
-----[добавить после]-----
'like_post' => array('user'),
-----[найти]-----
последнюю скобку }
-----[добавить перед]-----
function like_post()
{
require(AJAX_DIR .'like_post.php');
}
####[СОХРАНИТЬ_ФАЙЛ]####
####[ОТКРЫТЬ]----- viewtopic.php
-----[найти]-----
'FORUM_ID' => $forum_id,
-----[добавить после]-----
'LIKE_POST_ON' => ($bb_cfg['like_post']['on'] && $userdata['session_logged_in']),
-----[найти]------
//
// Go ahead and pull all data for this topic
//
// 1. Add first post of topic if it pinned and page of topic not first
-----[найти]------
p.*,
-----[ниже добавить]------
lk.*,
-----[найти]------
LEFT JOIN ". BB_POSTS_HTML ." h ON(h.post_id = p.post_id)
-----[ниже добавить]------
LEFT JOIN ". BB_LIKE_POST ." lk ON(lk.lk_post_id = p.post_id)
-----[найти]------
// 2. All others posts
-----[найти]------
p.*,
-----[ниже добавить]------
lk.*,
-----[найти]------
LEFT JOIN ". BB_POSTS_HTML ." h ON(h.post_id = p.post_id)
-----[ниже добавить]------
LEFT JOIN ". BB_LIKE_POST ." lk ON(lk.lk_post_id = p.post_id)
-----[найти]------
$template->assign_block_vars('postrow', array(
-----[перед добавить]------
$set_like_post = ($postrow[$i]['poster_id'] <> $userdata['user_id'] && $postrow[$i]['poster_id'] > 0);
-----[найти]------
$template->assign_block_vars('postrow', array(
-----[ниже добавить]------
'LIKE_POST' => $postrow[$i]['like_for_post'],
'SET_LIKE_POST' => $set_like_post,
'GET_LIKE_POST' => ($postrow[$i]['like_for_post'] > 0),
####[СОХРАНИТЬ_ФАЙЛ]####
####[ОТКРЫТЬ]----- includes\ucp\usercp_viewprofile.php
-----[найти]------
'ICQ' => $profiledata['user_icq'],
-----[ниже добавить]------
'LIKES' => ($bb_cfg['like_post']['on']) ? $profiledata['user_likes'] : '',
'LIKES_ON' => $bb_cfg['like_post']['on'],
####[СОХРАНИТЬ_ФАЙЛ]####
####[ОТКРЫТЬ]----- usercp_viewprofile.tpl
-----[найти]------
<var class="ajax-params">{action: "edit_user_profile", id: "user_birthday"}</var>
-----[ниже добавить]------
<var class="ajax-params">{action: "edit_user_profile", id: "user_likes"}</var>
-----[найти]------
<tr>
<th>{L_AGE}:</th>
<td><b>{AGE}</b></td>
</tr>
<!-- ENDIF -->
-----[ниже добавить]------
<!-- IF LIKES_ON -->
<tr>
<th>Лайки:</th>
<td id="user_likes"><b class="editable">{LIKES}</b></td>
</tr>
<!-- ENDIF -->
####[СОХРАНИТЬ_ФАЙЛ]####
####[ОТКРЫТЬ]----- viewtopic.tpl
-----[в самом начале добавить]-----
<link rel="stylesheet" href="{TPL_DIR}/popup.css?v={$bb_cfg['css_ver']}" type="text/css">
<!-- IF LIKE_POST_ON -->
<link rel="stylesheet" href="{TPL_DIR}/like.css?v={$bb_cfg['css_ver']}" type="text/css">
<script type="text/javascript">
function like_post(post_id, mode, type){
ajax.exec({
action : 'like_post',
mode : mode,
post_id : post_id,
type : type || 0,
});
ajax.callback.like_post = function(data) {
if(data.like){
$('#post_like_count-'+ data.post_id).html(data.html_count);
if (!data.html_list)
{
$('#post_like_list-'+ data.post_id).removeClass('post_like');
}else{
$('#post_like_list-'+ data.post_id).addClass('post_like');
}
$('#post_like_list-'+ data.post_id).html(data.html_list);
}
if(data.list){
$('#like_post').html(data.html);
}
};
}
</script>
<span id="like_post"></span>
<!-- ENDIF -->
-----[найти]-----
<!-- IF postrow.EDITED_MESSAGE --><div class="last_edited">{postrow.EDITED_MESSAGE}</div><!-- ENDIF -->
-----[добавить ниже]-----
<!-- IF LIKE_POST_ON -->
<div class="floatR">
<span class="like_list" style="display:none;" id="likelist-popup-{postrow.POST_ID}"></span>
<div id="setlike-{postrow.POST_ID}">
<div class="post_like_wrap fl_r">
<div class="post_like floatL" onclick="like_post({postrow.POST_ID}, 'like');">
<span class="post_like_link floatL">Мне нравится</span>
<i class="post_like_icon my_like floatL"></i>
<span id="post_like_count-{postrow.POST_ID}" class="post_like_count floatL" >{postrow.LIKE_POST}</span>
</div>
<div id="post_like_list-{postrow.POST_ID}" class="<!-- IF postrow.GET_LIKE_POST -->post_like <!-- ELSE --><!-- ENDIF -->floatL">
<!-- IF postrow.GET_LIKE_POST --><span class="post_like_count floatR" onclick="like_post({postrow.POST_ID}, 'list');"><b>↑↑</b></span><!-- ELSE --><!-- ENDIF -->
</div>
</div>
</div>
</div>
<!-- ENDIF -->