2011年5月11日星期三

升级到Discuz! X2 后自建的DIY页面无法保存

原先的网站是Discuz! x1.5 升级到2.0后自建的页面点DIY设置好后点保存,没有任何效果。

原来是x2新增加了DIY页面缓存。例子:www.luoku.cn

解决办法:在 include template('diy:QQ/Q_detail');//Q_detail'为模板文件名,不需要加.htm扩展名

前面加上一行:loadcache('diytemplatename');

完整Q_detail.php 例子:

<?php
require './source/class/class_core.php';//引入系统核心文件
require './source/function/function_home.php';
$discuz = & discuz_core::instance();//以下代码为创建及初始化对象
$discuz->cachelist = $cachelist;
$discuz->init();

//……

//$navtitle =www.luoku.cn; 设置页面标题title
//$metakeywords = ; 关键字
//$metadescription = ;页面描述

//……..

loadcache('diytemplatename');
include template('diy:QQ/Q_detail');
?>

完整\template\default\QQ\Q_detail.htm 模板例子:

<!--{subtemplate common/header}—>

//…..自己的html代码

//在要添加的可拖拽区域位置加入如下代码
<!--[diy=diyid1]--><div id="diyid1" class="area"></div><!--[/diy]—>

<!--[diy=diyid2]--><div id="diyid2" class="area"></div><!--[/diy]-->

//…….

<!--{subtemplate common/footer}—>

 

备注:

一:loadcache('diytemplatename');//加载DIY页面缓存,X2中的改进,此缓存必需要加载,目的是为了减少磁盘的IO操作

二:template('diy:home/testtpl');//加载为模板文件,其中 “diy:”表示支持页面DIY操作,不加diy:则此页不可diy

三:模板文件代码
<style id="diy_style" type="text/css"></style><!--在模板文件中添加存放CSS代码的标签—>


四:DIY使用的tag标签为div,指定的class为area
<!--[diy=diyid]-->和<!--[/diy]-->是一对完整的DIY可拖拽区域闭合标识
[diy=diyid]中的diyid要与后面的DIV的id相同,同时要确保其在页面中唯一,即不能与页面已有元素ID相同。

五:loadcache('diytemplatename')X2中的改进,此缓存最好是在网站根目录的应用入口文件中加载,如下...
$cachelist = array('yourcache', 'diytemplatename');
$discuz->cachelist = $cachelist;
$discuz->init();
......