v1.18.x
barisusakli 10 years ago
parent 47a2377229
commit dc16a665ae

@ -184,6 +184,8 @@ categoriesController.get = function(req, res, next) {
}, next); }, next);
}, },
function(results, next) { function(results, next) {
userPrivileges = results.privileges;
if (!results.exists || (results.categoryData && parseInt(results.categoryData.disabled, 10) === 1)) { if (!results.exists || (results.categoryData && parseInt(results.categoryData.disabled, 10) === 1)) {
return helpers.notFound(req, res); return helpers.notFound(req, res);
} }
@ -196,15 +198,18 @@ categoriesController.get = function(req, res, next) {
return helpers.redirect(res, '/category/' + encodeURI(results.categoryData.slug)); return helpers.redirect(res, '/category/' + encodeURI(results.categoryData.slug));
} }
var settings = results.userSettings;
var topicIndex = utils.isNumber(req.params.topic_index) ? parseInt(req.params.topic_index, 10) - 1 : 0; var topicIndex = utils.isNumber(req.params.topic_index) ? parseInt(req.params.topic_index, 10) - 1 : 0;
var topicCount = parseInt(results.categoryData.topic_count, 10); var topicCount = parseInt(results.categoryData.topic_count, 10);
var pageCount = Math.max(1, Math.ceil(topicCount / settings.topicsPerPage));
if (topicIndex < 0 || topicIndex > Math.max(topicCount - 1, 0)) { if (topicIndex < 0 || topicIndex > Math.max(topicCount - 1, 0)) {
return helpers.redirect(res, '/category/' + cid + '/' + req.params.slug + (topicIndex > topicCount ? '/' + topicCount : '')); return helpers.redirect(res, '/category/' + cid + '/' + req.params.slug + (topicIndex > topicCount ? '/' + topicCount : ''));
} }
userPrivileges = results.privileges; if (settings.usePagination && (page < 1 || page > pageCount)) {
var settings = results.userSettings; return helpers.notFound(req, res);
}
if (!settings.usePagination) { if (!settings.usePagination) {
topicIndex = Math.max(topicIndex - (settings.topicsPerPage - 1), 0); topicIndex = Math.max(topicIndex - (settings.topicsPerPage - 1), 0);

@ -53,12 +53,13 @@ topicsController.get = function(req, res, next) {
var settings = results.settings; var settings = results.settings;
var postCount = parseInt(results.topic.postcount, 10); var postCount = parseInt(results.topic.postcount, 10);
var pageCount = Math.max(1, Math.ceil((postCount - 1) / settings.postsPerPage)); var pageCount = Math.max(1, Math.ceil((postCount - 1) / settings.postsPerPage));
var page = parseInt(req.query.page, 10) || 1;
if (utils.isNumber(req.params.post_index) && (req.params.post_index < 1 || req.params.post_index > postCount)) { if (utils.isNumber(req.params.post_index) && (req.params.post_index < 1 || req.params.post_index > postCount)) {
return helpers.redirect(res, '/topic/' + req.params.topic_id + '/' + req.params.slug + (req.params.post_index > postCount ? '/' + postCount : '')); return helpers.redirect(res, '/topic/' + req.params.topic_id + '/' + req.params.slug + (req.params.post_index > postCount ? '/' + postCount : ''));
} }
if (settings.usePagination && (req.query.page < 1 || req.query.page > pageCount)) { if (settings.usePagination && (page < 1 || page > pageCount)) {
return helpers.notFound(req, res); return helpers.notFound(req, res);
} }
@ -81,7 +82,7 @@ topicsController.get = function(req, res, next) {
} }
var postIndex = 0; var postIndex = 0;
var page = parseInt(req.query.page, 10) || 1;
req.params.post_index = parseInt(req.params.post_index, 10) || 0; req.params.post_index = parseInt(req.params.post_index, 10) || 0;
if (reverse && req.params.post_index === 1) { if (reverse && req.params.post_index === 1) {
req.params.post_index = 0; req.params.post_index = 0;

Loading…
Cancel
Save