Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Здравствуйте! Тестирую сборку от Visman. Делаю форум для узкого круга друзей, чтобы люди извне вообще не видели ничего на форуме. Сделал две группы - Новички и Пользователи. Новореги сразу попадают в группу Новички, для которой отключено чтение форума. Хочу чтобы Модераторы могли вручную перемещать Новичков в группу Пользователи. Для группы Модераторы включил параметры "Могут править пользовательские профили" и "Могут перемещать пользователей". Захожу как Модератор, пользовательские профили открываются для редактирования, но опции перемещения пользователей отыскать не могу. Может нужно включить что-то еще? Или это можно как-то иначе реализовать? Заранее благодарен за помощь!
Offline
@alec, в любой теме где новичок оставил сообщение, ниже его количества сообщений (там где ник, дата регистрации и прочая инфа по юзеру) должна быть ссылка Переместить пользователя.
В профиле же изменение группы делается через вкладку Модерирование.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, спасибо за ответ! Ни того, ни другого у меня нет. Установил форум с нуля - всё равно.
Вот как видит топик Модератор:
Вот как Модератор видит редактирование чужого профиля:
Все настройки и права стандартные, не менял абсолютно ничего.
Offline
@alec, так. Оказывается модераторы в профиле действительно не могут менять группы пользователей. Так и в оригинальном FluxBB.
А вот Переместить пользователя в темах работает правильно. Проверил:
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, получилось! Спасибо огромное!
Еще такой вопрос: как убрать систему предупреждений? Достаточно будет просто убрать надпись "Предупреждений: 0". Искал по форуму и наткнулся на ваш совет использовать стандартную версию форума вместо вашей сборки Мне такой вариант не подходит, сборка нравится. Но форум делаю для хорошо знакомых друг с другом людей и эта опция совсем не к месту. Друзья не поймут
Offline
@alec, код отвечающий за эту модификацию помечен в php как MOD warnings.
В viewtopic нужно удалить
// MOD warnings - Visman
$result = $db->query('SELECT id, message, poster, posted FROM '.$db->prefix.'warnings WHERE id IN ('.implode(',', $post_ids).')', true) or error('Unable to fetch warnings', __FILE__, __LINE__, $db->error());
$warnings = array();
while ($warning = $db->fetch_assoc($result))
$warnings[$warning['id']] = '<cite>'.format_time($warning['posted']).' '.pun_htmlspecialchars($warning['poster']).' '.$lang_common['wrote'].'</cite>'.parse_message($warning['message'], false).'';
// MOD warnings - Visman
$user_info[] = '<dd><span>'.$lang_topic['Warnings'].'<a href="search.php?action=show_user_warn&user_id='.$cur_post['poster_id'].'"> '.$cur_post['warning_all'].' </a></span></dd>';
// MOD warnings - Visman
else if ($cur_post['poster_id'] == $pun_user['id'])
{
$user_info[] = '<dd><span>'.$lang_topic['Warnings'].'<a href="search.php?action=show_user_warn"> '.$cur_post['warning_all'].' </a></span></dd>';
}
<?php if (isset($warnings[$cur_post['id']])): ?>
<div class="postwarn">
<?php echo $warnings[$cur_post['id']]."\n" ?>
</div>
<?php endif; ?>
В edit.php
if ($is_admmod)
{
$warning = pun_linebreaks(pun_trim($_POST['warning']));
if ($warning != $cur_post['warning'])
{
$db->query('DELETE FROM '.$db->prefix.'warnings WHERE id='.$id) or error('Unable to remove warning', __FILE__, __LINE__, $db->error());
$sql_warm = '';
if (strlen($_POST['warning']) > 0 )
{
$db->query('INSERT INTO '.$db->prefix.'warnings (id, poster, poster_id, posted, message) VALUES('.$id.', \''.$db->escape($pun_user['username']).'\', '.$pun_user['id'].', '.time().', \''.$db->escape($_POST['warning']).'\')') or error('Unable to insert warning', __FILE__, __LINE__, $db->error());
$sql_warm = ', warning_flag=1';
}
$result = $db->query('SELECT COUNT(p.id) FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'warnings AS w ON w.id=p.id WHERE p.poster_id='.$cur_post['poster_id']) or error('Unable to sum for posts', __FILE__, __LINE__, $db->error());
$num_warn = $db->result($result);
$db->query('UPDATE '.$db->prefix.'users SET warning_all='.$num_warn.$sql_warm.' WHERE id='.$cur_post['poster_id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
}
}
<?php if ($is_admmod): ?> <label><strong><?php echo $lang_common['Moderator'] ?></strong><br />
<input class="longinput" type="text" name="warning" size="80" maxlength="5000" tabindex="<?php echo $cur_index++ ?>" value="<?php echo pun_htmlspecialchars(isset($_POST['warning']) ? $_POST['warning'] : $cur_post['warning']) ?>" /><br /></label>
<?php elseif ($cur_post['warning'] != ''): ?>
<div class="postwarn">
<?php echo pun_htmlspecialchars($cur_post['warning'])."\n" ?>
</div>
<?php endif; ?>
В search.php
// MOD warnings - Visman
else if ($action == 'show_user_warn')
{
if ($pun_user['is_guest'])
message($lang_common['No permission'], false, '403 Forbidden');
$user_id = (isset($_GET['user_id'])) ? intval($_GET['user_id']) : $pun_user['id'];
if ($user_id < 2)
message($lang_common['Bad request'], false, '404 Not Found');
}
// MOD warnings - Visman
else if ($action == 'show_user_warn')
{
$sort_by = 9;
$show_as = 'posts';
$sort_dir = 'DESC';
$result = $db->query('SELECT p.id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'warnings AS w ON w.id=p.id INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=t.forum_id AND fp.group_id='.$pun_user['g_id'].') WHERE p.poster_id='.$user_id.' AND (fp.read_forum IS NULL OR fp.read_forum=1) ORDER BY w.posted DESC') or error('Unable to search for posts', __FILE__, __LINE__, $db->error());
$num_hits = $db->num_rows($result);
if (!$num_hits)
message($lang_search['No user posts']);
$search_ids = array();
while ($row = $db->fetch_row($result))
$search_ids[] = $row[0];
$search_type = array('warn', $user_id);
$db->free_result($result);
}
P.S. Возможно что-то упустил.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, большое спасибо! Всё получилось!
Теперь не могу с часовым поясом разобраться. Показывает на час больше. В настройках PHP стоит Europe/Moscow. Для проверки создавал файл с таким кодом:
<?
$date1 = date("d.m.y H:i", time());
echo $date1;
?>
Файл выдает правильное время. Пробовал изменять время в настройках PHP - файл выдает измененное время. Но на форуме ничего при этом не меняется. В настройках форума и в личных настройках пользователя указано UTC+3 Москва.
Offline
@alec, может смещение на летнее время в настройках профиля пользователя влияет?
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, и правда, поигрался с летним временем и всё заработало. Включил-выключил несколько раз и всё нормально стало. Мистика!
А можно сделать вывод названия темы в шапку каждого сообщения? Туда где время отправки сообщения, вслед за временем сразу. Буду рад если подскажете как это сделать! Спасибо вам большое за помощь!
Offline
@alec, перегрузите шапку. Да и на узком экране все вылезет, думаю. На punbb наоборот все спрашивают как убрать
В файле viewtopic.php этот код
<?php echo pun_htmlspecialchars($cur_topic['subject']) ?>
в подходящее для вас место этой строки
<h2><span><span class="conr">#<?php echo ($start_from + $post_count) ?></span> <a href="viewtopic.php?pid=<?php echo $cur_post['id'].'#p'.$cur_post['id'] ?>"><?php echo format_time($cur_post['posted']) ?></a></span></h2>
ставите, вероятнее всего между </a> и </span>.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, огромное вам спасибо за советы! Вы хороший человек С вашей помощью запустил форум и запустил на него форумчан, понемногу осваиваемся. Всплыло еще два вопроса:
1. При загрузке картинок через встроенный мод у некоторых пользователей они отображаются в сообщениях нормально, а у некоторых всплывает заглушка NO FILE. Прямо мистика какая-то! Человек загружал картинки через браузер Opera на Windows 10, я их вижу на Mac OS во всех браузерах - Firefox, Chrome, Safari. А вот другие пользователи Chrome на Mac и Win 7 жалуются что видят картинки через одну. Посоветовал им почистить кеш в браузере, посмотрим что из этого выйдет.
2. Просят календарь дней рождений Поискал здесь по форуму и нашел только сообщения 8-10 летней давности, усомнился в их актуальности. В идеале хочется графу "День рождения" в профиле и раздел "Календарь" в верхнем меню, там где "Главная", "Пользователи", "Поиск" и т.д.
Очень благодарен за советы!!!
Offline
По картинкам: смотрите лог доступа к файлам на своем сервере и лог ошибок рядом. Если в логе доступа все ответы имеют 200 код (т.е. все OK), то просите пользователей с проблемами открывать в браузере консоль на вкладке Сеть во время посещения форума и смотреть ответы сервера с ошибками, чтобы понять в чем причина.
По календарю ни чего толкового не подскажу, так как не интересовался таким модом. Если где есть наработки 8-10 давности, то это для версии 1.2.xx. Про их функционал не в курсе.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, Спасибо, буду разбираться! Появился еще более насущный вопрос.
Пользователей постоянно выкидывает, просит заново пароль. Меня самого на стационарном компе выкидовало всего пару раз. На айфоне выкидывает постоянно, при каждом посещении с интервалом более часа. К слову, здесь, на этом форуме меня не выкидывало ни разу. После поиска по форуму попробовал увеличить таймаут визита, поставил максимальное значение 99999, но получил обратный результат — отошел от компьютера на час и снова увидел страницу ввода пароля. На сервере в настройках PHP установлено московское время. На форуме сидят люди из разных часовых поясов, в том числе из сильно далеких от московского. Подскажите пожалуйста как решить эту проблему, постоянные требования авторизации надоедают.
Offline
@alec, если речь идет о моей сборке, то выкидывать может в 1 случае, и то только админов и модераторов:
Таймаут визита может повлиять, только на тех кто не ставит галку Запомнить меня при входе на форум.
Если человек включил галку Запомнить меня при входе, то минимум 2 недели с последнего входа на форум он не вылетит.
Тут https://redbot.org/ введите адрес своего форума и покажите что он вам ответит.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, сборка ваша Выкидывало как раз меня и модераторов! Галку убрал, должно помочь, скорее всего у большинства из нас динамический айпи и дело как раз в этом.
RedBot вот что говорит:
HTTP/1.1 403 Forbidden
Date: Wed, 08 Mar 2017 13:40:32 GMT
Server: Apache
X-Powered-By: PHP/5.6.30
Expires: Thu, 21 Jul 1977 07:30:00 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
X-Frame-Options: deny
Last-Modified: Wed, 08 Mar 2017 13:40:32 GMT
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Offline
RedBot вот что говорит:
Это не то что надо. Ниже он пишет результат проверки, что-то такое:
General
The server's clock is correct.
The Content-Length header is correct.
Content Negotiation (Content Negotiation response )
The compressed response is negotiated, but doesn't have an appropriate Vary header.
The response body is different when content negotiation happens.
Content negotiation for gzip compression is supported, saving 73%.
Caching
The resource last changed 25 days 17 hr ago.
This response allows all caches to store it.
This response allows a cache to assign its own freshness lifetime.
Validation (ETag Validation response ) (Last-Modified Validation response )
If-Modified-Since conditional requests are supported.
If-None-Match conditional requests are supported.
Partial Content (Partial Content response )
A ranged request returned the correct partial content.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
Это не то что надо. Ниже он пишет результат проверки
General
The Pragma header is deprecated.
The Keep-Alive header is deprecated.
The server has forbidden this request.
The server's clock is correct.
Security
This response prevents some browsers from rendering it within a frame.
Caching
Pragma: no-cache is a request directive, not a response directive.
The resource last changed now.
This response allows all caches to store it.
The pre-check and post-check Cache-Control directives are both '0'.
This response is already stale.
This response might be served by a cache, even though it is stale.
Validation (Last-Modified Validation response )
An If-Modified-Since conditional request returned the full content, but it had changed.
Offline
Страницы 1