[外掛]Quiz Mod v 2.0

MODs Released by Other phpbb Sites
非官方認證通過之 MOD ,或許有安全性之疑慮,所有問題由原發表者回覆!

版主: 版主管理群

主題已鎖定
kaisuny
星球公民
星球公民
文章: 46
註冊時間: 2002-08-08 07:45
來自: 沒有portal 的 portal

[外掛]Quiz Mod v 2.0

文章 kaisuny »

下載處 http://www26.brinkster.com/o0napoleon0o/
模組功能說明︰讓網管及用戶出題、猜謎、學科問答及答題,題目可採用圖片。網管可在 ACP設定收取及獎勵的積分,亦可在 ACP 審查後才可以公開使用。比賽以多項選擇的形式進行,設有積分排行榜。

原文出處︰http://www.phpbb.com/phpBB/viewtopic.php?t=51320




:!: 在 phpmyadmin 輸入 sql 檔之前,檢查 sql files db prefix name 預設的 phpbb_ 前綴名稱是否與您現時使用的吻合;若不吻合,請把sql tables 的前綴改名才輸入。

1. 不使用 subSilver 的用戶在此改模組名稱\r

代碼: 選擇全部

### Open your_template/admin/quiz_list_body.tpl    
### Find
<IMG SRC="../templates/[color=red]subSilver[/color]/images/icon_mini_faq.gif" border="0" alt="{quiz.ALT}">
### rename [color=red]subSilver[/color]  to your_template name

### Open your_template/admin/question_list_body.tpl
### Find
<IMG SRC="../templates/[color=red]subSilver[/color]/images/icon_mini_members.gif" border="0" alt="{question.ALT}">
### rename [color=red]subSilver[/color]  to your_template name

### Open your_template/question_list_body.tpl
### Find
IMG SRC="templates/[color=red]subSilver[/color]/images/icon_mini_members.gif" border="0" alt="{question.ALT}">
### rename [color=red]subSilver[/color]  to your_template name
2. 中文化 templates/your_template_name/quiz_show_score.tpl

代碼: 選擇全部

<table class="forumline" width="99%" cellspacing="1" cellpadding="2" border="0" align="center">
	<tr>
		<th class="thTop" colspan="2">問答成績表</th>
	</tr>
	<tr>
		<td class="row1" align="center" width="200"><span class="gen">
			正確百分比<hr />
			正確題數<br />
			錯誤題數<br />
			賺取的積分<br />
			損失的積分<br />
		</span></td>
		<td class="row1"><span class="gen">
			[{PERCENT}] {RATING}<hr />
			[{CORRECT}]<br />
			[{WRONG}]<br />
			[{REWARD}]<br />
			[{CHARGE}]<br />
		</span></td>
	</tr>
	<tr>
		<td class="catbottom" colspan="2" align="center"> </td>
	</tr>
</table>
3. 按鈕用語中文化

代碼: 選擇全部

### Open templates/your_template_name/take_quiz_body.tpl
### Find
<input type="submit" name="took_quiz" value="SUBMIT">  <input type="reset" value="RESET">
### Replace with
<input type="submit" name="took_quiz" value="送出">  <input type="reset" value="重整"></center>
4. 中文化 language/lang_chinese/lang_quiz.php

代碼: 選擇全部

<?php
/***************************************************************************
 *                          lang_quiz.php [Traditional Chinese version]
 *                            --------------------------------------------
 *   begin                : Wednesday December 31, 2003
 *   copyright            : (c) 2003 iNetAngel       
 *   email                : support@iNetangel.com
 *
 *   $Id: lang_quiz.php,v 0.0.1 2003/12/31 59:59:59 Napoleon Exp $
 *
 ***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/
/***************************************************************************
 *
 *   本語言檔是自由軟體,但您必須遵照自由軟體基金會(Free Software Foundation)發佈 
 *   通用公共許可證 GNU General Public License (GNU GPL) 的規定,才可以自行重新發佈
 *   語言檔及/或重新釋出新版本。GNU 通用公共授權聲明,
 *   詳見網址  http://www.slat.org/project/legal/GNU_GPL_Chinese
 *
 ***************************************************************************/
 
/*
   CONTRIBUTORS
   Add your details here if wanted, e.g. Name, username, email address, website
   2004-2-8  kaisun (kaisunyeung@sinaman.com) from www.pstudy.net
               -Translate it into Traditional Chinese version.          
*/

$lang['admin_dash'] = "-:- ";
$lang['admin_pages'] = "頁";
$lang['admin_charge'] = "支付積分";
$lang['admin_reward'] = "獎勵積分";
$lang['admin_main_header'] = "這是<a href=\"http://www.inetangel.com/\" target=\"newindow\" class=\"copyright\">iNetAngel</a> Quiz MOD 的架設選單。在此您可以安裝及新增問答題供會員使用。 如果您有安裝 rewards MOD,您亦可以為每道題目設定收費及獎勵的積分、建立題庫及答案。 任何新增的題目會附有相應的開關燈號,來表示該道題目是否處於可用的狀態。 如果您在架設上遇到任何問題,請透過我在 <a href=\"mailto:support@inetangel.com\" class=\"copyright\">support@inetangel.com</a> or for a faster response visit our <a href=\"http://forums.inetangel.com\" target=\"newindow\" class=\"copyright\">論壇的電郵向我查詢。";
$lang['admin_config_menu'] = "iNetAngel 問答題架設的選單";
$lang['admin_quiz_list_menu'] = "iNetAngel 問答題選單";
$lang['admin_question_list_menu'] = "iNetAngel 題目選單";
$lang['admin_answer_list_menu'] = "iNetAngel 答案選單";
$lang['admin_answer_header'] = "答案選單讓您修改、新增及刪除題目的答案。 答案顯示如下;如無法顯示,可能是題目未輸入答案。如果您想一次過輸入多個答案,您可以在 \"<b>新增答案</b>\" 旁的輸入方格內,輸入答案的個數。如果答案個數的數值輸入錯誤,把它刪除即可。當您新增答案之後,您亦可以隨時修改答案的內容。";
$lang['admin_question_header'] = "題目選單讓您可修改、新增、或刪除題目。 題目顯示如下;如無法顯示,可能是尚未輸入題目。如果您想一次過輸入多道題目,您可以在 \"<b>新增題目</b>\" 旁的輸入方格內,輸入題目的個數。 如果題目個數的數值輸入錯誤,把它刪除即可。 當您新增題目之後,您亦可以隨時修改題目的內容,並為題目輸入多項選擇形式的答案。";
$lang['admin_question_edit_menu'] = "iNetAngel 題目編輯器";
$lang['admin_question_edit_header'] = "本編輯器讓您可以在下表填寫各欄位,來架設問答題。題目如有圖片,請存放於 images/ 的目錄,它亦會顯示在題目選單上。 出題時您亦可使用 HTML 語法;題目儲存後亦會以預覽方式顯示。";
$lang['admin_answer_edit_menu'] = "iNetAngel 答案編輯器";
$lang['admin_answer_edit_header'] = "在本編輯器您可以透過填寫下方全部欄位資料,來新增答案。答案如有使用到的圖片,亦請把有關的圖片存放在 images/ 的目錄。輸入答案時,您亦可使用 HTML 的語法。當答案儲存後,答案會以預覽方式顯示。";
$lang['admin_correct'] = "正確";
$lang['admin_toggles'] = "可切換按鈕";
$lang['admin_activity_detected'] = " [已安裝] ";
$lang['admin_points_detected'] = " 積分 [已安裝] ";
$lang['admin_rewards_detected'] = " [已安裝 Rewards MOD] ";
$lang['admin_use_activity'] = "<b>使用 <a href=\"http://www.inetangel.com/\" target=\"newindow\">Activity MOD</a>";
$lang['admin_use_activity_info'] = "</b>如果您已安裝 Activity MOD ,並在Activity MOD 加入 Quiz MOD ,把它視為其中一個遊戲。這樣請您把本欄設定為 \"<b>是</b>\" 把橫式選單上的 Quiz 連結功能關閉。";
$lang['admin_use_rewards'] = "<b>使用 Rewards MOD";
$lang['admin_use_rewards_info'] = "</b>如果您有安裝 rewards MOD,您就可以在本欄設定 \"<b>是</b>\",以便讓會員答題時付費或賺取積分。";
$lang['admin_use_header'] = "<b>關閉phpBB頁頂選單</b><br />";
$lang['admin_use_header_info'] = "本選項啟用後, 當用戶答題時,畫面就不會出現 phpBB 的頁頂選單。";
$lang['admin_default_reward'] = "<b>預設獎勵積分的欄位</b><br />";
$lang['admin_default_reward_info'] = "使用本欄位來設定您的獎勵積分。<br /><br /><b>例如 : </b>積分系統會使用 <b>user_points</b>的積分名稱";
$lang['admin_user_reward'] = "<b>獎勵出題者的功能</b><br />";
$lang['admin_user_reward_info'] = "當其他用戶答題時,本功能讓出題者可以得到積分獎勵。 與此同時,出題者亦會得到答題者支付的答題積分。";
$lang['admin_user_quiz'] = "<b>容許用戶出題</b><br />";
$lang['admin_user_quiz_info'] = "本設定讓用戶可以自己出題,題目完成出題後,題目是否能公開使用,最終決定權在於網管。";
$lang['admin_return_quiz'] = "Click %s這裡%s 返回問答題的選單";
$lang['admin_config_updated'] = "更新問答題的設定<br /><br />";
$lang['admin_db_field'] = "DB 欄位";
$lang['admin_activate'] = "[啟用新增的題目] 出題者 :: ";
$lang['admin_turn_off'] = "關閉本問答題";
$lang['admin_turn_on'] = "啟用本問答題";
$lang['admin_user_editing'] = "[用戶尚未完成本問答題] 出題者 :: ";
$lang['admin_repair'] = "重整問答題的索引值";
$lang['admin_reset_scores'] = "重整問答題的積分排行榜";
$lang['admin_score_reset'] = "重整全部問答題的積分排行榜<br /><br />";
$lang['admin_return_quiz'] = "Click %s這裡%s 返回問答題的主選單";
$lang['admin_return_quizies'] = "Click %s這裡%s 返回問答題的編輯器";
$lang['admin_quiz_deleted'] = "刪除問答題<br /><br />";
$lang['admin_quiz_not_deleted'] = "問答題尚未被刪除<br /><br />";
$lang['admin_quiz_repaired'] = "問答題索引值已經重整<br /><br />";
$lang['admin_rewards_config'] = "獎勵積分的設定選單";
$lang['admin_quiz_config'] = "問答題的設定選單";
$lang['admin_default_pages'] = "<b>預設每頁顯示的問答題數</b><br />";
$lang['admin_default_pages_info'] = "預設每頁顯示的問答題數";
$lang['admin_default_limit'] = "<b>預設答題限額</b><br />";
$lang['admin_default_limit_info'] = "預設用戶答題的次數";
$lang['admin_quiz_charge'] = "<b>預設出題的手續費</b><br />";
$lang['admin_quiz_charge_info'] = "用戶出題的手續費,此費用亦包括其他用戶答題要扣除的積分,也是當其他用戶答中題目時,給與出題者的獎勵積分。";
$lang['admin_quiz_limit'] = "<b>問答題的答題限額</b><br />";
$lang['admin_quiz_limit_info'] = "本設定限制用戶的答題數目。如數值為 <b>0</b> 表示不設限額。";
$lang['admin_quiz_a_charge'] = "<b>預設的罰分</b><br />";
$lang['admin_quiz_a_charge_info'] = "預設為答錯題目要扣除答題人的積分";
$lang['admin_quiz_a_reward'] = "<b>預設的獎勵積分</b><br />";
$lang['admin_quiz_a_reward_info'] = "預設為答中題目的獎勵積分";
$lang['admin_quiz_edit_header'] = "本編輯器讓您在討論板新增問答題,請填寫本題目全部欄位資料,並 click 入修改每道題目。修改題目時,切記要為題目加入答案。 答案欄亦提供選項按鈕,來決定答案是否正確。 如果您有安裝 rewards MOD,並在 Quiz 安裝選單設定好,用戶答題時就可以扣取用戶的積分。 全部新增的題目均會採用此預設值來收取積分或獲得積分,而此預設值亦可隨時作出修改。問答題完成新增後,才可建立相關的題目;題目完成新增後,才可建立相關的答案。";
$lang['admin_quiz_edit_menu'] = "iNetAngel 題目編輯器";
$lang['admin_quiz_edit_questions'] = "修改題目";
$lang['admin_default_new_question'] = "新題目";
$lang['admin_default_new_answer'] = "新答案";
$lang['admin_user_not_done'] = "用戶尚未完成出題,因此其他會員無法在此出題或參與答題。 您可以隨時修改或刪除本常識題,但除非出題者正式把它送交網管作核實通過,否則題目仍會維持停用的狀態。<br /> <br />";
$lang['admin_cfg_quiz_limit'] = "限額";

// User Add Quiz
$lang['Save'] = "儲存";
$lang['user_edit'] = "修改";
$lang['user_quiz_save'] = "<b>儲存問答題</b><br />";
$lang['user_quiz_save_info'] = "如果您尚未完成問答題的輸入工作,可按 \"儲存\" 按鈕儲存,以備日後繼續未完的出題工作。 除非題目已送交網管核實,並予以通過,否則題目是無法公開使用的。<br /><br />如果您需要修改題目及答案,您亦需要作出 \"儲存\" 的行動。";
$lang['user_quiz_submit'] = "<b>送交問答題</b><br />";
$lang['user_quiz_submit_info'] = "當您完成出題後,請您按 \"送出\"鍵,提交網管核實。 網管會因應題目是否適合,予以公開使用或刪除。";
$lang['user_question_header'] = "這是題目編輯器,在此您可以使用 \"<b>新增題目</b>\" 的選項,旁邊會出現小方格列出數值 \"<b>1</b>\"。 改變此數值, 可顯示要新增問答題的題目個數。 完成後 click 選 \"<b>完成</b>\" 按鈕,可返回問答題主選單。 此時Click \"<b>完成</b>\" 按鈕並 <b>不表示</b> 題目已送交網管核實,因為您尚未加入答案。題目一旦完成輸入,您才可以新增、刪除或修改題目的答案。 每個 \"<b>行動</b>\" 欄位會顯示在顯目的右方。";
$lang['user_question_edit_header'] = "在本選單您可以修改題目。只有兩個欄位可供修改︰其一是題目名稱,它會顯示在題目的上方,另一欄位是題目的內容。";
$lang['user_answer_header'] = "在本選單您可修改題目的 \"<b>答案</b>\" 。每道題目至少要有兩個答案︰ <b>正確</b> 及 <b>錯誤</b> 的答案。 如果您未完成此兩個選項,本道問答題就不會獲得<b>網管</b>的 <b>核實通過</b>。 您可以同時看到 <b>正確</b> 或 <b>錯誤</b> 的答案,詳列於 \"<b>行動</b>\" 欄位的旁邊。 正如題目一樣,在此您可以隨時修改及新增答案。";
$lang['user_answer_edit_header'] = "在本選單您可修改答案,共有兩個欄位可供修改。 其一是 <b>正確</b> 的欄位可以修改。 如果本答案是正確的話,請把本欄設定成 \"<b>是</b>\" ;另一個欄位是答案的內容,它會顯示在題目的下方。";
$lang['user_q_desc_info'] = "在本方格輸入題目.";
$lang['user_a_desc_info'] = "在本方格輸入答案.";

// Quiz
$lang['quiz_dash'] = ":";
$lang['quiz_number'] = "#";
$lang['quiz_desc'] = "說明";
$lang['quiz_question'] = "題目";
$lang['quiz_answer'] = "答案";
$lang['quiz_author'] = "作者";
$lang['quiz_cost'] = "答題手續費";
$lang['quiz_free'] = "免費";
$lang['quiz_charge'] = "罰分";
$lang['quiz_reward'] = "獎分";
$lang['quiz_quiz'] = "問答題";
$lang['quiz_quizies'] = "問答題題庫";
$lang['quiz_delete'] = "X";
$lang['quiz_up'] = "移上";
$lang['quiz_down'] = "移下";
$lang['quiz_action'] = "行動";
$lang['quiz_info'] = "資料";
$lang['quiz_highscore'] = "成績排行榜";
$lang['quiz_player'] = "最佳參賽者";
$lang['quiz_score'] = "積分";
$lang['quiz_played'] = "比賽日期";
$lang['quiz_add_quiz'] = "新增問答題";
$lang['quiz_done'] = "完成";
$lang['quiz_limit'] = "您已達到答題的限額,不能再答題了。";
$lang['quiz_not_done'] = "您需要作答全部問題。";
$lang['quiz_name'] = "<b>問答題名稱</b><br />";
$lang['quiz_name_info'] = "這是問答題的名稱及連結";
$lang['quiz_desc'] = "<b>問答題補充說明</b><br />";
$lang['quiz_desc_info'] = "這是問答題向答題者公開的補充說明";
$lang['quiz_img'] = "<b>問答題的圖片</b><br />";
$lang['quiz_img_info'] = "如果在 images 目錄存放有相關的小圖片,請在此輸入其網址,這樣圖片就會在答題時顯示。";
$lang['quiz_q_charge'] = "<b>答題罰分</b><br />";
$lang['quiz_q_charge_info'] = "這是答錯題目所需扣除的積分.";
$lang['quiz_q_name'] = "<b>題目名稱</b><br />";
$lang['quiz_q_name_info'] = "題目的簡要說明";
$lang['quiz_q_image'] = "<b>題目圖片</b><br />";
$lang['quiz_q_image_info'] = "這是題目顯時時出現的圖片;如留空本欄,表示毋須使用圖片。 設定的圖片請存放在 \"<b>images</b>\" 目錄。";
$lang['quiz_q_description'] = "<b>題目補充說明</b><br />";
$lang['quiz_q_desc_info'] = "在此您可輸入題目,您亦可以使用 HTML 語法。";
$lang['quiz_q_edit_alt'] = "修改問答題的題目-> ";
$lang['quiz_a_image'] = "<b>答案圖片</b><br />";
$lang['quiz_a_image_info'] = "這是您在答案旁顯示的圖片;如不需要圖片,可留空本欄。 圖片請存放在 \"<b>images</b>\" 的目錄。";
$lang['quiz_a_description'] = "<b>答案說明</b><br />";
$lang['quiz_a_desc_info'] = "在此您可輸入答案,您亦可以使用 HTML 語法。";
$lang['quiz_a_edit_alt'] = "修改答案 ";
$lang['quiz_a_correct'] = "<b>正確答案</b><br />";
$lang['quiz_a_correct_info'] = "如果本答案是 <b>正確</b> 的話,請設定本欄為 <b>是</b>.";
$lang['quiz_a_reward'] = "<b>獎分</b><br />";
$lang['quiz_a_reward_info'] = "如果您已安裝 rewards MOD;當您 <b>答中</b> 答案,本欄的數值就代表您賺取的積分。";
$lang['quiz_a_charge'] = "<b>罰分</b><br />";
$lang['quiz_a_charge_info'] = "如果您已安裝 rewards MOD ;當您 <b>答錯</b> 答案, 本欄的數值就代表要向您收取的積分。";

// Errors
$lang['no_quiz_save'] = "不能儲存問答題資料.";
$lang['no_quiz_q_save'] = "不能儲存題目資料.";
$lang['no_quiz_a_save'] = "不能儲存答案資料.";
$lang['no_quiz_data'] = "不能取得問答題資料.";
$lang['no_quiz_q_data'] = "不能取得題目資料.";
$lang['no_quiz_a_data'] = "不能取得答案資料.";
$lang['no_quiz_author'] = "不能取得問答題的作者資料r.";
$lang['no_score_reset'] = "不能重整問答題的積分.";
$lang['no_score_insert'] = "不能加入積分";
$lang['no_quiz_delete'] = "不能刪除問答題.";
$lang['no_quiz_q_del'] = "不能刪除題目.";
$lang['no_quiz_a_del'] = "不能刪除答案.";
$lang['no_quiz_repair'] = "不能整理問答題的索引值.";
$lang['no_quiz_score_data'] = " 不能取得積分資料.";
?>
5. 補充 readme 中文語言檔

代碼: 選擇全部

### Open  language/lang_chinese/lang_main.php 
### Find
?>
### Add before
// Quiz MOD 
$lang['Quiz'] = "有趣問答題"; // or other names you like
6. 禁止未註冊用戶答題

代碼: 選擇全部

### Open quiz.php 
### Find
if($mode == "take_quiz") 
{ 
### Add after
###
Code: 
   if($userdata['user_id'] == ANONYMOUS) 
      { 
         message_die(GENERAL_MESSAGE, "對不起!您必須註冊登入後,才可答題或出題.", "", "", "", ""); 
      }  
7. Fix "Template->make_filename(): Error - template file not found" error message

代碼: 選擇全部

### Open quiz.php
### Comment out the following codes 
### Find 
     $sql = "SELECT * FROM " . iNA_SECURE . " 
        WHERE ip = '$player_ip'"; 
     if(!$result = $db->sql_query($sql)) 
     { 
        message_die(GENERAL_ERROR, "Could't load Secure-Hashing data", "", __LINE__, __FILE__, $sql); 
     } 
     $secure_info = $db->sql_fetchrow($result); 
   
     $hash_check = ($secure_info['hash'] == Secure_Score($player, $player_ip, $secure_info['timestamp'], $q_id)) ? "" : "cheat"; 
   
     if($hash_check == "cheat") 
     { 
        // Record Cheater here 
        message_die(GENERAL_MESSAGE, "Lamer", "", "", "", ""); 
     } 
     else 
     { 
        $sql = "DELETE FROM " . iNA_SECURE . " 
           WHERE ip = '$player_ip'"; 
        if( !$result = $db->sql_query($sql) ) 
        { 
           message_die(GENERAL_ERROR, "Couldn't delete hash data.", "", __LINE__, __FILE__, $sql); 
        }
### Replace with
//   $sql = "SELECT * FROM " . iNA_SECURE . " 
//      WHERE ip = '$player_ip'"; 
//   if(!$result = $db->sql_query($sql)) 
//   { 
//      message_die(GENERAL_ERROR, "Could't load Secure-Hashing data", "", __LINE__, __FILE__, $sql); 
//   } 
//   $secure_info = $db->sql_fetchrow($result); 
// 
//   $hash_check = ($secure_info['hash'] == Secure_Score($player, $player_ip, $secure_info['timestamp'], $q_id)) ? "" : "cheat"; 
// 
//   if($hash_check == "cheat") 
//   { 
//      // Record Cheater here 
//      message_die(GENERAL_MESSAGE, "Lamer", "", "", "", ""); 
//   } 
//   else 
//   { 
//      $sql = "DELETE FROM " . iNA_SECURE . " 
//         WHERE ip = '$player_ip'"; 
//      if( !$result = $db->sql_query($sql) ) 
//      { 
//         message_die(GENERAL_ERROR, "Couldn't delete hash data.", "", __LINE__, __FILE__, $sql); 
//      } 
8. 成績評語中文化

代碼: 選擇全部

###Open quiz.php
### Find  around Line 694
   
   	if($percent == 0)
	{
		$rating = "Poor";
	}
	if($percent >= 25)
	{
		$rating = "Fair";
	}
	if($percent >= 50)
	{
		$rating = "Average";
	}
	if($percent >= 75)
	{
		$rating = "Good";
	}
	if($percent == 100)
	{
		$rating = "Perfect";
	}
### Replace with
   
   	if($percent == 0)
	{
		$rating = "成績有待改進";
	}
	if($percent >= 25)
	{
		$rating = "成績平平";
	}
	if($percent >= 50)
	{
		$rating = "成績一般";
	}
	if($percent >= 75)
	{
		$rating = "成績良好";
	}
	if($percent == 100)
	{
		$rating = "成績頂呱呱";
	}
9. 其他請依 readme.txt 程序安裝。
------------8<----------Cut it here!-----------8<-------------
phpBB 不進則退
主題已鎖定

回到「非官方認證外掛」