[ D3M-TeaM ]

 


ملحوظة : التسجيل الآن فى المنتدى مجاني سارع الان بالتسجيل

العودة   [ D3M-TeaM ] > دعم تطوير المواقع > قسم تطوير المواقع
الدعم الفني ارشفة مواضيع منتداك دليل المواقع - Dir


الملاحظات

قسم تطوير المواقع جميع ما يتعلق بالمواقع يطرح هنا . . .


اعلانك هنا يحقق لك الشهرة والنجاح

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 2009-08-12, 05:50 PM
الصورة الرمزية Link Dot Net
Link Dot Net Link Dot Net غير متواجد حالياً
New Developer
 
تاريخ التسجيل: Mar 2009
المشاركات: 1,406
معدل تقييم المستوى: 9
Link Dot Net is on a distinguished road
افتراضي انشاء قسم و جعل الاعضاء يرون مواضيعهم فقط فيه و لا يرون مواضيع الاخرين, لا يمكن رؤية الموضوع الا من

بسم الله الرحمن الرحيم


الهاك متوافق مع النسخ 2.2 و 2.3


يستخدم لعمل قسم و جعل مواضيع العضو فقط تظهر له بدون ان يرى مواضيع الاعضاء الاخرين

تستخدم مثلا عند انشاء قسم لاختبارات الاشراف

الهاك طويل و يحتاج الكثير من التركيز

الملفات التى سيتم التعديل عليها :


sources/action_public/forums.php
sources/classes/class_forums.php
sources/components_public/profile/posts.php
sources/components_public/profile/topics.php
skin_acp/IPB2_Standard/acp_skin_html/cp_skin_forums.php


طريقة التركيب

أولا : من لوحة تحكم الادمن ACP اذهب الى Admin

ومنها الى SQL Toolbox

و اذهب الى اخر الصفحه و اضف الامر التالى


كود:
alter table ibf_forums add is_private numeric(1) default 0;
ثم اضغط على Run Query


ثانيا : افتح الملف sources/action_admin/forums.php

وابحث عن


كود:
'upload_perms'				=> '',
							'download_perms'			=> '',
واضف تحتها


كود:
 //private forum setting
							'is_private'			=> 0,
ثم ابحث عن


كود:
 # Permission settings
		$form['permission_showtopic']	= $this->ipsclass->adskin->form_yes_no(  'permission_showtopic'   , ( isset($_POST['permission_showtopic']) AND $_POST['permission_showtopic'] ) ? $_POST['permission_showtopic'] : $forum['permission_showtopic'] );
واضف بعدها


كود:
# Private Forum setting
		$form['is_private'] = $this->ipsclass->adskin->form_yes_no('is_private',(isset($_POST['is_private']) AND $_POST['is_private']) ? $_POST['is_private']: $forum['is_private']);
ثم ابحث عن


كود:
'notify_modq_emails'	  => $this->ipsclass->input['notify_modq_emails'],
						 'permission_showtopic'	=> intval($this->ipsclass->input['permission_showtopic']),
واضف بعدها


كود:
//private forum setting
						 'is_private'		   => intval($this->ipsclass->input['is_private']),
ثم احفظ الملف مرة اخرى و اعد رفعه


ثالثـا : افتح الملف sources/action_public/forums.php

وابحث عن


كود:
if ( $topicfilter == 'ireplied' )
واضف فوقه


كود:
//turn on private forum if member is not mod
		if (($this->forum['is_private']) AND ($this->ipsclass->member['is_mod'] == 0)) {
			$privatequery = " AND t.starter_id=".$this->ipsclass->member['id'];
		} else {
			$privatequery = "";
		}
ثم ابحث عن


كود:
$this->ipsclass->DB->simple_construct( array( 'select' => '*',
														  'from'   => 'topics t',
														  'where'  =>  $query . $add_query,
														  'order'  => 't.pinned DESC, '.$topic_sort.' t.'.$sort_key .' '. $r_sort_by,
														  'limit'  => array( intval($First), $this->ipsclass->vars['display_max_topics'] )
												 )	  );
وستبدله بـ


كود:
$this->ipsclass->DB->simple_construct( array( 'select' => '*',
														  'from'   => 'topics t',
														  'where'  =>  $query . $add_query . $privatequery,
														  'order'  => 't.pinned DESC, '.$topic_sort.' t.'.$sort_key .' '. $r_sort_by,
														  'limit'  => array( intval($First), $this->ipsclass->vars['display_max_topics'] )
												 )	  );
ثم احفظ الملف و اعد رفعه .


رابعا : افتح الملف sources/action_public/search.php

وابحث فى الوظيفة function

get_searchable_forums

عن



كود:
//-----------------------------------------
		// Return
		//-----------------------------------------
		
		$this->searchable_forums = $final;

		return implode( "," , $final );
وأضف اعلاه


كود:
//-----------------------------------------
	// Remove private forums
	//-----------------------------------------

	$private_forums= $this->ipsclass->DB->simple_exec_query( array ('select' => 'id', 'from' => 'forums', 'where'=> 'is_private=1'));

	if (is_array( $private_forums) and count( $private_forums) ) {
		if (is_array($final) and count($final)){
			$tmp = $final;
			$final = array();
			foreach ($tmp as $id) {
				if (in_array($id,$private_forums)){	
					continue;
				} else {
					$final[] = $id;
				}
			}
		}
	}
ثم احفظ الملف و ارفعه مرة أخرى


خامسـا : افتح الملف sources/classes/class_forums.php

وابحث عن


كود:
$forum_data['last_post'] = $this->ipsclass->get_date($forum_data['last_post'], 'LONG');
واضف اعلاه


كود:
//change last poster info if forum is private and member is not mod
		if (($forum_data['is_private'] == 1) AND !($this->ipsclass->member['g_is_supmod']) and (!isset($this->ipsclass->member['_moderator'][ $forum_data['id'] ]['post_q']) AND $this->ipsclass->member['_moderator'][ $forum_data['id'] ]['post_q'] != 1 )) {
			$this->ipsclass->DB->simple_construct( array( 'select' => '*',
											'from' => 'topics',
											'where' => "forum_id=".$forum_data['id']."  and starter_id=".$this->ipsclass->member['id'],
											'order' => 'last_post DESC',
											'limit' => '0,1',
										 )	  );
			$this->ipsclass->DB->simple_exec();
			$private_row=$this->ipsclass->DB->fetch_row();
			$forum_data['last_post'] = $private_row['last_post'];
			$forum_data['last_id'] = $private_row['tid'];
			$forum_data['last_title'] = $private_row['title'];
			$forum_data['last_poster_id'] = $private_row['last_poster_id'];
			$forum_data['last_poster_name'] = $private_row['last_poster_name'];
		}
ثم احفظ الملف و ارفعه مرة أخرى


سادسـا : افتح الملف sources/components_public/profile/posts.php

وابحث عن


كود:
$content .= $this->ipsclass->compiled_templates['skin_profile']->personal_portal_single_column( $row, $this->ipsclass->lang['profile_read_topic'], $this->ipsclass->base_url.'act=findpost&pid='.$row['pid'], $this->ipsclass->lang['profile_in_topic'] . $row['title'] );
واستبدله بـ


كود:
//-----------------------------------------
			// check for private forums
			//-----------------------------------------
	
			$t = $this->ipsclass->DB->simple_exec_query( array ('select' => 'forum_id',
										'from'	=> 'topics',
										'where'	=> 'tid='.$row['topic_id']));
			$f = $this->ipsclass->DB->simple_exec_query( array ('select' => 'is_private',
										'from'	=> 'forums',
										'where'	=> 'id='.$t['forum_id']));
			if ($f['is_private'] == 1)
			{
				if (($this->ipsclass->member['g_is_supmod']) or ($this->ipsclass->member['id'] == $row['starter_id']))
				{
					$content .= $this->ipsclass->compiled_templates['skin_profile']->personal_portal_single_column( $row, $this->ipsclass->lang['profile_read_topic'], $this->ipsclass->base_url.'act=findpost&pid='.$row['pid'], $this->ipsclass->lang['profile_in_topic'] . $row['title'] );
				}
			} else {
				$content .= $this->ipsclass->compiled_templates['skin_profile']->personal_portal_single_column( $row, $this->ipsclass->lang['profile_read_topic'], $this->ipsclass->base_url.'act=findpost&pid='.$row['pid'], $this->ipsclass->lang['profile_in_topic'] . $row['title'] );
			}

ثم احفظ الملف و ارفعه مرة أخرى


سابعا : افتح الملف sources/components_public/profile/topics.php

وابحث عن


كود:
$content .= $this->ipsclass->compiled_templates['skin_profile']->personal_portal_single_column( $row, $this->ipsclass->lang['profile_read_topic'], $this->ipsclass->base_url.'act=findpost&pid='.$row['pid'], $row['title'] );
واستبدله بـ


كود:
//-----------------------------------------
			// check for private forums
			//-----------------------------------------
	
			$f = $this->ipsclass->DB->simple_exec_query( array ('select' => 'is_private',
										'from'	=> 'forums',
										'where'	=> 'id='.$row['forum_id'] ));
			if ($f['is_private'] == 1)
			{
				if (($this->ipsclass->member['g_is_supmod']) or ($this->ipsclass->member['id'] == $row['starter_id']))
				{
					$content .= $this->ipsclass->compiled_templates['skin_profile']->personal_portal_single_column( $row, $this->ipsclass->lang['profile_read_topic'], $this->ipsclass->base_url.'act=findpost&pid='.$row['pid'], $row['title'] );
				}
			} else {
				$content .= $this->ipsclass->compiled_templates['skin_profile']->personal_portal_single_column( $row, $this->ipsclass->lang['profile_read_topic'], $this->ipsclass->base_url.'act=findpost&pid='.$row['pid'], $row['title'] );
			}
واحفظ الملف و ارفعه مرة أخرى


ثامنا : افتح الملف skin_acp/IPB2_Standard/acp_skin_html/cp_skin_forums.php

وابحث عن


كود:
<tr>
		   <td width='40%' class='tablerow1'><strong>Allow members who can see the forum but cannot read topics to see the topic list</strong><div class='desctext'>If yes, the member will be able to see the topic titles but will not be able to read the topic posts when clicked.</div></td>
		   <td width='60%' class='tablerow2'>{$form['permission_showtopic']}</td>
	</tr>

و اضف اسفلها


كود:
<tr>
		<td width='40%' class='tablerow1'><strong>Private Forum?</strong></td>
		<td width='60%' class='tablerow2'>{$form['is_private']}</td>
	</tr>


انتهى و بالتوفيق

رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
ما, من, مواضيع, مواضيعهم, الموضوع, الا, الاخرين, الاعضاء, انشاء, يمكن, يرون, دعم, رؤية, فيه, فقط, و, قسم


الذين يشاهدون محتوى الموضوع الآن : 1 ( المطورين 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الفرصة الدهبية , كيفية انشاء موقع مجاني + كيفية اعداد صفحات الموقع, لا تضيع فرصة العمر KIGO-EGYPT قسم تطوير المواقع 3 2010-01-02 10:26 AM
طلبات تواقيع لحبايبنا الاعضاء AHMeD ALAMRi قسم دروس الفوتوشوب 5 2009-12-13 01:23 PM
انها الحقيقة انشاء منتدى /تصميم منتدى كل هذا مجانا والى الابد salahnecibi قسم تطوير المواقع 0 2009-07-09 08:53 PM
مواضيع لا ردود لها (اجعل جميع مواضيع منتداك مردود عليها) jan kevin قسم تطوير منتديات 3.6.0 | 3.7.0 | 3.8.0 2 2008-12-30 02:36 AM


الساعة الآن 08:03 AM


RSS Feeds احدث مواضيع المنتدى

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2016, vBulletin Solutions, Inc.