This action will force synchronization from doramart/DoraCMS, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
##问题:
#DoraCMS
###版本更新 2016年3月20日21:45:40 ###版本号v1.1.0 ###更新内容:
###-------------------------------------------------------------------------------
#DoraCMS开发指南
##一、DoraCMS 安装
DoraCMS 使用的是Mongodb 的数据库,至于Mongodb 的特点和nosql的优势在此就不做详细描述了。安装方法很简单,到官网 (https://www.mongodb.org/) 下载对应版本,直接安装就可以了。这里有一点需要注意的是,如果你安装在D盘,安装完成后,在D盘根目录下创建文件夹 data ,不然启动mongo会提示数据库路径错误,当然你也可以通过命令启动mongodb来指定数据库的路径,如果你不想麻烦,就照我说的处理就可以了。
1、在本地盘建立一个文件夹(最好英文名称),通过svn checkout 出DoraCMS的代码,svn地址:svn://git.oschina.net/doramart/DoraCMS
注:.idea 不属于项目文件夹,为webstorm 工程文件,不必理会。
1.3 运行DoraCMS
1.3.1启动mongodb
找到mongodb安装目录下bin文件夹,执行 mongod.exe
至此,访问后台页面就不需要登录了,开启服务后,你可以直接访问地址: 管理员添加 : http://127.0.0.1:81/admin/manage/adminUsersList 用户组管理 :http://127.0.0.1:81/admin/manage/adminGroupList 注意:先添加用户组,在添加管理员,完成上面的操作,把代码还原回去,并重启服务。用刚才设置的管理员信息登录后台。
在刚刚svn下载的代码目录下 调出cmd命令窗口,执行npm start
如果没有报错,证明运行成功了。
注意:DoraCMS 指定了默认端口号为80,如果您的机器已经占用了80端口,这里会报错,如果想修改默认端口号,可以到代码的bin目录下 www 文件修改,当然修改完成,访问路径记得带上端口号:
至此,doraCMS就运行起来了
前台:127.0.0.1 (默认81端口) 后台:127.0.0.1/admin
SITETITLE : '前端开发俱乐部', // 站点名称
SITEDOMAIN : 'http://www.html-js.cn', // 站点域名
SITEICP : '粤ICP备15038960号-2', // 站点备案号
SITEVERSION : 'd20151012142453', // 静态资源版本戳
SYSTEMMAIL : 'doramart@qq.com', // 管理员个人邮箱
UPDATEFOLDER : process.cwd()+'/public/upload', // 默认上传文件夹本地路径
TEMPSFOLDER : process.cwd()+'/views/web/temp', // 默认模板文件夹本地路径
DATAOPERATION : process.cwd()+'/models/db/bat', //数据库操作脚本目录
DATABACKFORDER : 'C:/softbak/mongodbConfig/mongodata/', // 服务端数据库操作脚本目录
CMSDISCRIPTION : '前端开发俱乐部,分享前端知识,丰富前端技能。汇集国内专业的前端开发文档,为推动业内前端开发水平共同奋斗。html,js,css,nodejs,前端开发,jquery,web前端, web前端开发, 前端开发工程师',
SITEKEYWORDS : '前端开发俱乐部,前端俱乐部,DoraCMS,内容管理系统, 前端开发, web前端, 前端开发工程师,前端资源, angularjs, 前端开发工具, nodejs ,boostrap',
SITEBASICKEYWORDS : '前端开发俱乐部,前端开发,前端俱乐部,DoraCMS', // 基础关键词
### Settings.js 中有四个参数需要注意一下:
- UPDATEFOLDER : process.cwd()+'/public/upload', // 默认上传文件夹本地路径
- TEMPSFOLDER : process.cwd()+'/views/web/temp', // 默认模板文件夹本地路径
- DATAOPERATION : process.cwd()+'/models/db/bat', //数据库操作脚本目录
- DATABACKFORDER : 'C:/softbak/xxxx/', // 服务端数据库操作脚本目录
- DATABACKFORDER 指定数据备份的本地路径。
SYSTEMMANAGE : new Array('sysTemManage','DoraCMS后台管理'), // 后台模块(系统管理)
ADMINUSERLIST : new Array('sysTemManage_user','系统用户管理'),
ADMINGROUPLIST : new Array('sysTemManage_uGroup','系统用户组管理'),
ADSLIST : new Array('sysTemManage_ads','广告管理'),
FILESLIST : new Array('sysTemManage_files','文件管理'),
DATAMANAGE : new Array('sysTemManage_data','数据管理'), // 数据管理
BACKUPDATA : new Array('sysTemManage_data_1','数据备份'), // 数据备份
SYSTEMLOGS : new Array('sysTemManage_logs','操作日志'), // 系统操作日志
CONTENTMANAGE : new Array('contentManage','内容管理'), // 后台模块(内容管理)
CONTENTLIST : new Array('contentManage_content','文档管理'),
CONTENTCATEGORYS : new Array('contentManage_cateGory','文档类别管理'),
CONTENTTAGS : new Array('contentManage_tag','文档标签管理'), //标签管理
CONTENTTEMPS : new Array('contentManage_temp','文档模板管理'), //模板管理
MESSAGEMANAGE : new Array('contentManage_msg','留言管理'), // 留言管理
USERMANAGE : new Array('userManage','会员管理'), // 后台模块(会员管理)
REGUSERSLIST: new Array('userManage_user','注册用户管理')
改参数对应后台模板文件 adminTemp.ejs 中的模块列表的:
也就是说,如果新增模块,需要在配置文件(settings.js) 和 adminTemp.ejs 中配置相应的cid。
这个属性是权限控制需要的,除此之外,加入新模块后,需要在权限管理模块加入新模块,并配置对应的cid
Admin.js , 后台所有模块管理路由
Content.js 前台文档相关
Index.js 首页相关(也包含文档列表和文档相亲)
System.js 系统操作的相关路由 (比如文件上传、邮件发送等)
Users.js 用户中心的相关请求走这里
Validat.js 后台权限控制(没有授予管理权限(session)会直接过滤掉请求)
DoraCMS 是基于ejs 模板引擎来表现前台页面的,选择ejs 是因为比jade更好理解一些。属性js的童鞋也好接受ejs的语法来展示数据。DoraCMS 的模板文件都在 views 文件夹下:
解析:
1、views 下的 index.ejs 为首页主体内容,sitemap.ejs 是站点地图的主体内容,sitemap.ejs是展示给用户看的,不需要手动更新。
2、Web 为前台的所有模板文件,web根目录下的 do404.ejs, do505.ejs , dosuccess.ejs 是处理操作过程结果反馈的模板,这些是普遍需要用到的。
3、Users 是用户相关页面模板。
4、Temp中包含了公共header和footer,以及文档模板,aboutMe、blog、lab 都属于文档模板,可以根据自己的需要自行添加。
5、public 文件夹中的模板暂时没用到。
6、Manage 里是后台的所有页面模板,adminTemp.ejs 是模板外壳,里面包含了各个模块列表和一些公共的引用。
7、public 文件夹下是公共目录,主要放置静态文件,包括前台和后台的静态js,css,以及DoraCMS 用到的jquery插件等。Public 下的文件都是公开的,在app.js 中设置。
开发过程中,很多功能并不是自己写的,用到了npm上比较优秀的一些插件,在此选出一些做介绍,所有插件在 node_modules 下
1、Express nodejs 框架,是DoraCMS的基础框架
2、Gm 图片缩略图,为上传图片生成指定大小的缩略图
3、Moment 时间格式化工具,功能非常强大
4、Nodemailer nodejs邮件发送组件
5、Formidable 文件上传组件
6、Qiniu 七牛云存储组件,用于将文件上传到七牛上
7、Qr-image 用户将自定义链接生成二维码图片的组件,轻量级 很方便
8、Archiver 文件夹压缩工具,将指定文件夹压缩为zip
9、Shortid 用在了实体类中,用于生成短id替代 mongodb 的长id
10、Validator 用户服务端数据校验,提供很多方法对数据进行校验
11、Ueditor-nodejs 将nodejs和百度的ueditor整合,这个组件感觉很有用
12、Mongoose 用于nodejs 连接 mongodb,并提供了丰富的数据处理的接口
DoraCMS 默认在3个地方用到了上传:用户上传头像、添加文档主图、内容详情中文件、图片或附件上传。
其中用户上传头像、添加文档主图默认使用七牛,所以如果您没有配置七牛云存储开发者相关信息,就会上传失败,需要在 /models/db/setting.js 下进行配置:
(七牛免费10G空间,注册账号就可以获取到相关信息了)。
当然,有的童鞋不想用七牛,想直接传到网站相关目录,也是可以的。DoraCMS 预留的有通过 uploadify 上传图片或文件,而且上传接口自带了图片缩略图截取功能。您可以通过查看 /public/javascripts/webapp.js 下的 initUploadLogoBtn 方法:
function initUploadLogoBtn($scope){
$("#uploadify").uploadify({
'swf': '/plugins/uploadify/uploadify.swf',
'uploader': '/system/upload?type=images&key=userlogo',
'buttonText': '选择图片',
'height': 40,
'width': 138,
'fileTypeDesc': 'Image Files',
'fileTypeExts': '*.gif; *.jpg; *.png',
'auto': true,
'multi': true,
'onUploadSuccess' : function(file, data, response) {
alert("上传成功");
$scope.logoFormData.logo = data;
$("#myImg").attr("src",data);
$('#submitLogo').removeClass('disabled');
},
'onComplete': function(event, queueID, fileObj, response, data) {
alert("文件:" + fileObj.name + " 上传成功!");
},
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
},
'onError': function(event, queueID, fileObj) {
alert("文件:" + fileObj.name + " 上传失败!");
}
});
}
Sign in for post a comment
Comments ( 0 )