Новые сообщения (с предпросмотром)

Новые сообщения (с предпросмотром) 1.1.0

Нет прав для скачивания
Совместимость
не проверялся на совместимость
Изменения в БД
не требуются
Автор
frost444
Общественное достояние
да
Описание: добавляет вывод новых сообщений и тем форума в боковой панели (с предпросмотром).

Возможности:
  • AJAX навигация
  • Полное кэширование
  • Предварительный просмотр
Инструкция по установке
PHP:
####[Открыть]----- config.php
-----[в конец]-----

$bb_cfg['new_add_post_num'] = array(
    'on'  => true,        // количество выводимых сообщений
    'num' => 10,        // количество выводимых сообщений
    'cache' => 20,
    'ignor' => '0',        //‘орумы которые нужно игнорировать, строка должна выгл¤деть так '1,2,3,4'
);
$bb_cfg['title_lp_stext'] = 40; // сколько символов выводитс¤ в заглавии темы
$bb_cfg['new_add_post_ignor_f'] = '0'; //‘орумы которые нужно игнорировать, строка должна выгл¤деть так '1,2,3,4'
$bb_cfg['new_add_post_col'] = '#FAA'; //цвет нового сообщени¤ ( в состо¤нии теста )
$bb_cfg['forum_lp_on'] = true; // включить или отключить вывод форума true|false
$bb_cfg['data_lp_on'] = true; // включить или отключить вывод форума true|false
$bb_cfg['ava_lp_on'] = true; // включить или отключить вывод форума true|false

$page_cfg['show_new_add_post'] = array(
#    BB_SCRIPT => true
    'index'  => true,
);

####[Открыть]----- ajax.php
-----[найти]-----

        'index_data'        => array('guest'),

-----[добавить ниже]-----

        'last_post'         => array('user'),
    
-----[найти последнюю скобку и перед ней добавить]-----

    function last_post()
    {
        require(AJAX_DIR .'last_post.php');
    }

####[Открыть]----- lang_main.php
-----[в конец]-----

$lang['LAST_ADD_POST'] = 'Последние сообщения';

####[Открыть]----- page_header.php
-----[найти]-----

$template->assign_vars(array(

-----[добавить выше]-----

if($bb_cfg['new_add_post_num']['on'] && !empty($page_cfg['show_new_add_post'][BB_SCRIPT]))
{
    $trash_forums = $bb_cfg['trash_forum_id'] ? $bb_cfg['trash_forum_id'] : '0';
    $ignor_forum = $bb_cfg['new_add_post_num']['ignor'];
    if (!$sql_p = CACHE('bb_cache')->get('last_post'))
    {
        $sql_p = DB()->fetch_rowset("SELECT
            p.topic_id, p.forum_id, p.poster_id, p.post_id, p.post_time,
            t.topic_id, t.topic_title, t.forum_id, t.topic_last_post_time, f.*, u.user_id, u.username, u.user_avatar, u.user_avatar_type, u.user_opt, u.user_rank
            FROM ". BB_TOPICS ." AS t, ". BB_POSTS ." AS p, ". BB_USERS ." AS u, ". BB_FORUMS . " AS f
            WHERE p.forum_id = p.forum_id
                AND f.auth_read = ". AUTH_ALL ."
                AND p.forum_id NOT IN($ignor_forum, f.allow_porno_topic, $trash_forums)
                AND p.post_id = p.post_id
                AND p.poster_id = u.user_id
                AND p.forum_id = f.forum_id
                AND p.poster_id = u.user_id
                AND t.topic_id = p.topic_id
                AND u.username = u.username
            GROUP BY p.post_time DESC
            LIMIT 0,".$bb_cfg['new_add_post_num']['num']);
        CACHE('bb_cache')->set('last_post', $sql_p, $bb_cfg['new_add_post_num']['cache']*60);
    }
    foreach ($sql_p as $new_post)
    {
        $user_avatar = '';
        if ( !$user->opt_js['h_av'] && $new_post['user_id'] != ANONYMOUS )
        {
            $user_avatar = get_avatar($new_post['user_avatar'], $new_post['user_avatar_type'], !bf($new_post['user_opt'], 'user_opt', 'allow_avatar'), '32', '32');
        }

        $template -> assign_block_vars('newaddpost',array(
            'LP_USER_AVA'   => $user_avatar,
            'TOPIC_TITLE'   => wbr(str_short($new_post['topic_title'], $bb_cfg['title_lp_stext'])),
            'POST_ID'       => $new_post['post_id'],
            'TOPIC_ID'      => $new_post['topic_id'],
            'FORUM'         => $new_post['forum_name'],
            'FORUM_ON'      => $bb_cfg['forum_lp_on'],
            'FORUM_ID'      => $new_post['forum_id'],
            'AUTOR_POST'    => profile_url(array('username' => $new_post['username'], 'user_id' => $new_post['user_id'], 'user_rank' => $new_post['user_rank'])),
            'AUTOR_POST_ID' => $new_post['user_id'],
            'POST_TIME'     => bb_date($new_post['post_time']),
            'URL_FORUM'     => make_url(FORUM_URL . $new_post['forum_id'], true),
            'URL_NEW_POST'  => make_url(POST_URL . $new_post['post_id'], true),
            //'NEW'           => (is_unread($new_post['post_time'], $new_post['topic_id'], $new_post['forum_id'])) ? 'HOT' : '',
        )) ;
    }
}

####[Открыть]----- page_header.tpl
-----[в любое место]-----

    <!-- IF $bb_cfg['new_add_post_num']['on'] -->
    <link rel="stylesheet" href="{TPL_DIR}/jstip.css?v={$bb_cfg['css_ver']}" type="text/css">
    <script type="text/javascript" src="{SITE_URL}misc/js/jstip.js"></script>
    <script type="text/javascript">
        ajax.callback.last_post = function(data) {
          $('#load_last_post').html(data.message);
        };
    </script>
    <div class="spacer">&nbsp;</div>
    <div>
        <h3><a href="search.php?search_id=latest">{L_LAST_ADD_POST}</a></h3>
        <div align="center" class="hrs"></div>
        <div>
            <table id="load_last_post" cellspacing="0" border="0" width="100%">
                <!-- BEGIN newaddpost -->
                <tr    rel="viewpost.php?id={newaddpost.POST_ID}" class="jsTip" jtip="true" name="{newaddpost.TOPIC_TITLE}" id="post_{newaddpost.POST_ID}">
                    <td style="border-bottom: 1px solid #C3CBD1;">{newaddpost.LP_USER_AVA}</td>
                    <td class="f_titles" style="border-bottom: 1px solid #C3CBD1;">
                        <div><a href="{newaddpost.URL_NEW_POST}" style="font-size:11px">{newaddpost.NEW}{newaddpost.TOPIC_TITLE}</a></div>
                        <div style="font-size:10px"><a href="profile.php?mode=viewprofile&u={newaddpost.AUTOR_POST_ID}">{newaddpost.AUTOR_POST}</a> {newaddpost.POST_TIME} <a href="{newaddpost.URL_NEW_POST}{newaddpost.POST_ID}#{newaddpost.POST_ID}">>></a></div>
                        <!-- IF newaddpost.FORUM_ON -->
                        <div style="font-size:10px"> {L_FORUM}: <a href="{newaddpost.URL_FORUM}">{newaddpost.FORUM}</a></div>
                        <!-- ENDIF -->
                    </td>
                </tr>
                <!-- END newaddpost -->
                <tr>
                    <td align="left"></td>
                    <td align="right"><a data-tooltip="true" title="—ледующие 5 тем" href="#" onclick="ajax.exec({action : 'last_post', mode: 'new_post', type: 1}); return false;">>>></a></td>
                </tr>
            </table>
        </div>
        <div class="tCenter mask_links">
            <span class="morebutton" onclick="ajax.exec({action : 'last_post', mode: 'update'}); return false;">ќбновить</span>
        </div>
    </div>
    <div class="spacer">&nbsp;</div>
    <!-- ENDIF -->
  • 32.5 KB Просмотры: 393
Автор
Exile
Скачивания
131
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

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

Последние обновления

  1. Обновление 1.1.0

    Обновлено описание ресурса