#原创# CMSTOP系统快速入门

# CMSTOP #
熟悉CMSTOP系统,首先别急着阅读源码,毕竟作为一款商业的CMS,直接阅读源码反而不能快速的使用起来!从后台的功能使用上去熟悉是比较容易理解整个应用的构建思想的。
后台也是基于MVC的路径的,可以快速的找到对应的控制器,但CMS前台的则是生成的静态页面,路径根据路径的设置(在后台新建栏目、页面时指定)而生成的一系列静态文件,所以直接通过前台的路径去找源码是相对其他MVC系统而言的一大区别。

1、资源下载
源码:https://coding.net/u/webjust/p/cms_top/git
> 核心文件经过了Zend加密,可以通过解密网站进行解密:http://dezend.qiling.org/free/

2、环境搭建
下载PHPSTUDY2016 http://www.php.cn/xiazai/gongju

2.1、服务器端包含(ssi)
Apache下开启SSI配置使html支持include包含的方法

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost *:80>
    DocumentRoot "D:\phpStudy\WWW\cmstop.info"
    ServerName cmstop.info
    ServerAlias cmstop.info
  <Directory "D:\phpStudy\WWW\cmstop.info">
    Options Indexes FollowSymLinks Includes
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

2.2、magic_quotes_gpc函数关闭:
在php.ini文件内找到
magic_quotes_gpc = On
将其改为
magic_quotes_gpc = Off

2.3、支持index.shtml索引页

Select Code
1
2
3
<IfModule dir_module>
    DirectoryIndex index.html index.shtml index.php index.htm l.php
</IfModule>

2.4 win7x64+PHPStudy2018安装redis扩展
https://blog.csdn.net/leejianjun/article/details/79555026
https://windows.php.net/downloads/pecl/releases/redis/3.0.0/php_redis-3.0.0-7.0-nts-vc14-x86.zip
https://windows.php.net/downloads/pecl/releases/igbinary/2.0.5/php_igbinary-2.0.5-7.0-nts-vc14-x86.zip

3、后台操作流程解读
3.1 新增栏目:

以栏目为例,最终会在数据库存储栏目对应的模板文件、URL路径(理解这部分是理解前台的生成页面的URL的关键所在),大部分CMS属于是静态的页面,所以前台会生成静态文件。

这里,我们还要理解CMSTOP一个比较关键的概念「区块」。下面是一个视图文件的源码;

Select Code
1
<!--{template 'system/header.html'}-->

这是引入公共的模板文件

Select Code
1
<!--#include virtual="{ROOT}section/30.html"-->

这是引入区块。可以认为CMSTOP的每一个前台的页面,都是可以由很多个自定义的区块组合而成一个页面,这样维护人员就可以很容易的在页面上添加一个元素,非常灵活,算是其很大的一个特色了。

3.2 区块
以首页为例:

区块中,你可以定义HTML,也可以根据模板引擎的语法自定义动态的输出等内容;

首页模板:

原先的模板如上,替换掉区块以后的代码就是这样的:

你可能会问:怎么不直接定义在模板文件中呢?区块你可以理解为公共部分的提取,我可能会很灵活的用在多个页面,而管理「区块」的任务也不需要由「程序员」来完成,内容管理员就可以维护区块了。是不是很方便处理像CMS页面上的广告位(类似的这种功能)?

最终存储在数据库 `cmstop_section` 的「区块」,都对应1个ID。

生成的区块的静态文件,都存放在 /section 根目录下,而不需要从数据库读取,至于如何生成这些静态文件,则可以进一步的去理解系统里面是如何生成的,要找到这个方法也是顺其自然的。

如果需要了解进一步生成区块静态文件的方法,就可以根据这个方法找到对应的后台控制器方法

以此类推,可以找到生成栏目页、新闻内容页、自定义的页面:

总之,到这里为止,我们应该充分的理解CMSTOP的前台页面的URL是根据后台设置的规则生成的纯静态文件。

4、其他功能

当然作为一个强大的内容管理系统,内容是核心,而其他的组件都是为内容的维护服务的,可以多在后台使用其他的功能,结合对应的表结构来理解,就可以很容易掌握,从而根据需求来进行一些二次开发的任务。官网也有详细的手册:http://www.cmstop.com/help/

结尾:
至于MVC里面的模板,控制器,模型,可以参考二次开发手册,也可以根据系统已经生产的一套页面的源码,去直接借用即可,这里不做过多的阐述:http://doc.cmstop.com/develop/