plugins - filter:admin.header.build allows you to add plugins to navigation in ACP

v1.18.x
psychobunny 12 years ago
parent 338acb8fc2
commit 2b07917020

@ -76,35 +76,52 @@
<div class="well sidebar-nav"> <div class="well sidebar-nav">
<ul class="nav nav-list"> <ul class="nav nav-list">
<li class="nav-header">NodeBB</li> <li class="nav-header">NodeBB</li>
<li class='active'><a href='{relative_path}/admin/index'><i class='icon-home'></i> Home</a></li> <li class='active'>
<li class=''><a href='{relative_path}/admin/categories/active'><i class='icon-folder-close-alt'></i> Categories</a></li> <a href='{relative_path}/admin/index'><i class='icon-home'></i> Home</a>
<li class=''><a href='{relative_path}/admin/users/latest'><i class='icon-user'></i> Users</a></li> </li>
<li class=""><a href="{relative_path}/admin/groups"><i class="icon-group"></i> Groups</a></li> <li><a href='{relative_path}/admin/categories/active'><i class='icon-folder-close-alt'></i> Categories</a></li>
<li class=''><a href='{relative_path}/admin/topics'><i class='icon-book'></i> Topics</a></li> <li><a href='{relative_path}/admin/users/latest'><i class='icon-user'></i> Users</a></li>
<li class=''><a href='{relative_path}/admin/themes'><i class='icon-th'></i> Themes</a></li> <li><a href="{relative_path}/admin/groups"><i class="icon-group"></i> Groups</a></li>
<li class=''><a href='{relative_path}/admin/plugins'><i class='icon-code-fork'></i> Plugins</a></li> <li><a href='{relative_path}/admin/topics'><i class='icon-book'></i> Topics</a></li>
<li class=''><a href='{relative_path}/admin/settings'><i class='icon-cogs'></i> Settings</a></li> <li><a href='{relative_path}/admin/themes'><i class='icon-th'></i> Themes</a></li>
<li class=''><a href='{relative_path}/admin/redis'><i class='icon-hdd'></i> Redis</a></li> <li><a href='{relative_path}/admin/plugins'><i class='icon-code-fork'></i> Plugins</a></li>
<li class=''><a href='{relative_path}/admin/logger'><i class='icon-th'></i> Logger</a></li> <li><a href='{relative_path}/admin/settings'><i class='icon-cogs'></i> Settings</a></li>
<li class=''><a href="{relative_path}/admin/motd"><i class="icon-comment"></i> MOTD</a></li> <li><a href='{relative_path}/admin/redis'><i class='icon-hdd'></i> Redis</a></li>
<li><a href='{relative_path}/admin/logger'><i class='icon-th'></i> Logger</a></li>
<li><a href="{relative_path}/admin/motd"><i class="icon-comment"></i> MOTD</a></li>
</ul>
</div>
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Social Authentication</li> <li class="nav-header">Social Authentication</li>
<li class=''><a href='{relative_path}/admin/twitter'><i class='icon-twitter-sign'></i> Twitter</a></li> <li><a href='{relative_path}/admin/twitter'><i class='icon-twitter-sign'></i> Twitter</a></li>
<li class=''><a href='{relative_path}/admin/facebook'><i class='icon-facebook-sign'></i> Facebook</a></li> <li><a href='{relative_path}/admin/facebook'><i class='icon-facebook-sign'></i> Facebook</a></li>
<li class=''><a href='{relative_path}/admin/gplus'><i class='icon-google-plus-sign'></i> Google+</a></li> <li><a href='{relative_path}/admin/gplus'><i class='icon-google-plus-sign'></i> Google+</a></li>
<!--<li class="nav-header">Custom Modules</li>--> </ul>
<!-- <li class=''><a href=''>Search</a></li> --> </div>
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Plugins</li>
<!-- BEGIN plugins -->
<li>
<a href='{relative_path}/{plugins.route}'><i class="{plugins.icon}"></i> {plugins.name}</a>
</li>
<!-- END plugins -->
</ul>
</div>
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Unit Tests</li> <li class="nav-header">Unit Tests</li>
<ul class="nav nav-list"> <ul class="nav nav-list">
<li class=''><a href='{relative_path}/admin/testing/categories'>Categories</a></li> <li><a href='{relative_path}/admin/testing/categories'>Categories</a></li>
<!--<li class=''><a href='{relative_path}/admin/testing/topics'>Topics</a></li> <!--<li><a href='{relative_path}/admin/testing/topics'>Topics</a></li>
<li class=''><a href='{relative_path}/admin/testing/posts'>Posts</a></li> <li><a href='{relative_path}/admin/testing/posts'>Posts</a></li>
<li class=''><a href='{relative_path}/admin/testing/accounts'>Accounts</a></li> <li><a href='{relative_path}/admin/testing/accounts'>Accounts</a></li>
<li class=''><a href='{relative_path}/admin/testing/chat'>Chat</a></li> <li><a href='{relative_path}/admin/testing/chat'>Chat</a></li>
<li class=''><a href='{relative_path}/admin/testing/notifications'>Notifications</a></li> <li><a href='{relative_path}/admin/testing/notifications'>Notifications</a></li>
<li class=''><a href='{relative_path}/admin/testing/friends'>Friends</a></li> <li><a href='{relative_path}/admin/testing/friends'>Friends</a></li>
<li class=''><a href='{relative_path}/admin/testing/feed'>RSS Feed</a></li> <li><a href='{relative_path}/admin/testing/feed'>RSS Feed</a></li>
<li class=''><a href='{relative_path}/admin/testing/emails'>Emails</a></li>--> <li><a href='{relative_path}/admin/testing/emails'>Emails</a></li>-->
</ul> </ul>
</ul> </ul>
</div><!--/.well --> </div><!--/.well -->

@ -18,10 +18,17 @@ var user = require('./../user.js'),
}); });
} }
Admin.build_header = function (res) { Admin.build_header = function (res, callback) {
return templates['admin/header'].parse({ var custom_header = {
csrf: res.locals.csrf_token, 'plugins': []
relative_path: nconf.get('relative_path') };
plugins.fireHook('filter:admin.header.build', custom_header, function(err, custom_header) {
callback(err, templates['admin/header'].parse({
csrf: res.locals.csrf_token,
relative_path: nconf.get('relative_path'),
plugins: custom_header.plugins
}));
}); });
} }
@ -38,7 +45,9 @@ var user = require('./../user.js'),
for (var i = 0, ii = routes.length; i < ii; i++) { for (var i = 0, ii = routes.length; i < ii; i++) {
(function (route) { (function (route) {
app.get('/admin/' + route, Admin.isAdmin, function (req, res) { app.get('/admin/' + route, Admin.isAdmin, function (req, res) {
res.send(Admin.build_header(res) + app.create_route('admin/' + route) + templates['admin/footer']); Admin.build_header(res, function(err, header) {
res.send(header + app.create_route('admin/' + route) + templates['admin/footer']);
});
}); });
}(routes[i])); }(routes[i]));
} }
@ -48,7 +57,9 @@ var user = require('./../user.js'),
for (var i = 0, ii = unit_tests.length; i < ii; i++) { for (var i = 0, ii = unit_tests.length; i < ii; i++) {
(function (route) { (function (route) {
app.get('/admin/testing/' + route, Admin.isAdmin, function (req, res) { app.get('/admin/testing/' + route, Admin.isAdmin, function (req, res) {
res.send(Admin.build_header(res) + app.create_route('admin/testing/' + route) + templates['admin/footer']); Admin.build_header(res, function(err, header) {
res.send(header + app.create_route('admin/testing/' + route) + templates['admin/footer']);
});
}); });
}(unit_tests[i])); }(unit_tests[i]));
} }
@ -57,11 +68,15 @@ var user = require('./../user.js'),
app.namespace('/admin', function () { app.namespace('/admin', function () {
app.get('/', Admin.isAdmin, function (req, res) { app.get('/', Admin.isAdmin, function (req, res) {
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']); Admin.build_header(res, function(err, header) {
res.send(header + app.create_route('admin/index') + templates['admin/footer']);
});
}); });
app.get('/index', Admin.isAdmin, function (req, res) { app.get('/index', Admin.isAdmin, function (req, res) {
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']); Admin.build_header(res, function(err, header) {
res.send(header + app.create_route('admin/index') + templates['admin/footer']);
});
}); });
}); });

Loading…
Cancel
Save