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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

超级简单自制HOME页(根目录)的方法!【非常简单哦!适合喜欢DIY的朋友】

[复制链接]
阿喀琉斯 发表于 2009-4-19 04:26:27 | 显示全部楼层 |阅读模式
Discuz!模板
适用版本: Discuz! 7.0
语言编码: GBK简体 UTF8简体 
风格转换者: 原创
本帖最后由 阿喀琉斯 于 2009-4-19 22:48 编辑

想要做一个自己风格的HOME页,怎样与论坛程序无缝嵌合呢?要是用作网站首页(论坛在子目录下,非根目录)又该如何调整呢?可不可以再网站首页直接实现ajax的登录和注册,短消息的提示?

  我的论坛在bbs子目录下,而非网站根目录。自从升级到7.0,用UCH取代了Supesite之后,网站首页基本上就闲置了,没有了内容(因为升级做奶爸了,非常忙非常累,一直没空改动,导致PR直接从3降至1),想要调用论坛的诸如新帖、精华等数据,又觉得js调用不尽人意。
  看到《BBS不在根目录,Home页放到网站根目录做首页的方法》这篇帖子,深受启发,感谢一下作者weiDezh 先。

  我的思路很简单,直接套用论坛程序的一些功能,放到网站默认首页,从而在首页就可以实现登录、注册、找回密码、注销、导航、短消息预览提示等基本功能,以及根据自己需要调用一些论坛数据,如新帖、热帖、会员排行等。

  由于不懂php编程,所以我自己写不了高技术含量的代码,于是自己拿论坛程序的首页文件index.php修修改改,恰好也因为不懂编程,所以过程中充满乐趣,充分体验了DIY的吸引力。

  去掉大部分不需要的功能之后(您也可以根据自己需要保留部分功能代码),我的index.php精简如下:
  1. <?php

  2. chdir("bbs");

  3. require_once './include/common.inc.php';

  4. include template('homepage');

  5. ?>
复制代码
怎么样,够精简吧?只要一百多字节就可以调用所需的基本功能了。论坛自带的登录、注册的浮动窗口,短消息的预览提示,都可以在主页实现。

不过,由于logging.php的“退出”这一部分返回的是论坛首页,因此要在HOME页点“退出”之后直接返回的是网站首页,我又增加了一个action,如下:

  1. if($action == 'clearcookies') {
  2.         if (is_array($_COOKIE) && (empty($discuz_uid) || ($discuz_uid && $formhash == formhash()))) {
  3.                 foreach ($_COOKIE as $key => $val) {
  4.                         dsetcookie($key, '', -86400 * 365, 0);
  5.                 }
  6.                 $groupid = 7;
  7.                 $discuz_uid = 0;
  8.                 $discuz_user = $discuz_pw = '';
  9.         }
  10.         dheader("Location: {$boardurl}");
  11. }
复制代码
这样子,也只增加到了四百多字节。用它来取代了论坛中的“退出”按钮的action。

当然,仅仅这样是不足以显示出您的主页页面的。上面的代码中,
  1. include template('homepage');
复制代码
这一句表示调用了“homepage”这个子模板。

  因此,我做了一个 homepage.htm 文件,放到论坛程序的模板文件目录里。放到默认目录就可以了,templates\default 这个目录里。

  以后每次更新论坛的缓存,都会自动生成专供网站主页使用的homepage模板,由根目录下的index.php调用。

  我的homepage.htm里面的基本内容如下:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=$charset" />
  5. <title>这里是首页标题</title>

  6. <base href="{$boardurl}bbs/" />   <!--这里指定了网站首页调用的相对地址都自动加上“bbs”-->

  7. {subtemplate css_script}
  8. <link rel="stylesheet" type="text/css" href="../images/style.css">   <!--这里调用你自己首页效果的css”-->

  9. <script type="text/javascript">var STYLEID = '{STYLEID}', IMGDIR = '{IMGDIR}', VERHASH = '{VERHASH}', charset = '$charset', discuz_uid = $discuz_uid, cookiedomain = '$cookiedomain', cookiepath = '$cookiepath', attackevasive = '$attackevasive', allowfloatwin = '$allowfloatwin'</script>
  10. <script type="text/javascript" src="include/js/common.js?{VERHASH}"></script>
  11. </head>

  12. <body>

  13. <div id="append_parent"></div><div id="ajaxwaitid"></div>  <!--这里是“正在加载中”的显示-->

  14. <div id="wrap">

  15. 您的首页内容就添加到这个DIV之中。可以对它的class通过自己的CSS进行重新定义。

  16. </div>
  17.                
  18. {eval output();}
  19. </body>
  20. </html>
复制代码
以上就是homepage.htm的基本框架。您只需要把想要显示的内容,添加到ID为wrap的这个DIV里就可以了。
比如说,我想要在首页显示最新贴、新回复等内容,那么把论坛后台的调用代码放进去就行,如:
  1. {eval request('聚合模块_新帖');}
复制代码
这样就可以显示出和论坛首页边栏一样的数据调用模块。后台所有的调用模块都可以放到首页,自定义模块也可以。
  
  当然,显示效果需要在论坛后台的数据调用那里预先设置好。与首页的css配合显示。

  除了论坛和UCH的数据调用,还可以加入自己的各种内容。界面的显示效果嘛,就主要看各自的CSS功底了。。

  以上就是我自己琢磨的自制网站根目录HOME页的简洁方法。具体演示可以看我的主页:http://www.yelia.com 提供测试ID: 阿喀琉斯之怒  密码:123456789

  不过由于奶爸我现在太忙了,具体内容都还没来得及认真规划设计,所以给您看的就只是一个简陋的例子,和论坛完全一样的浮动注册、登录、导航窗口,短消息的预览提示,可以通用的数据调用模块,等等。完全由论坛程序自身来实现,无需自己编程。

  补充说明:

  一、千万不要被我的网站首页的简陋吓退,我还没来得及整理呢。提供的是一个简洁的框架,您只要把您的内容放进去就可以了,用您自己的css,设计您自己的个性界面。即使不懂html和css设计的朋友,也可以套用现成的html静态模板,来实现自己的首页。网络上的html静态模板现在很多哈!

  二、由于在IE浏览器下,“导航”那一部分无法给链接自动添加“bbs”的子目录,但在firefox、chome等浏览器下是正常的,而我不想对程序改动过多,所以我在IE浏览器下隐藏了“导航”这个链接,您不妨用firefox等测试一下它的效果。

  三、要直接在首页实现登录、注册等ajax功能,需要在论坛后台里开始“浮动窗口”这一功能,否则会跳转到logging.php来进行了。

  四、可以把登陆和注册的快速跳转代码,都加入到论坛后台的“直接/快速跳转的信息”里面,这样,首页点“退出”之后没有跳转页面,直接返回首页。

  我是不懂php编程的,所以上面的代码也许难免有不尽如人意的地方,但是绝对绿色、安全、无害,不妨一试!



补充:
  参考论坛模板目录下的header.htm,可以得到标准链接如下:

  1.         <a href="$regname" onclick="floatwin('open_register', this.href, 600, 400, '600,0');return false;" class="noborder">注册</a>
  2.         <a href="logging.php?action=login" onclick="floatwin('open_login', this.href, 600, 400);return false;">登录</a>
  3.         <a hideFocus onclick="floatwin('open_nav', this.href, 600, 410);return false;" href="misc.php?action=nav">导航</a>
  4.         <a href="pm.php" id="pm_ntc"<!--{if $newpm && $_DCOOKIE['pmnum']}--> onmouseover="pmviewnew()" class="new" title="{lang pm_new}"<!--{/if}--> target="_blank">短消息<!--{if $newpm && $_DCOOKIE['pmnum']}--><span>($_DCOOKIE[pmnum])</span><!--{/if}--></a>
复制代码
  等等与论坛完全一致的浮动窗口显示,以及“隐身/在线”转换的代码,直接在homepage.htm里应用即可。
liquan89 发表于 2009-4-19 04:28:12 | 显示全部楼层
额。支持下,

黄金广告位子
回复

使用道具 举报

xiejesen 发表于 2009-4-19 04:53:49 | 显示全部楼层
呵呵··楼主探索出来了。。
回复

使用道具 举报

xiejesen 发表于 2009-4-19 04:54:10 | 显示全部楼层
本帖最后由 xiejesen 于 2009-4-19 04:57 编辑

比如:http://www.ylyl.net/

http://www.ylyl.net/home_my_yulin.php
回复

使用道具 举报

yeyuhua 发表于 2009-4-19 08:55:45 | 显示全部楼层
----------------------------------------------------
本站为全国最大的QQ空间特效站,现在诚招优秀站点做友情链接,申请地址:
http://www.d1qq.net/forum-38-1.html
本站建站时间虽不久,但排名以进50万内,而且还在上升!
------------------------------------------------------
回复

使用道具 举报

 楼主| 阿喀琉斯 发表于 2009-4-19 21:49:51 | 显示全部楼层
嗯。。看来大家喜欢用现成的home页,不喜欢自己DIY~
回复

使用道具 举报

轻一笑 发表于 2009-4-20 00:19:53 | 显示全部楼层
写的不错学习了!!!
回复

使用道具 举报

yangjiangh 发表于 2009-4-22 22:01:42 | 显示全部楼层
学习了
不错呀
回复

使用道具 举报

schsky 发表于 2009-4-22 22:31:51 | 显示全部楼层
顶你了啊
回复

使用道具 举报

playba 发表于 2009-4-23 08:52:59 | 显示全部楼层
还在学习中。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 19:00 , Processed in 0.028146 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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