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