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

Добавляет вывод новых сообщений и тем форума в боковой панели (с предпросмотром).

  1. Exile
    Совместимость:
    не проверялся на совместимость
    Изменения в БД:
    не требуются
    Автор:
    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 -->

    Изображения

    1. 1.PNG

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

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