2009年3月15日星期日

Discuz论坛首页五格修改代码解析之二(discuz.htm)

Discuz论坛首页五格修改代码解析之二(discuz.htm)
discuz.htm的文件主要就是把index.php里面定义的数据取出来,然后按照htm的布局和CSS样式表的定义,按一定的样式显示出来

1.用户信息
<td valign="top"><div class="left" style="line-height: 18px;">
<span class="bold">
    判断是否已登录,如果已登录显示当前用户名,否则显示游客
    <!--{if $gid &amp;amp;#124;&amp;amp;#124; !$discuz_uid}--><a href="$indexname">$bbname</a>
    <!--{else}-->$discuz_user<!--{/if}-->
判断是否创建了博客,如果创建则链接到我的个人空间,如果没有则链接到开通博客页面
<!--{if $supe_status &amp;amp;&amp;amp; $discuz_uid}-->
    -
    <!--{if !$xspacestatus}-->
   <a href="$supe_siteurl/index.php?action/register" target="_blank">{lang supe_signin_xspace}</a>
    <!--{else}-->
   <a href="$supe_siteurl/index.php?action/space/uid/$discuz_uid" target="_blank">{lang supe_myxspace}</a>
    <!--{/if}-->
<!--{/if}-->
</span>
<br />
显示积分
{lang credits}: <span class="bold smalltxt">$credits</span> <span id="creditlist">{lang credits_detail}
调用javascript显示详细积分情况
<script type="text/javascript">menuregister(false, "creditlist", true)</script></span>
<br>{lang index_status}:
判断是否有有效日期,显示所在用户组名和有效天数
<!--{if $validdays}-->
    <a href="member.php?action=groupexpiry"><span class="bold">$grouptitle</span>($validdays)</a>
<!--{else}-->
    <span class="bold">$grouptitle</span><!--{/if}-->
    <br />
如果系统允许隐身,并且已经登录,显示当前登录状态
<!--{if $allowinvisible &amp;amp;&amp;amp; $discuz_uid}-->{lang online_status}:
    如果没有隐身显示切换到隐身模式
    <!--{if !empty($invisible)}-->
   <a href="member.php?action=switchstatus" title="{lang login_switch_normal_mode}">{lang login_invisible_mode}</a>
    <!--{else}-->
   <a href="member.php?action=switchstatus" title="{lang login_switch_invisible_mode}">{lang login_normal_mode}</a>
    <!--{/if}-->
<!--{/if}--><br>
   下面是我添加的当前用户浏览器和操作系统信息,从index.php中定义的变量中获取数据
当前时间:<span class="smalltxt">$currentdate</span><br>
{lang your_lastvisit} <span class="smalltxt">$lastvisittime</span><br><br />
浏览器:<span class="smalltxt">$visitor_browser</span><br>
操作系统:<span class="smalltxt">$visitor_os</span>

</div>
</td>
其实这部分代码原来都是在头部的,我只不过把它们换了个地方,重新排列了一下,所以只要知道每个语句的意思,论坛样式你想改成什么样子就什么样子。


2.随机图片
<td class="altbg1" align="center" valign="top">
<iframe name="I1" src="pic.php" width="200" height="168" frameborder=0 scrolling=no marginwidth="2" marginheight="2" align="right"></iframe>
</td>
图片切换效果的功能是在pic.php页面中实现的,这个页面我第三节讲,这块使用了一个iframe ,iframe的好处就是,页面可以异步载入,也就是首页和pic.php是分开来载入的,互不影响。因为flash的加载图片速度比较慢,如果不用iframe,首页的载入速度会受到一定的影响。

3.最新主题
<td valign="top">
取出index.php中获取的主题列表数组$new_post_threadlist,并把每次循环取出的一个专题存入$nthread临时数组
<!--{loop $new_post_threadlist $nthread}-->
       <table border="0" width='100%' cellspacing="2">
      <tr>
         <td height="12" width='100%'><FONT face=Wingdings>z</FONT>
            判断当前取出主题的回复数
            <!--{if $nthread[replies]}-->
            分别取出这个主题各个属性,包括高亮显示样式,截取长度的标题,作者,浏览数,回复数等
            <a href="viewthread.php?tid=$nthread[tid]" $nthread['highlight'] title="最新话题 {LF}所在论坛: $nthread[forumname]{LF}主题标题: $nthread[subject] {LF}主题作者: $nthread[author]{LF}发表时间: $nthread[date]{LF}浏览次数: $nthread[views] 次 {LF}回复次数: $nthread[replies] 次{LF}最后回复: $nthread[lastreplytime]{LF}{lang lastpost}: $nthread[lastposter]" >$nthread[view_subject]</a>
            <!--{else}-->
            如果没有回复贴,显示出来的信息略有不同
            <a href="viewthread.php?tid=$nthread[tid]" $nthread['highlight'] title="最新话题 {LF}所在论坛: $nthread[forumname]{LF}主题标题: $nthread[subject] {LF}主题作者: $nthread[author]{LF}发表时间{lang time}: $nthread[date]{LF}浏览次数: $nthread[views] 次 {LF}回复次数: $nthread[replies] 次{LF}{lang replies}: 暂时没有回复" >$nthread[view_subject]</a>
             <!--{/if}-->
         </td>
      </tr>
       </table>
   <!--{/loop}--></td>

没有评论:

发表评论