phpcms9站点问题

1、我在后台建立了两个站点A和B,每个站点都建了不同的一级栏目,两个站点共用一个数据库,现在能实现A站的栏目的文章能调用B站的栏目的文章,反之也能调用,但是现在有一个问题... 1、我在后台建立了两个站点A和B,每个站点都建了不同的一级栏目,两个站点共用一个数据库,现在能实现A站的栏目的文章能调用B站的栏目的文章,反之也能调用,但是现在有一个问题,就是A点调用B站点的文章,在最终的文章内页面,显示的是B站点的通用导航条和内容。现在我想实现A站点在调用B站点文章最终显示的导航是A站的通用导航,文章内容是B站点的文章内容。反之也能做到。如果我是5站,能不能做到任意两个站点相互调用实现上述功能。
两个站点的风格完全不同,用是两套模板。请问高手怎么解决个问题。
展开
 我来答
酷格科技
2015-03-03 · TA获得超过240个赞
知道小有建树答主
回答量:192
采纳率:100%
帮助的人:86.4万
展开全部

通过你提出的问题,给出本人的分析与解决方案,希望对你有帮助:

问题原因剖析:

    在不同站点之间进行文章互调的时候,文章的列表中的文章连接实际上就是文章的“url字段”。

    如果是在“静态”环境下,是无法根据所在站点更改页面显示风格的,因为此时url指向的是一个静态html文件,也就无法用程序去判断调用不同的模板风格。除非你做二次开发,在之前把所有模板风格的都生成一遍,然后在不同的站点下调用你想要的那个风格的静态html文件。

    如果是在“动态”或“伪静态”环境下,那么相对静态来说解决就轻松多了,可以在url中传递一个参数来指定当前文章内容页显示所用的风格模板,然后,我们知道,内容页显示是调用的show方法,那么在show方法中获取你传递的“模板风格”参数来确定$template变量(系统中用于指定显示模板的变量),从而实现了动态判断调用指定风格来显示内容页面。总之,核心是根据当前站点来指定show方法中不同的$template变量的值。

    我在iphpcms里也提到了相关办法你可以参考。

更改方法(动态或伪静态下):

举例,例如A站的内容页模板是show_a.html;B站的内容页模板是show_b.html。那么我在A中调用B的内容列表循环可以这么写:

{loop $data $v}
<li><a href="{$v[url]}&template=show_a">{$v['title']}</a></li>
{/loop}

然后,找到modules/content/index.php里的show方法:

找到这两句:

$template = $template ? $template : $CAT['setting']['show_template'];
if(!$template) $template = 'show';

在其前面加一句:

$template = isset($_GET['template'])?trim($_GET['template']):$template;

ok,基本完成,当然,伪静态同理将模板风格参数放到你的伪静态连接中。

追问
谢谢你这么详细的解答,纯静态页面现有系统看样很难做到。我是想在原来的站点进行整合。我原来站点都是静态了。如果想实现只能发改伪静态。请你问你能做二次开发吗。如果开发静态实现这个功能费事吗,还有就是经过二次开发的系统,在以后升级中会不会不冲突和问题。
追答
可以做二次开发。如果是静态环境下做二次开发要扩展修改phpcms原有的生成静态底层类程序,对以后的升级会有影响,主要是对修改过的文件升级补丁的时候避免直接覆盖就可以。
L242015
2015-03-03 · TA获得超过2.3万个赞
知道小有建树答主
回答量:1688
采纳率:0%
帮助的人:389万
展开全部
可以将内容换掉,考虑是否保留原有的风格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式