本文將介紹SharePoint發布網頁的一種設計思路。
在最近的一個項目裡,我們遇到這樣一個需求。我們需要控制和自動化在一個面向互連網的SharePoint網站中就業崗位相關資訊的發布體驗。要將這一過程自動化的目的是為了確保統一的格式,並控制導航的設計,以及方便使用預先定義好格式的WebPart模板。
為此,我們開始設計用一個SharePoint列表來捕捉和組織那些建立網站中每個Web頁面時所需的內容。該列表包括多個單行文本、富文字欄位,以及用於從庫中選擇合適的自訂WebPart所需的中繼資料欄位。一旦清單項目被儲存,Visual Studio 2008工作流程將自動完成其餘部分的工作。
Visual Studio工作流程動作的簡要內容如下:
1. 檢查網頁是否重名。
2. 重名的網頁會被簽出,並刪除其上的所有WebPart。
3. 建立頁面,使用某個自訂頁面配置並為其命名。
4. 構建好頁面的頁首資訊並插入到頁面中的一個Web組件裡。
5. 由使用者填寫的內容通過Visual Studio模板插入到頁面中。
6. 基於清單項目的中繼資料自動選擇預先格式化好的WebPart模板和並定製部分屬性。
7.將建立/編輯頁面發布為主要版本。
8.將導航中連結指向正確的檔案夾並設定為隱藏。
工作流程第一步是檢查頁面庫中現有的網頁,看看是否有相同的名稱。如果發現,該網頁會被簽出,頁面上的所有Web組件都會被刪除。 如果沒有找到同名的,工作流程會選擇一個“就業崗位”對應的自訂布局,並建立一個頁,頁面的名稱為工作編號加職位。
下一步,通過把工作的職位/代碼和預先格式化並插入到內容編輯器WebPart的HTML部分串連起來,構建出頁首。 該WebPart會順序插入到頁首地區。其中的HTML部分包含一個動態產生的按鈕,綁定了一個更新的查詢字串,可以自動傳遞職位和數量資訊到職位申請表單。主體內容通過使用內建的富文字欄位,由使用者填寫完成。此內容使用在Visual Studio 2008工作流程中規定的模板來布局,然後會插入到另一個內容編輯器WebPart中,最後添加到其對應的頁面地區中。
點擊查看大圖
通過為清單項目指定中繼資料,工作流程可以從WebPart庫中的48個預先格式化好的自訂WebPart模板中挑選2個,將其插入到頁面右側地區。做完這一步後,工作流程的檢查工作就完成了,接下來該頁面會自動遷入並發布為主要版本。
最後,SharePoint網站是用非常具體的導航要求,包括為所有的頁面在頂部導航條中高亮顯示標籤,或者據頁面的類型控制左側導航的顯示和隱藏。當使用者導航到一個招聘廣告頁上時,在頂部導航中的“職業”和左側導航中的“當前開放”將以高亮的方式反白,但該網頁本身的連結不應該顯示在當前的導航中。為瞭解決這個問題,工作流程會選擇左側導航中新的一頁,並將其移動到當前開放欄目標題下。然後,它會修改新的一頁的狀態為隱藏。
此外,當網頁發行者從就業崗位列表中將清單項目的狀態修改為非活動時,工作流程會自動刪除相應的招聘頁面。在其他地方,該網站使用資料檢視按照功能需求驅動和對應清單項目的中繼資料來控制職位資訊的上層展現。
通過Visual Studio 2008自動處理SharePoint頁面的發布可以大大減少發布網頁所需的時間,並改進設計的一致性,因為使用者再也不需要手動選擇內容編輯器WebPart並建立內容了。
參考資料
Publishing
SharePoint Web Pages Using Visual Studio Workflows