사용자 별
?TimeZone 설정하는 patch
- moniwiki-1.1.0 용
- 고친 내용
- 사용자 생성때 Time Zone 받아서 userinfo에 넣음
- 사용자 수정때 Time Zone 고침
- wiki.php에서 userinfo 불러들일때 userinfo->info['timezone']이 빈 문자열이 아니면 putenv
- 사용 방법
- 아래 내용을 잘 긁어서 moniwiki-1.1.0-usertimezone.patch 정도로 저장한다.
- moniwiki가 담긴 디렉토리가 보이는 위치에서 patch -p0 < moniwiki-1.1.0-usertimezone.patch
슬프게스리, moniwiki개발 버젼에서는 이미 이 기능이 추가 되었다 -_-;;
diff -uNr moniwiki-1.1.0.orig/plugin/userform.php moniwiki/plugin/userform.php
--- moniwiki-1.1.0.orig/plugin/userform.php 2004-10-21 17:27:01.000000000 +0900
+++ moniwiki/plugin/userform.php 2006-02-23 13:07:10.000000000 +0900
@@ -97,6 +97,7 @@
$options['id']=$user->id;
$ticket=md5(time().$user->id.$options['email']);
$user->info['eticket']=$ticket.".".$options['email'];
+ $user->info['timezone']=$options['timezone'];
$formatter->header($user->setCookie());
$ret=$udb->addUser($user);
@@ -163,6 +164,8 @@
$options['msg']=_("Your email address is not valid");
}
}
+ if (isset($options['timezone']))
+ $userinfo->info['timezone']=$options['timezone'];
$udb->saveUser($userinfo);
#$options['css_url']=$options['user_css'];
if (!isset($options['msg']))
diff -uNr moniwiki-1.1.0.orig/wikilib.php moniwiki/wikilib.php
--- moniwiki-1.1.0.orig/wikilib.php 2005-08-08 22:13:36.000000000 +0900
+++ moniwiki/wikilib.php 2006-02-23 14:02:11.000000000 +0900
@@ -253,7 +253,7 @@
}
function saveUser($user) {
- $config=array("css_url","datatime_fmt","email","bookmark","language",
+ $config=array("css_url","datatime_fmt","email","timezone","bookmark","language",
"name","password","wikiname_add_spaces","subscribed_pages",
"scrapped_pages","quicklinks","theme","ticket","eticket");
@@ -1330,6 +1330,7 @@
$again="<b>"._("password again")."</b> <input type='password' size='15' maxlength='12' name='passwordagain' value='' /></td></tr>";
$extra=<<<EXTRA
<tr><td><b>Mail</b> </td><td><input type="text" size="40" name="email" value="$email" /></td></tr>
+ <tr><td><b>Time Zone</b> </td><td><input type='timezone' size='10' maxlength='10' name='timezone' value='' /></td></tr>
EXTRA;
} else {
$button=_("Login or Join");
@@ -1338,10 +1339,12 @@
$button=_("Save");
$css=$user->info['css_url'];
$email=$user->info['email'];
+ $timezone=$user->info['timezone'];
$again="<b>"._("New password")."</b> <input type='password' size='15' maxlength='12' name='passwordagain' value='' /></td></tr>";
$extra=<<<EXTRA
<tr><td><b>Mail</b> </td><td><input type="text" size="40" name="email" value="$email" /></td></tr>
+ <tr><td><b>Time Zone</b> </td><td><input type='timezone' size='10' maxlength='10' name='timezone' value='$timezone' /></td></tr>
<tr><td><b>CSS URL </b> </td><td><input type="text" size="40" name="user_css" value="$css" /><br />("None" for disabling CSS)</td></tr>
EXTRA;
$logout="<input type='submit' name='logout' value='"._("logout")."' /> ";
@@ -1356,6 +1359,7 @@
<tr>
<td><b>Password</b> </td><td><input type="password" size="15" maxlength="12" name="password" value="$passwd" />
$again
+ $usertimezone
$extra
<tr><td></td><td>
<input type="submit" name="login" value="$button" />
diff -uNr moniwiki-1.1.0.orig/wiki.php moniwiki/wiki.php
--- moniwiki-1.1.0.orig/wiki.php 2005-08-05 17:51:39.000000000 +0900
+++ moniwiki/wiki.php 2006-02-23 13:37:23.000000000 +0900
@@ -3279,6 +3279,11 @@
$options['css_url']=$user->css;
if (!$theme) $options['theme']=$user->theme;
}
+
+ # If user defined timezone
+ if ($userinfo->info['timezone'] != "") {
+ putenv('TZ='.$userinfo->info['timezone']);
+ }
} else {
$options['css_url']=$user->css;
if (!$theme) $options['theme']=$user->theme;