Addon Board Active Plus - Board Active mở rộng

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,920
Được Like
12,724
Board Active Plus - Board Active mở rộng

Duyệt xung quanh để xem nếu điều này được thực hiện, một số chủ đề liên quan cho những thứ khác nhưng không cụ thể cho các User Group cá nhân. Sửa đổi đơn giản này có thể được thực hiện nhiều cách tuy nhiên, đây là cách tôi học được. Ở đây tôi sẽ chỉ cho bạn làm thế nào để thêm tin về các nhóm người dùng khác, bên cạnh những thiết lập nhóm Admin & Moderator, quyền hạn để xem board của bạn với một lựa chọn Boolean.

Trước hết xác định vị trí tập tin Abstract.php
@your_forum_root/library/XenForo/ControllerPublic/Abstract.php
Tìm phương pháp sau bên trong Abstract.php
PHP:
protected function _assertBoardActive($action){}

Bây giờ khi đã được tìm thấy chúng ta hãy nhìn vào bên trong của phương pháp này và chúng ta có điều này:
PHP:
        protected function _assertBoardActive($action)
        {
                if (!$options->boardActive && !XenForo_Visitor::getInstance()->get('is_admin'))
                {
                        throw $this->responseException($this->responseMessage($options->boardInactiveMessage), 503);
                }
        }

Dưới đây là sản phẩm cuối cùng, tôi sẽ giải thích sau đó. Điều này có thêm một lựa chọn trong ACP->Board Active ->OPTIONS.
PHP:
        protected function _assertBoardActive($action)
        {
                $visitor = XenForo_Visitor::getInstance();
                $founder_group_id = array(3);
                $mindcrack_staff_group_id = array(4,37,38);
                $kingdom_owners_group_id = array(41,42);
                $options = XenForo_Application::get('options');
                if (!$options->boardActive && !$visitor->isMemberOf($founder_group_id) && !($visitor->isMemberOf($mindcrack_staff_group_id) AND $options->boardInactiveAllowMindCrackStaff) && !($visitor->isMemberOf($kingdom_owners_group_id) AND $options->boardInactiveAllowKingdomOwners))
                {
                        throw $this->responseException($this->responseMessage($options->boardInactiveMessage), 503);
                }
        }

Giải trình

Điều này được các ví dụ thực tế, đó là thích hợp
PHP:
$visitor = XenForo_Visitor::getInstance();

Điều này cho phép chúng ta sử dụng các tính năng tùy chọn XF
PHP:
$options = XenForo_Application::get('options');

Tôi có một nhóm người dùng có tên là Founder, được thiết lập để chỉ cho tôi. Tôi đã làm cho nó để tôi luôn luôn có thể xem các diễn đàn có hoạt động hay không. Không có lựa chọn cần thiết.
PHP:
$founder_group_id = array(3);

.....


!$options->boardActive && !$visitor->isMemberOf($founder_group_id)

Bây giờ đôi khi tôi có nhóm người dùng khác cần truy cập diễn đàn trong Community Patches. Đây là cách tôi học được và cảm thấy đó là dễ dàng nhất, tất nhiên có những cách khác để làm điều này, tuy nhiên đây là cách tôi đã làm nó.

Bây giờ cho phép thêm những nhóm người dùng khác và cung cấp cho họ một lựa chọn đúng sai.

MindCrack Staff User Groups
Đặt tất cả các nhóm thành viên trong một mảng​
PHP:
 $mindcrack_staff_group_id = array(4,37,38);

Bây giờ chúng ta làm như vậy trong khai báo if như tôi đã làm ở trên cho nhóm Founder, tuy nhiên bây giờ chúng ta sẽ thêm một lựa chọn để đi cùng với nó. Thêm quyền này sau khi kiểm tra nhóm người dùng cuối cùng​
PHP:
&& !($visitor->isMemberOf($mindcrack_staff_group_id) AND $options->boardInactiveAllowMindCrackStaff)

Bây giờ bạn sẽ nhận thấy rằng tôi đã thêm một '&&' này là rất quan trọng.
Như bạn có thể thấy tôi thêm mã mới cho dòng​
PHP:
$options->boardInactiveAllowMindCrackStaff

$options được xác định như đã nêu ở trên.
boardInactiveAllowMindCrackStaff có thể được đặt tên bất cứ gì bạn muốn, nhưng hãy nhớ điều này khi chúng ta sẽ sử dụng nó sau này.
Bây giờ khi bạn có các tùy chọn thiết lập variable của bạn, điều hướng đến forum board của bạn và đi đến ACP. Thời gian cho các công cụ thú vị cho phép thêm tùy chọn của chúng ta. Một khi bạn đã điều hướng đến ACP->Options->Board Active xác định vị trí nút "Add Option".
Bạn phải ở chế độ DEBUG để bạn có thể nhìn thấy nút này.

CHỈ điền vào các mục sau đây:
Option ID:
Chúng ta đã thiết lập này bên trong Mã PHP sau $options
boardInactiveAllowMindCrackStaff
Add-on:
Vì nó là một lựa chọn XF Core chúng ta sẽ chọn
XenForo
Title:
Có thể là bất cứ điều gì bạn chọn
Cho phép MindCrack Staff khi không hoạt động
Explanation:
Tự giải thích, mô tả. (Optional)
MindCrack Staff vẫn có thể duyệt board trong khi không hoạt động/đóng
Edit Format:
Bạn có thể làm tùy chọn khác, nhưng cách tôi đã làm nó cảm thấy tốt nhất trong quan điểm của tôi, tuy nhiên tôi có thể sai.
On/Off Check Box
Data Type:
Hãy làm cho nó một True or False
Boolean
Default Value:
Hãy thiết lập nó là false như mặc định (Unchecked)
0
Bây giờ nhấn lưu và thực hiện!
Như bạn có thể thấy tôi thêm vào trong một tập hợp các nhóm thành viên được gọi là Kingdom Owners. Tất cả bạn cần làm là lặp lại các bước này và bạn đã hoàn thành mục tiêu của bạn. Tôi hy vọng điều này sẽ giúp mọi người. Điều này đã cho tôi khoảng 30-50 phút của trình duyệt.

x7Dv4bu.png

Chúc các bạn thành công.


Nguồn: xenforo.com​
 

Jindo_Katori

FirstSergeant
Tham gia
01/03/2015
Bài viết
1,454
Được Like
1,193
Đọc 2 lần rồi mà chưa hiểu
Đánh dấu để dành khi nào đọc lại
 

Top Bottom