QCMS5基本知识
QCMS5已经发布一段时间了,个人认为QCMS5确实很好用。
这次下载的源码不像以往进行开源,只保留了前台静态资源、配置文件、伪静态路径和模板文件等,这些已经很足够使用了。
在PHP7环境加持下运行,比以往QCMS更快。
免费版也有,但是必须在页脚有QCMS官方的信息和链接。
如今已经是付费去版权,表示理解和支持,目前开源CMS能继续保持更新的已经不多了。
1.0 简单安装SQLite或Mysql
一定会有小伙伴提问SQlite是什么意思,说白了就是在PHP环境下,只要你点击安装即可使用,不需要填写复杂的配置信息。
熟悉QCMS使用者一定会想到以前经典的ASP版ACCESS和PHP版1.3SQLITE,用起来非常方便!
这次我用PHPstudy环境安装,想学习Xampp环境或PHPstudy的伙伴,下次课程会更新。
Sqlite安装完成后,Sqlite数据放置在 lib/Config/
里,利用Sqlite3相关的工具查看。
如果站点数据量非常大,建议安装Mysql版本。具体Mysql详细会在下次课程讲解。

1.1 为了安全,删除两个文件
安装完毕后,Database文件和Install可以删除了。

1.2 修改QCMS默认的.htaccess文件
QCMS安装完成后,自己创建简单静态页面无法访问,修改.htaccess文件即可。
.htaccess文件具体代码(apache):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
nginx文件具体代码:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 break;
}
}
1.3 两个开源的文件夹
QCMS只有配置文件和模板文件是开源的,配置文件包括Config.php和View目录下的index文件夹所有文件。

1.4 简单调出网站标题和数组输出
这是本章节重点的课程,学会数组调用输出就是学会了QCMS内容管理系统制作了。
demo.php文件给了很多提示,首先看网站基本信息输出。
var_dump($this->Web['ShopRs']);
PHP里var_dump()函数是用于输出变量的相关信息,会提示数据是什么类型,数组,字符串,整形,为真和假等。
想简单一点输出就用print_r()函数,用于打印变量,以更容易理解的形式展示。
找到网站基本信息里的站点名称变量后,把它赋值给一个变量,就可以简单调用到站点名称。
//站点基本信息赋值给web
$web =$this->Web['ShopRs'];
//打印输出 找到
print_r($web);
//输出站点名称
echo $web['hopName'];
1.5 变量输出代码
<?=URL_ROOT?> //根目录 (/)
<?=URL_IMG?> //图片存放路径 (/Static/images/)
<?=URL_JS?> //JS存放路径 (/Static/scripts/)
<?=URL_CSS?> //CSS存放路径 (/Static/styles/)
<?=URL_BOOT?> //Bootstrap存放路径 (/Static/bootstrap/)
<?=URL_DOMAIN?> //域名
<?=VERSION?> //QCMS版本
1.6 PHP的短标签
正常安装PHP如果出现报错,是因为QCMS模板文件用大量的短标签。
在php.ini文件里查找short_open_tag = Off 改成On。
<?php echo ?> 短标签为 <?= ?>
1.7 QCMS5文件架构
QCMS文件架构非常干净,除了加密外部分文件可以自定义使用。
|-Lib //函数库、核心文件、模型
|- Config //配置文件
|- ssdffdewefwfsdfew8c4b3afba.db //Sqlite数据库文件
|- Config.php //配置文件
|- Url.php // 前台伪静态设置文件
|- Base.php //已加密
|- Controllers.php //已加密
|- Db.php //已加密
|- Db_pdo.php //已加密
|- Router.php //已加密
|- Helper //函数库已加密
|- Model //模型已加密
|- X.php //已加密
|-Static //静态资源
|- bootstrap //前端框架
|- fonts //字体文件
|- images //图片目录
|- logs //日志
|- scripts //js目录
|- styles //CSS目录
|- tmp //缓存
|- upload //上传图片目录
|-System
|- Controller //前台和后台控制器 已加密
|- View
|- index //前台模板
|- shop //后台模板 已加密
|- .htaccess //伪静态
|- index.php //入口文件 已加密
1.8 常用的PHP代码
QCMS模板就是原生的PHP代码来完成,去掉了繁琐的标签,用原生来完成调用。
//加载页头页脚
include 'head.php';
include 'footer.php';
//网站基本信息-数组输出:
var_dump($this->Web['ShopRs']);
//网站分类-数组输出:
//var_dump($this->Web['Cate']);
//网站导航-数组输出:
var_dump($this->Web['Nav']);
//网站底部-调用:
var_dump($this->Web['Footer']);
//调用数据不带分页:
echo 'News, Product, Job, Video, Cate, Page';
$Arr = $this->SetModule('News')->SetNum(2)->SetSort(array('Ts' => 'DESC'))->SetCond(array('CateId' => 3))->Query();
var_dump($this->DataArr);
//调用数据带分页:
$Arr = $this->SetModule('Product')->SetNum(2)->SetSort(array('Ts' => 'DESC'))->SetCond(array('CateId' => 1))->QueryPage();
var_dump($this->DataArr);
echo $this->PageArr;
//调用详情(只能在详情页面调用):
var_dump($this->DetailRs);
//路径:
<a href="<?=$this->url('index')?>">首页</a>
<a href="<?=$this->url('cate', 3)?>">分类3</a>
<a href="<?=$this->url('news', 1)?>">新闻详情</a>
<a href="<?=$this->url('product', 1)?>">产品详情</a>
<a href="<?=$this->url('job', 1)?>">招聘详情</a>
<a href="<?=$this->url('video', 1)?>">视频详情</a>
<a href="<?=$this->url('page', 1)?>">单页详情</a>
<a href="<?=$this->url('about')?>">关于详情</a>
1.9 调用导航代码
<ul>
<?php
$webNav = $this->Web['Nav'];
foreach ($webNav as $k => $v){
?>
<li>
<a class="active"<? if ($v['Sub']){ }else{?>href="<?=$v['Url'];}?>"><?=$v['Title']?></a>
<?php
if ($v['Sub']){
?>
<div>
<p><?=$v['Title']?></p>
<?php foreach ($v['Sub'] as $ks => $vs){?><a href="<?=$vs['Url'];?>"><?=$vs['Title'];?></a><?php }?>
</div>
<?php }?>
</li>
<?php }?>
</ul>
© 2020 www.f-learn.cn All Rights Reserved