代碼: 選擇全部
##############################################################
## MOD Title: Gender
## 外掛名稱: 性別\r
## MOD Author: Niels < ncr@db9.dk > (Niels Chr. R鷣) http://mods.db9.dk
## 中文譯者: bu <buhip@yahoo.co.jp>
## MOD Description: This mod will add a Gender field into
## users' profile. Il may display "Gender: |image|"
## in posts too (optional).
## 外掛說明: 在個人資料顯示性別(會顯示「性別:(圖形)」)
## 也可以在文章邊顯示(可不裝,選擇性)
## MOD Version: 1.2.5
## 外掛版本: 1.2.5
## Compatibility: 2.0.5->2.0.6
## 相容版本: phpBB 2.0.5 -> 2.0.6
##
## Installation Level: Moderate
## 安裝難度:中等
## Installation Time: 20 to 30 Minutes (1mn by EasyMOD of Nuttzy)
## 安裝時間:20到30分鐘(如果用 Nuttzy 的 EasyMod,只要一分鐘)
## Files To Edit: 8 + 3 optional
## 要修改的檔案: 共 8 個+ 3 個(可不裝,選擇性)
## viewtopic.php (可不裝,選擇性)
## admin/admin_users.php
## includes/usercp_avatar.php
## includes/usercp_register.php
## includes/usercp_viewprofile.php
## language/lang_english/lang_main.php
## templates/SubSilver/profile_add_body.tpl
## templates/SubSilver/profile_view_body.tpl
## templates/subSliver/subSilver.cfg (可不裝,選擇性)
## templates/subSliver/viewtopic_body.tpl (可不裝,選擇性)
## templates/subSilver/admin/user_edit_body.tpl
##
## Included Files: 2
## 內含 2 個檔案
## templates/subSliver/images/icon_minigender_male.gif
## templates/subSliver/images/icon_minigender_female.gif
##
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
##
## 由於安全上的考量,請檢查:
## http://www.phpbb.com/mods/downloads/ 是否有此外掛的最新版本
## 從其他地方下載此檔可能會造成你在你的 phpBB 討論版上寫入有誤的程式碼
## 基於這個理由,phpBB 將不會為沒有收藏在我們的外掛資料庫的外掛提供支援
## 我們的外掛資料庫在 http://www.phpbb.com/mods/downloads/
##
##############################################################
## Author Notes:
##
## This MOD is compatible and can be installed by EasyMOD
## of Nuttzy (but is not officially EasyMOD Compliant)!
## http://www.phpbb.com/phpBB/viewtopic.php?t=124436
##
## 本外掛相容於 Nuttzy 所開發的 EasyMod(但並不和官方EasyMod相容)
## http://www.phpbb.com/phpBB/viewtopic.php?t=124436
##
## However, on alpha releases of EM SQL commands are not performed!
## Then, meanwhile beta or final release (with DB alterations
## capabilities), you must update your database manually by
## copying the gender_db_update.php file in your phpBB
## root directory, execute it with your navigator and after,
## delete it.
##
## 然而,在搶鮮版的 EM SQL 指令並不執行
## 然後,也表示在公開測試版或最終版(有DB改變相容性的)之前
## 你必須要手動地把 gender_db_update.php 檔傳到你的 phpBB根目錄
## 並執行它,執行後請刪除\r
##
## In any case, if you install this MOD manually or using an
## alpha release of EM, please run this file NOW, before
## editing phpBB files by EM or manually!!!
## Otherwise, you may have an error message during your next
## connection.
##
## 如果你要用搶鮮版的 EasyMod 安裝的話,請立刻執行 gender_db_update.php
## 在你要給 EasyMod 裝之前或你要自已裝之前,請先執行 gender_db_update.php
## 要不然,你可能會在下一個連結時出現錯誤
##
## Moreover, the French language provide with this MOD can
## be automatically installed too with EM 0.0.10a release.
## So, if you need this language apply the instructions at the
## bottom of the how-to manually.
##
## For updates, check this official link...
## http://mods.db9.dk/viewforum.php?f=3
##
## 如要最新版,請到官方站去看
## http://mods.db9.dk/viewforum.php?f=3
##
##############################################################
## MOD History: 外掛紀錄
##
## 2003-08-05 - Version 1.2.5
## - Part 1 & part 2 merge in a single how-to
## - Add French translation
## - How-to rewrite to be EasyMOD compatible
##
## ????-??-?? - Version 1.2.4
## - admin/admin_users.php added range check
##
## ????-??-?? - Version 1.2.3
## - confirmed for phpBB2 ver 2.0.5. by "kooky", no change needed
## - changed for ver 2.0.4
##
## ????-??-?? - Version 1.2.2
## - changed a FIND tag
##
## ????-??-?? - Version 1.2.1
## - correct a type in the how-to
##
## ????-??-?? - Version 1.2.0
## - fist release for phpBB2 ver 2.0.1
## - confirmed for phpBB2 ver 2.0.2 - no changes needed
##
## ????-??-?? - Version 1.1.4
## - Last release for phpBB2 ver 2.0.0
##
## ????-??-?? - Version 0.9.0
## - Initial release phpBB2 RC-1
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
## 在你加入這個外掛前,你應該把所有與這個外掛有關的檔案進行備份
##############################################################
#
#-----[ SQL 語法 ]-------------------------------------------------
#
# 如果您用的是搶鮮版的 Easy MOD 下列指令將不會執行
# 請依作者記錄的地方完成這個部份
#
copy gender_db_update.php to gender_db_update.php
execute gender_db_update.php
delete gender_db_update.php
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
admin/admin_users.php
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$interests = ( !empty($HTTP_POST_VARS['interests']) )
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
$gender = ( isset($HTTP_POST_VARS['gender']) ) ? intval ($HTTP_POST_VARS['gender']) : 0;
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
SET
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
$user_rank
#
#-----[ IN-LINE AFTER, ADD 在行中找到後在後面加入 ]----------------------------------
#
, user_gender = '$gender'
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$interests = htmlspecialchars($this_userdata['user_interests']);
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------ \r
#
// Start add - Gender MOD
$gender = $this_userdata['user_gender'];
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$s_hidden_fields .= '<input type="hidden" name="viewemail"
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
$s_hidden_fields .= '<input type="hidden" name="gender" value="' . $gender . '" />';
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
//
// Let's do an overall check
#
#-----[ BEFORE, ADD 在前面加入 ]-----------------------------------------
#
// Start add - Gender MOD
switch ($gender)
{
case 1: $gender_male_checked="checked=\"checked\"";break;
case 2: $gender_female_checked="checked=\"checked\"";break;
default:$gender_no_specify_checked="checked=\"checked\"";
}
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'INTERESTS' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
'GENDER' => $gender,
'GENDER_NO_SPECIFY_CHECKED' => $gender_no_specify_checked,
'GENDER_MALE_CHECKED' => $gender_male_checked,
'GENDER_FEMALE_CHECKED' => $gender_female_checked,
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'L_INTERESTS' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
'L_GENDER' =>$lang['Gender'],
'L_GENDER_MALE' =>$lang['Male'],
'L_GENDER_FEMALE' =>$lang['Female'],
'L_GENDER_NOT_SPECIFY' =>$lang['No_gender_specify'],
// End add - Gender MOD
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
includes/usercp_avatar.php
#
#-----[ FIND 尋找 ]------------------------------------------------
#
function display_avatar_gallery(
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
)
#
#-----[ IN-LINE BEFORE, ADD 在行中找到後在前面加入 ]---------------------------------
#
, &$gender
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$params = array(
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
);
#
#-----[ IN-LINE BEFORE, ADD 在行中找到後在前面加入 ]---------------------------------
#
, 'gender'
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$signature = str_replace(
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
$gender = ( isset($HTTP_POST_VARS['gender']) ) ? intval ($HTTP_POST_VARS['gender']) : 0;
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
SET
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
$avatar_sql . "
#
#-----[ IN-LINE AFTER, ADD 在行中找到後在後面加入 ]----------------------------------
#
, user_gender = '$gender'
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$sql = "INSERT INTO " . USERS_TABLE . "
VALUES
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
, user_style
#
#-----[ IN-LINE AFTER, ADD 在行中找到後在後面加入 ]----------------------------------
#
, user_gender
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
, $user_style
#
#-----[ IN-LINE AFTER, ADD 在行中找到後在後面加入 ]----------------------------------
#
, '$gender'
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$interests = $userdata['user_interests'];
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
$gender=$userdata['user_gender'];
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
display_avatar_gallery(
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
);
#
#-----[ IN-LINE BEFORE, ADD 在行中找到後在前面加入 ]---------------------------------
#
, $gender
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$smilies_status = (
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
switch ($gender)
{
case 1: $gender_male_checked="checked=\"checked\"";break;
case 2: $gender_female_checked="checked=\"checked\"";break;
default:$gender_no_specify_checked="checked=\"checked\"";
}
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'VIEW_EMAIL_YES' =>
#
#-----[ BEFORE, ADD 在前面加入 ]------------------------------------------
#
// Start add - Gender MOD
'LOCK_GENDER' =>($mode!='register') ? 'DISABLED':'',
'GENDER' => $gender,
'GENDER_NO_SPECIFY_CHECKED' => $gender_no_specify_checked,
'GENDER_MALE_CHECKED' => $gender_male_checked,
'GENDER_FEMALE_CHECKED' => $gender_female_checked,
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'L_INTERESTS' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
'L_GENDER' =>$lang['Gender'],
'L_GENDER_MALE' =>$lang['Male'],
'L_GENDER_FEMALE' =>$lang['Female'],
'L_GENDER_NOT_SPECIFY' =>$lang['No_gender_specify'],
// End add - Gender MOD
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
includes/usercp_viewprofile.php
#
#-----[ FIND 尋找 ]------------------------------------------------
#
//
// Generate page
#
#-----[ BEFORE, ADD 在前面加入 ]-----------------------------------------
#
// Start add - Gender MOD
if ( !empty($profiledata['user_gender']))
{
switch ($profiledata['user_gender'])
{
case 1: $gender=$lang['Male'];break;
case 2: $gender=$lang['Female'];break;
default:$gender=$lang['No_gender_specify'];
}
} else $gender=$lang['No_gender_specify'];
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'INTERESTS' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
'GENDER' => $gender,
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'L_INTERESTS' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
'L_GENDER' => $lang['Gender'],
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND 尋找 ]------------------------------------------------
#
?>
#
#-----[ BEFORE, ADD 在前面加入 ]-----------------------------------------
#
// Start add - Gender MOD
$lang['Gender'] = '性別';//used in users profile to display witch gender he/she is
$lang['Male'] = '男性';
$lang['Female']='女性';
$lang['No_gender_specify'] = '沒有指定';
// End add - Gender MOD
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------------
#
value="{INTERESTS}"
</td>
</tr>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
<!-- Start add - Gender MOD -->
<tr>
<td class="row1"><span class="gen">{L_GENDER}:</span></td>
<td class="row2">
<input type="radio" {LOCK_GENDER} name="gender" value="0" {GENDER_NO_SPECIFY_CHECKED}/>
<span class="gen">{L_GENDER_NOT_SPECIFY}</span>
<input type="radio" name="gender" value="1" {GENDER_MALE_CHECKED}/>
<span class="gen">{L_GENDER_MALE}</span>
<input type="radio" name="gender" value="2" {GENDER_FEMALE_CHECKED}/>
<span class="gen">{L_GENDER_FEMALE}</span></td>
</tr>
<!-- End add - Gender MOD -->
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
templates/subSilver/profile_view_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------------
#
{INTERESTS}
</tr>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
<!-- Start add - Gender MOD -->
<tr>
<td valign="top" align="right" nowrap="nowrap"><span class="gen">{L_GENDER}:</span></td>
<td> <b><span class="gen">{GENDER}</span></b></td>
</tr>
<!-- End add - Gender MOD -->
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
templates/subSilver/admin/user_edit_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------------
#
value="{INTERESTS}"
</td>
</tr>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
<!-- Start add - Gender MOD -->
<tr>
<td class="row1"><span class="gen">{L_GENDER}:</span></td>
<td class="row2">
<input type="radio" name="gender" value="0" {GENDER_NO_SPECIFY_CHECKED}/>
<span class="gen">{L_GENDER_NOT_SPECIFY}</span>
<input type="radio" name="gender" value="1" {GENDER_MALE_CHECKED}/>
<span class="gen">{L_GENDER_MALE}</span>
<input type="radio" name="gender" value="2" {GENDER_FEMALE_CHECKED}/>
<span class="gen">{L_GENDER_FEMALE}</span></td>
</tr>
<!-- End add - Gender MOD -->
##############################################################
## Start - Optional gender image display in posts
## 開始:在文章旁顯示發表人性別(此為選擇性,可不裝)
##############################################################
#
#-----[ COPY 複製 ]------------------------------------------------
#
copy root/templates/subSilver/images/icon_minigender_female.gif to templates/subSilver/images/
copy root/templates/subSilver/images/icon_minigender_male.gif to templates/subSilver/images/
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
viewtopic.php
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$sql = "SELECT u.username
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
, p.*
#
#-----[ IN-LINE BEFORE, ADD 在行中找到後在前面加入 ]---------------------------------
#
, u.user_gender
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$rank_image = '';
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
$gender_image = '';
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
$pm_img = '<a href=
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
switch ($postrow[$i]['user_gender'])
{
case 1 : $gender_image = $lang['Gender'].": <img src=\"" . $images['icon_minigender_male'] . "\" alt=\"" . $lang['Gender']. ":".$lang['Male']."\" title=\"" . $lang['Gender'] . ":".$lang['Male']. "\" border=\"0\" />"; break;
case 2 : $gender_image = $lang['Gender'].": <img src=\"" . $images['icon_minigender_female'] . "\" alt=\"" . $lang['Gender']. ":".$lang['Female']. "\" title=\"" . $lang['Gender'] . ":".$lang['Female']. "\" border=\"0\" />"; break;
default : $gender_image="";
}
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'POSTER_RANK' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
'POSTER_GENDER' => $gender_image,
// End add - Gender MOD
#
#-----[ FIND 尋找 ]------------------------------------------------
#
'DELETE' =>
#
#-----[ AFTER, ADD 在後面加入 ]------------------------------------------
#
// Start add - Gender MOD
'L_GENDER' => $lang['Gender'],
// End add - Gender MOD
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
templates/subSilver/subSilver.cfg
#
#-----[ FIND 尋找 ]------------------------------------------------
#
?>
#
#-----[ BEFORE, ADD 在前面加入 ]-----------------------------------------
#
// Start add - Gender MOD
$images['icon_minigender_male'] = "$current_template_images/icon_minigender_male.gif";
$images['icon_minigender_female'] = "$current_template_images/icon_minigender_female.gif";
// End add - Gender MOD
#
#-----[ OPEN 開啟 ]------------------------------------------------
#
templates/subSilver/viewtopic_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------------
#
{postrow.POSTER_AVATAR}<br /><br />
#
#-----[ IN-LINE FIND 在行中尋找 ]----------------------------------------
#
{postrow.POSTER_AVATAR}<br /><br />
#
#-----[ IN-LINE AFTER, ADD 在行中找到後在後面加入 ]----------------------------------
#
{postrow.POSTER_GENDER}<br />
##############################################################
## Start - Optional gender image display in posts
## 結束:在文章旁顯示發表人性別(此為選擇性,可不裝)
##############################################################
#
#-----[ SAVE/CLOSE ALL FILES 存檔並關閉檔案 ]--------------------------------
#
# EoM
[php]<?
#########################################################
## SQL commands to phpBB2
## Author: Niels Chr. R鷣\r
## Nickname: Niels Chr. Denmark
## Email: ncr@db9.dk
##
## Ver 1.0.7
##
## phpBB2 database update script for mods
## this file is intended to use with phpBB2, when installing mods
## after so you may delete this file, but only admin can use so it really doesen't matter
## The script will look what prefix you are using, and use the existing DB defined by congig.php
## The execution of this script's included SQL is harmless, so you can run it as meny times you like
## note, though that the users last visit, will be set back to his/her last login,
## but that is a minor cosmetic isue, that will correct it self next time the use logs in
##
## the following example are from my mods, and you can add some self, for other mods if you like
## you will after execution get a list over those commands that are run with succes and those with warnings !
## delete the sample lines if you are using it only for other mods
##
#########################################################
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);
define('SITE_HISTORY_TABLE', $table_prefix.'site_history');
###################################################################################################
##
## put the SQL commands below here, the SQL commands listed below are only exampels, substitude them with the one you need ##
##
###################################################################################################
$sql=array(
'ALTER TABLE '.USERS_TABLE.' ADD user_gender TINYINT not null DEFAULT "0"'
);
$mods = array (
'Gender Mod'
);
############################################### Do not change anything below this line #######################################
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if ($userdata['user_level']!=ADMIN)
message_die(GENERAL_ERROR, "你的權限不夠...本操作只能由系統管理員使用");
$n=0;
$message="<b>性別外掛資料表安裝作業</b><br/><br/>";
while($sql[$n])
{
$message .= ($mods[$n-1] != $mods[$n]) ? '<p><b><font size=3>'.$mods[$n].'</font></b><br/>' : '';
if(!$result = $db->sql_query($sql[$n]))
$message .= '<b><font color=#FF0000>[已存在]</font></b> line: '.($n+1).' , '.$sql[$n].'<br />';
else $message .='<b><font color=#0000fF>[新增/更新完成]</font></b> line: '.($n+1).' , '.$sql[$n].'<br />';
$n++;
}
message_die(GENERAL_MESSAGE, $message);
?>[/php]