ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (1): [1]   

> Описание: Для тех, у кого не установлен Мод: Хранение статистики чтения тем на сервере
CAB
Отправлено: 5 декабря 2011 — 21:43
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011  
Откуда: Москва
Репутация: 30




Мод предназначен для тех, кто, по каким-либо причинам, не ставит себе на форум Мод: Хранение статистики чтения тем на сервере, но тоже хочет переходить к первому непрочитанному (новому) сообщению.

Поскольку мод работает только на одной странице, то он получился довольно простой. Установка не займёт много времени.
Сам мод сделан по мотивам Юриных разработок...

Установка:
В файле search.php строки
CODE:

function newpostst() {
global $fm, $pages;

$allforums = $fm->_Read(FM_ALLFORUMS);
$t_visits = $fm->_GetCookieArray('t_visits');

$alltopics = array();
foreach ($allforums as $forum_id => $forum) {
if (!defined('IS_ADMIN') && $forum['private'] === TRUE) {
if (!isset($fm->user['private'][$forum_id]) || $fm->user['private'][$forum_id] === FALSE) continue;
}
if ($forum['last_time'] > $fm->user['last_visit']) {
$alltopics = array_merge($alltopics,array_filter($fm->_Read('forum'.$forum_id.'/list.php'),"SearchNewPost"));
}
}

if (count($alltopics) !== 0) {
usort($alltopics,"sort_by_postdate");
$t_visits = $fm->_GetCookieArray('t_visits');
global $f_readed;
$data = '';
$alltopics_keys = array_keys($alltopics);
$pages = Print_Paginator(count($alltopics_keys), 'search.php?action=newposts&p={_P_}', $fm->exbb['topics_per_page'], 8, $first, TRUE);
$alltopics_keys = array_slice($alltopics_keys, $first, $fm->exbb['topics_per_page']);
foreach ($alltopics_keys as $topic){
$topic = $alltopics[$topic];
$forum_id = $topic['fid'];
$topic_id = $topic['id'];
$f_readed = $fm->_GetCookie('f'.$forum_id,0);

$TopicVisitTime = (isset($t_visits[$forum_id.':'.$topic_id]) && $t_visits[$forum_id.':'.$topic_id] > $fm->user['last_visit']) ? $t_visits[$forum_id.':'.$topic_id]:$fm->user['last_visit'];
$topicicon = topic_icon($topic,$TopicVisitTime);

$author = ($topic['author'] !== FALSE) ? $topic['author']:$fm->LANG['Guest'];
$author = ($topic['a_id'] !== 0) ? '<a href="profile.php?action=show&member='.$topic['a_id'].'">'.$author.'</a>':$author;

$poster = ($topic['poster'] !== FALSE) ? $topic['poster']:$fm->LANG['Guest'];
$poster = ($topic['p_id'] !== 0) ? '<a href="profile.php?action=show&member='.$topic['p_id'].'">'.$poster.'</a>':$poster;

$topicname = '<a href="topic.php?forum='.$forum_id.'&topic='.$topic_id.'&v=l#'.$topic['postkey'].'">'.$fm->chunk_split($topic['name']).'</a>';
$topicdesc = $fm->chunk_split($topic['desc']);
$forumname = '<a href="forums.php?forum='.$forum_id.'">'.$allforums[$forum_id]['name'].'</a>';
$posts = $topic['posts'];
$postdate = $fm->_DateFormat($topic['postdate']+$fm->user['timedif']*3600);
include('./templates/'.DEF_SKIN.'/newposts_data.tpl');
}
$found = count($alltopics);
$fm->_Title = ' :: '.$fm->LANG['NewPosts'];
$searchinmessage = '';
include('./templates/'.DEF_SKIN.'/all_header.tpl');
include('./templates/'.DEF_SKIN.'/logos.tpl');
include('./templates/'.DEF_SKIN.'/newposts.tpl');
include('./templates/'.DEF_SKIN.'/footer.tpl');
} else {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['NoNewPosts']);
}
}

заменяем на строки
CODE:

function newpostst() {
global $fm, $pages;

$allforums = $fm->_Read(FM_ALLFORUMS);
$t_visits = $fm->_GetCookieArray('t_visits');

$alltopics = array();
foreach ($allforums as $forum_id => $forum) {
if (!defined('IS_ADMIN') && $forum['private'] === TRUE) {
if (!isset($fm->user['private'][$forum_id]) || $fm->user['private'][$forum_id] === FALSE) continue;
}
if ($forum['last_time'] > $fm->user['last_visit']) {
$alltopics = array_merge($alltopics,array_filter($fm->_Read('forum'.$forum_id.'/list.php'),"SearchNewPost"));
}
}

if (count($alltopics) !== 0) {
usort($alltopics,"sort_by_postdate");
$t_visits = $fm->_GetCookieArray('t_visits');
global $f_readed;
$data = '';
$alltopics_keys = array_keys($alltopics);
$pages = Print_Paginator(count($alltopics_keys), 'search.php?action=newposts&p={_P_}', $fm->exbb['topics_per_page'], 8, $first, TRUE);
$alltopics_keys = array_slice($alltopics_keys, $first, $fm->exbb['topics_per_page']);
foreach ($alltopics_keys as $topic){
$topic = $alltopics[$topic];
$forum_id = $topic['fid'];
$topic_id = $topic['id'];
$f_readed = $fm->_GetCookie('f'.$forum_id,0);

$TopicVisitTime = (isset($t_visits[$forum_id.':'.$topic_id]) && $t_visits[$forum_id.':'.$topic_id] > $fm->user['last_visit']) ? $t_visits[$forum_id.':'.$topic_id]:$fm->user['last_visit'];
$topicicon = topic_icon($topic,$TopicVisitTime);

$author = ($topic['author'] !== FALSE) ? $topic['author']:$fm->LANG['Guest'];
$author = ($topic['a_id'] !== 0) ? '<a href="profile.php?action=show&member='.$topic['a_id'].'">'.$author.'</a>':$author;

$poster = ($topic['poster'] !== FALSE) ? $topic['poster']:$fm->LANG['Guest'];
$poster = ($topic['p_id'] !== 0) ? '<a href="profile.php?action=show&member='.$topic['p_id'].'">'.$poster.'</a>':$poster;

/*
Начало мода: Переход к первому непрочитанному (новому) сообщению со страницы Новые сообщения (Обновлённых тем: ...)
Автор CAB http://exbb.su/
*/
$threads = $fm->_Read('forum'.$forum_id.'/'.$topic_id.'-thd.php',FALSE);
$threads_keys = array_keys($threads);
sort($threads_keys,SORT_NUMERIC);
foreach ($threads_keys as $post_key => $post_time) {
if ($post_time > $fm->user['last_visit'] && $fm->user['id'] != $threads[$post_time]['p_id'] && $TopicVisitTime < $post_time) {
break;
}
}
if ($post_time > $fm->user['last_visit'] && $fm->user['id'] != $threads[$post_time]['p_id'] && $TopicVisitTime < $post_time) {
$topicname = '<img src="./templates/'.DEF_SKIN.'/im/newpost.gif"> <a href="topic.php?forum='.$forum_id.'&topic='.$topic_id.'&postid='.$post_time.'#'.$post_time.'">'.$fm->chunk_split($topic['name']).'</a>';
} else {
$topicname = '<img src="./templates/'.DEF_SKIN.'/im/lastpost.gif"> <a href="topic.php?forum='.$forum_id.'&topic='.$topic_id.'&v=l#'.$topic['postkey'].'">'.$fm->chunk_split($topic['name']).'</a>';
}
/*
Конец мода: Переход к первому непрочитанному (новому) сообщению со страницы Новые сообщения (Обновлённых тем: ...)
*/

$topicdesc = $fm->chunk_split($topic['desc']);
$forumname = '<a href="forums.php?forum='.$forum_id.'">'.$allforums[$forum_id]['name'].'</a>';
$posts = $topic['posts'];
$postdate = $fm->_DateFormat($topic['postdate']+$fm->user['timedif']*3600);
include('./templates/'.DEF_SKIN.'/newposts_data.tpl');
}
$found = count($alltopics);
$fm->_Title = ' :: '.$fm->LANG['NewPosts'];
$searchinmessage = '';
include('./templates/'.DEF_SKIN.'/all_header.tpl');
include('./templates/'.DEF_SKIN.'/logos.tpl');
include('./templates/'.DEF_SKIN.'/newposts.tpl');
include('./templates/'.DEF_SKIN.'/footer.tpl');
} else {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['NoNewPosts']);
}
}


И закачиваем по адресу, указанному в моде, новый файл newpost.gif (прикреплён).
На этом всё. Прошу установивших отписаться о работе мода.
Прикреплено изображение
newpost.gif

 
 
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Обсуждение »

> Похожие темы: Мод: Переход к первому непрочитанному (новому) сообщению со страницы Новые сообщения
Темы Форум Информация о теме Обновление
после установки Спойлера возникает ошибка
ошибка при создании темы,сообщения и опроса
Решение проблем Ответов: 8
Автор темы: triad
19 декабря 2010 — 22:46
Автор: triad
Ошибка при перенаправлении
при редактировании сообщения и т.д.
Решение проблем Ответов: 7
Автор темы: Guyver
3 января 2018 — 13:54
Автор: Guyver
Проблема с электронной почтой
Не приходят сообщения с форума на электронку
Решение проблем Ответов: 7
Автор темы: Виктор Андреев
31 августа 2010 — 11:57
Автор: M-A-X
Добавляется точка с запятой (;) в конце текста и лишний пробел
если НЕ включить HTML теги в тексте сообщения
Решение проблем Ответов: 5
Автор темы: shyuser
21 июля 2009 — 22:15
Автор: yura3d
Notice: unserialize() [function.unserialize]
Пропали сообщения
Решение проблем Ответов: 14
Автор темы: Александр Васёвич
13 января 2011 — 21:39
Автор: Toxic
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.1143]     [ ]