Как запретить пользователю добавлять сообщения?
Как запретить пользователю добавлять сообщения?
Здраствуйте.
Возможно ли как-нибуть запретить пользователю добавлять сообщения, вто время как просматривать он их смог бы? Так называемый Read Only. А то обычный бан это всё-таки грубо уж слишком =(
Зарание спасибо!
Возможно ли как-нибуть запретить пользователю добавлять сообщения, вто время как просматривать он их смог бы? Так называемый Read Only. А то обычный бан это всё-таки грубо уж слишком =(
Зарание спасибо!
-
- Неадекватен
- Сообщения: 603
- Зарегистрирован: 20 лет 4 месяца
- Откуда: tln.ee
Код: Выделить всё
##############################################################
## MOD Titlr: Special ban system
## MOD Author: emrag < emrah987@hotmail.com > (Emrah Tьrkmen) www.canver.net
## MOD Description: This hack add a new field in user management to Special admin-only fields
## "user can post".(see the screenshots)If in a user profile you select "NO"
## user can login forum but can not post any topic, reply or he/she can not
## edit his/her old messages.Only can see the posts and can check, get or send
## private messages the others this hack will be very useful to warn users ;)
##############################################################
Неадекватен
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- Неадекватен
- Сообщения: 603
- Зарегистрирован: 20 лет 4 месяца
- Откуда: tln.ee
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- Поддержка
- Сообщения: 5426
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Как вариант, можно использовать Jail Mod, если надо сделать ограничение на время =)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Неадекватен
- Сообщения: 603
- Зарегистрирован: 20 лет 4 месяца
- Откуда: tln.ee
В догонку локализация к Disable Posting By User (не пинайте, переводил давно и хз кому)
Код: Выделить всё
#
# --- [ ОТКРЫТЬ ] ---
#
language/lang_english/lang_russian.php
#
# --- [ НАЙТИ ] ---
#
?>
#
# --- [ ДОБАВИТЬ, ПЕРЕД ] ---
#
$lang['User_can_post'] = 'Может писать сообщения';
$lang['Ban'] = 'Извините, вы не можете создавать темы; отправлять и редактировать свои сообщения. Причина: <b>нарушение правил</b>.<br /><br />Вы можете проверять, получать и отправлять Личные Сообщения.';
Неадекватен
-
- Former team member
- Сообщения: 582
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Москва
А не лучше присвоить права на постинг и т.д. определенной закрытой группе. Всех юзеров туда включать автоматически (можно сразу при регистрации, а можно при проявлении интеллекта в ЛС
И если нужно сделать кого-то "read only" просто выкидываем юзера из группы.

выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
-
- Неадекватен
- Сообщения: 603
- Зарегистрирован: 20 лет 4 месяца
- Откуда: tln.ee
если сабж относится ко всем пользователям, то, может и лучше, но никак не для одного пользователя. Из-за одного дауна перелопачивать админку?..avm писал(а):А не лучше присвоить права на постинг и т.д.
Автору мода в ЛС кинуть ссылку на эту тему.OMus-VeNuS писал(а):Как подружить с быстрым ответом?
Неадекватен
-
- phpBB 2.0.11
- Сообщения: 810
- Зарегистрирован: 19 лет 3 месяца
- Откуда: Ставрополь
- Забанен: Бессрочно
-
- phpBB 1.0.0
- Сообщения: 1
- Зарегистрирован: 19 лет 3 месяца
-
- phpBB 1.4.4
- Сообщения: 158
- Зарегистрирован: 20 лет 1 месяц
посмотрел мод phpbbhacks.com -> Disable Posting By User... предлагаю схему одновременно попроще и получше:
Так молчунам внизу страницы сразу указывается, чего они не могут, еще выкинул кнопку "бан" за ненадобностью...
Добавлено спустя 1 час 18 минут 43 секунды:
Есть, правда, одна неувязочка, вот здесь:
Если юзеру одновременно запретить посылать ЛС, то эта строка немного не к месту...
Код: Выделить всё
#
#-----[ SQL ]------------------------------------------
#
ALTER TABLE phpbb_users ADD user_allow_post TINYINT(1) default '1';
#
#----[ OPEN ]------------------------------------------
#
admin/admin_users.php
#
#----[ FIND ]------------------------------------------
#
$user_status = ( !empty($HTTP_POST_VARS['user_status']) ) ? intval( $HTTP_POST_VARS['user_status'] ) : 0;
$user_allowpm = ( !empty($HTTP_POST_VARS['user_allowpm']) ) ? intval( $HTTP_POST_VARS['user_allowpm'] ) : 0;
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$user_allow_post = ( !empty($HTTP_POST_VARS['user_allow_post']) ) ? intval( $HTTP_POST_VARS['user_allow_post'] ) : 0;
#
#----[ FIND ]------------------------------------------
#
//
// Update entry in DB
//
if( !$error )
{
$sql = "UPDATE " . USERS_TABLE . "
#
#-----[ IN LINE FIND ]------------------------------------------
#
, user_active = $user_status
#
#----[ AFTER, ADD ]------------------------------------------
#
, user_allow_post = $user_allow_post
#
#----[ FIND ]------------------------------------------
#
$user_status = $this_userdata['user_active'];
$user_allowavatar = $this_userdata['user_allowavatar'];
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$user_allow_post = $this_userdata['user_allow_post'];
#
#----[ FIND ]------------------------------------------
#
$s_hidden_fields .= '<input type="hidden" name="user_status" value="' . $user_status . '" />';
$s_hidden_fields .= '<input type="hidden" name="user_allowpm" value="' . $user_allowpm . '" />';
#
#----[ BEFORE, ADD ]------------------------------------------
#
$s_hidden_fields .= '<input type="hidden" name="user_allow_post" value="' . $user_allow_post . '" />';
#
#----[ FIND ]------------------------------------------
#
'ALLOW_PM_YES' => ($user_allowpm) ? 'checked="checked"' : '',
'ALLOW_PM_NO' => (!$user_allowpm) ? 'checked="checked"' : '',
#
#----[ BEFORE, ADD ]------------------------------------------
#
'USER_CAN_POST_YES' => ($user_can_post) ? 'checked="checked"' : '',
'USER_CAN_POST_NO' => (!$user_can_post) ? 'checked="checked"' : '',
#
#----[ FIND ]------------------------------------------
#
'L_SPECIAL' => $lang['User_special'],
'L_SPECIAL_EXPLAIN' => $lang['User_special_explain'],
#
#----[ BEFORE, ADD ]------------------------------------------
#
'L_USER_CAN_POST' => $lang['User_can_post'],
#
#-----[ OPEN ]------------------------------------------
#
includes/auth.php
#
#----[ FIND ]------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Should be called after the auth() in posting.php, viewforum.php, viewtopic.php
function auth_check_allow_post($userdata, $is_auth)
{
if ( !$userdata['user_allow_post'] && !$is_auth['is_mod'] )
{
$is_auth['auth_post'] = 0;
$is_auth['auth_reply'] = 0;
$is_auth['auth_edit'] = 0;
$is_auth['auth_delete'] = 0;
$is_auth['auth_sticky'] = 0;
$is_auth['auth_announce'] = 0;
$is_auth['auth_pollcreate'] = 0;
}
return $is_auth;
}
#
#-----[ OPEN ]------------------------------------------
#
posting.php
#
#----[ FIND ]------------------------------------------
#
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info);
#
#-----[ AFTER, ADD ]------------------------------------------
#
$is_auth = auth_check_allow_post($userdata, $is_auth);
#
#----[ FIND ]------------------------------------------
#
if ( $userdata['session_logged_in'] )
{
message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_' . $is_auth_type], $is_auth[$is_auth_type . "_type"]));
}
#
#----[ REPLACE WITH ]------------------------------------------
#
if ( $userdata['session_logged_in'] )
{
if ( $userdata['user_allow_post'] )
{
$message_die = sprintf($lang['Sorry_' . $is_auth_type], $is_auth[$is_auth_type . "_type"]);
}
else
{
$message_die = $lang['Sorry_post_ban'];
}
message_die(GENERAL_MESSAGE, $message_die);
}
#
#----[ OPEN ]------------------------------------------
#
viewtopic.php
#
#----[ FIND ]------------------------------------------
#
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data);
#
#-----[ AFTER, ADD ]------------------------------------------
#
$is_auth = auth_check_allow_post($userdata, $is_auth);
#
#----[ OPEN ]------------------------------------------
#
viewforum.php
#
#----[ FIND ]------------------------------------------
#
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
#
#-----[ AFTER, ADD ]------------------------------------------
#
$is_auth = auth_check_allow_post($userdata, $is_auth);
#
#-----[ OPEN ]------------------------------------------
#
language/lang_russian/lang_main.php
#
#----[ FIND ]------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['User_can_post'] = 'Может писать сообщения';
$lang['Sorry_post_ban'] = 'Извините, вы не можете создавать темы, отправлять и редактировать свои сообщения. Причина: <b>нарушение правил</b>.<br /><br />Вы можете проверять, получать и отправлять Личные Сообщения.';
#
#----[ OPEN ]------------------------------------------
#
templates/subsilver/admin/user_edit_body.tpl
#
#----[ FIND ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_ALLOW_AVATAR}</span></td>
<td class="row2">
<input type="radio" name="user_allowavatar" value="1" {ALLOW_AVATAR_YES} />
<span class="gen">{L_YES}</span>
<input type="radio" name="user_allowavatar" value="0" {ALLOW_AVATAR_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_USER_CAN_POST}</span></td>
<td class="row2">
<input type="radio" name="user_allow_post" value="1" {USER_CAN_POST_YES} />
<span class="gen">{L_YES}</span>
<input type="radio" name="user_allow_post" value="0" {USER_CAN_POST_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
#
#-----[ SAVE ALL FILES/CLOSE ]------------------------------------------
#
# EoM
Добавлено спустя 1 час 18 минут 43 секунды:
Есть, правда, одна неувязочка, вот здесь:
Код: Выделить всё
$lang['Sorry_post_ban'] = 'Извините, вы не можете создавать темы, отправлять и редактировать свои сообщения. Причина: <b>нарушение правил</b>.<br /><br />Вы можете проверять, получать и отправлять Личные Сообщения.';