- Совместимость
- не проверялся на совместимость
- Изменения в БД
- не требуются
- Автор
- 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"> </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"> </div> <!-- ENDIF -->