mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-21 16:00:26 +01:00
added additional_profile_info footer in posts view; plugins - filter:posts.custom_profile_info hook lets you add info to post block footer
also fixed app.alert - if title is not set then do not show title.
This commit is contained in:
1
app.js
1
app.js
@@ -86,6 +86,7 @@
|
||||
webserver = require('./src/webserver.js'),
|
||||
SocketIO = require('socket.io').listen(global.server, { log: false, transports: ['websocket', 'xhr-polling', 'jsonp-polling', 'flashsocket']}),
|
||||
websockets = require('./src/websockets.js'),
|
||||
posts = require('./src/posts.js'),
|
||||
plugins = require('./src/plugins'); // Don't remove this - plugins initializes itself
|
||||
|
||||
websockets.init(SocketIO);
|
||||
|
||||
@@ -136,6 +136,7 @@ var socket,
|
||||
var alert_id = 'alert_button_' + ((params.alert_id) ? params.alert_id : new Date().getTime());
|
||||
|
||||
var alert = $('#' + alert_id);
|
||||
var title = params.title || '';
|
||||
|
||||
function startTimeout(div, timeout) {
|
||||
var timeoutId = setTimeout(function () {
|
||||
@@ -148,7 +149,7 @@ var socket,
|
||||
}
|
||||
|
||||
if (alert.length > 0) {
|
||||
alert.find('strong').html(params.title);
|
||||
alert.find('strong').html(title);
|
||||
alert.find('p').html(params.message);
|
||||
alert.attr('class', "alert toaster-alert " + "alert-" + params.type);
|
||||
|
||||
@@ -161,7 +162,7 @@ var socket,
|
||||
p = document.createElement('p');
|
||||
|
||||
p.innerHTML = params.message;
|
||||
strong.innerHTML = params.title;
|
||||
strong.innerHTML = title;
|
||||
|
||||
div.className = "alert toaster-alert " + "alert-" + params.type;
|
||||
|
||||
|
||||
@@ -66,6 +66,9 @@
|
||||
<div id="content_{main_posts.pid}" class="post-content" itemprop="articleBody">{main_posts.content}</div>
|
||||
<div class="post-signature">{main_posts.signature}</div>
|
||||
<div class="post-info">
|
||||
<span class="pull-left">
|
||||
{main_posts.additional_profile_info}
|
||||
</span>
|
||||
<span class="pull-right">
|
||||
posted <span class="relativeTimeAgo timeago" title="{main_posts.relativeTime}"></span>
|
||||
<span class="{main_posts.edited-class}">| last edited by <strong><a href="/user/{main_posts.editorslug}">{main_posts.editorname}</a></strong></span>
|
||||
@@ -127,6 +130,9 @@
|
||||
<div id="content_{posts.pid}" class="post-content" itemprop="text">{posts.content}</div>
|
||||
<div class="post-signature">{posts.signature}</div>
|
||||
<div class="post-info">
|
||||
<span class="pull-left">
|
||||
{posts.additional_profile_info}
|
||||
</span>
|
||||
<span class="pull-right">
|
||||
posted <span class="relativeTimeAgo timeago" title="{posts.relativeTime}"></span>
|
||||
<span class="{posts.edited-class}">| last edited by <strong><a href="/user/{posts.editorslug}">{posts.editorname}</a></strong></span>
|
||||
|
||||
31
src/posts.js
31
src/posts.js
@@ -16,6 +16,7 @@ var RDB = require('./redis.js'),
|
||||
winston = require('winston');
|
||||
|
||||
(function(Posts) {
|
||||
var customUserInfo = {};
|
||||
|
||||
Posts.getPostsByTid = function(tid, start, end, callback) {
|
||||
RDB.lrange('tid:' + tid + ':posts', start, end, function(err, pids) {
|
||||
@@ -46,17 +47,27 @@ var RDB = require('./redis.js'),
|
||||
post.picture = userData.picture || require('gravatar').url('', {}, https = nconf.get('https'));
|
||||
post.signature = signature;
|
||||
|
||||
if (post.editor !== '') {
|
||||
user.getUserFields(post.editor, ['username', 'userslug'], function(err, editorData) {
|
||||
if (err) return callback();
|
||||
|
||||
post.editorname = editorData.username;
|
||||
post.editorslug = editorData.userslug;
|
||||
callback();
|
||||
});
|
||||
} else {
|
||||
callback();
|
||||
for (var info in customUserInfo) {
|
||||
if (customUserInfo.hasOwnProperty(info)) {
|
||||
post[info] = userData[info] || customUserInfo[info];
|
||||
}
|
||||
}
|
||||
|
||||
plugins.fireHook('filter:posts.custom_profile_info', {profile: "", uid: post.uid}, function(err, profile_info) {
|
||||
post.additional_profile_info = profile_info.profile;
|
||||
|
||||
if (post.editor !== '') {
|
||||
user.getUserFields(post.editor, ['username', 'userslug'], function(err, editorData) {
|
||||
if (err) return callback();
|
||||
|
||||
post.editorname = editorData.username;
|
||||
post.editorslug = editorData.userslug;
|
||||
callback();
|
||||
});
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user