Инструкция для дистрибутива  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)  |