Skip to content

Commit 8226b39

Browse files
committed
New admin menu generator
1 parent 78b0de0 commit 8226b39

File tree

3 files changed

+39
-41
lines changed

3 files changed

+39
-41
lines changed

featherbb/Controller/Admin/Groups.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public function display($req, $res, $args)
3535
return $this->model->set_default_group($groups);
3636
}
3737

38-
AdminUtils::generateAdminMenu('groups');
38+
AdminUtils::generateAdminMenu('user groups');
3939

4040
View::setPageInfo(array(
4141
'title' => array(Utils::escape(ForumSettings::get('o_board_title')), __('Admin'), __('User groups')),
@@ -68,7 +68,7 @@ public function delete($req, $res, $args)
6868
if (Input::post('del_group_comply') || Input::post('del_group')) {
6969
return $this->model->delete_group($args['id']);
7070
} else {
71-
AdminUtils::generateAdminMenu('groups');
71+
AdminUtils::generateAdminMenu('user groups');
7272

7373
return View::setPageInfo(array(
7474
'title' => array(Utils::escape(ForumSettings::get('o_board_title')), __('Admin'), __('User groups')),
@@ -81,7 +81,7 @@ public function delete($req, $res, $args)
8181
}
8282
}
8383

84-
AdminUtils::generateAdminMenu('groups');
84+
AdminUtils::generateAdminMenu('user groups');
8585

8686
return View::setPageInfo(array(
8787
'title' => array(Utils::escape(ForumSettings::get('o_board_title')), __('Admin'), __('User groups')),
@@ -108,7 +108,7 @@ public function addedit($req, $res, $args)
108108
// Add/edit a group (stage 1)
109109
elseif (Input::post('add_group') || isset($args['id'])) {
110110

111-
AdminUtils::generateAdminMenu('groups');
111+
AdminUtils::generateAdminMenu('user groups');
112112

113113
$id = isset($args['id']) ? intval($args['id']) : intval(Input::post('base_group'));
114114
$group = $this->model->info_add_group($groups, $id);

featherbb/Core/AdminUtils.php

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public static function generateAdminMenu($page = '')
2222

2323
\View::setPageInfo(array(
2424
'page' => $page,
25-
// 'menu_items' => Container::get('hooks')->fire('admin.menu', self::load_default_menu()), // For later ?
25+
'menu_items' => Container::get('hooks')->fire('admin.menu', self::load_default_menu()),
2626
'is_admin' => $is_admin,
2727
'plugins' => self::adminPluginsMenu($is_admin) // See if there are any plugins that want to be displayed in the menu
2828
), 1
@@ -112,22 +112,23 @@ public static function get_content($url)
112112
return $content;
113113
}
114114

115-
// TODO: For later ? See 4594472380e0dd68271920dad3ee5a44cfca0b3b
116-
// protected static function load_default_menu()
117-
// {
118-
// return array(
119-
// 'mod.users' => array('title' => 'Users', 'url' => 'adminUsers'),
120-
// 'mod.bans' => array('title' => 'Bans', 'url' => 'adminBans'),
121-
// 'mod.reports' => array('title' => 'Reports', 'url' => 'adminReports'),
122-
// 'board.options' => array('title' => 'Options', 'url' => 'adminOptions'),
123-
// 'board.permissions' => array('title' => 'Permissions', 'url' => 'adminPermissions'),
124-
// 'board.categories' => array('title' => 'Categories', 'url' => 'adminCategories'),
125-
// 'board.forums' => array('title' => 'Forums', 'url' => 'adminForums'),
126-
// 'board.groups' => array('title' => 'User groups', 'url' => 'adminGroups'),
127-
// 'board.plugins' => array('title' => 'Plugins', 'url' => 'adminPlugins'),
128-
// 'board.censoring' => array('title' => 'Censoring', 'url' => 'adminCensoring'),
129-
// 'board.parser' => array('title' => 'Parser', 'url' => 'adminParser'),
130-
// 'board.maintenance' => array('title' => 'Maintenance', 'url' => 'adminMaintenance')
131-
// );
132-
// }
115+
protected static function load_default_menu()
116+
{
117+
return array(
118+
'mod.index' => array('title' => 'Index', 'url' => 'adminIndex'),
119+
'mod.users' => array('title' => 'Users', 'url' => 'adminUsers'),
120+
'mod.bans' => array('title' => 'Bans', 'url' => 'adminBans'),
121+
'mod.reports' => array('title' => 'Reports', 'url' => 'adminReports'),
122+
'board.options' => array('title' => 'Options', 'url' => 'adminOptions'),
123+
'board.permissions' => array('title' => 'Permissions', 'url' => 'adminPermissions'),
124+
'board.categories' => array('title' => 'Categories', 'url' => 'adminCategories'),
125+
'board.forums' => array('title' => 'Forums', 'url' => 'adminForums'),
126+
'board.groups' => array('title' => 'User groups', 'url' => 'adminGroups'),
127+
'board.plugins' => array('title' => 'Plugins', 'url' => 'adminPlugins'),
128+
'board.censoring' => array('title' => 'Censoring', 'url' => 'adminCensoring'),
129+
'board.parser' => array('title' => 'Parser', 'url' => 'adminParser'),
130+
'board.maintenance' => array('title' => 'Maintenance', 'url' => 'adminMaintenance'),
131+
'board.updates' => array('title' => 'Updates', 'url' => 'adminUpdates')
132+
);
133+
}
133134
}

featherbb/View/admin/menu.php

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
<div class="box">
2323
<div class="inbox">
2424
<ul>
25-
<li<?php if ($page == 'index') {echo ' class="isactive"';}?>><a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3C%2Fspan%3E%3Cspan+class%3D"pl-ent x"><?= Router::pathFor('adminIndex') ?>"><?php _e('Index') ?></a></li>
26-
<li<?php if ($page == 'users') {echo ' class="isactive"';}?>><a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3C%2Fspan%3E%3Cspan+class%3D"pl-ent x"><?= Router::pathFor('adminUsers') ?>"><?php _e('Users') ?></a></li>
27-
<?php if ($is_admin || User::get()->g_mod_ban_users == '1'): ?>
28-
<li<?php if ($page == 'bans') {echo ' class="isactive"';}?>><a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3C%2Fspan%3E%3Cspan+class%3D"pl-ent x"><?= Router::pathFor('adminBans') ?>"><?php _e('Bans') ?></a></li>
29-
<?php endif;
30-
if ($is_admin || ForumSettings::get('o_report_method') == '0' || ForumSettings::get('o_report_method') == '2'): ?>
31-
<li<?php if ($page == 'reports') {echo ' class="isactive"';}?>><a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3C%2Fspan%3E%3Cspan+class%3D"pl-ent x"><?= Router::pathFor('adminReports') ?>"><?php _e('Reports') ?></a></li>
32-
<?php endif; ?>
25+
<? foreach ($menu_items as $perm => $data) {
26+
if (preg_match('/^mod\..*$/', $perm)) {
27+
if (Container::get('perms')->can(User::get(), $perm)) {
28+
// ForumSettings::get('o_report_method') == '0' || ForumSettings::get('o_report_method') == '2')
29+
echo "\t\t\t\t\t\t\t\t".'<li'.($page == strtolower($data['title']) ? 'class="isactive"' : '').'><a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3C%2Fspan%3E%3Cspan+class%3D"x">'.Router::pathFor($data['url']).'">'.__($data['title']).'</a></li>'."\n";
30+
}
31+
}
32+
} ?>
3333
</ul>
3434
</div>
3535
</div>
@@ -40,16 +40,13 @@
4040
<div class="box">
4141
<div class="inbox">
4242
<ul>
43-
<li<?php if ($page == 'options') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminOptions') ?>"><?php _e('Options') ?></a></li>
44-
<li<?php if ($page == 'permissions') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminPermissions') ?>"><?php _e('Permissions') ?></a></li>
45-
<li<?php if ($page == 'categories') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminCategories') ?>"><?php _e('Categories') ?></a></li>
46-
<li<?php if ($page == 'forums') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminForums') ?>"><?php _e('Forums') ?></a></li>
47-
<li<?php if ($page == 'groups') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminGroups') ?>"><?php _e('User groups') ?></a></li>
48-
<li<?php if ($page == 'plugins') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminPlugins') ?>"><?= 'Plugins'; ?></a></li>
49-
<li<?php if ($page == 'censoring') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminCensoring') ?>"><?php _e('Censoring') ?></a></li>
50-
<li<?php if ($page == 'parser') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminParser') ?>"><?php _e('Parser') ?></a></li>
51-
<li<?php if ($page == 'maintenance') {echo ' class="isactive"';}?>><a href="<?= Router::pathFor('adminMaintenance') ?>"><?php _e('Maintenance') ?></a></li>
52-
<li<?php if ($page == 'updates') echo ' class="isactive"'; ?>><a href="<?= Router::pathFor('adminUpdates') ?>"><?php _e('Updates') ?></a></li>
43+
<? foreach ($menu_items as $perm => $data) {
44+
if (preg_match('/^board\..*$/', $perm)) {
45+
if (Container::get('perms')->can(User::get(), $perm)) {
46+
echo "\t\t\t\t\t\t\t\t".'<li'.($page == strtolower($data['title']) ? ' class="isactive"' : '').'><a href="'.Router::pathFor($data['url']).'">'.__($data['title']).'</a></li>'."\n";
47+
}
48+
}
49+
} ?>
5350
</ul>
5451
</div>
5552
</div>

0 commit comments

Comments
 (0)