Пропустить

Как запретить пользователю добавлять сообщения?

Идеи для расширения функциональности phpBB 2.0.x

Как запретить пользователю добавлять сообщения?

Сообщение Федот » 17.11.2005 9:59

Здраствуйте.
Возможно ли как-нибуть запретить пользователю добавлять сообщения, вто время как просматривать он их смог бы? Так называемый Read Only. А то обычный бан это всё-таки грубо уж слишком =(

Зарание спасибо!

Федот
 

Сообщение Romiyo » 17.11.2005 10:24

############################################################## 
## 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 ;)
##############################################################

phpbbhacks.com -> Disable Posting By User
Неадекватен
Аватара пользователя
Romiyo
Неадекватен
 
Сообщения: 615
Зарегистрирован: 16.12.2004 11:36
Откуда: tln.ee
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Xpert » 17.11.2005 10:35

Romiyo
Я не нашел :)
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Romiyo » 17.11.2005 10:46

Xpert писал(а):Я не нашел
:shock: Я ж дал ссылку
Неадекватен
Аватара пользователя
Romiyo
Неадекватен
 
Сообщения: 615
Зарегистрирован: 16.12.2004 11:36
Откуда: tln.ee
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Xpert » 17.11.2005 11:48

Я по названию из шапки искал. :)
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 17.11.2005 11:53

Как вариант, можно использовать Jail Mod, если надо сделать ограничение на время =)
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2581
Зарегистрирован: 11.01.2005 15:29
Откуда: Питер
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.

Сообщение Romiyo » 17.11.2005 12:09

В догонку локализация к Disable Posting By User (не пинайте, переводил давно и хз кому)
#
# --- [ ОТКРЫТЬ ] ---
#
language/lang_english/lang_russian.php

#
# --- [ НАЙТИ ] ---
#
?>

#
# --- [ ДОБАВИТЬ, ПЕРЕД ] ---
#
$lang['User_can_post'] = 'Может писать сообщения';
$lang['Ban'] = 'Извините, вы не можете создавать темы; отправлять и редактировать свои сообщения. Причина: <b>нарушение правил</b>.<br /><br />Вы можете проверять, получать и отправлять Личные Сообщения.'; 
Неадекватен
Аватара пользователя
Romiyo
Неадекватен
 
Сообщения: 615
Зарегистрирован: 16.12.2004 11:36
Откуда: tln.ee
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение avm » 17.11.2005 15:13

А не лучше присвоить права на постинг и т.д. определенной закрытой группе. Всех юзеров туда включать автоматически (можно сразу при регистрации, а можно при проявлении интеллекта в ЛС ;) И если нужно сделать кого-то "read only" просто выкидываем юзера из группы.
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.18
 
Сообщения: 584
Зарегистрирован: 16.01.2005 11:40
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Федот » 18.11.2005 15:45

Огромное спасибо!!!
Всем =))

Федот
 

Сообщение OMus-VeNuS » 19.11.2005 16:51

Как подружить с быстрым ответом? Чтоб он не показывался только если юзеру мона было писать сообщения ;)

OMus-VeNuS
 

Сообщение Romiyo » 19.11.2005 20:20

avm писал(а):А не лучше присвоить права на постинг и т.д.
если сабж относится ко всем пользователям, то, может и лучше, но никак не для одного пользователя. Из-за одного дауна перелопачивать админку?..
OMus-VeNuS писал(а):Как подружить с быстрым ответом?
Автору мода в ЛС кинуть ссылку на эту тему.
Неадекватен
Аватара пользователя
Romiyo
Неадекватен
 
Сообщения: 615
Зарегистрирован: 16.12.2004 11:36
Откуда: tln.ee
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение OMus-VeNuS » 19.11.2005 23:22

где ж его найти-то... автора...
Тут запросы если не ошибаюсь? ;)
Запрос на создание ADD-ON'а =))) сделайте плиииз

OMus-VeNuS
 

Сообщение NCom » 05.01.2006 19:02

А возможно ли добавить такую функцию модераторам? То есть, что бы модераторы могли запрещать пользователям писать сообщения или личные сообщения.

NCom
phpBB 2.0.23
 
Сообщения: 815
Зарегистрирован: 05.01.2006 14:59
Откуда: Ставрополь
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Предупреждения: 1

Сообщение Brun » 15.01.2006 22:26

А как быть в такой ситуации:
постить в теме могут только члены группы и автор темы?

Заранее спасибо.

Brun
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 15.01.2006 22:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Carbofos » 09.07.2006 16:49

посмотрел мод phpbbhacks.com -> Disable Posting By User... предлагаю схему одновременно попроще и получше:
#
#-----[ 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>&nbsp;&nbsp; 
		<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>&nbsp;&nbsp; 
		<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 />Вы можете проверять, получать и отправлять Личные Сообщения.'; 

Если юзеру одновременно запретить посылать ЛС, то эта строка немного не к месту...
Аватара пользователя
Carbofos
phpBB 2.0.2
 
Сообщения: 158
Зарегистрирован: 04.03.2005 20:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Запросы модов для phpBB 2.0.x

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы