AL8 Forum » Discuz 2.5 插件發佈 » 自動判斷生肖與年齡完美版 By Polo!〔以農曆正確計算生肖〕


2005-9-18 13:27 cpn2004
自動判斷生肖與年齡完美版 By Polo!〔以農曆正確計算生肖〕

轉至:freediscuz
自動判斷生肖與年齡完美版 By Polo!〔以農曆正確計算生肖〕

------------------------------------------------------------
  自動判斷生肖與年齡完美版 By Polo!
------------------------------------------------------------

 作者: Polo!

   先不要急虒穨睇﹛G“不是已經有這個插件了嗎?什麼完美版喔?”,看看這些句的介绍

 過往的生肖和年齡的插件都不準確,明明我是龍,為什麼會變了蛇:em01: ,那是因為它們都不是以農曆計算
還有以前的年齡插件,開發者沒有想到更多人性的情G,我還沒過生日,為什麼已大了一歲喔?

 這完美版将修改這兩個問題:(


 适用: 2.5 / 2.5 SP1

 Y布: 2005-09-17

 难度: 易

 修改:
    viewpro.php
    viewpro 模版

 新增:
    include/zodiacsigns.php

 更新:

    2005-09-18 - 更新附件,繁简编碼问题

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

 效果顯示:

   1989 年,生肖為龍

    http://www.fdship4ever.com/viewpro.php?uid=69

   1989 年,生肖為蛇

    http://www.fdship4ever.com/viewpro.php?uid=1

   1989 年,已過生日,16 歲:

    http://www.fdship4ever.com/viewpro.php?uid=1

   1989 年,未過生日,15 歲:

    http://www.fdship4ever.com/viewpro.php?uid=90


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


 第一步: include/zodiacsigns.php

  下载附件,解開壓缩包,將 zodiacsigns.php 放到 include/ 內

 第二步: viewpro.php

  找到
[code]
$member['bday'] = str_replace('y', substr($birthday[0], 2, 4), $member['bday']);
[/code]
下面加
[code]
// ------------------------------------------------------------
//  Chinese Zodiac Signs / Age
//  Polo! / 2005-09-17
// ------------------------------------------------------------
if($birthday[0] <> '0000' && $birthday[1] <> '00' && $birthday[2] <> '00') {
        @require DISCUZ_ROOT.'./include/zodiacsigns.php';
        $member['zodiacsigns'] = zodiacsigns($birthday[0], $birthday[1], $birthday[2]);
        $member['age'] = date('Y')-$birthday[0];
        if(date('n') < $birthday[1]) {
                $member['age'] -= 1;
        } elseif(date('n') == $birthday[1] && date('j') < $birthday[2]) {
                $member['age'] -= 1;
        }
}
// ------------------------------------------------------------
[/code]
第三步: viewpro 模版
[code]
<tr><td width="45%" class="bold">{lang birthday}:</td><td width="55%">$member[bday]</td></tr>
[/code]
下面加
[code]
<!--{if $member[age]}-->
        <tr><td width="45%" class="bold">年齡:</td><td width="55%">$member[age] 歲</td></tr>
<!--{/if}-->
<!--{if $member[zodiacsigns]}-->
        <tr><td width="45%" class="bold">生肖:</td><td width="55%">$member[zodiacsigns]</td></tr>
<!--{/if}-->
[/code]
完成

  N员资料内的显示安ぃ髡芋C如要在帖子列表内显示年龄和生肖,可继续以下的步骤。
------------------------------------------------------------

 修改:
    viewthread.php
    viewthread 模版


 第四步: viewthread.php

  找到
[code]
        $altbg1 = ALTBG1;
[/code]
上加
[code]
// ------------------------------------------------------------
//  Chinese Zodiac Signs / Age
//  Polo! / 2005-09-17
// ------------------------------------------------------------
        @require_once DISCUZ_ROOT.'./include/zodiacsigns.php';
// ------------------------------------------------------------
[/code]
找到
[code]
m.showemail
[/code]
後面加
[code]
, m.bday
[/code]
找到
[code]
                        $post['regdate'] = gmdate($dateformat, $post['regdate'] + $timeoffset * 3600);
[/code]
下面加
[code]
// ------------------------------------------------------------
//  Chinese Zodiac Signs / Age
//  Polo! / 2005-09-17
// ------------------------------------------------------------
                        if($post['bday'] <> '0000-00-00') {
                                $birthday = explode('-', $post['bday']);
                                $post['bday'] = $dateformat;
                                $post['bday'] = str_replace('n', $birthday[1], $post['bday']);
                                $post['bday'] = str_replace('j', $birthday[2], $post['bday']);
                                $post['bday'] = str_replace('Y', $birthday[0], $post['bday']);
                                $post['bday'] = str_replace('y', substr($birthday[0], 2, 4), $post['bday']);
                                $post['zodiacsigns'] = zodiacsigns($birthday[0], $birthday[1], $birthday[2]);
                                $post['age'] = date('Y')-$birthday[0];
                                if(date('n') < $birthday[1]) {
                                        $post['age'] -= 1;
                                } elseif(date('n') == $birthday[1] && date('j') < $birthday[2]) {
                                        $post['age'] -= 1;
                                }
                        } else {
                                $post['bday'] = NULL;
                        }
// ------------------------------------------------------------
[/code]
 第五步: viewthread 模版

  找到
[code]
        {lang regtime} $post[regdate]<br>
[/code]
下面加
[code]
<!--{if $post[bday]}-->
        生日 $post[bday]<br>
        年齡 $post[age] 歲<br>
        生肖 $post[zodiacsigns]
<!--{/if}-->
[/code]
完成

  歡迎提出意見,請留意插件的更新。

[此帖最後由 cpn2004 在 2005-9-18 於 13:33 修改]

2005-9-18 14:05 JerryJaney
謝謝您的提供~
已經正確安裝到論壇上了~

已發現問題存在~

出生在1990與1991年皆顯示出生肖是馬~
這個地方是目前發現到的~

[此帖最後由 JerryJaney 在 2005-9-19 於 12:10 修改]

2005-9-19 02:53 ray520
Thanks..for..sharing..^^

2005-9-19 12:01 懶b
感謝你的分享

2005-10-17 18:36 ernet
[quote]引用由 [i]JerryJaney[/i] 於 2005-9-18 02:05 PM 發出的帖子內容
謝謝您的提供~
已經正確安裝到論壇上了~
已發現問題存在~
出生在1990與1991年皆顯示出生肖是馬~
這個地方是目前發現到的~ [/quote]

mm...

生肖算法好像有問題,我這邊也是年份跟生肖對不上...

但總算安裝成功,謝謝大大分享!

希望這個問題後面能改善..tks.

2005-11-14 21:05 小駝
謝謝分享..若是要擺圖~比如狗旁邊擺張狗圖~要怎麼弄?

2005-11-15 08:01 阿川
非常感謝大大的提供

2005-11-16 23:31 小駝
1982跟1983都顯示為狗...要如何修正?

2008-12-31 15:02 hotmob
:em27: :em27: :em27: :em27: :em27:

hahaha!

頁: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.