2013年11月13日 星期三

給網站內容編輯者/創作者良好的使用環境與經驗

給網站內容編輯者/創作者(下稱為: 編輯用戶)良好的使用環境經驗

這兩天看了一些 slideshare 的簡報, 都是針對提供 Content Creator 良好 user experience (UX) 使用經驗的內容。其中 Braun 的網誌將 Drupal 的編輯畫面與 Gmail 的 mail 撰寫畫面的設計做了比較, 主要是由他的演講影片下所濃縮的。 其中最重要的觀念是不論我們如何以技術工程師的角度來自許在建構網站的分份, 但是當我們建構了一個網站, 我們就已經是設計師了。而設計師本身就是必須負責提供良好的使用介面與環境。


建構了網站, 除了給一般訪客用戶 的一開始吸引人的版面, 瀏覽動線等的設計外,  接下來的就是內容了,  Content is the king!   因此產生內容的網站編輯者, 編輯用戶 或是 content creater就是另一個網站服務的設計重點。

一般而言這些編輯用戶會是我們的註冊使用者, 或是授予編輯權限的 editor, 這是網站設計管理的第二目標客戶。 他們是誰?   就要看網站的主要服務與使用對象,  對於商務網站上會是更新產品的商品管理者, 客務服務代表;  在公司內網 intra-net 下的偕同工作網站, 則就是企業內的辦公室人員。對於空開討論類型的社群網站等, 那就是一般的註冊使用者了。

用戶的接受度是網站成功的要素, 有不斷更新的內容,  才會有持續性的訪客,  有良好的內容創作空間, 介面與動線設計, 才能激發編輯用戶產出更多更好的內容。

而其中關於如何提供給編輯用戶良好介面設計的原則與工具, 整理如下:
 重點一:
提供給這些 Power User 更多的控制能力(權限)  More Control , 這可以透過:
1.  提供方便的工具:  在編輯工具下的: Wysiwyg & 檔案方便上傳 (file upload) 的是已經成為必要的, 所以模組 wysiwyg, ckeditor, imce, imce_wysiwyg, 與 media  等模組就是基本的必備開放的工具。而更進一步提供多個檔案上傳的的 Plupload 模組   也是重要的工 具。

2. 必要時設定使用者可以直接將node 加入到 menu,  來開放在創作內容時, 加入到選單 (add to menu) 的功能, 讓發佈的流程更為順, 而可以在內容類型下, 設定該類型可以限定發佈的選單, 不但可減少選單項目, 也可避免過多的選擇。

3.  提供快速發佈各類媒體, 連結的簡便標籤 (short-code), 如使用 [video]檔案路徑/URL [/video] 來崁入影片;  這在wordpress 的模組發展者是設計的第一要點,  而在 Drupal 上相對的工具是以 Filter (篩選器)的模組方式提供的。
都是方便在編輯時快速完成必要內容連結匯入的工具。

4.  方便設定各種 node 的發佈情境設定:  
  • 針對個別內容在網站內不同的脈絡情境 (context) 中, 可以設定各種情境設定的context_node, 與
  • 提供不同版面設定的範本挑選 (必須配合設計好不同的範本 template tpl.php 檔案的) template-picker, 並提供對這些範本名稱顯示修改的方式來更改名稱, 可對 create 選擇要套用的格式範本。
重點二: 減少編輯者可能碰到的問題與風險, Reducing Risk, 提供讓用戶在建立內容時可能碰到的問題。

1.   設計內容類型時, 在增加欄位時, 對欄位提供輸入的說明,最好包含範例, 方便使用者知道主要的目的, 也可以減少不少資料不一致與錯誤的可能性

2.  自動存檔:   使用模組: autosave, 來避免因為電腦或網路問題而失去辛苦創作的內容, node edit protection 也是避免在編輯時不小心未存檔離開頁面而造成的損失。

3.  預設啟動所有內容類型下的版本控制, 這是 Drupal 預設的功能, 開啟 revision 可以提供恢復的功能, 是系統效能沒有太大的衝擊, 但對於編輯用戶卻有很好的比較與還原的效用。

4.  關掉內容類型下預覽, 來避免混淆,  有些用戶會以為預覽就是存檔了,  而造成悲慘的意外 , 可以使用 view_unpublished 模組來提供儲存後不發佈的預覽效果。

5.  有邏輯性的群組欄位/選單:  在瀏覽與選單上,  提供設定適當存取的設定,  較少的選項代表不同意混淆,

6.  模組 admin_menu_source 可以提供類似 admin_menu 的管理選單, 但可根據不同角色 role 來設定選項的權限

7.  而在群組的選單與欄位上可以使用 grouping 選單與欄位的模組: field_collection

8.  隱藏不必要的功能/選項:  有時許多 node 的 新增/add, 編輯/edit 預設的進階功能並不常用, 但是卻放在版面佔住很大的空間。建議可以放在下拉區內,

9.  而針對"必要"的欄位則設定的為預設展開(如標題, 內容) ,

10.  而縮關非必要/選用項目 (版本控制, 日期, 回應設定) ,
  • 甚至隱藏不太可能會使用的控制項目 (如 作者等)。可以使用以下的模組: 如 simplify, 可隱藏多個項目的 jammer 模組
  • 可考慮針對編輯用戶提供編輯時專用版型,  畢竟在編輯時與瀏覽時的操作流程是不同的,因此可以考慮在外觀>版型設定時, 可以啟用"編輯內容時使用管理版型" 來簡單的提供編輯用戶編輯內容時不同的版型,  Braun 建議使用兩欄式的 rubik 或是 另外安裝 ember responsive 版型,  在這篇文章上有建立7個管理者的選單,涵蓋了 Seven (Drupal 7 安裝時提供的), Rubik, CubeStanley, Shiny, Ember, Adminimal 等。
11.  優化流程: 是另外一個重點,  如:
  • 在儲存送出後隱藏 "儲存/Save" 的按鈕, 可避免重複送出的 hide submit 模組, 主要是讓用戶在儲存送出後, 顯示訊息, 並隱藏送出。
  • 而模組: addanother 則是在儲存後可以繼續編輯下個內容, node_clone 則是可以複製現有的 node 來建立新的 node 都是可以方便大量輸入時使用。
  • 另外為提供更好的選項輸入的方式, 如用 multiselect 模組提供多項目的選擇 (不一定都會使用 按下control的多選)  
  • 而使用 chosen 模組可以提供如 gmail 上收件人找尋貼上的模式來提示輸入使用者, 標籤, 或分類的用語等。
  • 其他如提供使用者登入後直接進入最常用的頁面位置的可用 login_redirect 或是 rules 模組。
 總言之,  一個良好的用戶介面, 是需要用心去經營的, 種種的防呆機制,  方便的小精靈/widget 都是我們設計者可以努力讓用戶說 "這是個好用網站" 的來源! 

2013年10月28日 星期一

Drupal OA2 的發展

之前在 Drupal 嘉義的小聚分享的不同的Drupal 專案管理使用的模組, 其中的 open atrium 第一版 (簡稱 OA1)  是我過去使用來管理自己的專案, 主要是使用 OG 來對不同的專案提供不同的管理環境, 甚至頁面版型; 在對工作與問題單的管理上還算合用, 但是在多對多的權限管理與設定上還不是那麼方便。

而在昨天 10/28 OA2,  Open Atrium 第二版以 D7 為基礎正式發布了, 前幾個月就已經在試用 beta 版, 今天又重新安裝測試。但是新分享對此 Distribution (翻譯?, 暫譯為應用組合)  的試用的想法與系統的架構:

先說結論: 這是有良好權限的管理架構, 非常適合中小企業 (100 辦公室人員) 的內部 intra-net OA (辦公室自動化 Office Automation) 的內部運用的。

 系統的架構上仍然主要是以 OG 為主的設計, 稱為空間 (Spaces), 我用在企業中改稱為 單位/組織, 透過 OG的 架構,  Context  (翻譯 上下文, 但我較喜歡翻譯為 脈絡) , 與 Panel 的整合, 在其個空間下 有非常靈活的管理與應用。以下是整理出的架構

參考來源: 資訊系統架構
  • 人員管理 People
    • Member ( OG空間成員) 存取空間的內容
    • Group (集合不同來源的帳號, 可跨空間的成員, 用來設定跨空間的分享使用, 這是之前 OA1 無法有效處理的部分, 跨組專案等適用)
    • TEAM (團隊,主要是在空間內/底下可以分成的小組, 也是用來為的空間內不同內容分享的控制, 這也是之前OA1 缺少的, 組織內的任務小組的臨時組織適用)
  • 資訊/版面架構 Structure
    • SPACE (空間, 是OG應用的定義, 也是用來放置各類內容, 區塊, 選單...等的基礎架構)
    • SUB-SPACE: 次空間,  在空間, 單位組織下可以加入的次空間, 為 OG Subgroup 的應用, 相關的權限等可以由上層繼承, 可用在單位下的次組織, 如課, 組等常態式的組織
    • SECTION: 區域, 是主要內容放置的區域, 是以 taxonomy 為基礎的運用, 透過此區域的應用, 可以放置不同的內容類型/功能等
  • 權限: Permissions
    • 可設定為: 
    • PUBLIC 公開
    • PRIVATE 私人, 限定為 空間的成員
    • MIXED-MODE: 上層公開, 底下可以依據架構與人員設定權限管理
  • 內容類型:  Content可放在各區間內, 可以有區間內的不同設定 (這也是之前 OA1欠缺的)
    • 文件 DOCUMENT: 以維基wiki 為基礎的內容,用來管理共用,共筆的技術文件,組織規章時適用
    • 事件活動 EVENT:配合行事曆的運作,整合的空間定位的欄位, 會議, 活動等地宣告適用
      討論版:  DISCUSSIONS 議題討論
    • 工作追蹤 WORKTRACKER: 工作分配, 或問題單適用, 上層無專案的架構, 可運用配合(次)空間, 來定義為專案的分組, 配合了Comment Alter 來提供不用進入編輯在提供回應時可修改負責人, 到期日, 狀態, 優先次序, 重要性等的設定 
    整合是此一組合的最大重點:
    1. 檔案與影像的使用權限與區域 section 整合,  而也整合了類似 colorbox 來瀏覽附加影像的功能
    2. 號稱可以由郵件直接回覆回應, 靠的是 mainhandler, 還沒正式測試不知道限制的範疇, 或許在後續再做測試報告
    3. Panel 整合到各內容, 空間, 下可以任意調整
    4. 運用 feature 方式可以自行加入其他模組的功能到 space/og 與 section 中

    之後,我們應該會以此應用組合來開發出新的課程!

2013年10月25日 星期五

開始花些時間將自己加入 Drupal 的翻譯團隊!

其實一直運用 Drupal 線上介面翻譯的模組 l10n_client 在做直接的介面翻譯,
  但是一直沒有將結果傳回 localize.drupal.org, 所以花了 些時間, 讀一下相關的文件 https://localize.drupal.org/node/2024,  之後依照著做


  1. 註冊, 啟動, 並登入 drupal.org  https://drupal.org/user?destination=home  
  2. 到 drupal 翻譯的網站  https://localize.drupal.org/, 選擇並加入該介面的翻譯團隊, 在此當然是 正體中文 https://localize.drupal.org/translate/languages/zh-hant
  3. 在自己安裝的 Drupal 系統內, 安裝, 並啟動 線上介面翻譯的模組 l10n_client , 與 l10n_update, 來確保您的網誌已經有最新的翻譯版本,免得重複了別人已經做好的部分。
  4. 到 2. 模組下的設定

  5.   以 user/1最高權限登入自己的網站後,  到該帳戶下編輯帳戶的頁面:  /user/1/edit, 在下方下方就有 輸入與建立自己自動上傳更新的 API KEY 的連結 
  6. 因為在步驟 1. 已經登入, 所以 drupal.org 就會自動給您一個 KEY 的序號, 貼到 4. 的地方就可以了 (所以一定要註冊, 並加入翻譯的團隊, 才會傳回到正確的介面小組)
 接下來應該後續在此網站所做的翻譯都會更新到 localize.drupal.org

希望下次很快地可以看到您的帳號在此出現!

2013年10月24日 星期四

開始筆耕!! 分享開放源碼使用的心得與紀錄

許多教學, 業界合作的規劃, 問題處理紀錄過去都散落在各處, 於是在此重新拾起, 在此統一發布與分享。

目前較常用的開放源碼的系統有:

  1. 商業智慧的 Pentaho, Palo
  2. CMS 的 Drupal
  3. LMS 的 Moodle
或許會陸陸續續將過去的演講等紀錄逐一的在此追溯式的發布!!