phpcms默认的站群功能,是生成的静态页面,对于更新维护来说会比较麻烦,而且站点之间公共数据的调用也不方便。那么有没有什么办法可以实现,同一个管理后台,多站点动态地址,公共数据调用的功能呢?作者参考网上资料,整理总结了下具体的操作方法,希望对你有一定的帮助。
1、解析手机域名到对应服务器,服务器端绑定该域名
2、复制模板\phpcms\templates\下的“default”到同级目录,改成“defaultwap”
3、添加站点:填写正确的域名和模板
4、导入模型:可以导出默认站点的某个模型,然后导入到新站点就可以了
5、配置下参数:
1)配置路由:找到根目录下\caches\configs\route.php,复制下面的内容改成实际的
'xx.phpcms.cn'=>array('m'=>'content', 'c'=>'index', 'a'=>'init','data'=>array('GET'=>array('siteid'=>4))),
2)解决子站地址沿用主站的问题(内容页地址的更改)
找到内容管理模块的classes下面的url.class.php(\phpcms\modules\content\classes\url.class.php)
打开之后,找到89行
原句:$url_arr[0] = $url_arr[1] = APP_PATH.$urls;改成
$this->sitedb = pc_base::load_model('site_model');
$siteid=param::get_cookie('siteid');
$siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid));
$url_arr[0] = $url_arr[1] = $siteinfo['domain'].$urls;
3)让子站点的栏目URL也修正过来!(栏目页地址的更改)
找到 modules/admin/category.php第463行
原句:$url = APP_PATH.$url;
$this->sitedb = pc_base::load_model('site_model');
$siteid=param::get_cookie('siteid');
$siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid));
$url = $siteinfo['domain'].$url;
下载《【常用】站群多站点动态地址配置说明.zip》
源码获取:微信搜索“太友帮”或者微信号”taiyoubang”关注微信公众号,回复关键词”phpcms站群动态地址”即可获取
通过以上步骤,即可实现PHPCMS V9 站群多站点的动态地址配置效果
补充:如果文章是通过API接口推送到自己网站的情况,这时需要改下siteid的获取方式为这样即可,否则通过cookie是获取不到siteid的
将上文中的$siteid=param::get_cookie('siteid');改成
$siteid=get_siteid();
同时更改url.class.php(\phpcms\modules\content\classes\url.class.php) 里的
private function set_siteid() {
//$this->siteid = 1;改成
$this->siteid = get_siteid();
}