ExBB Community » » Настройка форума » Видна статистика по скрытым темам в профилях пользователей

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

1. Squatter - 29 марта 2017 — 03:30 - перейти к сообщению
Пользователь, не имеющий прав доступа к скрытым форумам видит их список в профилях пользователей имеющих доступ



Как пофиксить? Улыбка

Тутошний поиск ничего не дал
2. Guyver - 30 марта 2017 — 07:59 - перейти к сообщению
Ну видит список. Сообщения-то не видны...
3. Squatter - 30 марта 2017 — 09:19 - перейти к сообщению
Ожидал подобного ответа))
Зачем пользователям вообще знать о существовании скрытых форумов? Если даже название форума светится, то его уже по определению нельзя назвать скрытым. Дырка же очевидная, нет?
Накой воображение юзверей кормить? Улыбка
4. Guyver - 30 марта 2017 — 09:23 - перейти к сообщению
У меня всё ещё хуже - на главной форума (!) видны названия закрытых тем. Я спрашивал в своё время - и мне никто не помог...
5. NordWest - 30 марта 2017 — 10:08 - перейти к сообщению
Guyver пишет:
У меня всё ещё хуже - на главной форума (!) видны названия закрытых тем. Я спрашивал в своё время - и мне никто не помог...
Сделайте скрин. Я посмотрю чуть позже - сейчас просто нет времени.
6. Guyver - 31 марта 2017 — 12:56 - перейти к сообщению
Вот мой форум:

1. Группа - это скрытый подфорум. Я - админ. Обновил в этом подфоруме тему - Продление домена chief-net.ru сроком на 1 год



2. Я вышел из форума (разлогинился) и теперь я гость. Сам подфорум Группа не виден, его нет в списке подфорумов, НО!



Справа видно обновление в теме из скрытого подфорума. Выводится название этой темы! (!) И так со всем-всем-всем скрытым происходит. Конечно, в тему войти гостю и недопущенным нельзя (как и просмотреть с модом первое и последнее сообщение, выйдет мессага о недостаточных правах), но названия тем видны, а это не есть гуд...
7. NordWest - 31 марта 2017 — 19:01 - перейти к сообщению
Понял, на будущей неделе постараюсь найти время и покопаться.
8. NordWest - 12 апреля 2017 — 01:17 - перейти к сообщению
Для своего движка проблему с отображением скрытых тем решил.

Завтра поставлю на Денвер "ExBB FM 1.0 Final" и попробую ничего не упустив повторить на финале, после чего выложу инструкцию. Для остальных версий адаптировать не буду - скорее всего там всё так же.
9. Guyver - 12 апреля 2017 — 11:48 - перейти к сообщению
Это очень сильно радует!!!
10. NordWest - 12 апреля 2017 — 14:01 - перейти к сообщению

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


Надеюсь ничего не упустил и на этом устранение проблемы завершено. Подмигивание
11. Guyver - 12 апреля 2017 — 23:56 - перейти к сообщению
Спасибо! Выйду из больнички - попробую у себя на форуме...
12. Squatter - 14 апреля 2017 — 19:49 - перейти к сообщению
NordWest , превосходно! Будем тестировать. Спасибо! Улыбка
13. Guyver - 16 апреля 2017 — 14:33 - перейти к сообщению
Как я понимаю, теперь нового просто не будет, если гость войдёт на форум, а новое было в скрытой теме? У меня так работает:



Дата: N/A
» « »
Автор:

Notice: Undefined offset: 0 in *****/chief-net.ru/forum/index.php on line 170

Т.е. для ExBB FM 1.0 RC1 не подойдёт?
14. NordWest - 16 апреля 2017 — 16:04 - перейти к сообщению
Должно быть не так...
Логика такая - если новое сообщение в скрытой теме, то ищется сссылка на последнее сообщение в этом форуме. Возможно что-то не учел - сейчас попробую установить мод на RC1
15. NordWest - 16 апреля 2017 — 16:43 - перейти к сообщению
Действительно - на RC1 встает криво.
Попробую найти решение, но чуть позже.

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

Powered by ExBB
[Script Execution time: 0.0207]     [ ]