2023-03-07 08:26:53 -08:00
|
|
|
<?php
|
2025-02-24 18:44:29 +00:00
|
|
|
/**
|
|
|
|
|
* NamelessMC Members Module
|
2023-03-07 08:26:53 -08:00
|
|
|
*
|
2025-02-24 18:44:29 +00:00
|
|
|
* @author Aberdeener
|
|
|
|
|
* @version 2.2.0
|
|
|
|
|
* @license MIT
|
2023-03-07 08:26:53 -08:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
class Members_Module extends Module {
|
|
|
|
|
|
|
|
|
|
private Language $_language;
|
|
|
|
|
private Language $_members_language;
|
|
|
|
|
|
|
|
|
|
public function __construct(Language $language, Language $members_language, Pages $pages) {
|
|
|
|
|
$this->_language = $language;
|
|
|
|
|
$this->_members_language = $members_language;
|
|
|
|
|
|
|
|
|
|
$name = 'Members';
|
2025-05-21 15:37:56 -07:00
|
|
|
$author = '<a href="https://github.com/tadhgboyle" target="_blank" rel="nofollow noopener">Aberdeener</a>';
|
2026-04-19 09:44:29 +01:00
|
|
|
$module_version = '2.2.5';
|
|
|
|
|
$nameless_version = '2.2.5';
|
2023-03-07 08:26:53 -08:00
|
|
|
|
|
|
|
|
parent::__construct($this, $name, $author, $module_version, $nameless_version);
|
|
|
|
|
|
|
|
|
|
// Define URLs which belong to this module
|
2025-06-04 21:32:17 -07:00
|
|
|
$pages->add('Members', '/members', 'pages/members.php', 'members');
|
2023-03-07 08:26:53 -08:00
|
|
|
$pages->add('Members', '/queries/member_list', 'queries/member_list.php');
|
|
|
|
|
$pages->add('Members', '/panel/members/member_lists', 'pages/panel/member_lists.php');
|
|
|
|
|
$pages->add('Members', '/panel/members/settings', 'pages/panel/settings.php');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function onInstall() {
|
|
|
|
|
// Not necessary for CookieConsent
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function onUninstall() {
|
|
|
|
|
// Not necessary for CookieConsent
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function onEnable() {
|
|
|
|
|
// Not necessary for CookieConsent
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function onDisable() {
|
|
|
|
|
// Not necessary for CookieConsent
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-24 18:44:29 +00:00
|
|
|
public function onPageLoad(User $user, Pages $pages, Cache $cache, $smarty, $navs, Widgets $widgets, TemplateBase $template) {
|
2023-03-07 08:26:53 -08:00
|
|
|
$language = $this->_language;
|
|
|
|
|
|
|
|
|
|
// AdminCP
|
|
|
|
|
PermissionHandler::registerPermissions($language->get('moderator', 'staff_cp'), [
|
|
|
|
|
'admincp.members' => $this->_members_language->get('members', 'member_lists')
|
|
|
|
|
]);
|
|
|
|
|
|
2023-05-13 14:58:34 -06:00
|
|
|
$cache->setCache('navbar_order');
|
2025-05-20 18:37:24 -07:00
|
|
|
$members_order = $cache->fetch('members_order', 5);
|
2023-05-13 14:58:34 -06:00
|
|
|
|
|
|
|
|
$cache->setCache('navbar_icons');
|
2025-05-20 18:37:24 -07:00
|
|
|
$members_icon = $cache->fetch('members_icon', '');
|
2023-05-13 14:58:34 -06:00
|
|
|
|
|
|
|
|
$cache->setCache('nav_location');
|
2025-05-20 18:37:24 -07:00
|
|
|
$link_location = $cache->fetch('members_location', 1);
|
2023-05-13 14:58:34 -06:00
|
|
|
|
|
|
|
|
switch ($link_location) {
|
|
|
|
|
case 1:
|
|
|
|
|
// Navbar
|
|
|
|
|
$navs[0]->add('members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'top', null, $members_order, $members_icon);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
// "More" dropdown
|
|
|
|
|
$navs[0]->addItemToDropdown('more_dropdown', 'members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'top', null, $members_icon, $members_order);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
// Footer
|
|
|
|
|
$navs[0]->add('members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'footer', null, $members_order, $members_icon);
|
|
|
|
|
break;
|
2023-03-07 08:26:53 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (defined('BACK_END')) {
|
|
|
|
|
// StaffCP link
|
|
|
|
|
if ($user->hasPermission('admincp.members')) {
|
2025-06-14 09:51:11 -07:00
|
|
|
$navs[2]->add('members_divider', mb_strtoupper($this->_members_language->get('members', 'members'), 'UTF-8'), 'divider', 'top', null, 13);
|
|
|
|
|
$navs[2]->add('members_settings', $this->_language->get('admin', 'settings'), URL::build('/panel/members/settings'), 'top', null, 13.1, '<i class="nav-icon fas fa-cogs"></i>');
|
|
|
|
|
$navs[2]->add('member_lists_settings', $this->_members_language->get('members', 'member_lists'), URL::build('/panel/members/member_lists'), 'top', null, 13.2, '<i class="nav-icon fas fa-list"></i>');
|
2023-03-07 08:26:53 -08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getDebugInfo(): array {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
}
|