DoraCMS内容管理系统操作指南
发布在nodejs开发2015年10月22日view:3599开源项目前端开发ExpressIgoriAssowMongodb
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

DoraCMS慢慢趋于稳定,现有的功能已经渐渐完善,后续我会把操作指南和开发指南归档整理一下,同时也会根据整理过程中发现的问题进行修改,尽量减少bug和重大隐患。文档整理完毕后,代码开源。

目录

一、概述2

二、后台模块2

1、后台登录2

2、后台模块简介4

3、模块详情5

1、用户组设置5

2、系统用户管理6

3、邮件模板7

4、广告管理8

5、文件管理器9

6、数据管理10

一、概述

DoraCMS是基于Nodejs+express+mongodb编写的一套内容管理系统。前前后后编写和修改大体用了3个月左右的时间(本人也有工作,也是有空就写写)。考虑到准备开源,为更多nodejs初学者提供入门帮助,特编写该文档,对DoraCMS系统做细节说明,并不保证程序没有bug或其它问题,目前我也是边发现边修改存在的问题,希望广大的开发者发现问题能及时反馈给我,我会不断完善,我们一起进步。

二、后台模块

1、后台登录

enter image description here

后台登录比较简单,后台登录的信息需要从后台录入,这就出现一个问题,如果你是第一次安装doracms,数据库是空的,进不来后台设置,如何登录呢?需要通过mongo命令行插入初始的登录数据:

1、找到Mongodb安装目录(MongoDB\Server\3.0\bin) 执行 mongo.exe

2、输入 use doracms

3、插入用户组数据:

db.admingroups.insert({ "_id" : "4yTbsWiI", "name" : "超级管理员", "power" : "{\"sysTemManage_0_1\":true,\"sysTemManage_0_2\":true,\"sysTemManage_0_3\":true,\"sysTemManage_0_4\":true,\"sysTemManage_0_5\":true, \"contentManage_1_1\":true,\"contentManage_1_2\":true,\"contentManage_1_3\":true,\"userManage_2_1\":true,\"projectManage_3_1\":true, \"projectManage_3_2\":true,\"projectManage_3_3\":true,\"contentManage_1_4\":true,\"contentManage_1_5\":true,\"sysTemManage_0_6\":true, \"contentManage_1_6\":true}", "date" : ISODate("2015-06-30T08:04:46.092Z"), "__v" : 0 })

4、插入用户数据:

db.adminusers.insert({ "id" : "E1jNjZi8", "name" : "test", "username" : "test", "password" : "581fbebb8a5f5827", "phoneNum" : 12358563215.0, "email" : "doramart@qq.com", "group" : "4yTbsWiI", "comments" : "doramart", "logo" : "/upload/images/defaultlogo.png", "date" : ISODate("2015-06-18T01:17:15.007Z"), "_v" : 0 })

5、插入数据如果存在格式问题,需要在记事本里编辑一下。如果上述执行正常,那么默认的登录名和密码为 test / 000000 ,这样,您就可以正常登录后台了。

2、后台模块简介

enter image description here

后台模块按功能分为3大部分:系统管理、文档管理、会员管理。

1、系统管理——包含了系统用户管理、用户组设定、邮件模板、广告管理、文件管理器、数据管理。

2、文档管理——包含了文档管理、文档类别管理、文档标签管理、文档模板配置、文档属性管理、留言管理。

3、会员管理——包含注册会员列表。

3、模块详情

1、用户组设置

enter image description here

作用:设置管理员组别,同时设置管理权限

操作:组名称可自定义(如:超级管理员),选择需要设定的管理模块

备注:目前的权限设置只针对于大模块,只要对大模块有权限操作,模块中的增删改查都是有权限的。

2、系统用户管理

enter image description here

enter image description here

作用:管理员用户设置

操作:点击添加用户可以添加新的管理员,在设置用户组之后可以赋予新管理员的用户权限,没有权限的用户无法访问指定的模块。

备注:通过校验的表单才可以提交,其它所有模块都采用了类似的模式。

3、邮件模板

enter image description here

作用:邮件模板是为了定义需要发送邮件时调用的模板,通过定义模板然后加入指定的参数,在邮件发送时,给指定参数传入数据,就可以发送带数据的模板给指定用户了。目前在doracms上并没有用到邮件发送功能,但是该功能已测试通过,可以使用。下面通过接口简单介绍一下:

邮件模板的前提是系统支持邮件发送,这一块我用了nodemailer 组件,实现代码:

sendEmail : function(key,user){

    var emailTitle = "Hello";
    var emailSubject = "Hello";
    var emailContent = "Hello";
    var emailLink = "";
    EmailTemp.findOne({type:key},function(err,temp){
        if(temp){

            emailTitle = temp.title;
            emailSubject = temp.subject;
            emailContent = temp.comments;

            var oldlink = user.userName + user.email;
            var newLink = DbOpt.encrypt(oldlink,"dora");
            emailLink = user._id+"/"+newLink;

            var ec1 = emailContent.replace("euserName",user.userName);
            var ec2 = ec1.replace("elink",emailLink);

            var transporter = nodemailer.createTransport({
                service: '163',
                auth: {
                    user: 'xxx@163.com',
                    pass: 'xxx'
                }
            });

            var mailOptions = {
                from: 'xxx@163.com', // sender address
                to: user.email, // list of receivers
                subject: emailSubject, // Subject line
                text: emailTitle, // plaintext body
                html: ec2 // html body
            };

            transporter.sendMail(mailOptions, function(error, info){
                if(error){
                    console.log(error);
                }else{
                    console.log('Message sent: ' + info.response);
                }
            });
        }
        else
        {
            console.log("邮件模板查询失败,无法正常发送");
        }
    })
}

可以参照代码查看,注释写的很详细,在需要发送邮件的地方调用sendEmail方法,传入合适的参数就可以了。传入的参数是指定邮件模板的ID,发送邮件时,会根据模板打包详情发送出去,可用户邮件激活和找回密码等功能。这些功能在最初的版本里都有,不过后来去掉了,因为开发的并不完善,有兴趣的童鞋可以接着处理这部分。

4、广告管理

作用:管理员可以添加图片、文字两种广告。针对前台显示单广告、图片轮播广告或者文字广告。

enter image description here

文字广告比较简单,直接添加文本和链接就可以了。图片广告规定添加一张图片不轮播,多张图片轮播的形式,单张图片属性设置如图:

enter image description here

您可以设置图片的基本属性和打开方式。

调用方式:

<script>initAds(key,"exampleId");</script>
,其中key 是广告ID,在创建完广告后可以在广告列表获取,exampleId 可以自定义。

5、文件管理器

做文件管理器是一个朋友提出的,最初的设想是管理上传文件,目前的功能比较简单。

enter image description here

enter image description here

用户可以对上传文件进行修改、删除等操作。目前只定义了对图片进行重命名和删除操作,对html等静态文件进行内容修改的操作,而且加入了列表和缩略图视图,对于图片缩略图是可以点击查看的。做这个模块也是为了巩固nodejs 文件操作的方式和方法。

6、数据管理

数据管理功能是后来加的,考虑到以后博客是数据会越来越多,于是数据备份是很有必要的。

enter image description here

这里利用了mongodb自带的数据备份脚本,通过Nodejs执行脚本的命令来执行数据库备份,数据按时间戳命名,备份完成后执行打包操作,形成完整的备份数据压缩文件。

未完待续…

DoraCMS 演示 http://www.html-js.cn DoraCMS源码

评论
发表评论
3年前

@龙卷X 感谢关注,如果发现有问题,请及时提出,感谢~!~

3年前

一直在关注 终于开源了

3年前
赞了此文章!
3年前

@芋头 ^_^~~

3年前

这域名屌啊

WRITTEN BY
doramart
前端开发初学者,正在此处奋斗不息
TA的新浪微博
PUBLISHED IN
nodejs开发

nodejs 开发 技术指南

我的收藏