############################################################## 
## MOD Başlık: özel ban sistemi
## MOD Yazar: emrag < emrah987@hotmail.com > (Emrah Türkmen)  www.canver.net
## MOD Açıklama: Bu mod normal bandan biras bu modla banladığınız kişi foruma giriş 
##		 yapabiliyor ancak mesaj atamıyor yada eski mesajlarını düzenleyemiyor.
##		 Sadece özel mesajlarını kontrol edip bir başkasına özel mesaj gönderebiliyor.
##		 Mesela bir kullancınızı uyaracak ve siteden geçici bir süre banlayacaksınız.Ama profilinde
##		 ne e-mail nede başka bir şey var ancak sürekli olarak foruma girip mesaj atıyor.
##		 Normal şartlarda banlarsak kullanıcı foruma giremiyor.Bu modla birlikte kişinin hem
##		 foruma mesaj atmasını enelleyecek hem de ona özel mesaj yollayabilecek ve gerekli uyarı
##		 ve açıklamayı yapabileceksiniz ;)
##
##		Kullanımı: 
##		Yönetim Paneli -> Kullanıcı Yönetimi başlığı altındaki Yönetim 
##		-> kullanıcı ismini yazın -> En altta Özel admin alanları başlığı altındaki Mesaj Atabilir kısmı
##
## MOD Version: 1.0.0
## 
## Kurulum zorluğu: Orta
## Kurulum süresi : 15 dakika 
## Düzenlenecek dosyalar (7): posting.php
##			      viewtopic.php
##			      viewforum.php
##			      language/lang_turkish/lang_main.php
##			      admin/admin_users.php
##			      templates/subsilver/admin/user_edit_body.tpl
##			      templates/subsilver/subsilver.cfg
##
## Yüklenecek dosyalar:  templates/subsilver/images/lang_turkish/ban.gif
##			 db_update_ozel_ban.php
############################################################## 
##
## Yazar notları: 
##			Bir sonraki versiyonlarda eklenecek özellikler:
##
##			- Foruma mesaj atması engellenen kullanıcının başlıkları görmesi engellenecek
##			  (yönetim panelinden bu özellik açılıp kapatılabilecek)
##
##			- Yönetim panelinde banlanan kullanıcıların bir listesi olacak
##
##			- Kullanıcıya süreli ban verilebilecek.
##			  (Örnek 3 gün süre ile banlanan kullanıcının banı 3. gün sonunda otomatik olarak kalkacaktır.
##
##			- ? ;)
##
## 
##############################################################
##
## Bu modu eklemeden önce lütfen dosyaların yedeğini alınız. 
##
############################################################## 
# 
#-----[ SQL ]------------------------------------------ 
# 
# bu komut yerine db_update_post.php dosyasını hostunuza upload edip çalıştırabilirsiniz ;)
#

ALTER TABLE phpbb_users ADD user_can_post TINYINT(1) default '1'

# 
#-----[ AÇ ]------------------------------------------ 
# 

language/lang_turkish/lang_main.php

#
#----[ BUL ]------------------------------------------ 
#

?>

#
#-----[ ÖNCE, EKLE ]------------------------------------------ 
# 

$lang['User_can_post'] = 'Mesaj atabilir';
$lang['Ban'] = 'Şu an siteden banlanmış durumdasınız.Yeni bir başlık açamaz, mesajlara cevap yazamaz yada eski mesajlarınızı düzenleyemezsiniz. Sadece özel mesajlarınızı kontrol edebilir yada bir başkasına özel mesaj yollayabilirsiniz.'; 

# 
#-----[ AÇ ]------------------------------------------ 
# 

posting.php

#
#----[ BUL ]------------------------------------------ 
#

	if ( $post_info['forum_status'] == FORUM_LOCKED && !$is_auth['auth_mod']) 
	{ 
	   message_die(GENERAL_MESSAGE, $lang['Forum_locked']); 
	} 


#
#-----[ ÖNCE, EKLE ]------------------------------------------ 
# 

// özel ban by emrag
$userid = $userdata['user_id'];
$sql = "SELECT user_can_post
	 FROM " . USERS_TABLE . "
	 WHERE user_id = $userid";
if ( !($result = $db->sql_query($sql)) )
{
		message_die(GENERAL_MESSAGE, 'Could not obtain user_can_post data');
}
	$row = $db->sql_fetchrow($result); 
	$user_can_post = $row['user_can_post'];

	if (!$user_can_post)
	{
		$post_info['forum_status'] = FORUM_LOCKED;
	}
// özel ban by emrag

#
#----[ AÇ ]------------------------------------------ 
#

admin/admin_users.php

#
#----[ BUL ]------------------------------------------ 
#

		$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;


#
#-----[ ÖNCE, EKLE ]------------------------------------------ 
# 

		$user_can_post = ( !empty($HTTP_POST_VARS['user_can_post']) ) ? intval( $HTTP_POST_VARS['user_can_post'] ) : 0;

#
#----[ BUL ]------------------------------------------ 
#

		//
		// Update entry in DB
		//
		if( !$error )
		{
			$sql = "UPDATE " . USERS_TABLE . "


#
#-----[ SATIRDA BUL ]------------------------------------------ 
# 

, user_active = $user_status

#
#----[ SONRA EKLE ]------------------------------------------ 
#

, user_can_post = $user_can_post

#
#----[ BUL ]------------------------------------------ 
#

		$user_status = $this_userdata['user_active'];
		$user_allowavatar = $this_userdata['user_allowavatar'];

#
#-----[ ÖNCE, EKLE ]------------------------------------------ 
# 

		$user_can_post = $this_userdata['user_can_post'];

#
#----[ BUL ]------------------------------------------ 
#

			$s_hidden_fields .= '<input type="hidden" name="user_status" value="' . $user_status . '" />';
			$s_hidden_fields .= '<input type="hidden" name="user_allowpm" value="' . $user_allowpm . '" />';

#
#----[ ÖNCE, EKLE ]------------------------------------------ 
#

			$s_hidden_fields .= '<input type="hidden" name="user_can_post" value="' . $user_can_post . '" />';

#
#----[ BUL ]------------------------------------------ 
#

			'ALLOW_PM_YES' => ($user_allowpm) ? 'checked="checked"' : '',
			'ALLOW_PM_NO' => (!$user_allowpm) ? 'checked="checked"' : '',

#
#----[ ÖNCE, EKLE ]------------------------------------------ 
#

			'USER_CAN_POST_YES' => ($user_can_post) ? 'checked="checked"' : '',
			'USER_CAN_POST_NO' => (!$user_can_post) ? 'checked="checked"' : '',

#
#----[ BUL ]------------------------------------------ 
#

			'L_SPECIAL' => $lang['User_special'],
			'L_SPECIAL_EXPLAIN' => $lang['User_special_explain'],

#
#----[ ÖNCE, EKLE ]------------------------------------------ 
#

			'L_USER_CAN_POST' => $lang['User_can_post'],

#
#----[ AÇ ]------------------------------------------ 
#

templates/subsilver/admin/user_edit_body.tpl

#
#----[ BUL ]------------------------------------------ 
#

	<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>

#
#-----[ SONRA, EKLE ]------------------------------------------ 
# 

	<tr> 
	  <td class="row1"><span class="gen">{L_USER_CAN_POST}</span></td>
	  <td class="row2"> 
		<input type="radio" name="user_can_post" value="1" {USER_CAN_POST_YES} />
		<span class="gen">{L_YES}</span>&nbsp;&nbsp; 
		<input type="radio" name="user_can_post" value="0" {USER_CAN_POST_NO} />
		<span class="gen">{L_NO}</span></td>
	</tr>

#
#----[ AÇ ]------------------------------------------ 
#

viewtopic.php

#
#----[ BUL ]------------------------------------------ 
#

$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new'];
$reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked1'] : $lang['Reply_to_topic'];
$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'];
$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'];

#
#-----[ BUNUNLA DEĞİŞTİR ]------------------------------------------ 
# 

// özel ban by emrag
$userid = $userdata['user_id'];
$sql = "SELECT user_can_post
	 FROM " . USERS_TABLE . "
	 WHERE user_id = $userid";
if ( !($result = $db->sql_query($sql)) )
{
		message_die(GENERAL_MESSAGE, 'Could not obtain user_can_post data');
}
	$row = $db->sql_fetchrow($result); 
	$user_can_post = $row['user_can_post'];

	if (!$user_can_post)
	{
		$post_info['forum_status'] = FORUM_LOCKED;
	}
// özel ban by emrag

if(!$user_can_post)
{
$reply_img = $images['ban'];
$reply_alt = $lang['Ban'];
$post_img = $images['ban'];
$post_alt = $lang['Ban'];
}
else
{
$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new'];
$reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked1'] : $lang['Reply_to_topic'];
$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'];
$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'];
}

#
#----[ AÇ ]------------------------------------------ 
#

viewforum.php

#
#----[ BUL ]------------------------------------------ 
#

$template->assign_vars(array(
	'FORUM_ID' => $forum_id,
	'FORUM_NAME' => $forum_row['forum_name'],

#
#-----[ ÖNCE, EKLE ]------------------------------------------ 
# 

// özel ban by emrag
$userid = $userdata['user_id'];
$sql = "SELECT user_can_post
	 FROM " . USERS_TABLE . "
	 WHERE user_id = $userid";
if ( !($result = $db->sql_query($sql)) )
{
		message_die(GENERAL_MESSAGE, 'Could not obtain user_can_post data');
}
	$row = $db->sql_fetchrow($result); 
	$user_can_post = $row['user_can_post'];

	if (!$user_can_post)
	{
		$post_info['forum_status'] = FORUM_LOCKED;
	}
// özel ban by emrag
if(!$user_can_post)
{
$post_img_replace_with = $images['ban'];
$l_post_new_topic_replace_with = $lang['Ban'];
}
else
{
$post_img_replace_with = ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'];
$l_post_new_topic_replace_with = ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'];
}

#
#----[ BUL ]------------------------------------------ 
#

	'POST_IMG' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'],

#
#-----[ BUNUNLA DEĞİŞTİR ]------------------------------------------ 
# 

	'POST_IMG' => $post_img_replace_with,

#
#----[ BUL ]------------------------------------------ 
#

	'L_POST_NEW_TOPIC' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'], 

#
#-----[ BUNUNLA DEĞİŞTİR ]------------------------------------------ 
# 

	'L_POST_NEW_TOPIC' => $l_post_new_topic_replace_with, 

#
#----[ AÇ ]------------------------------------------ 
#

templates/subsilver/subsilver.cfg

#
#----[ BUL ]------------------------------------------ 
#

$images['reply_new'] = "$current_template_images/{LANG}/reply.gif";
$images['reply_locked'] = "$current_template_images/{LANG}/reply-locked.gif";

#
#-----[ SONRA, EKLE ]------------------------------------------ 
# 

$images['ban'] = "$current_template_images/{LANG}/ban.gif";

#
#----[ KOPYALA ]------------------------------------------ 
#

templates/subsilver/images/lang_turkish/ban.gif --> templates/subsilver/images/lang_turkish/ 

#
#-----[ BÜTÜN DOSYALARI KAYDET/KAPAT ]------------------------------------------ 
#
# EoM
