mod Only Admin Edit Post แก้ไขโพสได้เฉพาะผู้ดูแลระบบ

แนะนำ Mod ต่างๆ ของ PHPBB3 แนะนำความสามารถ ของ mod การติดตั้ง การเข้ากันได้กับเวอร์ชั่น

Moderator: mindphp

ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

mod Only Admin Edit Post แก้ไขโพสได้เฉพาะผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

รายละเอียดเกี่ยวกับ Only Admin Edit Pos
mod ตัวนี้มีไว้เพื่อทำให้เฉพาะผู้ดูแลระบบสามารถแก้ไข / ลบ / โพสต์ของตนและของผู้อื่นได้
พัฒนาโดย : RMcGirr83
Version : 1.0.5
phpBB Version(s) : 3.0.11
โหลดไดที่ : https://www.phpbb.com/customise/db/download/id_84718
10.jpg
10.jpg (34.06 KiB) Viewed 2997 times
9.jpg
9.jpg (35.74 KiB) Viewed 2997 times
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Only Admin Edit Post แก้ไขโพสได้เฉพาะผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

ตัวอย่างการติดตั้ง
เปิด file: mcp.php
คำค้นหา

โค้ด: เลือกทั้งหมด

$sql = "SELECT $sql_id, forum_id FROM $table
		WHERE " . $db->sql_in_set($sql_id, $ids);
เพิ่มหลังคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
	$admin_only_arry = $auth->acl_get_list(false, 'a_', false);
	$admin_only_arry = (!empty($admin_only_arry[0]['a_'])) ? $admin_only_arry[0]['a_'] : array();
	
	if (sizeof($admin_only_arry) && !$auth->acl_get('a_'))
	{
		if ($table == POSTS_TABLE)
		{
			$sql .= ' AND ' . $db->sql_in_set('poster_id', $admin_only_arry, true);
		}
		elseif ($table == TOPICS_TABLE)
		{
			$sql .= ' AND ' . $db->sql_in_set('topic_poster', $admin_only_arry, true);
		}
	}
	// END Admin Only Edit Post Mod	 
เปิด file: includes/mcp/mcp_forum.php
คำค้นหา

โค้ด: เลือกทั้งหมด

foreach ($topic_list as $topic_id)
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
	$admin_only_arry = $auth->acl_get_list(false, 'a_', false);
	$admin_only_arry = (!empty($admin_only_arry[0]['a_'])) ? $admin_only_arry[0]['a_'] : array();
	// END Admin Only Edit Post Mod 
คำค้นหา

โค้ด: เลือกทั้งหมด

$row = &$topic_rows[$topic_id];
เพิ่มหลังคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
		$can_mark = true;
		if (sizeof($admin_only_arry))
		{
			if (in_array($row['topic_poster'], $admin_only_arry) && !in_array($user->data['user_id'] , $admin_only_arry))
			{
				$can_mark = false;
			}
		}
		// END Admin Only Edit Post MOD
คำค้นหา

โค้ด: เลือกทั้งหมด

'S_UNREAD_TOPIC'		=> $unread_topic,
เพิ่มหลังคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
			'S_CAN_MARK'			=> $can_mark,
			// END Admin Only Edit Post MOD
เปิด file : includes/mcp/mcp_topic.php
คำค้นหา

โค้ด: เลือกทั้งหมด

foreach ($rowset as $i => $row)
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
	$admin_only_arry = $auth->acl_get_list(false, 'a_', false);
	$admin_only_arry = (!empty($admin_only_arry[0]['a_'])) ? $admin_only_arry[0]['a_'] : array();
	// END Admin Only Edit Post Mod 
คำค้นหา

โค้ด: เลือกทั้งหมด

$post_unread = (isset($topic_tracking_info[$topic_id]) && $row['post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
		$can_mark = true;
		if (sizeof($admin_only_arry))
		{
			if (in_array($row['poster_id'], $admin_only_arry) && !in_array($user->data['user_id'] , $admin_only_arry))
			{
				$can_mark = false;
			}
		}
		// END Admin Only Edit Post MOD
คำค้นหา

โค้ด: เลือกทั้งหมด

'S_POST_REPORTED'	=> ($row['post_reported'] && $auth->acl_get('m_report', $topic_info['forum_id'])),
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
			'S_CAN_MARK'		=> $can_mark,
			//END Admin Only Edit Post MOD
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: mod Only Admin Edit Post แก้ไขโพสได้เฉพาะผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

เปิด file: includes/mcp/mcp_post.php
คำค้นหา

โค้ด: เลือกทั้งหมด

$template->assign_vars(array(
      'U_MCP_ACTION'
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
	$admin_only_arry = $auth->acl_get_list(false, 'a_', false);
	$admin_only_arry = (!empty($admin_only_arry[0]['a_'])) ? $admin_only_arry[0]['a_'] : array();
	$can_mark = true;
	if (sizeof($admin_only_arry))
	{
		if (in_array($post_info['user_id'], $admin_only_arry) && !in_array($user->data['user_id'] , $admin_only_arry))
		{
			$can_mark = false;
		}
	}
	// END Admin Only Edit Post Mod 
คำค้นหา

โค้ด: เลือกทั้งหมด

'S_CAN_VIEWIP'			=> $auth->acl_get('m_info', $post_info['forum_id']),
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
		'S_CAN_MARK'		=> $can_mark,
		//END Admin Only Edit Post MOD
เปิด file: language/en/common.php
คำค้นหา

โค้ด: เลือกทั้งหมด

'USER_CANNOT_READ'		=> 'You cannot read posts in this forum.',
เพิ่มหลังคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD	
	'USER_CANNOT_EDIT_ADMIN'	=> 'You can not edit an Administrator’s posts.',
	'USER_CANNOT_DELETE_ADMIN'	=> 'You can not delete an Administrator’s posts.',
// END Admin Only Edit Post MOD 
เปิด file: language/th/common.php
คำค้นหา

โค้ด: เลือกทั้งหมด

'USER_CANNOT_READ'	=> 'ท่านไม่สามารถอ่านกระทู้ในบอร์ด นี้ได้.',
เพิ่มหลังคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD	
	'USER_CANNOT_EDIT_ADMIN'	=> 'คุณไม่สามารถแก้ไขข้อความของผู้ดูแลระบบได้',
	'USER_CANNOT_DELETE_ADMIN'	=> 'คุณไม่สามารถลบข้อความของผู้ดูแลระบบได้',
// END Admin Only Edit Post MOD 
เปิด file: styles/prosilver/template/mcp_forum.html
คำค้นหา

โค้ด: เลือกทั้งหมด

<!-- IF not topicrow.S_MOVED_TOPIC --><input type="checkbox"
คำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

topicrow.S_MOVED_TOPIC
เพิ่มหลังคำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

and topicrow.S_CAN_MARK
เปิด file: styles/prosilver/template/mcp_topic.html
คำค้นหา

โค้ด: เลือกทั้งหมด

<li><label for="post_id_list_select_{postrow.POST_ID}">{L_SELECT}: <input type="checkbox" id="post_id_list_select_{postrow.POST_ID}" name="post_id_list[]" value="{postrow.POST_ID}"<!-- IF postrow.S_CHECKED --> checked="checked"<!-- ENDIF --> /></label></li></ul>
คำค้นหาในบรรทัด เพิ่มก่อนคำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

<!-- IF postrow.S_CAN_MARK -->
คำค้นหาในบรรทัด เพิ่มหลังค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

<!-- ENDIF -->
เปิด file: styles/prosilver/template/mcp_post.html
คำค้นหา

โค้ด: เลือกทั้งหมด

<!-- IF U_EDIT -->
แทนที่คำค้นหา

โค้ด: เลือกทั้งหมด

<!-- IF U_EDIT and S_CAN_MARK -->
คำค้นหา

โค้ด: เลือกทั้งหมด

<!-- IF S_CAN_LOCK_POST or S_CAN_DELETE_POST or S_CAN_CHGPOSTER -->
แทนที่คำค้นหา

โค้ด: เลือกทั้งหมด

<!-- IF S_CAN_MARK and (S_CAN_LOCK_POST or S_CAN_DELETE_POST or S_CAN_CHGPOSTER) -->
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: mod Only Admin Edit Post แก้ไขโพสได้เฉพาะผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

เปิด file: posting.php
คำค้นหา

โค้ด: เลือกทั้งหมด

// Is the user able to post within this forum?
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
$admin_only_arry = $auth->acl_get_list(false, 'a_', false);
$admin_only_arry = (!empty($admin_only_arry[0]['a_'])) ? $admin_only_arry[0]['a_'] : array();
if (sizeof($admin_only_arry))
{
	if ($is_authed && ($mode == 'edit' || $mode == 'delete') && in_array($post_data['poster_id'], $admin_only_arry) && !in_array($user->data['user_id'] , $admin_only_arry))
	{
		if ($mode == 'edit')
		{
			trigger_error('USER_CANNOT_EDIT_ADMIN');
		}
		else
		{
			trigger_error('USER_CANNOT_DELETE_ADMIN');
		}
	}
	unset($admin_only_arry);	
}
// END Admin Only Edit Post MOD
เปิด file: viewtopic.php
คำค้นหา

โค้ด: เลือกทั้งหมด

// Quick mod tools
เพิ่มก่อนคำค้นหา

โค้ด: เลือกทั้งหมด

// BEGIN Admin Only Edit Post MOD
$admin_only_arry = $auth->acl_get_list(false, 'a_', false);
$admin_only_arry = (!empty($admin_only_arry[0]['a_'])) ? $admin_only_arry[0]['a_'] : array();
// END Admin Only Edit Post MOD 
คำค้นหา

โค้ด: เลือกทั้งหมด

$topic_mod .= ($auth->acl_get('m_delete', $forum_id)) ?
คำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

$auth->acl_get('m_delete', $forum_id)
เพิ่มหลังคค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

&& (!in_array($topic_data['topic_poster'], $admin_only_arry) || in_array($user->data['user_id'], $admin_only_arry))
คำค้นหา

โค้ด: เลือกทั้งหมด

$edit_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_edit', $forum_id)
คำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

($auth->acl_get('m_edit', $forum_id)
เพิ่มหลังคำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

&& (!in_array($poster_id, $admin_only_arry) || in_array($user->data['user_id'], $admin_only_arry))
คำค้นหา

โค้ด: เลือกทั้งหมด

$delete_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_delete', $forum_id)
คำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

($auth->acl_get('m_delete', $forum_id)
เพิ่มหลังคำค้นหาในบรรทัด

โค้ด: เลือกทั้งหมด

 && (!in_array($poster_id, $admin_only_arry) || in_array($user->data['user_id'], $admin_only_arry))
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: mod Only Admin Edit Post แก้ไขโพสได้เฉพาะผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

Refresh the prosilver style in the ACP (ACP->Styles->Style Components->Templates->Refresh)
after installing to regenerate the html files
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 66