------------------------------------------------------------
自动判断生肖与年龄完美版 By Polo!
------------------------------------------------------------
作者: Polo!
先不要急着跟我说:“不是已经有这个插件了吗?什么完美版喔?”,看看这几句的介绍
过往的生肖和年龄的插件都不准确,明明我是龙,为什么会变了蛇 ,那是因为它们都不是以农历计算
还有以前的年龄插件,开发者没有想到更多人性的情况,我还没过生日,为什么已大了一岁喔?
这完美版将修改这两个问题
修改:
viewpro.php
viewpro 模版
新增:
include/zodiacsigns.php
发布: 2005-09-17
更新:
2005-09-19 - 更新附件,繁简编码问题
------------------------------------------------------------
效果显示:
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
找到
- $member['bday'] = str_replace('y', substr($birthday[0], 2, 4), $member['bday']);
复制代码
下加
- // ------------------------------------------------------------
- // 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;
- }
- }
- // ------------------------------------------------------------
复制代码
第三步: viewpro 模版
找到
- <tr><td width="45%" class="bold">{lang birthday}:</td><td width="55%">$member[bday]</td></tr>
复制代码
下加
- <!--{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}-->
复制代码
完成
会员资料内的显示安装完成。如要在帖子列表内显示年龄和生肖,可继续以下的步骤。
------------------------------------------------------------
修改:
viewthread.php
viewthread 模版
第四步: viewthread.php
找到
上加
- // ------------------------------------------------------------
- // Chinese Zodiac Signs / Age
- // Polo! / 2005-09-17
- // ------------------------------------------------------------
- @require_once DISCUZ_ROOT.'./include/zodiacsigns.php';
- // ------------------------------------------------------------
复制代码
继续找到
后加
继续找到
- $post['regdate'] = gmdate($dateformat, $post['regdate'] + $timeoffset * 3600);
复制代码
下加
- // ------------------------------------------------------------
- // 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;
- }
- // ------------------------------------------------------------
复制代码
第五步: viewthread 模版
找到
- {lang regtime} $post[regdate]<br>
复制代码
下加
- <!--{if $post[bday]}-->
- 生日 $post[bday]<br>
- 年龄 $post[age] 岁<br>
- 生肖 $post[zodiacsigns]
- <!--{/if}-->
复制代码
------------------------------------------------------------
完成
欢迎提出意见,请留意插件的更新。
[ 本帖最后由 Polo! 于 2005-9-19 22:25 编辑 ] |