您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS多站点管理切换实现方法
信品2025-06-06phpcms教程已有人查阅
导读打开系统函数库global.func.php可以看到获取站点ID的函数如下在此函数中,站点ID是静态的值,而且第一句就是判断当前站点是否已经设置, 如果已经设置过,那返回的永远是第一次获取时的值
打开系统函数库global.func.php
可以看到获取站点ID的函数如下
在前台的时候这样没有影响.但如果是在后台,管理多个站点的时候, 那就出问题了!
解决办法是 把 if (!empty($siteid)) return $siteid; 这一句移到判断非后台的时候才直接返回
另外,多站点前台也有问题,
前台动态首页完全不支持多站点
问题位置 : \phpcms\modules\content\index.php 第16行开始
可以看到获取站点ID的函数如下
/**
* 获取当前的站点ID
*/
function get_siteid() {
static $siteid;
if (!empty($siteid)) return $siteid;
if (defined('IN_ADMIN')) {
if ($d = param::get_cookie('siteid')) {
$siteid = $d;
} else {
return '';
}
} else {
$data = getcache('sitelist', 'commons');
if(!is_array($data)) return '1';
$site_url = SITE_PROTOCOL.SITE_URL;
foreach ($data as $v) {
if ($v['url'] == $site_url.'/') $siteid = $v['siteid'];
}
}
if (empty($siteid)) $siteid = 1;
return $siteid;
}
在此函数中,站点ID是静态的值,而且第一句就是判断当前站点是否已经设置, 如果已经设置过,那返回的永远是第一次获取时的值, 这样的结果当然不可能实时变更当前站点!在前台的时候这样没有影响.但如果是在后台,管理多个站点的时候, 那就出问题了!
解决办法是 把 if (!empty($siteid)) return $siteid; 这一句移到判断非后台的时候才直接返回
/**
* 获取当前的站点ID
*/
function get_siteid() {
static $siteid;
if (defined('IN_ADMIN')) {
if ($d = param::get_cookie('siteid')) {
$siteid = $d;
} else {
return '';
}
} else {
if (!empty($siteid)) return $siteid;
$data = getcache('sitelist', 'commons');
if(!is_array($data)) return '1';
$site_url = SITE_PROTOCOL.SITE_URL;
foreach ($data as $v) {
if ($v['url'] == $site_url.'/') $siteid = $v['siteid'];
}
}
if (empty($siteid)) $siteid = 1;
return $siteid;
}
这样小改动一下,即可实现后台实时获取当前站点.另外,多站点前台也有问题,
前台动态首页完全不支持多站点
问题位置 : \phpcms\modules\content\index.php 第16行开始
if(isset($_GET['siteid'])) {
$siteid = intval($_GET['siteid']);
} else {
$siteid = 1;
}
如果要支持多站点 这里应该是改为
if(isset($_GET['siteid'])) {
$siteid = intval($_GET['siteid']);
} else {
$siteid = get_siteid();
}
当然.通过修改路由规则也能让这?返闹С? 但这里用的是 GET变量,也就是说,除了第一个站点的域名是正常的外,所有的站点的首页路径都需要变成 XXX.com/siteid=? 才能让首页动态显示 你们不觉得这是很大的问题吗。
本文标签:
很赞哦! ()
下一篇:phpcmsv9模版调用代码示例
相关教程
图文教程
Phpcms所有系统变量列表PhpcmsV9文件目录结构分析
Phpcms所有系统变量列表有关模型信息变量: view plaincopy to clipboardprint?如: view plaincopy to clipboardprint?栏目信息变量:view plaincopy to clipboardprint?
phpcms手机站制作方法
PHPCMS搭建PC端网站比较方便,但是在wap手机端方面却不怎么实用,而且自带的手机建站感觉不是很好,而且模版不好控制,现在对其进行修改。
phpcms的getcache()函数有什么作用
一直没有去研究phpcms 的getcache()函数是干嘛的,今天有空去看了一下,原来就那样。getcache()就是获取缓存数据的,
PHPCMS实现上一篇、下一篇的方法
方法一:直接调用phpcms系统的函数方法二:下面的方法复杂了些,但该代码提供一种phpcms的调用数据的一种思路, 大家可以参考,这也是phpcms区别与其他系统的优势
相关源码
-
(PC+WAP)高端餐饮美食小吃加盟网站模板下载pbootcms本模板基于PbootCMS内核开发,为餐饮美食品牌加盟、小吃连锁企业量身打造。通过精致的美食视觉呈现与加盟业务流程展示,帮助餐饮企业建立专业线上门户,实现品牌形象与加盟业务的双重展示。查看源码 -
(自适应)英文绿色精密模具零件加工五金零件pbootcms外贸网站模板本模板基于PbootCMS开发,为五金零件、精密模具加工等英文外贸企业设计。采用响应式布局,适配各类移动设备,是五金零件企业开展国际贸易的专业展示平台。查看源码 -
(自适应)幽默笑话脑筋急转弯搞笑趣图博客pbootcms模板下载本模板基于PbootCMS系统开发,专为幽默笑话、搞笑趣图类网站设计。采用轻松活泼的布局风格,突出娱乐内容分享特色,适合各类笑话、段子、搞笑图片等内容展示。查看源码 -
(自适应响应式)双语LED照明灯饰灯具外贸网站pbootcms源码下载模板采用响应式设计,能自动适应手机、平板和电脑等多种设备屏幕,确保用户在不同设备上都能获得良好的浏览体验。同一后台管理,数据实时同步,操作简便高效。查看源码 -
(自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码 -
(自适应响应式)蓝色外贸英文产品介绍展示网站模板本模板采用手工编写的DIV+CSS架构,代码精简高效。适配手机端浏览,数据实时同步更新。内置SEO优化框架,支持独立设置各页面标题、关键词及描述。开源代码结构清晰,便于二次开发。查看源码
| 分享笔记 (共有 篇笔记) |
