内容管理系统介绍及使用说明

Keva
阅读 18

一、项目特色

1、富文本编辑器使用CKEditor5

支持常见的排版功能。此版本设置为任何复制源自动清除原样式,以保证网站模板对内容样式的控制。比如从Word、网页中复制大段文本、图片,可自动转换为识别样式,复制或截屏的图片自动上传,复制Excel内容(无设置的情况下)自动转换为内置样式。

在此之外,还扩展了两个插件:首行缩进和图片批量上传。

2、网站模板化管理

在线编辑器采用微软基于VS Code开源的代码编辑器Monaco Editor,功能强大,体验和VS Code不相上下。另外,还支持图片在线编辑功能。

提供两套模板,一套仿简书的Blog和一套企业网站,开箱即用,供学习参考。

3、系统架构

此项目本是一个完整的Admin管理框架,符合国级二级等保要求,如:登录个性设置、头像设置、组织机构、角色权限、资源管理、后台菜单管理等内容。

系统完全基于JFinal开发,无第三方依赖。

4、前端常用工具

JS集成了大量常用工具,如弹窗、提示框、对话框、加载动画、动画库、图片上传、图片编辑、图片查看器、图片懒加载等组件。JS非本项目侧重点,需自行研究。

5、技术路线

JDK1.8、JFinal 5.0.0、JFinal-Undertow 2.2、MySQL 5.7.44、jQuery 3.5.1、Bootstrap 4.5、CKEditor5、jsTree 3.3.9、Monaco Editor 0.20.0、Cropper 4.1.0

图 功能结构图

二、截图

1、后台管理-文章管理

图 草稿箱
图 编辑文章
图 已发布文章管理
图 栏目管理
图 网站模板管理
图 网站模板在线编辑
图 图片在线编辑

2、后台管理-配置管理

图 系统配置
图 通用字典项配置
图 后台菜单配置管理
图 用户管理
图 部门管理
图 日志管理
图 符合二级等保要求的日志管理
图 日志统计

3、前端截图略

三、网站模板开发说明

1、网站模板结构说明

图 网站文件结构

index.html:网站首页

list.html:栏目列表

detail.html:文章详情页

setting.html:网站设置

template.properties:模板配置文件

以上文件除setting.html外,缺一不可,详细内容参考提供的两套模板

2、使用个性化模板文件

系统默认渲染对应的模板文件,如无特殊需求,不要修改文件名。

在现实中网站的需求各异,通过以下用法可以快速切换不同风格的模板文件:

案例:栏目页(或者列表页),黙认为list.html纯文本列表的方式展示,此时有某个栏目需要不同风格的展示,比如该栏目需要以图铺的形式展示,这个时候默认的列表模板则不支持了。

实现:新建一个list_gird.html的文件,匹配特殊需求完成开发,把文件放list.html模板同级目录,访问时以问号挂参方式即可快速切换模板:http://localhost /category/{id}/?v=list_gird

3、网站模板标签指令使用说明

模板基于enjoy开发,以下所有应用示例全部基于enjoy,若使用其他模板,请自行学习!

算了,还是换enjoy吧,其他没有好用的。

1)、articles:文章列表指令

用法:任意地方引用

示例:

### 代码结构
#articles(page=page, order='create_time DESC', size=20)
	#for(article : articles.list)
 	
	#end
#end

### 实例
###articles(order = 'rand() LIMIT 10')
#articleList(randomLimit=10)
<ul class="list">
	#for(tuijian : articles)
	<li class="list-item">
		<a href="/detail/#(tuijian.id)" target="_blank">
			#(tuijian.title)
		</a>
		<div class="info">阅读 #number(tuijian.view_count??0)</div>
	</li>
	#end
</ul>
#end

参数说明:

categoryId:栏目ID 例:categoryId=1

order:排序字段 例:order=’create_time DESC, order DESC’

size:分页步长 例:size=20

page:分页页码 例:page=page,固定格式

focus:焦点文章 例:focus=1

2)、categories:栏目列表指令

用法:任意地方引用

示例:

### 代码结构
#categories()
#for(category : categories)
    ###是否是父栏目
    #set(isParent = category.isParent())
 	#if(one.isParent())
 	
    #end
#end

### 实例
#categoryList()
	<ul class="navbar-nav">
		<li class="nav-item">
			<a class="nav-link active" href="/">首&nbsp;&nbsp;页</a>
		</li>
		#for(one : categories)
			#set(isParent = one.isParent(), subList = one.getSubList())
			#if(one.isParent())
			<li class="nav-item">
				<a class="nav-link" href="/list/#(one.id)">#(one.title??)</a>
			</li>
			#end
		#end
	</ul>
#end

参数说明:无参数

3)、category:栏目指令

用法:任意地方引用

4)、option:自定义配置指令

用法:任意地方引用

#option('keyname')

### 实例
<span>option</span>
配置项:<br>
#option("default_template")

4、小工具

网站模板开发中,经常会遇到需要截取文本长度并以“…”结尾。系统提供了sub工具,可在模板开发中快速使用。

用法:#(article.summary.sub(20))

超出长度部分以“…”结尾,也可以自定义符号:#(article.summary.sub(20, ‘-’))

四、内置模板

1、仿简书Blog模板

集成代码高亮,可点击复制代码,几乎完美复制简书。

屏幕自适应,个人博客类网站可参考。

2、其他略,可根据需求咨询作者。

图 微信扫一扫添加作者
回到顶部