在 IBM Lotus Web Content Management 6.1 中定製客戶化內容錄入頁面
簡介: 本文主要介紹了在 IBM Lotus Web Content Management 6.1.x 中所提供的針對內容錄入人員的定製功能,利用該功能可以方便地建立和設定更為簡潔的內容錄入頁面。
IBM 內容管理器 (WCM) 是用來建立和管理髮佈於網際網路,企業內部網際網路以及企業入口網站上的網頁內容的管理系統。它提供了一系列的工具來管理網站內容的建立, 審批以及最終的釋出。這一系列工具所組成的複雜而又精密的內容管理系統使網站的建設不再僅僅是專業技術人員的領域,使非技術人員也能參予其中。 內容錄入是 IBM 內容管理器所提供最基本的功能,但是管理器本身所提供的預設的內容錄入頁面的設計是相對複雜的,在實際工作使用者更希望能使用自己定製的內容錄入頁面來取代和簡化這種預設的設計。 這篇文件主要描述如何在 WCM 中建立和設定客戶化的內容錄入頁面。 文件面向的讀者群應具備一定的 WCM 使用經驗,對 WCM 應該已經有了最基本的瞭解,並且能在 WCM 中建立最基本的站點結構。 在 WCM 中,使用者可以使用下面的方法來定製和簡化 WCM 的內容錄入介面: WCM 內容編寫工具為使用者提供了不同的檢視來執行不同的任務。這些檢視包括“我的項列表”、“內容”、“站點區域”、“類別”、“元件”、“編寫模板”、“演示模板”、“工作流”以及“所有項”。 使用者在 WCM 內容編寫頁面可以訪問哪些檢視的許可權是由在 WCM 內容庫對各類條目的許可權級別所決定的。系統管理員可以只分配給內容錄入人員對內容檢視有編輯許可權,對其他的不希望出現在內容編寫頁面的檢視則不要分配任何許可權,這樣使用者在進入編寫頁面的時候系統會將其他沒有許可權的檢視全部隱藏,使使用者頁面更簡潔。 內容檢視的角色可以在 WebSphere 入口網站管理頁面的入口網站內容管理處分配和定義,只有入口網站的系統管理員才能編輯和修改角色定義。 要使使用者能夠訪問 WCM 內容編寫頁面首先必須分配對內容庫的可視許可權。 完成對內容庫的授權後,使用者預設對所有檢視有讀的許可權,如果只允許使用者看到內容檢視,我們可以取消其他檢視的讀許可權。 通過以上操作,使用者擁有了內容檢視的只讀許可權,下面我們可以繼續進行對內容檢視的編輯授權。 完成上面所做設定後,內容作者就可以訪問 WCM 的內容編寫頁面並且這能看到指定的內容檢視以及“我的項列表”和“所有項”這兩個公共檢視。 如圖 1 所示
圖 1. 使用者內容檢視
在 WCM 6.1.x 中,使用者還可以配置 WCM 使用自己的客戶化啟動頁面來替換掉預設的使用者介面。
在定製啟動頁面中將應用 WCM 的遠端操作介面來呼叫在 WCM 內容編寫介面中的不同的檢視和操作。
WCM 的遠端操作通過在 URL 中呼叫引數“?wcmAuthoringAction=action”來觸發,action 的值如下:
new
Action 為 new 時可以在開啟一個新建條目頁面,必須在“type”引數中指定要新建條目的型別。
如:?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content
“type”可以用下列值 :
com.ibm.workplace.wcm.api.WCM_AuthoringTemplate
com.ibm.workplace.wcm.api.WCM_Category
com.ibm.workplace.wcm.api.WCM_Content
com.ibm.workplace.wcm.api.WCM_FileComponent
com.ibm.workplace.wcm.api.WCM_HTMLComponent
com.ibm.workplace.wcm.api.WCM_ImageComponent
com.ibm.workplace.wcm.api.WCM_NumericComponent
com.ibm.workplace.wcm.api.WCM_PresentationTemplate
com.ibm.workplace.wcm.api.WCM_RichTextComponent
com.ibm.workplace.wcm.api.WCM_Site
com.ibm.workplace.wcm.api.WCM_SiteArea
com.ibm.workplace.wcm.api.WCM_Taxonomy
com.ibm.workplace.wcm.api.WCM_TextComponent
com.ibm.workplace.wcm.api.WCM_Workflow
com.ibm.workplace.wcm.api.WCM_WorkflowStage
當建立一個新的內容條目時,可以通過新增引數“atid”來定義要建立內容所用的編輯模板,其中 atid 的值是編輯模板的編號,可以通過 WCM 公共 API 取得。
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&atid=com.ibm.workplace.wcm.api.WCM_AuthoringTemplate/ID
當建立一個新的站點區域,內容以及類別條目時,可以通過新增引數“pid”來定義要建立內容的父節點,其中 pid 的值是父節點的編號,可以通過 WCM 公共 API 取得。
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&pid=com.ibm.workplace.wcm.api.WCM_SiteArea/ID
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_SiteArea&pid= com.ibm.workplace.wcm.api.WCM_Site/ID
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Category&pid=com.ibm.workplace.wcm.api.WCM_Taxonomy/ID
delete
Action 為 delete 時用來刪除一個條目,必須在“docid”引數中指定要刪除條目的編號。這個編號可以通過 WCM 的公共 API 取得。
如:?wcmAuthoringAction=delete&docid=com.ibm.workplace.wcm.api.WCM_Content/ID1
刪除條目的時,下面的引數可以用來指定刪除的是一個草稿條目
?isdraft=true
edit
Action 為 edit 時可以以編輯模式開啟一個條目,必須在“docid”引數中指定要編輯的條目的編號。這個編號可以通過 WCM 的公共 API 取得。
如:?wcmAuthoringAction=edit&docid=com.ibm.workplace.wcm.api.WCM_Content/ID1
編輯條目的時,下面的引數可以用來指定編輯的是一個草稿條目
?isdraft=true
read
Action 為 read 時可以以只讀模式開啟一個條目,必須在“docid”引數中指定要讀入的條目的編號。這個編號可以通過 WCM 的公共 API 取得。
如:?wcmAuthoringAction=read&docid=com.ibm.workplace.wcm.api.WCM_Content/ID1
讀入條目的時,下面的引數可以用來指定只讀的是一個草稿條目
?isdraft=true
openmainview
Action 為 openmainview 時可以在編寫頁面開啟一個可視檢視,必須在“view”引數中指定要開啟的檢視。
如:?wcmAuthoringAction=openmainview&view=contentbysitearea
“view”可以用下列值 :
contentbysitearea
contentbytitle
myrecent
mydrraft
mypendingapproval
mypublished
myexpired
mydeleted
alldraftitems
allexpireditems
allpublisheditems
alldeleteditems
componentsbytype
move
Action 為 move 時用來移動一個站點區域或者內容。
如:?wcmAuthoringAction=move&docid=com.ibm.workplace.wcm.api.WCM_Content/ID1
移動的方向“1”表示向上,“-1”表示向下。如將一條內容向上移動一個位置,
?wcmAuthoringAction=move&docid=com.ibm.workplace.wcm.api.WCM_Content/ID1&pid=com.ibm.workplace.wcm.api.WCM_SiteArea/ID&moveDirection=1
link
Action 為 link 時用來將內容連結到一個站點區域。
如:?wcmAuthoringAction=link&docid=com.ibm.workplace.wcm.api.WCM_Content/ID1&pid=com.ibm.workplace.wcm.api.WCM_SiteArea/ID2
Copy
Action 為 copy 時用來複制一個條目。
如複製內容到一個新的站點區域下:
?wcmAuthoringAction=copy&docid=com.ibm.workplace.wcm.api.WCM_Content/ID&pid=com.ibm.workplace.wcm.api.WCM_SiteArea/ID2
複製操作還可以使用下面的引數,
?copyAsDraft=true
重新啟動複製內容的工作流,使複製後內容狀態為草稿。
?wid=workflowname
重新定義複製內容的工作流,使複製後內容使用新的工作流。
?position=start
定位複製後內容在父節點的位置,預設狀態下為 last。
approve
Action 為 approve 時用來審批通過一個工作流條目,必須在“docid”引數中指定要審批條目的編號。
如:?wcmAuthoringAction=approve&docid=com.ibm.workplace.wcm.api.WCM_Content/ID
審批條目的時,下面的引數可以用來指定審批的是一個草稿條目
?isdraft=true
decline
Action 為 decline 時用來拒回一個工作流條目,必須在“docid”引數中指定要拒回條目的編號
如:?wcmAuthoringAction=decline&docid=com.ibm.workplace.wcm.api.WCM_Content/ID
viewversions
Action 為 viewversions 時用來開啟條目的版本檢視,必須在“docid”引數中指定條目的編號
如:?wcmAuthoringAction=viewversions&docid=com.ibm.workplace.wcm.api.WCM_Content/ID
viewhistory
Action 為 viewhistory 時用來開啟條目的歷史檢視,必須在“docid”引數中指定條目的編號
如:?wcmAuthoringAction=viewhistory&docid=com.ibm.workplace.wcm.api.WCM_Content/ID
Populating fields when creating or editing content
當使用 "new"或者 "edit" 引數修改內容條目時,可以在 URL 中定義不同內容域的值 .
如使用下面的 URL 建立一個新的內容,命名為 "newcontent"
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&wcmfield.content.name=newcontent
下面是在建立和修改內容時可使用的引數列表:
&wcmfield.content.name=
&wcmfield.content.title=
&wcmfield.content.description=
&wcmfield.content.authors=
&wcmfield.content.owners=
&wcmfield.content.publishDate=
&wcmfield.content.expiryDate=
&wcmfield.content.generalDateOne=
&wcmfield.content.generalDateTwo=
&wcmfield.content.workflow= (This can only be used when creating content.)
&wcmfield.content.categories=
&wcmfield.content.keywords=
&wcmfield.element.[elementname]= (You replace [elementname] with the name of the element you are populating.)
注意 : 引數 element 只能在下面型別的的內容元素中使用 :Text ,Html ,Rich text ,Option Selection ,User Selection ,Date and time ,Number ,JSP ,Link ,Component Reference
針對同一內容域可以定義多個值:
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&wcmfield.content.keywords=keyword1&wcmfield.content.keywords=keyword2
定義使用者型別的內容域時,必須使用下面格式:
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&wcmfield.content.authors=uid=usera
定義日期型別的內容域時,必須使用 US English格式。並且或者輸入日期和時間,或者只有日期輸入,只有日期輸入的情況下,預設時間為 12:00:00 AM,而且使用的時區是伺服器所定義的時區:
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&wcmfield.content.generalDateOne=Feb 14, 2008 12:53:03 PM
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&wcmfield.content.generalDateOne=Feb 14, 2008
定義 JSP 元素時,需要指定 JSP 檔案所在路徑:
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content&wcmfield.element.jspelementname=/wps/wcm/jsp/html/example.jsp
定義關聯元件元素,需要指定要關聯的元件:
&wcmfield.element.mycompref.type=com.aptrix.pluto.cmpnt.NavigatorCmpnt&wcmfield.element.mycompref.id=e4bdf10042d0769698ccbeb0e25cc973
定義選擇元件元素,需要指定待選擇的每一個選項:
&wcmfield.element.[elementname]=AA&wcmfield.element.[elementname]=BB
定義使用者選擇元件,需要指定待選擇的每一個使用者:
&wcmfield.element.[elementname]=uid=wpsadmin,o=default organization&wcmfield.element.[elementname]=uid=wpsadmin2,o=default organization
定義連結元件元素,需要定義的引數如下:
新增一個連結到內容 :
&wcmfield.element.[elementname].type=content&wcmfield.element.[elementname].id=contentID
新增連結到連結元件 :
&wcmfield.element.[elementname].type=link&wcmfield.element.[elementname].id=linkcomponentID
新增連結到圖片或者檔案資源元件 :
&wcmfield.element.[elementname].type=resource&wcmfield.element.[elementname].id=componentID
新增連結到外部 URL:
&wcmfield.element.[elementname].type=external&wcmfield.element.[elementname].externalReference=myurl
指定連結文字使用內容名字還是自定義文字 :
&wcmfield.element.[elementname].useReferenceLinkText=true
指定連結顯示為圖片 :
&wcmfield.element.[elementname].linkImage=imagecomponentID
指定連結顯示的文字內容 :
&wcmfield.element.[elementname].linkText=text
指定連結的描述資訊 :
&wcmfield.element.[elementname].linkDescription=text
指定連結的目標視窗 :
&wcmfield.element.[elementname].linkTarget=
_blank
_parent
_self
_top
targetname
Save
autoSave
使用此操作儲存容器,後臺執行,沒有直觀的檢視,如:
&wcmfield.autosave=true
saveValidate
這個引數決定是否顯示 autosave 執行中所產生的提醒和錯誤資訊,如果設定為“true”,顯示提醒和錯誤資訊,否則不顯示,預設值為 true。
&wcmfield.saveValidate=false
Adding comments to the item history
在 URL 中使用 &comment=comment 在指定條目的歷史中備註資訊。
http://
一個定製啟動頁面可以是一個 JSP 檔案也可以是 HTML 檔案。它必須被放置在 WCM 編寫頁面應用程式的 WAR 目錄下: portal_server_root/installedApps/WCM_Authoring_UI_PA_xxxxxxx.ear/PA_xxxxxxx.war/, xxxxxxx 是應用程式安裝時生成的的唯一索引編號。
下面是一個“建立和檢視網頁內容”的定製啟動頁面的程式碼示例:
這是一個簡單的應用遠端操作建立並檢視內容的定製啟動頁面,使用者可以將程式碼加入一個 JSP 或者 HTML 檔案。
|
建立好上面的定製啟動頁面後,使用者就可以配置自己的編寫頁面使用建立好的定製啟動頁面來取代預設的編號介面。
如何配置編寫頁面使用定製啟動頁面:
- 以系統管理員的帳戶登陸入口網站服務期,登入後點選導航條進入頁面 Web 內容> Web 內容管理> Web 內容;
- 點選 “配置”;
- 展開“使用者介面選項”區域,如圖 2:
圖 2. 使用者介面配置選項
- 為“選擇顯示標籤”選項選擇值“啟動頁面”;
- 輸入啟動頁面標籤的名稱;
- 輸入定製啟動頁面所在路徑;
- 點選 “確定”保持設定並返回編寫頁面;
- 定製啟動頁面將替換掉預設的使用者介面,如圖 3:
圖 3. 使用者定製啟動介面
在 WCM 中,編寫模板決定一個內容表單的佈局以及設計,決定哪些欄位,哪些元素元件可以出現在內容表單並且可以為元件和域定義預設值。
當建立編寫模板時,使用者可以為將來以這個模板為基礎建立的內容定義各個欄位和元素元件的預設值。正確定義的預設值可以使內容的建立者更容易,更有效的建立新的內容,簡化內容建立流程。
在 6.1.x,WCM 在編寫模板中提供了下面的功能來簡化內容建立表單的佈局。
內容表單佈局屬性選項:
使用者可以通過定義“內容表單佈局”屬性選項來更改內容表單的頁面佈局,根據使用者所定義的表單佈局選項,內容建立表單可以以不同的風格來顯示各個區域以及元件。
共有一下四種佈局選擇:
- 可摺疊部分:縱向組織表單上的每一部分,並能讓內容作者根據需要展開和摺疊表單部分。系統預設選擇該選項。
- 標註部分:縱向組織內容表單上的每一部分,並且用一簡單的標註來分隔表單部分。
- 帶標籤:橫向組織表單上的每一部分,並用類似於標籤的連結提供對不同部分的訪問。
- 平面:縱向排列表單上的所有元素,不按部分來組織元素,沒有任何分割符來分隔不同的區域。
隱藏欄位:
除了為內容建立表單選擇不同的佈局來組織頁面外,使用者可以通過應用“隱藏欄位”這個屬性來限制頁面欄位的顯示,從而為內容作者簡化內容建立頁面。在編寫模板被標為隱藏的欄位在內容建立表單將不會顯示。
在編輯模板中,使用者還可以為內容作者定製幫助文字。
- 為整個內容表單定製幫助文字:使用者可以為內容表單整體定義一個幫助文字,例如可以用這個幫助文字來描述建立這個表單的目的,或者解釋要建立的表單對整個站點的貢獻以及影響。這個內容表單幫助文字在編寫模板的“內容表單屬性”部分定義。
- 為某個特定的元素元件定義幫助文字:使用者可以為每一個新增的元素元件定義自己特定的幫助文字。如可以定義一個文字元素元件的輸入規則,或者建立這個元素元件的目的等。這個幫助文字在每個元素元件各自所對應的“屬性”標籤頁面定義。
預設情況下,內容作者在儲存內容時,所有該使用者有讀許可權的站點區域都會以樹形結構顯示在站點選擇頁面。當使用者可以讀的站點區域比較多時,將會給站點區域的選擇造成一定的負擔。我們可以通過更改編寫模板“內容表單屬性”部分的“站點區域選擇選項”來減少待選擇的站點區域數量。
“站點區域選擇選項”有以下兩種主要選擇:
- 所有可用的站點區域:以樹形結構顯示所有的可見的站點區域,讓內容建立者能將內容項儲存在任何站點區域下。這是系統的預設選項。
- 僅選定的站點區域:當內容作者有非常多的站點區域的可讀許可權時,而且相對應當前模板建立的內容,只有有限的站點區域需要選擇,這時選擇這個選項是最優的方案。 選擇該選項,並選擇可供內容作者選擇的可以在其中儲存內容的站點區域,這樣當內容作者儲存內容時將只列出所選列表範圍內的站點區域。另外,如果使用者希望將內容預設的直接儲存在某個或某幾個指定的站點下,並且不需要站點區域選擇頁面彈出,那麼選擇該選項並選擇站點之後,在“選擇內容作者的儲存選項”處選擇“無選項(自動將內容儲存到選定的站點區域)”,新建的內容將自動儲存到在這個模板選擇的站點區域下。
同站點區域選擇,使用者也可以在編寫模板預定義要建立內容可選的工作流範圍以及預設值,這個選項在編寫模板的“預設內容設定”標籤頁面的工作流部分定義。
“工作流程選擇選項”有以下兩種主要選擇:
- 所有可用的工作流程:顯示所有的可見的工作流程,讓內容建立者能將任何工作流程應用在內容項。這是系統的預設選項。
- 僅選定的工作流程:選擇該選項,並選擇可供內容作者選擇的可以應用的工作流程,這樣當內容作者儲存內容時將只列出所選列表範圍內的工作流程。
下面的示例將建立一個僅顯示“標識”和“內容”部分給內容作者的編寫模板。
建立編寫模板 :
- 以系統管理員的帳戶登陸入口網站服務期,登入後點選導航條進入頁面 Web 內容> Web 內容管理> Web 內容;
- 選擇內容庫;
- 點選 “新建”按鈕並選擇“編寫模板”;
- 輸入編寫模板的名稱。
- 展開“內容表單屬性”部分,如圖 4:
圖 4. 內容表單佈局選項
- 在“內容表單佈局”處選擇 “帶標籤”;
- 在“站點區域選擇選項”處選擇“僅選定的站點區域”,並新增一站點區域。如圖 5:
圖 5. 站點區域選擇
- 切換到標籤頁“預設內容設定”;
- 展開“概要檔案”部分,並選擇選項“隱藏欄位”。在“內容屬性”,“工作流程”,“訪問權”以及“歷史”部分做同樣的操作以隱藏以上區域。如圖 6:
圖 6. 概要檔案選項
- 展開“工作流程”部分並定義一個預設的工作流,如圖 7:
圖 7. 工作流定義
- 點選頁面上部工具欄按鈕“管理元素”並新增一個元素元件;
- 儲存並關閉編寫模板;
應用編寫模板建立內容:
- 點選 “新建”按鈕並選擇“內容”;
- 選擇上面所建立的編寫模板;
- 內容建立頁面將顯示出來,只有“標識”和“內容”區域可見。如圖 8:
圖 8. 內容建立頁面
應用內容編寫元件可以在網站頁面上加入 WCM 的編寫頁面功能。
以下的功能可以通過內容編寫元件新增在網站頁面:
- 建立一個的內容條目;
- 對顯示的網站頁面進行線上編輯;
- 刪除當前顯示的網站頁面;
- 對當前預覽頁面進行的審批,這個功能只對審批人員開啟的草稿內容可用。
編寫工具元件只能在庫元件中建立和使用,不能在編寫模板,站點,站點區域以及內容中通過新增元素元件建立。
在建立編寫工具元件時,使用者需要定義編寫工具的佈局以及需要新增的操作,並且為所新增的操作定義需要的引數。編寫工具的顯示格式可以定義為各種不同的方式,可以顯示為文字連結,也可以顯示為圖片連結,這個是由使用者自己的程式碼設計決定的。
以下操作可以被新增在編寫工具元件:
- 新建
- 讀
- 編寫
- 刪除
- 核准
- 拒絕
這些操作通過 WCM 的 placeholder 標籤來嵌入在編寫工具中,只有下面的的屬性可以在編寫工具的 placeholder 標籤中可用:
- name
- href
- namelink
如何建立編寫工具元件:
- 以系統管理員的帳戶登陸入口網站服務期,登入後點選導航條進入頁面 Web 內容> Web 內容管理> Web 內容;
- 選擇內容庫;
- 點選 “新建”按鈕並選擇“元件”》“編寫工具”;
- 輸入編寫工具名稱;
- 在“設計”區域定義編寫工具的佈局。
- 在編寫工具的各個操作的設計區域輸入 HTML, 文字和標籤來定義所希望的每個操作的佈局和顯示;
- 為每個操作選擇必要的引數;
- 輸入頁面,頁尾以及分隔符的設計。
下面的示例建立了一個顯示為文字連結的編寫工具。每一個操作的設計區域都包含了以 placeholder 標籤生成文字和連結的編寫工具,每一個連結都使用了 target="_blank" 標籤來使編寫工具的操作在一個新的瀏覽器視窗中開啟而不是在當前頁面開啟。
新建操作設計:
" target="_blank">
讀操作設計:
" target="_blank">
編輯操作設計:
" target="_blank">
刪除操作設計:
" target="_blank">
核准操作設計:
" target="_blank">
拒絕操作設計:
" target="_blank">
頁首:
分隔符:
頁尾:
- 儲存編寫工具。
編寫工具元件可以在顯示模板,選單元件以及導航器元件中呼叫,當在選單和導航器元件中呼叫編寫工具時,讀,編寫,刪除以及審批操作將被應用在選單和導航期的每一條結果所對應的內容條目上。
在編寫模板呼叫編寫工具:
和一般普通的元件一樣,標籤 component 被應用於編寫模板和元素設計中呼叫編寫工具元件。
在選單和導航器元素中呼叫編寫工具:
標籤 authoringtool tag 被應用在選單元素設計和導航器元素設計中呼叫編寫工具。讀,編寫,刪除以及審批操作將被應用在選單和導航期的每一條結果所對應的內容條目上。
除了 WCM 所提供的現有的功能,使用者還可以使用 WCM 的公共 API 來進行二次開發來擴充套件功能,使用者可以使用這些 API 來建立自己的內容管理應用來建立和管理 WCM 頁面。在上面我們已經介紹了 WCM 的定製啟動頁面,使用者也可以在自己的定製啟動頁面使用 WCM 的公共 API 來為該頁面新增更多的功能。
JavaDoc:
WCM 公共 API 的 JavaDoc 可以在入口網站伺服器的下面路徑找到:
|
驗證 WCM JAR 檔案路徑包含在系統設定的 classpath 中:
在開始開發自己的應用程式前,使用者必須保證下面的 WCM JAR 檔案已經被新增在自己應用程式平臺的 classpath 中。
|
Import WCM Packages:
com.ibm.workplace.wcm.api.* com.ibm.workplace.wcm.api.exceptions.* |
Workspace 介面 :
workspace 介面是 IBM Workplace Web Content Management API 的主要介面。WCM 內容的建立,儲存,刪除以及搜尋都是通過 workspace 進行的 . Web Content Management 通過 workspace 和特定的使用者相關聯,通過 API 所執行的操作都將以 workspace 所指定的使用者身份來完成。
要得到一個 workspace 物件,首先必須獲取 WebContentService:
try { // Construct and inital Context InitialContext ctx = new InitialContext(); // Retrieve WebContentService using JNDI name WebContentService webContentService = (WebContentService) ctx.lookup("portal:service/wcm/WebContentService"); } catch (NamingException ne) { System.out.print("Naming Exception: " + ne); } |
如何初始化 workspace:
webContentService.getRepository().getWorkspace("my username", "my password"); |
還可以通過下面的方法來初始化 workspace
在 portlet 中 :
Workspace workspace = webContentService.getRepository() .getWorkspace( (Principal) portletRequest.getUser() ); |
非 portlet:
Workspace workspace = webContentService.getRepository() .getWorkspace((Principal) request.getUserPrincipal() ); |
在完成對 workspce 的操作時必須呼叫 endWorkspace():
webContentService.getRepository().endWorkspace(); |
注意:當使用 JSP 元件時不需要呼叫 endWorkspace(),因為當前的頁面的載入和 session 的管理都是有 WCM 應用程式來處理的。
DocumentLibrary 介面:
DocumentLibrary 用來定義要使用的內容庫。我們使用 setCurrentDocumentLibrary 方法來定義當前要使用的內容庫。如果沒有指定內容庫,API 將使用在 WCMConfigService.properties 檔案中定義的預設庫。
獲取當前 DocumentLibrary:
DocumentLibrary lib = workspace.getCurrentDocumentLibrary(); |
設定當前 DocumentLibrary:
Workspace.setCurrentDocumentLibrary(library); |
Document, DocumentTypes 和 DocumentID 介面 :
在 WCM API 中 document 代表庫中的一個物件和實體。它是大多數其他實體介面(如內容,類別和站點介面)的父介面物件。
文件型別表示 document 的類別 , 它可以是內容,類別,站點或者所有的元件類別。在 WCM API 中,DocumentTypes 介面維護了所有的文件類別列表,而 DocumentType 物件則是一個單獨的文件類別。
在 WCM 的中,每一個實體物件都有一個唯一的編號標識,這個唯一的編號被稱為文件編號,在 DocumentID 中定義,不同的實體文件編號不同。
ContentComponent, LibraryComponent, ContentComponentContainer 以及 Content 介面 :
ContentComponent 在 WCM 中代表內容元素,內容元素可以存在於 Content, Site 或 SiteArea 物件中。
WCM API 提供了 LibraryComponent 介面來代表所有的庫元件。例如 LibraryFileComponent, LibraryHTMLComponent 和 LibraryImageComponent 介面分別代表文件元件,HTML 元件和圖片元件。然而,並不是所有的庫元件都有自己的介面定義,如導航器元件和選單元件在 API 就沒有相應的介面定義。
ContentComponentContainer 介面提供了在相應的容器中更新和取得內容元素元件的最基本功能。
Content 介面儲存了 WCM 內容的相關資訊,這些資訊包括內容的標識資訊,分類以及許可權等。
Rendering Context 介面 :
在 WCM 中,在網站頁面中展示內容和元件的內容是一個最基本的需求。RenderingContext 介面包含展示一個可展示物件所需要的所有資訊,如當前的內容,顯示模板以及站點資訊,應用程式路徑,展示的內容等等。
下面示例顯示瞭如何建立 RenderingContext,如何新增上下文以及應用上下文展示一個內容:
// Create the rendering context RenderingContext context = workspace.createRenderingContext(servletRequestObj, servletResponseObj, new HashMap(), "http://[HOSTNAME]:[PORT]/[CONTEXT]", "connect"); // Set the path to the content to be rendered context.setRenderedContent("/Library1/SiteA/SiteArea1/SiteArea1-1/myContent"); // Get the rendered string String renderedContent = workspace.render(context); |
建立一個簡單的使用 WCM API 建立內容的 JSP 示例
這個示例示範瞭如何使用 Web Content Management API 來建立一個簡單的內容建立頁面。
建立一個 JSP 文件並加入下面程式碼:
- 定義允許示例必要的引數
/** The WCM workspace user name */ String apiUser = "[USER_NAME]"; /** The WCM workspace password */ String apiUserPassword = "[PASSSWORD]"; /** The WCM Library to query against */ String libraryName = "[LIBRARY]"; /** The WCM Authoring Template Name for the new content*/ String contentAuthoringName = "[AuthoringTemplateName]"; /** The WCM Site Area Name for the new content*/ String contentSiteArea = "[SiteAreaName]";
- 假設使用者需要以一個包含一個文字元素“Body”的編寫模板為基礎建立內容,創件內容時需要輸入內容名稱和這個文字元素的內容。
Content Title: Body - 當 http request 為 POST 時執行儲存操作
String contentTitle = request.getParameter("contenttitle"); String contentBody = request.getParameter("body"); // Get the WCM workspace Workspace workspace = webContentService.getRepository().getWorkspace(apiUser, apiUserPassword); workspace.setCurrentDocumentLibrary(workspace.getDocumentLibrary(libraryName)); // Retrieve the authoring template and site area DocumentIdIterator authoringTemplates = workspace.findByName(DocumentTypes.AuthoringTemplate, contentAuthoringName); DocumentIdIterator siteAreas = workspace.findByName(DocumentTypes.SiteArea, contentSiteArea); DocumentId authoringTemplateId = (DocumentId) authoringTemplates.next(); DocumentId siteAreaId = (DocumentId) siteAreas.next(); // Create the content for the authoring template Content content = workspace.createContent(authoringTemplateId,siteAreaId,null,ChildPosition.START); // Set the name of the content content.setName(contentTitle); // If you have a text component on the authoring template and you wish to populate it TextComponent bodyComponent = (TextComponent) content.getComponent("Body"); bodyComponent.setText(contentBody); content.setComponent("Body", bodyComponent); String[] saveErrors = workspace.save(content); if (saveErrors.length > 0) { output.append("The following errors occurred on content save
"); for (int j=0; j < saveErrors.length; j++) { output.append(saveErrors[j]+"
"); } } else { output.append("
Content created and saved
"); output.append("
Back to data entry screen
"); while (!content.isPublished()){ content.nextWorkflowStage(); } } - 儲存 JSP 檔案並把它加入使用者自己的應用程式,也可以加入 WCM 的應用中,呼叫並展示這個 JSP 檔案。如圖 9:
圖 9. API 內容建立頁面
原文連結:http://www.ibm.com/developerworks/cn/lotus/wcm61-custom-input/index.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14751907/viewspace-668840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Lotus Web Content Management 中工具模組的使用Web
- 通過單擊操作建立 IBM Lotus Web Content Management 站點結構IBMWeb
- 在 Web Content Management 中使用 Rendering Portlet 進行內容展現Web
- 在 IBM Lotus Quickr 8.5 for WebSphere Portal 中定製主題IBMUIWeb
- IBM Workplace Web Content Management 中更新RSS資料來源IBMWeb
- web 頁面內容優化管理與效能技巧Web優化
- 客戶端內嵌Vue頁面客戶端Vue
- 在 IBM Lotus Connections 2.5 中定製電子郵件通知IBM
- IBM Lotus Quickr services for IBM WebSphere Portal 8.0 中定製元件IBMUIWeb元件
- 在web工程中設定首頁的頁面Web
- 利用load()函式在指定div載入引用頁面內容函式
- QQ音樂Android客戶端Web頁面通用效能優化實踐Android客戶端Web優化
- IBM Lotus看重Web2.0IBMWeb
- Lotus Quickr 和 IBM 企業內容管理(ECM)系統整合UIIBM
- 使用 IBM Lotus Expeditor micro broker MQTT 客戶機發布訊息IBMMQQT
- 在 IBM WebSphere Portal 中整合 IBM Lotus Quickr 協作功能IBMWebUI
- Web頁面中的“門”—Web端登入頁的設計Web
- IBM Lotus Quickr Web Services 介紹IBMUIWeb
- css+js 設定網頁內容不可複製或可複製CSSJS網頁
- WEB應用內容安全策略(Content Security Policy)Web
- 在 Kerberos 環境中為 IBM Lotus Connections 配置單點登入ROSIBM
- 貓客頁面內元件的動態化方案-Tangram元件
- 從 SAP 幫助文件的頁面,談談 SAP Content Management 的實現
- Web頁面製作基礎Web
- 在 IBM WebSphere Portal V6.1 中整合 IBM OmniFind 搜尋IBMWebNifi
- web頁面錄屏實現Web
- 在JAR包中內嵌頁面資源JAR
- web簡單頁面佈局fixed 頭部固定 內容滾動Web
- 有關web頁面內容檔案強制下載程式碼Web
- 易優cms網站基本內容設定 後臺 — 網站首頁 — 頁面設定網站
- 將經典頁面轉換成現代客戶端頁面客戶端
- Web效能優化系列(2):剖析頁面繪製時間Web優化
- web技術支援| Web 客戶端實現錄音、錄影Web客戶端
- 改造CAS單點登入 --- 自定義登陸頁面(客戶端)客戶端
- 026.Vue3入門,父頁面給子頁面傳遞資料,在子頁面不能修改,只能改自己的data內容Vue
- 頁面佈局的相關內容
- 在 IBM Lotus Approach 中計算淨工作日IBMAPP
- 使用Web元件載入頁面Web元件