sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
66 lines (60 loc) • 2.03 kB
JavaScript
var logger = require('../logger');
var config = require('../config');
//var api = require('../api');
//var mongoose = require('mongoose');
var S = require('string');
var util = require('../utilities');
var fs = require('fs');
var path_mod = require('path');
//var async = require('async');
/*
category: not currently used
callback: err, icons
*/
module.exports.getIcons = function(category, callback) {
try {
if (callback) {
var dir = util.resolvePath(config.settings.icons_directory);
var baseUrl = config.settings.icons_url;
if (!S(baseUrl).endsWith('/'))
baseUrl += '/';
console.log('dir=' + dir);
console.log('baseUrl=' + baseUrl);
//read the files in this directory
fs.readdir(dir, function (err, files) {
try {
if (err) {
logger.error(err);
callback(err);
}
else {
var icons = [];
for (var i = 0; i < files.length; i++) {
var f = files[i];
var ext = path_mod.extname(f).toLowerCase();
if (ext === '.jpg' || ext === '.jpeg' || ext === '.png' || ext === '.gif') {
icons.push({
name: f,
url: baseUrl + f,
category: ''
});
}
}
callback(null, icons);
}
}
catch(e) {
logger.error(e);
callback(e);
}
});
}
else {
logger.warn('getIcons called without callback.');
}
}
catch(e) {
logger.error(e);
if (callback) callback(e);
}
};