1.
XOOPS的開發環境
一、 關於本課程
- 講義:http://www.tad0616.net/modules/tad_book3/index.php?tbsn=37
- 請申請 Dropbox,一旦發布講義,您的電腦會馬上收到。
- 本課程是系列中的第四個學程,屬進階部份,因此,有任何聽不懂的:拜託您問!
- 上課歡迎卯起來走動,互相觀摩交流,盡量別保持安靜。飲食部份請至走廊食用。
- 上課時間為週六 9:00~12:00 及 13:30~16:30,共計九次。
- 上課歡迎拍照、錄音、錄影,能和同學分享更好。
- 座位基本上沒有強制性,但也不建議每次都換來換去。
- 記得認識一下助教!開發經驗豐富的郭俊良與李佳玲。
二、 這學期會學到...
- XOOPS:要寫XOOPS模組,當然要熟悉XOOPS的操作方式
- PHP:XOOPS是用PHP開發的,所以要寫好模組,PHP能力不可或缺。
- MySQL:XOOPS資料一律存至資料庫中,也就是SQL資料庫語言。
- HTML5:用來撰寫模組外觀架構、表單...等。
- CSS3:用來美化模組外觀
- BootStrap:快速導入自適應框架,讓您的系統在手機跑看起來也一樣美觀。本學期同時會了解BootStrap2以及BootStrap3
- Smarty:XOOPS內建樣板引擎,用來製作模組樣板。
三、 開發工具:以sublime text為主
- 只要是自己熟悉的純文字編輯工具都可以。首推 sublime text,其次為 NotePad++,基本上沒有限制,您用得習慣即可。
- 可用 Ctrl+/ 或 Ctrl+Shift+/ 來產生註解符號
- 用tab鍵縮排,Shift+tab反縮排
- 更多進階用法:http://docs.emmet.io/abbreviations/syntax/
四、 開發環境:XOOPS輕鬆架的安裝與設定
- 需有XOOPS網站,理所當然的會有網頁伺服器(如:Apache)、資料庫(如:MySQL或MariaDB)、PHP這些基本環境。
- 申請學生練習主機空間(http://163.26.52.243)
- XOOPS:本學期以 XOOPS 2.5.7為主要開發環境。請先裝好最新的 tadtools 模組。
- 一般開發環境可在windows底下開發,開發完後,再上傳到Linux主機即可。
- 請至 http://120.115.2.90 下載所需的XOOPS輕鬆架版本,並安裝之。
- windows版的內含UniformServer伺服器,解壓後,執行 start.bat 即可啟動網站。
- 相關安裝請參考線上手冊或上課講解示範,安裝完請將所有內建模組更新到最新版。
五、 幾個您要知道的位置(假設裝在D:)
- 網頁目錄的位置:D:\my_xoops\www
- 資料庫的存放位置:D:\my_xoops\core\mysql\data
- PHP 設定檔 php.ini 的位置:D:\my_xoops\core\php54\php_production.ini
- MySQL設定檔 my.ini 的位置:D:\my_xoops\core\mysql\my.ini
- 網站連結位置:http://電腦IP或http://localhost或http://127.0.0.1
六、 下載XOOPS250ModuleConversionFiles
- OOPS250ModuleConversionFiles是官方提供的基本模組架構,但下載的版本已經有先經過優化,並加入bootstrap各版本支援,所以,會建議用此版(20150321)來開發比較容易上手。
- 一個XOOPS模組就是一個目錄,此目錄會放在modules底下。
- 底下是新的(2.5之後的)XOOPS的模組目錄建議結構(PHP > 5.2):
admin
blocks
class
css
docs
images
|--- admin
|--- icons
include
language
|--- english
|--- help
sql
templates
|--- blocks
test |
模組後台目錄
區塊檔案目錄
額外的物件庫或函式庫目錄
模組樣式目錄
說明文件目錄
圖檔目錄
|--- 後台界面用到的圖檔
|--- 其他圖檔
引入檔目錄:如搜尋、模組自動檔
語系目錄
|--- 英語語系(Big5中文為tchinese、UTF-8為tchinese_utf8)
|--- 說明文件語系
資料庫結構目錄:裡面會有.sql檔
模組樣板目錄:用來放置模組頁面的樣板檔,均為.html檔
|--- 區塊樣板檔:一樣為.html檔
測試檔目錄:放置Selenium 測試檔 |
- 粗體底線的目錄(如果有用到該功能的話)則是一定要有的,而且不能亂改目錄名稱!
七、 認識 xoops_version.php
- XOOPS的模組目錄下一定有xoops_version.php設定檔,否則就不是標準模組。
- 請依照設定檔順序,產生相對檔案出來。
- $modversion['version'] 版本號寫法:1.0、2.3...均可,但1.0.1需寫成 1.01。
- $modversion['module_status']模組狀態可以是Alpha、Beta、RC、Release
- $modversion['adminmenu']後台選單的圖示為32x32,可從這裡下載:
- 利用 http://apps.pixlr.com/editor/ 可線上編輯按鈕。文件→打開圖片→上傳按鈕底圖。圖層→打開圖像為圖層→上傳小圖示。利用文字工具輸入名稱,新細明體12級
八、 xoops_version.php 中的語系
- xoops_version.php 若有用到中文的部份,建議做成語系檔。
- 若只是自用,那直接寫中文亦可(字串一定要加上引號),但偏好設定,一定要用語系。
- xoops_version.php 的語系檔一律位於 language/tchinese_utf8/modinfo.php 中(不可自訂檔案或改檔名)
- 語系設定方法: define("_MI_語系名稱" , "對應的實際中文");
- 「_MI_語系名稱」是PHP常數,_MI 則是XOOPS建議的常數開頭,一般而言建議用底線開頭,並全部大寫,以容易識別(但其實無強制性)。
- 一般 _MI 後面會加上模組名稱,以避免常數衝突,例如: _MI_MYMOD_XXX
九、 建構模組所需資料表(mysql.sql檔)
- 請利用站長工具箱中的資料庫工具(http://網址/modules/tad_adm/pma.php)
- 選好資料庫,點選下方「建立資料表」按鈕,建構模組所需的資料表結構。
- 接著,利用左邊匯出工具來匯出成sql檔,輸出選「儲存」,格式選「SQL」即可。
- 檔案請存至 sql 資料夾底下,並修改 xoops_version.php 的 $modversion['sqlfile']['mysql'] 設定值。
十、 本學期的模組開發目標
- 將以上學期的新聞模組為基礎,將之延伸,成為電子刊物模組。
- 電子刊物可分期(所以需要一個資料表紀錄期刊資訊,第幾期?出版日、主題、封面、主編...等)
- 特定群組可投稿(利用內建的權限資料表達成)
- 可指定由誰來審核(利用偏好設定來簡單達成即可,或者亦可紀錄至期刊資訊表)
- 可分單元(即原來的分類表)
- 可編輯圖文(即原來的文章內容表)
- 「期刊資訊表」ebook
列 |
類型 |
註解 |
ebook_sn |
smallint(5) unsigned 自動遞增 |
刊物編號 |
ebook_title |
varchar(255) |
刊物標題 |
ebook_post_date |
date |
投稿截止日 |
ebook_publish_date |
date |
發行日 |
ebook_editor |
varchar(255) |
編輯群 |
- 「單元分類表」ebook_cate
列 |
類型 |
註解 |
cate_sn |
smallint(5) unsigned 自動遞增 |
單元編號 |
cate_title |
varchar(255) |
單元名稱 |
ebook_sn |
smallint(5) unsigned |
刊物編號 |
- 「文章內容表」ebook_content
列 |
類型 |
註解 |
page_sn |
smallint(5) unsigned 自動遞增 |
文章編號 |
cate_sn |
smallint(5) unsigned |
單元編號 |
page_title |
varchar(255) |
文章標題 |
page_content |
longtext |
文章內容 |
uid |
smallint(5) unsigned |
作者編號 |
author |
varchar(255) |
作者姓名 |
post_time |
datetime |
投稿時間 |
status |
varchar(255) |
文章狀態 |
counter |
smallint(5) unsigned |
計數器 |
note |
text |
備註 |