本次教程相对于以前版本的单页制作教程的区别:
修复 Discuz!X2 单页 DIY 后无法保存的问题;

首先,单页包括该单页的 php 文件和该单页的模板 (.htm) 文件,比如:host.php 、 host.htm

普通单页的 php 文件内容如下:

  1. <?php
  2. define('CURSCRIPT', 'test');
  3. require './source/class/class_core.php';//引入系统核心文件
  4. $discuz = & discuz_core::instance();//以下代码为创建及初始化对象
  5. $discuz->init();
  6. $navtitle = '官方 QQ 群列表';
  7. $metakeywords = 'QQ 群, 官方,discuz,DRC,7drc,QQ';
  8. $metadescription = '该页面展示 Discuz! Rescue Centre 官方 QQ 群系,加入本站官方 QQ 群可及时了解掌握最新动态、插件、模版第一手信息。请勿加入多个 QQ 群,珍惜有限的群资源。';
  9. include template('forum/host');//调用单页模版文件
  10. ?>

这里需要注意的是,host 为模板文件名,不需要加.htm 扩展名,模板文件存放于默认风格目录下的 forum 目录;
单页的 php 文件存放于论坛根目录;

$navtitle = '官方 QQ 群列表'; 这一句是定义单页的标题,显示于浏览器顶部的网页标题
$metakeywords = 'QQ 群, 官方,discuz,DRC,7drc,QQ'; 是单页的关键词信息
$metadescription 是单页的描述信息。

可 DIY 的单页 PHP 文件代码内容如下:

  1. <?php
  2. define('CURSCRIPT', 'test');
  3. require './source/class/class_core.php';//引入系统核心文件
  4. $discuz = & discuz_core::instance();//以下代码为创建及初始化对象
  5. $discuz->init();
  6. loadcache('diytemplatename');
  7. $navtitle = '官方 QQ 群列表';
  8. $metakeywords = 'QQ 群, 官方,discuz,DRC,7drc,QQ';
  9. $metadescription = '该页面展示 Discuz! Rescue Centre 官方 QQ 群系,加入本站官方 QQ 群可及时了解掌握最新动态、插件、模版第一手信息。请勿加入多个 QQ 群,珍惜有限的群资源。';
  10. include template('diy:forum/host');//调用单页模版文件
  11. ?>

注:
其中 loadcache('diytemplatename');
为 Discuz!X2 对 DIY 这一块做的更新,DIY 要载入缓存,所以以前 X1.5 的单页制作教程做出来的单页 DIY 会无法保存。 DIY 的单页模版文件,
修改单页模版内容后需要更新缓存才能刷新出来。

php 文件创建完毕,现在开始创建模版文件,基本代码如下:
普通单页的模版文件代码:

  1. <!--{template common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="javascript:;">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div >
  11.         <div >
  12.             <p style="width:300px; margin:200px auto; text-align:center;"> 这里是单页正文内容区域</p>
  13.         </div>
  14.     </div>
  15. </div>
  16. <!--{template common/footer}-->

效果如下:

0.jpg

-------------------------------------------------------------------------------------

可 DIY 的单页模版文件代码如下:

  1. <!--{template common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="javascript:;">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div >
  10. <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->
  11. </div>
  12. <div id="ct" >
  13.     <div >
  14.         <div >
  15.             <p style="width:300px; margin:200px auto; text-align:center;"> 这里是单页正文内容区域</p>
  16.         </div>
  17.     </div>
  18. </div>
  19. <!--{template common/footer}-->

其中:

  1. <div >
  2. <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->
  3. </div>

这段代码就是 DIY 区域的代码,之前 X1.5 的单页教程里面我们也讲到过,可以在单页的任意位置插入 DIY 区域,即:

  1. <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->

注意:如果一个页面要插入多个 DIY 区域,注意修改上面 DIY 区域的编号 ID,几个 DIY 区域的 ID 编号不能相同。
-------------------------------------------------------------------------------------

带有右侧边栏的单页模版文件代码:

  1. <!--{subtemplate common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="javascript:;">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div >
  11.         <div > 标题栏</div>
  12.         <div >
  13.            <p style="width:300px; margin:220px auto; text-align:center;"> 这里是单页正文内容区域</p>
  14.         </div>
  15.     </div>
  16.         <div >
  17.         <div >
  18.             <div >
  19.                 <h2> 公告栏</h2>
  20.             </div>
  21.             <div >
  22.                 <p style="line-height:25px;">
  23.                     这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容
  24.                 </p>
  25.             </div>
  26.         </div>
  27.         <div >
  28.             <div >
  29.                 <h2> 操作菜单</h2>
  30.             </div>
  31.             <div >
  32.                 <ul >
  33.                     <li><a href="#"> 测试菜单一</a></li>
  34.                     <li><a href="#"> 测试菜单二</a></li>
  35.                     <li><a href="#"> 测试菜单三</a></li>
  36.                     <li><a href="#"> 测试菜单四</a></li>
  37.                     <li><a href="#"> 测试菜单五</a></li>
  38.                     <li><a href="#"> 测试菜单六</a></li>
  39.                 </ul>
  40.             </div>
  41.         </div>
  42.         <div >
  43.             <div >
  44.                 <h2> 版权信息</h2>
  45.             </div>
  46.             <div style="line-height:25px;">
  47.                 <ul>
  48.                     <li> 作者:<a href="http://www.mutoulee.cn" target="_blank"> 体无完肤</a></li>
  49.                     <li> 网站:<a href="http://bbs.7drc.com" target="_blank">bbs.7drc.com</a></li>
  50.                     <li> 版权:Discuz! Rescue Centre</li>
  51.                 </ul>
  52.             </div>
  53.         </div>
  54.     </div>
  55. </div>
  56. <!--{subtemplate common/footer}-->

效果如下:

1.jpg

-------------------------------------------------------------------------------------

带有左侧边栏的单页模版文件代码:

  1. <!--{subtemplate common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="javascript:;">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div style="float:right;">
  11.         <div > 标题栏</div>
  12.         <div >
  13.            <p style="width:300px; margin:220px auto; text-align:center;"> 这里是单页正文内容区域</p>
  14.         </div>
  15.     </div>
  16.         <div style="float:left;">
  17.         <div >
  18.             <div >
  19.                 <h2> 公告栏</h2>
  20.             </div>
  21.             <div >
  22.                 <p style="line-height:25px;">
  23.                     这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容
  24.                 </p>
  25.             </div>
  26.         </div>
  27.         <div >
  28.             <div >
  29.                 <h2> 操作菜单</h2>
  30.             </div>
  31.             <div >
  32.                 <ul >
  33.                     <li><a href="#"> 测试菜单一</a></li>
  34.                     <li><a href="#"> 测试菜单二</a></li>
  35.                     <li><a href="#"> 测试菜单三</a></li>
  36.                     <li><a href="#"> 测试菜单四</a></li>
  37.                     <li><a href="#"> 测试菜单五</a></li>
  38.                     <li><a href="#"> 测试菜单六</a></li>
  39.                 </ul>
  40.             </div>
  41.         </div>
  42.         <div >
  43.             <div >
  44.                 <h2> 版权信息</h2>
  45.             </div>
  46.             <div style="line-height:25px;">
  47.                 <ul>
  48.                     <li> 作者:<a href="http://www.mutoulee.cn" target="_blank"> 体无完肤</a></li>
  49.                     <li> 网站:<a href="http://bbs.7drc.com" target="_blank">bbs.7drc.com</a></li>
  50.                     <li> 版权:Discuz! Rescue Centre</li>
  51.                 </ul>
  52.             </div>
  53.         </div>
  54.     </div>
  55. </div>
  56. <!--{subtemplate common/footer}-->

注意观察这个左侧边栏的模版代码和右侧边栏的模版代码,可以发现,代码其实都一样,只是更改一下 CSS 样式。

<div > 给这个 div 加一个向右浮动,即:

  1. <div style="float:right;">

再给 <div > 这个 div 加一个向左浮动的 CSS 样式,即:

  1. <div style="float:left;">

就是说只是左右对调一下。

演示效果如下:

2.jpg

-------------------------------------------------------------------------------------

带有标签选项卡的单页模版:

  1. <!--{subtemplate common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="javascript:;">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div style="float:right;">
  11.         <div > 标题栏</div>
  12.         <div >
  13.             <ul >
  14.                                 <li <!--{if
    empty($_G[gp_viewtype]) || $_G[gp_viewtype] ==
    'new'}--><!--{/if}-->><a
    href="test.php?viewtype=new"> 最新发布</a></li>
  15.                                 <li <!--{if
    $_G[gp_viewtype] == 'view'}--><!--{/if}-->><a
    href="test.php?viewtype=view"> 浏览排行</a></li>
  16.                                 <li <!--{if
    $_G[gp_viewtype] == 'comment'}--><!--{/if}-->><a
    href="test.php?viewtype=comment"> 回复排行</a></li>
  17.                 <li <!--{if $_G[gp_viewtype] ==
    'rate'}--><!--{/if}-->><a
    href="test.php?viewtype=rate"> 评分排行</a></li>
  18.                         </ul>
  19.            <p style="width:300px; margin:200px auto; text-align:center;"> 这里是单页正文内容区域</p>
  20.         </div>
  21.     </div>
  22.         <div style="float:left;">
  23.         <div >
  24.             <div >
  25.                 <h2> 公告栏</h2>
  26.             </div>
  27.             <div >
  28.                 <p style="line-height:25px;">
  29.                     这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容这里可以放一些公告通知类的文字内容
  30.                 </p>
  31.             </div>
  32.         </div>
  33.         <div >
  34.             <div >
  35.                 <h2> 操作菜单</h2>
  36.             </div>
  37.             <div >
  38.                 <ul >
  39.                     <li><a href="#"> 测试菜单一</a></li>
  40.                     <li><a href="#"> 测试菜单二</a></li>
  41.                     <li><a href="#"> 测试菜单三</a></li>
  42.                     <li><a href="#"> 测试菜单四</a></li>
  43.                     <li><a href="#"> 测试菜单五</a></li>
  44.                     <li><a href="#"> 测试菜单六</a></li>
  45.                 </ul>
  46.             </div>
  47.         </div>
  48.         <div >
  49.             <div >
  50.                 <h2> 版权信息</h2>
  51.             </div>
  52.             <div style="line-height:25px;">
  53.                 <ul>
  54.                     <li> 作者:<a href="http://www.mutoulee.cn" target="_blank"> 体无完肤</a></li>
  55.                     <li> 网站:<a href="http://bbs.7drc.com" target="_blank">bbs.7drc.com</a></li>
  56.                     <li> 版权:Discuz! Rescue Centre</li>
  57.                 </ul>
  58.             </div>
  59.         </div>
  60.     </div>
  61. </div>
  62. <!--{subtemplate common/footer}-->

 

注意观察你会发现,选项卡这一部分跟 X1.5 一样的,就是在模版的正文区域的 div 内增加一段代码:

  1. <ul >
  2.                                 <li <!--{if
    empty($_G[gp_viewtype]) || $_G[gp_viewtype] ==
    'new'}--><!--{/if}-->><a
    href="test.php?viewtype=new"> 最新发布</a></li>
  3.                                 <li <!--{if
    $_G[gp_viewtype] == 'view'}--><!--{/if}-->><a
    href="test.php?viewtype=view"> 浏览排行</a></li>
  4.                                 <li <!--{if
    $_G[gp_viewtype] == 'comment'}--><!--{/if}-->><a
    href="test.php?viewtype=comment"> 回复排行</a></li>
  5.                 <li <!--{if $_G[gp_viewtype] ==
    'rate'}--><!--{/if}-->><a
    href="test.php?viewtype=rate"> 评分排行</a></li>
  6.                         </ul>

效果如下:

3.jpg

此次教程整理结束。