:::

7. 搜尋、語系、偏好設定、自動功能

一、 加入搜尋功能

  1. 先至後台區塊管理,啟用XOOPS的搜尋區塊。
  2. 建立include目錄,並將教材中的「搜尋檔範本search.php」複製到include中,修改檔名為search.php,並根據提示修改之。 (用範例包者將註解拿掉即可)
  3. 圖示請準備16x16的圖示。(可至 http://findicons.com/ 下載)
  4. 在xoops_version.php中加入搜尋設定(記得更新模組):
    $modversion['hasSearch'] = 1;
    $modversion['search']['file'] = "include/search.php";
    $modversion['search']['func'] = "tad_ebook_search";

二、 加入語系常數的方法

  1. 常數可用define()來定義,例如:define("_MI_MOD_TITLE","標題:");
  2. 常數通常會以「_」作為開頭,並用「大寫英文」,以茲辨識。
  3. PHP常數要插入字串中,不能直接把常數放到字串裡面去(不然程式會搞不清楚是字串還是常數),其方法如下:
  4. 原來字串→$aa="<div>標題</div>";
  5. 套入常數→$aa="<div>" . _MI_MOD_TITLE . "</div>";

三、 XOOPS的語系檔及其用途

檔名 用途 常數開頭 使用範圍
modinfo.php 設定語系 _MI 僅xoops_version.php及admin/menu.php
admin.php 後台語系 _MA或_AM admin下除了menu.php的所有檔案
main.php 前台語系 _MD 前台所有檔案(除了xoops_version.php)
blocks.php 區塊語系 _MB blocks下的所有檔案

四、 常數與變數結合的方法

  1. 可用sprintf()來結合常數與變數,常數名稱可用「%s」來代表變數,一個常數中可以有多個「%s」,依位置來對應變數,例如:
    define("_MD_MOD_INFO","本模組由 %s 於 %s 做最後更新");
    $info=sprintf(_MD_MOD_INFO , $name , $update);

五、 樣板中使用語系

<{$smarty.const._語系常數}>


六、 內建的常用語系

  1. XOOPS的language/tchinese_utf8/global.php 中的語系可讓每個模組直接套用。
  2. TadTools模組tadtools/language/tchinese_utf8/main.php 的語系,只有引入tad_function.php,那也可以直接套用。

七、 加入偏好設定

  1. 偏好設定可以讓您的模組更有彈性一點,而且您不用自己做資料表,就可以把和模組相關的設定值,存到資料庫。適用於那種和模組整體有關,但和個別資料無關的設定。
  2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!):
    $modversion['config'][$i]['name'] = 'show_num';
    $modversion['config'][$i]['title']  = '_MI_TADEBOOK_SHOW_NUM';
    $modversion['config'][$i]['description']  = '_MI_TADEBOOK_SHOW_NUM_DESC';
    $modversion['config'][$i]['formtype'] = 'select';
    $modversion['config'][$i]['valuetype']  = 'int';
    $modversion['config'][$i]['options'] = array(5=>5,10=>10,15=>15);
    $modversion['config'][$i]['default'] = 10;
  3. 輸入欄位類型其可用的項目有:
    • (1)  「yesno」是否的單選框
    • (2)  「select」下拉選單
    • (3)  「select_multi」可複選的下拉選單
    • (4)  「group」群組下拉選單
    • (5)  「group_multi」可複選的群組下拉選單
    • (6)  「textbox」文字框
    • (7)  「textarea」大量文字框
    • (8)  「user」已註冊使用者下拉選單
    • (9)  「user_multi」可複選的已註冊使用者下拉選單
    • (10)  「timezone」時區下拉選單
    • (11)  「language」語系下拉選單
  4. 偏好設定的輸入值型態,其可用的項目有:
    • (1)  「int」整數: yesno 、group、user
    • (2)  「float」浮點數
    • (3)  「text」一般文字
    • (4)  「array」陣列: select_multi、group_multi、 user_multi
  5. 偏好設定的選項設定使用陣列寫法,用於有 select 或 select_multi 時,「5=>5」左邊的5(索引)會顯示在螢幕上,可用文字,右邊的5(值)會存入資料庫。

八、 加入分頁並套用偏好設定

  1. 請將以下語法插入到$sql和$xoopsDB->query($sql)之間
    //getPageBar($原sql語法, 每頁顯示幾筆資料, 最多顯示幾個頁數選項);
    $PageBar=getPageBar($sql,20,10,NULL,NULL,$bootstrap);
    $bar=$PageBar['bar'];
    $sql=$PageBar['sql'];
    $total=$PageBar['total'];
  2. 用 $xoopsModuleConfig['show_num'] 取代掉分頁的數量即可。若在函數中,記得要global  $xoopsModuleConfig;

九、 安裝、更新及移除模組用的設定

  1. 這個項目沒有也沒關係,主要是用來設定在安裝(或反安裝)模組時,要順便進行的一些指定動作,並不常用(也並沒有規定一定要放在include中)。
    $modversion['onInstall'] = "include/install.php";
    $modversion['onUpdate'] = "include/update.php";
    $modversion['onUninstall'] = "include/onUninstall.php";
  2. onInstall 是模組安裝時要執行的程式。檔案裡頭必須包含一個函數: xoops_module_install_模組目錄 ,此函數將會在模組安裝時被執行。
  3. onUninstall 是模組移除時要執行的程式。檔案裡頭必須包含一個函數: xoops_module_uninstall_模組目錄 ,此函數將會在模組反安裝時被執行。
  4. onUpdate 是模組更新時要執行的程式。檔案裡頭必須包含一個函數: xoops_module_update_模組目錄 ,此函數將會在模組更新時被執行。
  5. 使用時,請將裡頭範例檔註解拿掉即可使用。需要範例的話,請至各個公開模組參考其寫法,尤其是新增欄位或新增表格的部份,非常常用。

:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D37%26tbdsn%3D1156

書籍目錄

展開 | 闔起

線上使用者

16人線上 (6人在瀏覽線上書籍)

會員: 0

訪客: 16

更多…