mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-26 16:46:12 +01:00 
			
		
		
		
	feat: add more properties from /category to /world
This commit is contained in:
		| @@ -1,5 +1,7 @@ | |||||||
| 'use strict'; | 'use strict'; | ||||||
|  |  | ||||||
|  | const nconf = require('nconf'); | ||||||
|  |  | ||||||
| const db = require('../../database'); | const db = require('../../database'); | ||||||
| const user = require('../../user'); | const user = require('../../user'); | ||||||
| const topics = require('../../topics'); | const topics = require('../../topics'); | ||||||
| @@ -7,6 +9,11 @@ const topics = require('../../topics'); | |||||||
| const pagination = require('../../pagination'); | const pagination = require('../../pagination'); | ||||||
| const helpers = require('../helpers'); | const helpers = require('../helpers'); | ||||||
|  |  | ||||||
|  | const categories = require('../../categories'); | ||||||
|  | const privileges = require('../../privileges'); | ||||||
|  | const translator = require('../../translator'); | ||||||
|  | const meta = require('../../meta'); | ||||||
|  |  | ||||||
| const controller = module.exports; | const controller = module.exports; | ||||||
|  |  | ||||||
| controller.list = async function (req, res) { | controller.list = async function (req, res) { | ||||||
| @@ -29,12 +36,29 @@ controller.list = async function (req, res) { | |||||||
| 		weights: sets.map((s, index) => (index ? 0 : 1)), | 		weights: sets.map((s, index) => (index ? 0 : 1)), | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	const data = {}; | 	const [categoryFields, userPrivileges, rssToken] = await Promise.all([ | ||||||
|  | 		categories.getCategoryFields(-1, ['name', 'description', 'icon', 'imageClass', 'color', 'bgColor']), | ||||||
|  | 		privileges.categories.get(-1, req.uid), | ||||||
|  | 		user.auth.getFeedToken(req.uid), | ||||||
|  | 	]); | ||||||
|  | 	const data = categoryFields; | ||||||
|  | 	data.cid = -1; | ||||||
| 	data.topicCount = await db.sortedSetIntersectCard(sets); | 	data.topicCount = await db.sortedSetIntersectCard(sets); | ||||||
| 	data.topics = await topics.getTopicsByTids(tids, { uid: req.uid }); | 	data.topics = await topics.getTopicsByTids(tids, { uid: req.uid }); | ||||||
| 	topics.calculateTopicIndices(data.topics, start); | 	topics.calculateTopicIndices(data.topics, start); | ||||||
|  |  | ||||||
|  | 	data.title = translator.escape(categoryFields.name); | ||||||
|  | 	data.privileges = userPrivileges; | ||||||
|  |  | ||||||
| 	data.breadcrumbs = helpers.buildBreadcrumbs([{ text: `[[pages:world]]` }]); | 	data.breadcrumbs = helpers.buildBreadcrumbs([{ text: `[[pages:world]]` }]); | ||||||
|  | 	data['feeds:disableRSS'] = meta.config['feeds:disableRSS'] || 0; | ||||||
|  | 	data['reputation:disabled'] = meta.config['reputation:disabled']; | ||||||
|  | 	if (!meta.config['feeds:disableRSS']) { | ||||||
|  | 		data.rssFeedUrl = `${nconf.get('url')}/category/${data.cid}.rss`; | ||||||
|  | 		if (req.loggedIn) { | ||||||
|  | 			data.rssFeedUrl += `?uid=${req.uid}&token=${rssToken}`; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	const pageCount = Math.max(1, Math.ceil(data.topicCount / topicsPerPage)); | 	const pageCount = Math.max(1, Math.ceil(data.topicCount / topicsPerPage)); | ||||||
| 	data.pagination = pagination.create(page, pageCount, req.query); | 	data.pagination = pagination.create(page, pageCount, req.query); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user