帝国CMS7.2版多终端访问功能使用图文教程

随着PC互联网与移动互联网的不断融合、以及各类移动访问终端增加,网站移动互联越来越重要了,所以帝国CMS7.2版本在原来版本的多访问终端功能基础上,做出更多的改进,让网站多种移动访问端制作更加方便。下面我们来讲解帝国CMS7.2版本的“多终端访问功能”使用:新增网站访问端步骤:一、设置所有访问端统一的访问地址;二、新增访问端使用的模板组;三、新建访问端目录,并复制一份帝国CMS程序文件进去;四、给新增的访问端目录绑定个二级域名;五、到主访问端后台新增“网站访问端”;六、到新访问端目录修改配置文件参数;七、完成。下面为详细操作步骤:一、设置所有访问端统一的访问地址后台系统系统参数设置:网站地址:这个地址一定不要加上域名,比如设置为:/附件地址:这个地址必须加域名,比如设置为:
或者
给附件目录/d/file/绑定个二级域名,然后设置为绑定的二级域名地址,如:这样所有端的访问地址就全部统一了。相关说明:如果改了网站地址,记得到后台系统数据更新更新信息页地址:重新更新下内容页地址。没有修改不用操作。二、新增访问端使用的模板组(一)、新增访问端使用的模板组1、导出默认模板组后台模板模板组管理导入/导出模板组:导出“默认模板组”模板组,并将导出的模板组*.temp文件保存好。2、通过导入默认模板组来新增访问端使用的模板组后台模板模板组管理导入/导出模板组:导入刚才导出的模板组*.temp文件。覆盖模板组:一定要选“新建新的模板组”。3、导入完成后返回管理模板组页面,修改导入的模板组名称:4、至此新访问端的模板组新增完成。(二)、后续访问端模板组的模板修改方式1、方式一:后台模板管理里直接修改后台模板:左侧菜单最顶部有个“默认模板组”下拉框,可以选择要修改哪个模板组下的模板,然后就可以修改此访问端的模板。2、方式二:可以本地装份帝国CMS用来管理和调试此访问端模板组的模板(1)、本地安装好帝国后,把新访问端的模板组导出,然后将模板组导入本地帝国CMS后台,这样本地就可以修改模板了。(2)、将新访问端的模板组下的模板修改后,导出模板组,再导入网站后台的模板组,但覆盖模板组:要选择此访问端的模板组,以达到覆盖模板效果。三、新建访问端目录,并复制一份帝国CMS程序文件进去(一)、新建访问端目录:可以在任意目录下新建。(注意事项:不在主端目录下建子目录,要注意设置好目录权限。)一般在主访问端下建个子目录就可以。比如:在帝国CMS根目录下建“phone”目录来做手机访问端目录。(二)、把主访问端目录复制一份到新建的访问端目录。比如:复制到上面我建的“phone”目录。选择目录和文件,并复制:把目录和文件粘贴到手机访问端“phone”目录:相关说明:1、复制目录后记得设置好此访问端目录权限,所需设置目录权限列表可以看帝国CMS的安装说明、以及网站的栏目目录权限。2、也可以复制一份全新的帝国CMS程序到新访问端目录,但复制后记得删除e/install安装目录,以及复制主访问端的e/config/config.php配置文件过去。然后再设置目录权限。四、给新增的访问端目录绑定个二级域名例如:把
m.xx.com 绑定到上面新建访问端 phone
目录。(本地测试可以修改hosts文件来实现绑定域名效果。)相关说明:域名绑定的一般步骤如下1、域名控制面板里设置解析到服务器IP2、服务器里设置绑定域名到目录(apache/iis里设置)3、设置后重启apache或iis。域名绑定操作需要在服务器或空间上操作,不在帝国CMS操作范围内,详细操作步骤大家可以百度搜索一下。五、到主访问端后台新增“网站访问端”(一)、主访问端后台系统网站多访问端管理网站访问端,点击“增加访问端”:访问端名称:比如填写“手机访问端”;访问端地址:填写绑定的二级域名地址,比如:访问端目录:填写上面新建访问端目录绝对路径,比如:d:/EmpireServer/web/empirecms72/phone/通讯密钥:填写100个字符以内的任意字符。使用模板组:选择上面新增的访问端模板组。页面模式:选择“强制动态页面模式”:访问端为动态显示,不需要刷新页面更新;选择“与主端相同”:如果主端是采用静态页面模式,需要在本访问端后台刷新页面,才会同步显示。关闭访问端:不选。关闭投稿:如果此访问端不使用投稿就选择关闭。设置后点“提交”按钮,增加后返回“管理网站访问端”可以看到网站访问端的ID,记下来。(二)、返回“管理网站访问端”,点击“更新所有访问端缓存与动态页面”,直接点“提交”按钮进行更新缓存。六、到新访问端目录,修改配置文件参数修改新访问端目录下(如上面的phone目录)的
/e/config/config.php 配置文件,设置下面两个参数:

前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model是一样的,Controller包含共用API部分和不共用部分,View则是完全不共用的,这里在整个初始架构的时候,我们可以主要从以下几个方面去考虑:

$ecms_config[sets][deftempid]=0;
//默认模板组ID$ecms_config[sets][selfmoreportid]=0;
//当前网站访问端ID,0为主访问端分别填写本访问端使用的模板组ID,以及本网站访问端ID。比如改为:$ecms_config[sets][deftempid]=2;
//默认模板组ID$ecms_config[sets][selfmoreportid]=2;
//当前网站访问端ID,0为主访问端修改后保存文件。七、至此,新访问端新增完毕,可以访问新端地址查看效果。剩下的事就是修改访问端的模板了。相关说明:1、建议在主访问端模板制作完成后,再增加其它网站访问端。2、在主访问端后台修改网站访问端配置参数后,要更新下所有访问端数据库缓存,方能生效。3、在主访问端后台关闭访问端后,该访问端的前台所有动态页面将不可使用,但静态页面不受访问影响。4、多访问端各端的动态模板都是独立的,如果动态页面也要不同,登录各访问端后台修改动态页面模板,以达到全面的个性化。帝国CMS7.2版移动端两种方案区别:1、多终端访问功能:支持N种访问端制作,需要复制多份帝国,然后制作各端独立的访问端模板,并且各端页面都是独立,支持浏览与动态互动,全面性高。2、WAP手机访问功能:如果移动端只提供浏览信息功能,用WAP更方便点,不需要复制多份帝国,制作WAP模板即可。相关链接帝国CMS7.2版WAP系统功能更新,更适应智能手机WAP管理使用教程

配置共用的数据库、扩展Application里面的模块、自定义视图文件夹、子域名部署、路由简化….

具体操作如下:

1、准备ThinkPHP环境、数据库

a、下载官网ThinkPHP3.2完整版源码,解压命名为testWeb放置到www目录下,访问

图片 1说明部署没问题的。

b、准备一个测试的数据库books,新建book表(id,title,price),准备好测试数据;

图片 2

c、配置数据库,参考ThinkPHP配置加载规则,可以采用惯例配置(ThinkPHP/Conf/convention.php),结合应用配置(Application/Common/Conf/config.php)、模块配置(Application/当前模块名/Conf/config.php),

这里我采用的是数据库配置在应用配置上:

 1     //数据库配置信息 2     'DB_TYPE'   => 'mysql', // 数据库类型 3     'DB_HOST'   => 'localhost', // 服务器地址localhost 4     'DB_NAME'   => 'books', // 数据库名 5     'DB_USER'   => 'root', // 用户名 6     'DB_PWD'    => '', // 密码 7     'DB_PORT'   => 3306, // 端口 8     'DB_PREFIX' => '', // 数据库表前缀 9     'DB_CHARSET'=> 'utf8', // 字符集10     'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增

接着,在默认Index控制器里面,添加一个操作:

1     public function get_book($id){2         $param['id'] = I('get.id');3         $model = M->where($param)->find();4         $this->ajaxReturn($model);5     }

    访问:

图片 3

2、扩展Application应用目录里面的模块

a、快速拷贝当前的Home模块,重命名为H5模块并修改相应控制器里面的名空间为:namespace
H5Controller,

访问:

制一个Admin模块。

3、自定义视图文件夹

a、视图概念:ThinkPHP是基于MVC结构设计的一种PHP框架,如果是简单的数据库操作,往往可以省略模块里面的Model,仅仅使用Controller就可以完成CURD操作,而视图也是其中一个很重要的功能。ThinkPHP中的视图主要指模板文件和模板引擎:模板文件可以简单理解为搭建积木玩具中的基本“小原件”,这“小原件”可能是不同形状,每种形状的“小原件”可能在搭建的过程中使用了一个或者多个;模板引擎,则是搭建积木玩具中的“凹凸”卡扣,形成一种规则将“小原件”组合起来。

b、视图使用:新增Home模块-Index控制器-book操作来获取所有书籍,并在Home模块的View文件夹下,新建Index文件夹-新建book.html

1 public function book(){2     $models = M->select();3     $this->assign('books',$models);4     $this->display();5 }

模板文件:

1 <body>2     <volist name="books" id="vo">3         <p>序号:{$vo.id}</p>4         <p>书名:{$vo.title}</p>5         <p style="color: #FF0000">价格:{$vo.price}</p>6     </volist>7 </body>

c、
访问:

图片 4

此时,说明这个视图使用是正确的,但是同时也有一些不好的地方,如果模板文件多起来的时候,就不利于模板修改编辑,可以在模块配置中,定义当前模块默认的视图目录(Application/Home/Conf/config.php):

define('TMPL_PATH','./Public/PC/'); 

类似定义H5、admin模块的视图目录,最终得到的目录组织,到此,就可以大概有几个不同的子网站的初步架构了。而对于网站的分类:二级菜单、三级菜单就可以分别对应控制器(Controller)和操作,根据视图模板构造动态的页面:

图片 5

4、子域名部署,关于子域名的解析可以参考我之前的文章网站部署一级域名、二级域名、子域名

a、主要修改一些相关配置:

 1 <VirtualHost *:80> 2     DocumentRoot "E:/wamp/www/testWeb/" 3     ServerName  chqtest.com 4     ServerAlias m.chqtest.com 5     <Directory "E:/wamp/www/testWeb/"> 6     Allow from all       7     </Directory> 8     <IfModule dir_module> 9        DirectoryIndex  mobile.php index.html index.htm default.php default.htm default.html10     </IfModule>11 </VirtualHost>12 13 <VirtualHost *:80>14     DocumentRoot "E:/wamp/www/testWeb/"15     ServerName  chqtest.com16     ServerAlias www.chqtest.com17     <Directory "E:/wamp/www/testWeb/">18     Allow from all      19     </Directory>20     <IfModule dir_module>21        DirectoryIndex  index.php index.html index.htm default.php default.htm default.html22     </IfModule>23 </VirtualHost>24 25 <VirtualHost *:80>26     DocumentRoot "E:/wamp/www/testWeb/"27     ServerName  chqtest.com28     ServerAlias admin.chqtest.com29     <Directory "E:/wamp/www/testWeb/">30     Allow from all      31     </Directory>32     <IfModule dir_module>33        DirectoryIndex  index.php index.html index.htm default.php default.htm default.html34     </IfModule>35 </VirtualHost>

此时,也就是说,有不同子域名www.chqtest.com m.chqtest.com
admin.chqtest.com都可以直接访问到www/testWeb目录下,如

b、那么如果要根据不同的子域名,直接绑定到不同的模块怎么办?参考ThinkPHP的域名部署,也就是在惯用配置下补充一些信息:

 1     'APP_SUB_DOMAIN_DEPLOY' =>  true,   // 是否开启子域名部署 2     //完整域名部署 3     'APP_SUB_DOMAIN_RULES'    =>    array( // 子域名部署规则 4         'www.chqtest.com'  => 'Home',   // www.chqtest.com域名指向Home模块 5         'm.chqtest.com'   => 'H5', 6         'admin.chqtest.com' => 'Admin', 7     ), 8     'APP_DOMAIN_SUFFIX'     =>  '', // 域名后缀 如果是com.cn net.cn 之类的后缀必须设置     9     'ACTION_SUFFIX'         =>  '', // 操作方法后缀10     'MULTI_MODULE'          =>  true, // 是否允许多模块 如果为false 则必须设置 DEFAULT_MODULE11     'MODULE_DENY_LIST'      =>  array('Common','Runtime'),12     'MODULE_ALLOW_LIST'    =>    array('Home','H5','Admin'), // 允许访问的模块列表

再次访问

图片 6这是因为绑定子域名部署之后,index.php入口文件定位到Application应用目录之前,就已经根据不同的子域名,直接进入相应的目录里面了,这时Home就会被判断要查找的控制器,显然当前控制器只有Index,所以,重新访问:

图片 7图片 8图片 9

这时,基本就可以搭建了一个大体的网站架构就进一步完善了些,从

整个结构也清晰了很多。下一篇,将继续说说ThinkPHP关于路由优化,PC、H5网站相互切换的技巧,有兴趣的可以留意下,关于这次例子可以参考Demo

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图