打开系统函数库global.func.php

可以看到获取站点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=? 才能让首页动态显示 你们不觉得这是很大的问题吗   

PHPCMS 多站点管理切换问题的更多相关文章

  1. xadmin站点管理类

    9. Xadmin xadmin是Django的第三方扩展,比使用Django的admin站点更强大也更方便. 文档:https://xadmin.readthedocs.io/en/latest/i ...

  2. IIS站点管理-IIS站点以管理员身份或指定用户运行

    PS:概要.背景.结语都是日常“装X”,可以跳过直接看应用程序池设置 环境:Windows Server 2008.阿里云ECS.IIS7.0 概要 IIS应用程序默认情况下,是使用内置帐户运行的,权 ...

  3. [译]MVC网站教程(三):动态布局和站点管理

    目录 1.   介绍 2.   软件环境 3.   在运行示例代码之前(源代码 + 示例登陆帐号) 4.   自定义操作结果和控制器扩展 1)   OpenFileResult 2)   ImageR ...

  4. django站点管理

    一.启动django站点管理功能 1.关于django.contrib包   包含了django自带的众多附加组件,主要包括:   1)管理工具: django.contrib.admin   2)用 ...

  5. fileziller 恢复 站点管理器 内的ftp帐号方法

    由于系统坏了重装了系统,以前的fileziller中配置的服务器链接信息列表很多,新装fileziller后即使复制以前的安装目录过来,站点管理器内还是空荡荡的. 这些服务器链接的配置信息非常重要,如 ...

  6. 通用性站点管理后台(Bee OPOA Platform)

    当前标签: Bee OPOA Platform   通用性站点管理后台(Bee OPOA Platform) (5)- [扩展]基于WebSocket的监视Sql执行功能 蜂 2013-10-25 1 ...

  7. 开源 免费 java CMS - FreeCMS1.4-功能说明-站点管理

    下载地址:http://code.google.com/p/freecms/ 站点管理 FreeCMS支持网站群模式,并支持无限树级管理. 1.  添加一级站点 从左侧管理菜单点击站点管理进入. 提示 ...

  8. Django笔记 —— Admin(Django站点管理界面)

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  9. Java语言实现简单FTP软件------>辅助功能模块FTP站点管理的实现(十二)

    1.FTP站点管理 点击"FTP站点管理"按钮,弹出对话框"FTP站点管理",如下图 1) 连接站点 在FTP站点管理面板上选好要连接的站点,点击"连 ...

随机推荐

  1. NDK学习一: 环境搭建Eclipse篇

    下载NDK 国内的一个镜像站点 下载速度比较快 http://wear.techbrood.com/tools/sdk/ndk/#Installing 网上搭建环境的方案有很多 1. Eclipse ...

  2. MFCC可视化

    大多数文章和博客介绍都是MFCC的算法流程,物理意义,这里仅仅从数据分布可视化的角度,清晰 观察MFCC特征在空间中的分布情况,加深理解. MFCC处理流程: MFCC参数的提取包括以下几个步骤: 1 ...

  3. ios iphone6 Plus 的适配问题

    最近更新一个老程序,发现在iphone6 plus上用nslog打印出的screen 的frame还是320*568, 不是414*736, 查了一下,原来需要设置iphone6 plus的启动画面才 ...

  4. How to call getClass() from a static method in Java?

    刚才在学习Java 使用properties类,遇到这样的错误: Cannot make a static reference to the non-static method getClass() ...

  5. Jquery 实现 “下次自动登录” 记住用户名密码功能

    转载自:http://blog.csdn.net/aspnet_lyc/article/details/12030039?utm_source=tuicool&utm_medium=refer ...

  6. Mysql 基础3

    1. 逗号是个好东西2.对于多条件查询 和范围查询 的灵活运用(and 和or 的灵活运用)in 用的时候注意 补充select * from car where name like '%奥迪%' a ...

  7. 【xml】转义字符 <等符号出现的原因

    来源:http://www.cnblogs.com/hyd309/p/3549076.html HTML中的转义字符  HTML中<, >,&等有特别含义,(前两个字符用于链接签, ...

  8. UIScrollView控件实现图片缩放功能

    转发自:http://www.cnblogs.com/wendingding/p/3754268.html 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScr ...

  9. 好用的php类库和方法

    1, /** * 将一个平面的二维数组按照指定的字段转换为树状结构 * * 用法: * @code php * $rows = array( * array('id' => 1, 'value' ...

  10. xmpp笔记2(客户端到服务器的例子)--xml

    xmpp( 客户端到服务器的例子 ) 1 步:客户端初始流给服务器: <stream:stream xmlns='jabber:client' xmlns:stream='http://ethe ...