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

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

@ -53,12 +53,13 @@ topicsController.get = function(req, res, next) {
var settings = results.settings;
var postCount = parseInt(results.topic.postcount, 10);
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)) {
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);
}
@ -81,7 +82,7 @@ topicsController.get = function(req, res, next) {
}
var postIndex = 0;
var page = parseInt(req.query.page, 10) || 1;
req.params.post_index = parseInt(req.params.post_index, 10) || 0;
if (reverse && req.params.post_index === 1) {
req.params.post_index = 0;

Loading…
Cancel
Save