Как пофиксить?
Тутошний поиск ничего не дал
Зачем пользователям вообще знать о существовании скрытых форумов? Если даже название форума светится, то его уже по определению нельзя назвать скрытым. Дырка же очевидная, нет?
Накой воображение юзверей кормить?
1. Группа - это скрытый подфорум. Я - админ. Обновил в этом подфоруме тему - Продление домена chief-net.ru сроком на 1 год
2. Я вышел из форума (разлогинился) и теперь я гость. Сам подфорум Группа не виден, его нет в списке подфорумов, НО!
Справа видно обновление в теме из скрытого подфорума. Выводится название этой темы! (!) И так со всем-всем-всем скрытым происходит. Конечно, в тему войти гостю и недопущенным нельзя (как и просмотреть с модом первое и последнее сообщение, выйдет мессага о недостаточных правах), но названия тем видны, а это не есть гуд...
Завтра поставлю на Денвер "ExBB FM 1.0 Final" и попробую ничего не упустив повторить на финале, после чего выложу инструкцию. Для остальных версий адаптировать не буду - скорее всего там всё так же.
Инструкция для дистрибутива ExBB_FM_1.0_Final
Устраняет проблемы с видимостью некоторых ссылок на скрытые форумы.
Открываем файл index.php
в котором ищем строку
после которой вставляем
{
$ftopics = $fm->_Read('forum'.$forum['id'].'/list.php');
usort($ftopics,"sort_by_postdate");
$topic = $ftopics[0];
$thread_keys = array_keys($fm->_Read('data/forum'.$forum['id'].'/'.$topic['id'].'-thd.php'));
$lt_name = (strlen($topic['name'])>36) ? substr($topic['name'],0,35).'...' : $topic['name'];
$LastTopicName = '<img src="./templates/'.DEF_SKIN.'/im/lastpost.gif">'.($fm->exbb['show_hints'] ? '<span class="hint">' : '').'<a href="topic.php?forum='.$topic['fid'].'&topic='.$topic['id'].'&v=l#'.end($thread_keys).'" title="'.$topic['name'].'">'.$lt_name.'</a></span>';
$LastPosterName = ($topic['a_id'] !== 0) ? $fm->LANG['Author'].': <a href="profile.php?action=show&member='.$topic['a_id'].'">'.$topic['author'].'</a>' : $fm->LANG['Author'].': '.$fm->LANG['Guest'];
$LastTopicDate = ($topic['postdate'] > 0) ? date("d.m.Y - H:i", $topic['postdate'] + $fm->user['timedif']*3600) : $fm->LANG['NA'];
}
Далее открываем файл profile.php
в котором ищем строку
которую заменяем на строку
затем далее в этом же файле ищем код
$postdate = $fm->_DateFormat($user['lastpost']['date'] + $fm->user['timedif']['usertime']*3600);
$topicTitle = preg_replace("#([^\s]{32})(.+)#is","$1­$2",$user['lastpost']['name']);
$lastpostdetails = $fm->LANG['LastPost'].': <a href="'.$user['lastpost']['link'].'">'.$topicTitle.'</a> - '.$postdate;
} else {
$lastpostdetails = $fm->LANG['NoPosts'];
}
который заменяем кодом
{$lastvisit = $fm->LANG['LastVisit'].': '.$fm->_DateFormat($user['last_visit'] + $fm->user['timedif']*3600);}
else {$lastvisit = $fm->LANG['NoVisit'];}
затем далее в этом же файле ищем код
$days_reged = max(1, round((time() - $user['joined'])/86400));
$posts_per_day = sprintf($fm->LANG['PostsPerDay'], $user['posts']/$days_reged);
$percentage = ($fm->_Stats['totalposts'] > 0) ? min(100, ($user['posts'] / $fm->_Stats['totalposts']) * 100) : 0;
$percentage = sprintf($fm->LANG['ProcTotal'], $percentage);
затем далее в этом же файле ищем строку
которую заменяем на код
{
if (isset($allforums[$inforum]))
{
$infposts[$inforum] = $posts;
$countposts += $posts;
}
}
затем далее в этом же файле ищем строку
которую заменяем на строку
затем далее в этом же файле ищем строку
перед которой вставляем код
$days_reged = max(1, round((time() - $user['joined'])/86400));
$posts_per_day = sprintf($fm->LANG['PostsPerDay'], $countposts/$days_reged);
$percentage = ($fm->_Stats['totalposts'] > 0) ? min(100, ($countposts / $fm->_Stats['totalposts']) * 100) : 0;
$percentage = sprintf($fm->LANG['ProcTotal'], $percentage);
$usertotalposts = $countposts.' ['.$percentage.' / '.$posts_per_day.']';
затем далее в этом же файле ищем строку
перед которой вставляем код
global $fm;
$_access = TRUE;
if (!defined('IS_ADMIN') && $var['private'] === TRUE) {
$_access = (isset($fm->user['private'][$var['id']]) && $fm->user['private'][$var['id']] === TRUE) ? TRUE:FALSE;
}
return ($_access === TRUE) ?1:0;
}
Далее открываем файл lang_front_register.php
в котором ищем строки
$this->LANG['NoPosts'] = 'Нет записей';
которые заменяем строками
$this->LANG['LastVisit'] = 'Последнее посещение';
$this->LANG['NoVisit'] = 'Нет информации';
Затем открываем в своем шаблоне файл profile_show.tpl
в котором ищем строки
<td class="pformleft" valign="top"><b>{$fm->LANG['Updates']}</b></td>
<td class="pformright">$lastpostdetails</td>
</tr>
<tr>
<td class="pformleft" valign="top"><b>{$fm->LANG['UserTotalPosts']}</b></td>
<td class="pformright">{$user['posts']} [$percentage / $posts_per_day]</td>
</tr>
которые заменяем строками
<td class="pformleft" valign="top"><b>{$fm->LANG['Activity']}</b></td>
<td class="pformright">$lastvisit</td>
</tr>
<tr>
<td class="pformleft" valign="top"><b>{$fm->LANG['UserTotalPosts']}</b></td>
<td class="pformright">$usertotalposts</td>
</tr>
Надеюсь ничего не упустил и на этом устранение проблемы завершено.
Дата: N/A
» « »
Автор:
Notice: Undefined offset: 0 in *****/chief-net.ru/forum/index.php on line 170
Т.е. для ExBB FM 1.0 RC1 не подойдёт?
Логика такая - если новое сообщение в скрытой теме, то ищется сссылка на последнее сообщение в этом форуме. Возможно что-то не учел - сейчас попробую установить мод на RC1
Попробую найти решение, но чуть позже.