Мне нравится

Мне нравится 1.0.0

Совместимость
не проверялся на совместимость
Изменения в БД
требуются
Автор
frost444
Общественное достояние
да
Описание: добавляет возможность установки отметок "Мне нравится" у сообщений.

Возможности:
  • Внешний вид как у известной социальной сети
  • Работа на AJAX
  • Всплывающее окно со списком выразивших симпатию
Инструкция по установке
PHP:
Автор мода: frost444

//-----[Обновления]-----\\

|--(00.00.0000)
   1) измененный код: ---
   2) ---
   info: (1) ---
  
\\-----[Обновления]-----//

####[ВЫПОЛНИТЬ]-----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 = 0){
    ajax.exec({
        action  : 'like_post',
        mode    : mode,
        post_id    : post_id,
        type    : type,
    });
    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>&#8593;&#8593;</b></span><!-- ELSE --><!-- ENDIF -->
                        </div>
                    </div>
                </div>
            </div>
            <!-- ENDIF -->

####[СОХРАНИТЬ_ФАЙЛ]####
  • likemod.JPG
    likemod.JPG
    70.1 KB · Просмотры: 374
Автор
Exile
Скачивания
81
Просмотры
323
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Exile

Сверху