##############################################################
## Название мода: [Last added post] + addon
## Автор мода: frost444
## Версия мода: 1.0
## Описание: Вывод последних сообщений из форумов. Кеширование DataStore + вывод аватарки пользователя и пред просмотр поста на ajax возможная совместимость с модов подсветки ранга юзера по званию
## Слоность установки: легкая
## Время на уствновку: 5 минут
## Изменяемые файлы: config.php
##                   index.php
##                   includes/datastore/build_cat_forums.php
##                   language/lang_russian/lang_main.php
##                   templates/default/page_header.tpl
## Добавляемые файлы:  папка root
##############################################################




#-----[ Открыть ]--------------------------------- 
config.php
#-----[ В конце файла добавить ]---------------------------------
// START Вывод новых сообщений с Авой на Ajax
$bb_cfg['new_add_post_num'] = 10;                                // Количество выводимых сообщений
$bb_cfg['new_add_post_ignor_f'] = 145;                           // Форумы которые нужно игнорировать
$bb_cfg['new_add_post_col'] = '#CFFEDF';                         // Цвет нового сообщения
$bb_cfg['no_avatar'] = 'images/avatars/gallery/noavatar.png';    // Путь до  noavatar.png
$bb_cfg['title_lp_stext'] = 18;                                  // Сколько символов выводить в заголовке темы
// END Вывод новых сообщений с Авой на Ajax
 
#-----[ Открыть ]---------------------------------
index.php
#-----[ Найти ]---------------------------------
// Init userdata
$user->session_start();
#-----[ Добавить выше ]---------------------------------
// START Вывод новых сообщений с Авой на Ajax
if ($bb_cfg['new_add_post_num'])
{
	$datastore->enqueue('new_added_post');
}
// END Вывод новых сообщений с Авой на Ajax

#-----[ Найти ]---------------------------------
// Build index page
foreach ($cat_forums as $cid => $c)
{
#-----[ Добавить выше ]---------------------------------
// START Вывод новых сообщений с Авой на Ajax
if($bb_cfg['new_add_post_num']) 
{
	$template -> assign_vars(array(
		'NEW_ADD_POST_ON' => true,
    ));

	$new_added_post = $datastore->get('new_added_post');
	foreach ($new_added_post as $new_post)
	{

		$template -> assign_block_vars('newaddpost',array(
			'LP_USER_AVA' => get_avatar($new_post['user_avatar'], $new_post['user_avatar_type'], !bf($new_post['user_opt'], 'user_opt', 'allow_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'],
			'NEW_P_CLASS' => (is_unread($new_post['topic_last_post_time'], $new_post['topic_id'], $new_post['forum_id'])) ? $bb_cfg['new_add_post_col'] : '',
			'FORUM_ID' => $new_post['forum_id'],
			'AUTOR_POST' => $new_post['username'], 								
			'AUTOR_POST_ID' => $new_post['user_id'],
			'POST_TIME' => bb_date($new_post['topic_last_post_time'], $bb_cfg['post_date_format']),
                        'URL_NEW_POST' => BB_ROOT . 'viewtopic.php?'. POST_POST_URL .'='. $new_post['topic_last_post_id'] .'#'. $new_post['topic_last_post_id'],
		)) ;
	}
}
// END Вывод новых сообщений с Авой на Ajax

#-----[ Открыть ]---------------------------------
includes/datastore/build_cat_forums.php 
#-----[ Найти ]---------------------------------
bb_update_config(array('active_ads' => serialize($ad_block_assignment)));

}

#-----[ Добавить после ]---------------------------------
#
// START Вывод новых сообщений с Авой на Ajax
if($bb_cfg['new_add_post_num'])
{
    $trash_forums = $bb_cfg['trash_forum_id'] ? $bb_cfg['trash_forum_id'] : '0';
    $ignor_forum = $bb_cfg['new_add_post_ignor_f'];
    $data = DB()->fetch_rowset("SELECT
            tr.topic_id, tr.forum_id, tr.poster_id, tr.post_id,
			t.*, f.*, u.user_id, u.username, u.user_avatar, u.user_avatar_type, u.user_opt, u.user_rank
        FROM
            ". BB_POSTS ." tr
        LEFT JOIN ". BB_TOPICS ." t ON tr.post_id = t.topic_last_post_id
                                      AND t.forum_id NOT IN($ignor_forum, $trash_forums)
        LEFT JOIN ". BB_FORUMS ." f ON tr.forum_id = f.forum_id
                                      AND f.auth_read = ". AUTH_ALL ."
        LEFT JOIN ". BB_USERS ." u  ON tr.poster_id = u.user_id
            AND u.username = u.username
            AND  f.allow_porno_topic = 0
									  
        ORDER BY
            t.topic_last_post_time DESC
        LIMIT 0,".$bb_cfg['new_add_post_num']);
    $this->store('new_added_post', $data);
}
// END Вывод новых сообщений с Авой на Ajax

#-----[ Открыть ]---------------------------------
language/lang_russian/lang_main.php
#-----[ В конце файла добавить ]---------------------------------
// Вывод новых сообщений с Авой на Ajax
$lang['LAST_ADD_POST'] = 'Новые сообщения';
$lang['AUTHOR_NEW_POST'] = 'Написал'; 

#-----[ Открыть ]---------------------------------
language/lang_english/lang_main.php
#-----[ В конце файла добавить ]---------------------------------
// Вывод новых сообщений с Авой на Ajax
$lang['LAST_ADD_POST'] = 'New Posts';
$lang['AUTHOR_NEW_POST'] = 'Posted by';

#-----[ Открыть ]--------------------------------- 
templates/default/page_header.tpl
#------------[ Найти ]-------------------------------
<link rel="stylesheet" href="{STYLESHEET}?v={$bb_cfg['css_ver']}" type="text/css">
#-----[ Добавить ниже ]---------------------------------
<link rel="stylesheet" href="./templates/default/css/jtip.css" type="text/css">

#------------[ Найти ]-------------------------------
<script type="text/javascript" src="{#BB_ROOT}misc/js/jquery.pack.js?v={$bb_cfg['js_ver']}"></script>
#-----[ Добавить ниже ]---------------------------------
<script type="text/javascript" src="{#BB_ROOT}misc/js/jtip.js?v={$bb_cfg['js_ver']}"></script>

#-----[ Найти ]---------------------------------
<?php if (!empty($bb_cfg['sidebar1_static_content_path'])) include($bb_cfg['sidebar1_static_content_path']); ?>
#-----[ Добавить выше ]---------------------------------
#
<!-- IF NEW_ADD_POST_ON -->
<h3></h3>
<div class="spacer">&nbsp;</div>
<table height="0" cellpadding="3" cellspacing="0" border="0" style="width: 100%;">
<tr><td colspan="3" class="cat_title"><b>{L_LAST_ADD_POST}</b></td></tr>
<!-- BEGIN newaddpost -->
<tr><td style="border-bottom: 1px solid #C3CBD1; background-color: {newaddpost.NEW_P_CLASS}"><div class="iComm" id="iComm"><div class="avatar" >{newaddpost.LP_USER_AVA}</div></div></td>
<td class="f_titles" style="border-bottom: 1px solid #C3CBD1; background-color: {newaddpost.NEW_P_CLASS}">
<div class="info"><a href="viewtopic.php?t={newaddpost.TOPIC_ID}" style="font-size:11px">{newaddpost.TOPIC_TITLE}</a></div>
<div style="font-size:10px">{L_AUTHOR_NEW_POST}: <a href="profile.php?mode=viewprofile&u={newaddpost.AUTOR_POST_ID}">{newaddpost.AUTOR_POST}</a></div> <div style="font-size:10px">{newaddpost.POST_TIME} <a href="{newaddpost.URL_NEW_POST}">пост »</a></div><div style="font-size:10px"> {L_FORUM}: <a href="viewforum.php?f={newaddpost.FORUM_ID}">{newaddpost.FORUM}</a></div>
<div class="tRight"><a href="http://{$bb_cfg['server_name']}{$bb_cfg['script_path']}viewpost.php?id={newaddpost.POST_ID}" class="jTip" name="{newaddpost.TITLE}" id="post_{newaddpost.POST_ID}" style="font-size:11px">Пред.просмотр</a></div>
</td></tr>
<!-- END newaddpost -->
</table>
<!-- ENDIF -->

#-----[ Открыть ]---------------------------------
common.php
#------------[ Найти ]-------------------------------
'latest_news'            => 'build_cat_forums.php',
#-----[ Добавить ниже ]---------------------------------
'new_added_post'         => 'build_cat_forums.php',

#-----[ Открыть ]---------------------------------
templates/default/css/main.css 
#-----[ В конце файла добавить ]---------------------------------
/*-- START Вывод новых сообщений с Авой на Ajax --*/
.iComm {
    font-size: 11px;
    font-family: 'Trebuchet MS',Helvetica,Arial,sans-serif;
    line-height: 1.27;
    word-wrap: break-word;
    font: 11px/1.231 arial,helvetica,clean,sans-serif;
}

.iComm li {
    list-style: none outside none;
    margin: 5px 0;
    overflow: hidden;
    zoom: 1;
}

.iComm ul, li,div {
    margin: 0;
    padding: 0;
}

.iComm .info {
    display: block;
    color: #969696;
}

.iComm a {
    color: #176093;
}

.iComm .avatar img {
    margin-right: 5px;
    float: left;
    height: 48px;
    width: 48px;
}

.iComm .avatar img {
    background-color: #FCFCFF;
    border: 1px solid #A5CAE4;
    border-radius: 4px 4px 4px 4px;
    padding: 2px;
}

.catnew{
    border:solid #c3cbd1;border-width:1px;padding:6px;background:#f5f5f5;border-radius:5px;-moz-border-radius:5px;box-shadow:0 0 5px #dadada;-moz-box-shadow:0 0 5px #dadada;-webkit-box-shadow:0 0 5px #dadada;
}
/*-- END Вывод новых сообщений с Авой на Ajax --*/






Ну вот и всё почти Готово !
Осталось самая малость:
Сохраните и закройте все файлы / Очистить кеш: DataStore и Шаблонов

