2010年4月9日

利用 Joomla 做資產管理 (Asset Management) -3 : 安裝 Fabrik 擴充套件及其使用方法

在上一篇:利用 Joomla 做資產管理 (Asset Management) -1 : 安裝過程紀要中曾經提到,這次要架站是為了記錄機器設備的基本資料,把以往用 excel 記錄的資料 web 化、集中化,只維護一個版本,可從任何有連網的裝置上存取,同時必須滿足以下六個需求:
  1. 免費!免費!免費!-> 找 Freeware / Open Source Software
  2. 簡單易用的web介面,支援 CRUD operation (增刪改查)
  3. 批次匯入現有資料
  4. 以選單的方式輸入資料
  5. 條件式的查詢、篩選資料
  6. 保留資料異動的 log
其中在權限控管上,要做到以下要求:
  • 利用 Joomla! 內建的角色:管理者/一般使用者 來實作權限控管
  • 管理者:可讀寫所有欄位
  • 一般使用者(有登入):
    • 大部分欄位可讀,不可修改
    • 有某些欄位不可讀(看不見),當然不可修改
    • 在修改的 view 中 (link to detail) 都是唯讀
  • 一般使用者(沒登入):什麼都看不到
安裝好 Joomla 之後,接下來就是要找到合用的套件來完成以上的需求啦!以下補充瀏覽 Joomla 擴充套件的注意事項,以及 Fabrik 套件的下載點。
Joomla 豐富的擴充套件 (extension) 可以在 Joomla Extensions 找到 (全都是英文的),共有 4276 個 extension,分為數十個大類別,其中在 Contacts & Feedback 中有一個 Forms 的類別,在瀏覽的時候要注意,Type 為 Commercial 的是商業軟體,要錢低;Type 為 Non-Commercial 的才是我們要找的免費擴充套件!
Joomla_extensions_types_thumb[1]
點進去這次要使用的套件:Fabrik – as joomla app builder 以後,畫面如下:
Joomla_Fabrik_IntroPage_thumb[1]
Fabrik 這個套件的官網比較複雜些,包括很多 templates、nodules 和 plug-ins,套件主程式反而放在下載頁面的最下面:
Joomla_Fabrik_DownloadPage_thumb[1]
下載好 Fabrik 擴充套件主程式後,安裝方式請參考:利用 Joomla 做資產管理 (Asset Management) -2 : 安裝過程紀要 (Linux)
接下來要介紹 Fabrik 擴充套件的設定。首先登入管理員後台,進入 Fabrik 套件的管理介面:

包括 Forms、Tables、Groups、Elements 都是需要設定的:

步驟一:新增一個 Fabrik Form
在 Forms 管理介面中,按最右邊的「新增」以新增一個 Form:
Fabrik_NewForm
Form 即為使用者在網頁中輸入資料的表單,表單中的每一項資料稱為一個 Element。設定好 Table name 後,Fabrik 會在 Joomla DB 中建立一個同名的 table,同時也會在 Groups 中新增一個同名的 Group,屬於此 Group 的 Elements (欄位)就會出現在接受使用者輸入資料的表單。
image
步驟二:新增一個 Fabrik Table
在 Table 管理介面中,按最右邊的「新增」以新增一個 Table:
Fabrik_NewTable
此時在「Data」的設定中的「Link to table」,要選擇剛剛在新增 Form 時所設定的 Table name:
Fabrik_NewTable_SelectTable
Table 用來呈現儲存於DB中的資料,並提供Advanced search功能,在過濾資料時非常方便。以下是此 Table 的存取權限設定,這裡使用的都是 Joomla 內建的角色 (role),「註冊會員」是指正確登入 Joomla 網站的人,而「管理者」則是擁有 Joomla 網站管理者權限的人。
以下圖的設定為例,必須要先登入網站才能看到 DB 中的資料,而只有管理者有權限可以新增/修改資料。
image
在過濾設定部分,建議採用以下設定:
Fabrik_NewTable_FilterSettings
進階搜尋的畫面如下,操作上很直覺:
image
Search all 的功能則是可以搜尋此 Table 內所有欄位的所有內容 (就是 LIKE 的效果啦):
Fabrik_NewTable_SearchAll
Table 還可進一步設定匯入/匯出資料的權限:
image
步驟三:開始新增 Form 中用來蒐集使用者輸入資料的欄位 - Element
以下的設定都與權限控管有關,要特別注意。以下先以 Element type = text area 為例:
image
以一般使用者身分登入是看不到 VIP 欄位的:
Fabrik_Table_UserNoVIP
一般使用者也無法修改 DB 中的資料:
 Fabrik_Table_User_CANNOT_Update
若以管理者身分登入,則可看到 VIP 欄位:
Fabrik_Table_AdminHasVIP
管理者也可以編輯 VIP 欄位:
Fabrik_Table_Admin_CAN_Update
步驟四:設定每個 Element 的 Table settings
基本上這些設定值都很好了解,若不確定作用為何,可以隨時從管理介面變更設定值,嘗試一下就知道每個設定的意義了,如下圖:
image
步驟五:若需要驗證欄位內容,則進行 Validations 設定(以驗證空白為例)
image
若使用者沒有輸入資料,會看到以下錯誤訊息,非常明確:
Fabrik_ValidationError
Fabrik 內建了很多的 validation rules,一看就知道怎麼用:
Fabrik_Element_Validation
步驟六:根據需要新增各種不同類型的輸入欄位
Field:也就是文字方塊 (textbox)
drop down:下拉式選單
image
text area:文字區域 (適合輸入大量文字)
Fabrik_text area
最後製作出來的 Form 大概就長得像下面這樣:
Fabrik_FormDemo
而呈現使用者在以上的 Form 中輸入的資料的 Table,大概長得像下面這樣:
Fabrik_TableDemo
以上就是 Fabrik 擴充套件的用法介紹,基本上都很簡單,所有的設定都存在 DB,想要深入了解網站運作方式的話可以打開 phpMyAdmin 來查看 DB 中的資料,網站原始碼 (php) 也可以好好研讀 (這就是 open source 的好處呀!)。

下一篇再來談談我對 Joomla & Fabrik 套件做的一些客製化,以及目前遇到的問題和解法。

本系列其他文章:

2 則留言:

Jz 提到...

你好~~~請問Community Builder fabrik plugin 。這個套件有研究過嗎?!?! 我try 了很久,在community builder 下plugin這個套件後,1.首先我的CB個人資料顯示上方顯示event handler not recognized (但是Tab ,依然有fabrik) 2.按照他官網附件上在parameter上打上{fabrik view=table id=1} 完全不會run。 困擾我很久><..

Unknown 提到...

Hi Jz,

我沒有用過 Community Builder fabrik plugin 說 ... 如果有空的話會再試試看 ^^; 我之前沒有用過 Joomla,目前除了用到 Fabrik 套件,還有做了一些小小的修改以外,其他的功能都不是很熟~

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D