Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「[1011]XOOPS 2.5 模組開發」目錄
MarkDown
15-3 上課範例:templates/blocks/new_notes.html
1. XOOPS模組開發
2. XOOPS模組基本結構
3. 模組管理後台結構
3-1 上課範例:tad0616.sql
3-2 上課範例:xoops_version.php
3-3 上課範例:admin/menu.php
4. XOOPS的表單Class
4-1 admin/cate.php
5. 分類管理功能
5-1 上課範例:admin/cate.php
6. 修改及前台結構
6-1 上課範例:admin/cate.php
6-2 上課範例:index.php
6-3 上課範例:xoops_version.php
7. 前台自製表單
7-1 上課範例:index.php
7-2 上課範例:class/ckeditor/config.js
8. 強化編輯器及月曆
8-1 上課範例:class/ckeditor/config.js
8-2 上課範例:class/ckeditor/kcfinder/config.php
8-3 上課範例:index.php
9. XOOPS文字過濾
9-1 上課範例:index.php
10. 選單及前台功能
10-1 上課範例:index.php
11. 內建搜尋功能與語系
11-1 上課範例:include/search.php
11-2 上課範例:xoops_version.php
11-3 上課範例:language/tchinese_utf8/modinfo.php
11-4 上課範例:admin/menu.php
11-5 上課範例:language/tchinese_utf8/admin.php
11-6 上課範例:admin/cate.php
11-7 上課範例:language/tchinese_utf8/main.php
11-8 上課範例:index.php
12. 偏好設定與分頁
12-1 上課範例:index.php
12-2 上課範例:function.php
12-3 上課範例:xoops_version.php
13. XOOPS的樣板檔
13-1 上課範例:xoops_version.php
13-2 上課範例:templates/tad_note_index.html
13-3 上課範例:index.php
13-4 上課範例:view.php
13-5 上課範例:include/search.php
13-6 上課範例:templates/tad_note_view.html
14. XOOPS的評論功能
14-1 上課範例:index.php
14-2 上課範例:templates/tad_note_index.html
14-3 上課範例:templates/tad_note_view.html
14-4 上課範例:xoops_version.php
14-5 上課範例:view.php
14-6 上課範例:comment_new.php
14-7 上課範例:themes/school2012/css/itensXoops.css
15. 製作XOOPS區塊
15-1 上課範例:xoops_version.php
15-2 上課範例:blocks/new_notes.php
15-3 上課範例:templates/blocks/new_notes.html
16. 通知功能(上)
16-1 上課範例:index.php
16-2 上課範例:templates/tad_note_index.html
16-3 上課範例:xoops_version.php
16-4 上課範例:include/notification.inc.php
16-5 上課範例:templates/tad_note_view.html
17. XOOPS通知功能(下)
17-1 上課範例:index.php
17-2 上課範例:language/tchinese_utf8/mail_template/new_note.tpl
17-3 上課範例:language/tchinese_utf8/mail_template/new_cate_note.tpl
17-4 上課範例:function.php
17-5 上課範例:admin/cate.php
18. 細部權限及自動功能
18-1 上課範例:admin/menu.php
18-2 上課範例:admin/groupperm.php
18-3 上課範例:view.php
18-4 上課範例:index.php
18-5 上課範例:xoops_version.php
18-6 上課範例:include/onInstall.php
18-7 上課範例:include/onUpdate.php
18-8 上課範例:include/onUninstall.php
16-1 上課範例:index.php
\[1011\]XOOPS 2.5 模組開發 ====================== [](http://www.tad0616.net/uploads/tad_book3/file/1011/16.zip) ### 一、 替列表加入分類 1. 我們讓使用者可以點選分類名稱,就列出該分類記事文章。 ``` $sql="select a.* , b.`cate_title` from ".$xoopsDB->prefix("tad_notes")." as a left join ".$xoopsDB->prefix("tad_note_cate")." as b on a.cate_sn=b.cate_sn where a.`note_public`='1' order by a.note_sort"; ``` 3. 多送出二組樣板標籤cate\_sn、cate\_title,樣板也記得修改! ```
<{$page.cate_title}>
``` 5. 列出函數也要多一組參數,並修改其內容: ``` $and_cate_sn=empty($cate_sn)?"":" and a.cate_sn='$cate_sn'"; $sql="select a.*, b.cate_title from ".$xoopsDB->prefix("tad_notes")." as a left join ".$xoopsDB->prefix("tad_note_cate")." as b on a.cate_sn=b.cate_sn where a.`note_public`='1' $and_cate_sn order by a.note_sort"; ``` ### 二、 加入通知的步驟與流程 1. 在xoops\_version.php中設定好通知的「類別」以及「事件」這兩種設定。 2. 修改 include/notification.inc.php這個檔,好讓通知功能可以取得正確的資料。 3. 在模組樣版中加入一行引入「通知」畫面的樣版語法,讓會員可以在模組或區塊裡看到「通知」的設定畫面。 4. 製作通知內容的樣版,也就是要來設計寄給會員的通知內容。 5. 修改程式,在各個需觸發通知的地方加入觸發事件,例如當有新文章發佈時,那麼就觸發一個通知事件,好讓系統去發出通知給會員。 ### 三、 在xoops\_version.php中加入通知「類別」設定(索引從1開始)。 1. $modversion\['hasNotification'\] = 1; 2. 「全局通知」類別(使用者觀看文章列表時可設定的通知項目): - (1) 當有新文章時, 就通知我。 3. 「新文章」的類別(使用者觀看某文章內容時可設定的通知項目): - (1) 當有針對這個項目的新評論張貼時通知我 - (2) 將這個項目加入書籤中(沒有通知) 4. 類別格式為:$modversion\['notification'\]\['category'\]\[1\]\['xxx'\] - (1) \['name'\] = '類別名稱'; //「name」用來設定類別的名稱,名稱可自訂,請用英文。如果要設定成「全局」類別,則請填入「global」。 - (2) \['title'\] = \_標題語系常數; - (3) \['description'\] = \_描述語系常數; - (4) \['subscribe\_from'\] = array('頁面1.php','頁面2.php',...); //用來設定模組中的哪些頁面會出現此通知「類別」,它的值是一個陣列,例如:「global」類別會出現在index.php及view.php中,其值為:array('index.php','view.php')。 - (5) \['item\_name'\] = '唯一編號欄位'; //填入「唯一編號欄位」的名稱,例如流水號sn。只有屬於「global」的類別可以不用設定此項,其餘自訂的都要! - (6) \['allow\_bookmark'\] = 1; //用來設定該類別是否可使用「書籤」功能。使用者可以從使用者選單中的「通知」裡面看到自己設定的書籤。 ### 四、 在xoops\_version.php中加入通知「事件」設定(索引從1開始)。 1. 每一個類別底下都會有至少一個的通知「事件」,格式為:$modversion\['notification'\]\['event'\]\[1\]\['xxx'\] - (1) \['name'\] = '事件名稱'; //設定該通知事件的名稱,用以辨識不同的事件,請用英文來命名之。 - (2) \['category'\] = '所屬類別'; - (3) \['title'\] = '事件標題'; - (4) \['caption'\] = '事件內容'; //會出現在通知設定選單中 - (5) \['description'\] = '事件描述'; - (6) \['mail\_template'\] = '通知信的樣版名稱'; //不需寫入副檔名,需放在「language/語系/mail\_template」目錄中,副檔名為.tpl,如:new\_doc.tpl。 - (7) \['mail\_subject'\] = '郵件主題'; - (8) \['admin\_only'\] = '1'; //設定該事件只有管理者可用 - (9) \['invisible'\] = '0'; //設定該事件是否為隱藏事件 ### 五、 若模組有用到「評論功能」或有使用書籤功能需要再加入以下設定: ``` $modversion['notification']['lookup_file'] = 'include/notification.inc.php'; $modversion['notification']['lookup_func'] = '通知函數名稱'; ``` ### 六、 產生 include/notification.inc.php這個檔 1. 這個檔主要的用途就是依據「通知類別」以及「唯一編號」來擷取寄發通知時所需要的一些訊息,包括「name」和「url」。 2. 主要的處理函數會接收到兩個參數,包括$category(類別名稱)、 $item\_id(唯一編號值) ``` function get_note_notification($category, $item_id){ if ($category=='global') { $item['name'] = ''; $item['url'] = ''; return $item; } global $xoopsDB; if ($category=='cate') { $sql = 'SELECT cate_title FROM ' . $xoopsDB->prefix('tad_note_cate') . ' WHERE cate_sn = '.$item_id; $result = $xoopsDB->query($sql); // TODO: error check $result_array = $xoopsDB->fetchArray($result); $item['name'] = $result_array['cate_title']; $item['url'] = XOOPS_URL . '/modules/tad_note/index.php?cate_sn=' . $item_id; return $item; } } ``` 4. 在樣版中加入一行引入「通知」畫面的樣版語法:<{include file='db:system\_notification\_select.html'}>
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
102
人線上 (
59
人在瀏覽
線上書籍
)
會員: 0
訪客: 102
更多…