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
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:
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.
Giải trình
Điều này được các ví dụ thực tế, đó là thích hợp
Điều này cho phép chúng ta sử dụng các tính năng tùy chọn XF
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.
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
CHỈ điền vào các mục sau đây:
Chúc các bạn thành cô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".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ạ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:
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.Chúng ta đã thiết lập này bên trong Mã PHP sau $options
boardInactiveAllowMindCrackStaff
Add-on:boardInactiveAllowMindCrackStaff
Vì nó là một lựa chọn XF Core chúng ta sẽ chọn
XenForo
Title:XenForo
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:Cho phép MindCrack Staff khi không hoạt động
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:MindCrack Staff vẫn có thể duyệt board trong khi không hoạt động/đóng
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:On/Off Check Box
Hãy làm cho nó một True or False
Boolean
Default Value:Boolean
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!0
Nguồn: xenforo.com
Bài viết liên quan
Được quan tâm
Bài viết mới