Инструкция для дистрибутива ExBB_FM_1.0_Final
Устраняет проблемы с видимостью некоторых ссылок на скрытые форумы.
Открываем файл index.php
в котором ищем строку
CODE:$LastPosterName = ($forum['last_poster_id'] !== 0) ? $fm->LANG['Author'].': <a href="profile.php?action=show&member='.$forum['last_poster_id'].'">'.$forum['last_poster'].'</a>' : $fm->LANG['Author'].': '.$fm->LANG['Guest'];
после которой вставляем
CODE:if (!isset($allforums[$id])) // если последние изменения пришлись на скрытый подфорум - формируем новые данные
{
$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
в котором ищем строку
CODE:$allforums = $fm->_Read(FM_ALLFORUMS);
которую заменяем на строку
CODE:$allforums = array_filter($fm->_Read(FM_ALLFORUMS),"Filter_Cat");
затем далее в этом же файле ищем код
CODE:if (isset($user['lastpost']['date'])) {
$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'];
}
который заменяем кодом
CODE:if (isset($user['last_visit'])) // время последней активности
{$lastvisit = $fm->LANG['LastVisit'].': '.$fm->_DateFormat($user['last_visit'] + $fm->user['timedif']*3600);}
else {$lastvisit = $fm->LANG['NoVisit'];}
затем далее в этом же файле ищем код
CODE: $fm->_BOARDSTATS();
$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); который удаляем
затем далее в этом же файле ищем строку
CODE:$countposts = array_sum($user['posted']);
которую заменяем на код
CODE:foreach ($user['posted'] as $inforum=>$posts)
{
if (isset($allforums[$inforum]))
{
$infposts[$inforum] = $posts;
$countposts += $posts;
}
}
затем далее в этом же файле ищем строку
CODE:foreach ($user['posted'] as $inforum=>$posts){
которую заменяем на строку
CODE:foreach ($infposts as $inforum=>$posts){
затем далее в этом же файле ищем строку
CODE:$fm->_Title = ' :: '.$fm->LANG['UserInfo'];
перед которой вставляем код
CODE: $fm->_BOARDSTATS();
$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.']';
затем далее в этом же файле ищем строку
CODE:function validate_items(){
перед которой вставляем код
CODE:function Filter_Cat($var) {
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
в котором ищем строки
CODE:$this->LANG['LastPost'] = 'Последняя запись';
$this->LANG['NoPosts'] = 'Нет записей';
которые заменяем строками
CODE:$this->LANG['Activity'] = 'Активность';
$this->LANG['LastVisit'] = 'Последнее посещение';
$this->LANG['NoVisit'] = 'Нет информации';
Затем открываем в своем шаблоне файл profile_show.tpl
в котором ищем строки
CODE:<tr>
<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>
которые заменяем строками
CODE:<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>
Надеюсь ничего не упустил и на этом устранение проблемы завершено. (Отредактировано автором: 12 апреля 2017 — 14:02) |