Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 如何添加一个自定义页面?

[复制链接]
nmhyt 发表于 2010-9-13 16:46:06 | 显示全部楼层 |阅读模式
我看到官网演示站里www。discuz.org/baby/
似乎就是自己新添的自定义页面吧?
除了调用专题,还有别的方法么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
"Emily。 发表于 2010-9-13 16:47:20 | 显示全部楼层
自己添加个专题
回复

使用道具 举报

"Emily。 发表于 2010-9-13 16:47:30 | 显示全部楼层
后台 门户 专题管理
回复

使用道具 举报

 楼主| nmhyt 发表于 2010-9-13 16:49:31 | 显示全部楼层
我的问题里面说了,除了调用专题没有别的方法么?
官网演示站里面是怎么处理的呢?
回复

使用道具 举报

"Emily。 发表于 2010-9-13 16:59:07 | 显示全部楼层
那就是专题做的
回复

使用道具 举报

 楼主| nmhyt 发表于 2010-9-13 17:02:05 | 显示全部楼层
啊?那路径是怎么处理的呢?我一直以为是单独做的页面
回复

使用道具 举报

YYSD 发表于 2010-9-13 18:20:07 | 显示全部楼层
看上去不像专题页面
回复

使用道具 举报

 楼主| nmhyt 发表于 2010-9-14 15:29:08 | 显示全部楼层
具体怎么实现?
官方能分享下不?
回复

使用道具 举报

530761333 发表于 2010-9-14 15:53:14 | 显示全部楼层
本帖最后由 530761333 于 2010-9-27 19:57 编辑

例如:intro.php,代码如下:

  1. <?php
  2. require_once './include/common.inc.php';
  3. include template('intro');
  4. ?>
复制代码
仅两行代码,即可实现。
其中,require_once './include/common.inc.php';是包含Discuz!系统方法、变量,比用理解更深的意思,只需要知道这一句包含以后就能使用include template('intro');这一句的方法调用模板。

include template('intro'); 定义了该页面调用的模版文件名称为intro.htm,该句中的模板文件名不必包含.htm,因为方法会自动匹配文件类型为.htm 。

intro.php文件有了,剩下的就是创建intro.htm模版文件了,代码如下:
  1. {subtemplate header}
  2. <div id="nav"><a href="$indexname">$bbname</a> &raquo; DRC相关介绍</div>
  3. <div id="wrap" class="wrap">
  4. <div class="main">
  5. <div class="content">

  6. <h2>sjxj介绍:</h2>
  7. DRC,英文全称 World Learning Room,中文全称:世界学习室,简称:sjxj!<br />
  8. Discuz! Rescue Centre所有服务以“救助”为出发点和目标,帮助Discuz!站长解决论坛使用过程中的各类问题。<br /><br />
  9. <h2>sjxj成员介绍:</h2>
  10. 核心成员:大伟,Discuz!官方ID — 530761333。<br />
  11. 大伟:于2008年至2009年陆续在Discuz!官方举办Discuz!手拉手免费互助活动,至今已举办十四期,今后也将继续延续下去

  12. 以下文字内容省略......

  13. </div>
  14. </div>
  15. </div>
  16. {subtemplate footer}
复制代码
大家可以清楚的看到模版文件的结构,实例解释:

{subtemplate header}为头部文件,即:header.htm,直接在模版文件开始时候调用。

{subtemplate footer}为尾部文件,即:footer.htm,在模板最后调用。

中间夹的代码内容就是你该页面的主体。

主体内容代码如下:

  1. <div id="nav"><a href="$indexname">$bbname</a> &raquo; DRC相关介绍</div>
  2. <div id="wrap" class="wrap">
  3. <div class="main">
  4.   <div class="content">

  5.         中间文字内容省略......

  6.   </div>
  7. </div>
  8. </div>
复制代码
其中:
  1. <div id="nav"><a href="$indexname">$bbname</a> &raquo; DRC相关介绍</div>
复制代码
为路径,就是Discuz! Rescue Centre &raquo; DRC相关介绍,$bbname是论坛名称。

剩下的其他三个div标签不必了解他是什么意思,什么作用,只需要理解将自己页面内容放在
  1. <div class="content"></div>
复制代码
回复

使用道具 举报

530761333 发表于 2010-9-14 16:07:24 | 显示全部楼层

举一反三



1.建立contact.htm,上传到你模板目录/default/,里面代码为:

  1. <?php
  2. require_once( "./include/common.inc.php" );

  3. $submix = 2;
  4. $submax = 20;
  5. $detailmix = 10;
  6. $detailmax = 1000;

  7. $name = $discuz_uid ? $discuz_user: $username;
  8. $timestamp = time();
  9. $date=date('Y年m月d日 H:i:s',$timestamp);
  10. $text="發出時間:$date \n";
  11. $text.="用戶名稱: $name \n";
  12. $text.="用戶IP: $onlineip \n";
  13. $text.="回覆電郵: $email \n";
  14. $text.="相關內容: $detail \n";
  15. $subject="xmegret.cn - $sub";
  16. if($send=="sendmail") {
  17. if(!strstr($email, '@') || $email != addslashes($email) || $email != htmlspecialchars($email)) {
  18. showmessage('抱歉,Email 格式错误,请返回修改。');
  19. }
  20. if(strlen($sub) < $submix || strlen($sub) > $submax ) {
  21. showmessage('对不起,标题必须 '.$submix.' - '.$submax.' 之间,请返回修改。');
  22. } elseif(strlen($detail) < $detailmix || strlen($detail) > $detailmax ) {
  23. showmessage('对不起,内容必须 '.$detailmix.' - '.$detailmax.' 之间,请返回修改。');
  24. }
  25. sendmail($adminemail,$subject,$text);
  26. showmessage("已成功向本站管理员发出信息,我们会尽快回覆,谢谢!",'/');
  27. }

  28. include template('contact');
  29. ?>
复制代码
3.你的模板目录/default/footer.htm里的


  1. <a href=mailto:$adminemail>
复制代码
替换为

复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-18 00:42 , Processed in 0.028661 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表