2013-01-24 120 views
1

我很新的露天。我的問題是,我們如何使用一個Dashlet(從頭開始創建)進入一個頁面(也是從頭開始創建的)?爲了在頁面中包含一個Dashlet,需要處理哪些文件和配置。Alfresco分享|使用dashlet到自定義頁面編程

此外,新創建的頁面有類似儀表盤的頁面,但沒有認證。這裏的想法是遠離默認的「共享」儀表板登錄流程。

謝謝。

+0

我已經寫了一個如何創建一個非認證頁面的答案。但是,也許你會有一個更簡單的方法,通過使用一點點的JavaScript來自動驗證用戶作爲guest或某事。作爲一個經過驗證的用戶,您可以訪問更多 - 網站,搜索內容,真的很多。如果這樣做,你甚至可以從界面上隱藏「帳戶」功能。 – Zlatko

回答

2

一個dashlet僅僅是一種特殊類型的網頁腳本的,所以是的,它很可能通過結合成一個部件區域相同的Web腳本放在一個自定義頁面。

頁,模板,組件和區域之間的關係可以是一個有點複雜,如果你是新來共享的發展,所以我建議審查達沃·德雷珀和Erik Winlof的從去年11月份的開發者大會,在那裏他們介紹Share Customizations Live演示樣本項目包括一個Ant構建腳本,其中包含一個自定義Web腳本和頁面定義。該代碼可以從此Git repo下載,作爲您自己項目的基礎。

如果您的dashlet web腳本需要任何更改以使其在自定義頁面內工作,您不應該發現太多更改,但請記住,如果用戶未經身份驗證,則您將無法訪問任何關於它們的信息,您也不能從存儲庫中檢索任何數據。

1

對不起,只是要清楚,要複製的露天倉庫共享接口,但沒有登錄? Dashlets和界面組件是web腳本,web腳本存儲在倉庫中,因此爲了訪問它們,您需要進行身份驗證。您可以在webscript xml描述中使用標記runas =「admin」或runas =「guest」以實現某些功能。如果我誤解了,請讓我知道,我會盡力幫助..

+0

這不完全正確。您可以使用共享頁面和dashlets無需身份驗證,等待我的博客文章和即將到來的答案:) – Zlatko

+0

或等待,OP是否希望它/露天?您仍然可以訪問webscript作爲身份驗證=無,在那裏沒有問題,甚至可以使用 none來訪問受保護的數據,對嗎? – Zlatko

2

讓我嘗試用一​​些例子來回答這個問題:

露天頁

要創建一個露天分享頁面(您使用共享),您需要創建三個文件:?

<TOMCAT>/webapps/share/WEB-INF/classes/alfresco/site-data/pages/my-page.xml 
<TOMCAT>/webapps/share/WEB-INF/classes/alfresco/site-data/template-instances/my-page.xml 
<TOMCAT>/webapps/share/WEB-INF/classes/alfresco/templates/org/alfresco/my-page.ftl 

第一個定義了你的頁面,第二個定義,你會在頁面上使用了哪些組件(dashlets),最後一個是HTML模板(在Freemarker中)安排你的組件。

前兩個文件是XML,有點露天具體的,但簡單的XML,而最後一個,你可以把靜態的HTML,它會工作,或者你可以把一些FreeMarker的宏。 什麼是每個這些文件(例子),你可以閱讀this page,專門編寫了你和這個問題:)(不要問,我覺得寫吧)

無驗證

爲了不使用驗證,你可以把<認證>無< /認證>在頁面定義文件(第一個XML文件)。

Dashlet文件

基本上,dashlet可以在最少兩個文件,通常4-5或類似的東西。 dashlet.get.desc。xml文件表示了兩件事情:desc.xml部分表示這是針對一個新組件(dashlet),並獲取部分說該組件將回答HTTP GET調用。 通常放置在某個地方/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components。其實並不重要,其中波紋管,而是希望把它放在其他文件夾中管理所有的代碼更容易。 此文件包含一個重要的事情:網址。網址定義了您的dashlet將回答的網址。當你在上面的頁面定義中定義你的頁面時,你會把這個URL放在那裏來訪問這個dashlet。

你甚至可以直接訪問dashlet,使用鏈接http://localhost:8080/share/my/url/to/dashlet.

其他文件,dashlet.get.html.ftl是,同樣,一個Freemarker模板文件。你把HTML放在那裏。您也可以有一個控制器文件爲dashlet,dashlet.get.js其準備一些動態內容(這是寫在服務器端JavaScript,並已獲得了一些露天的Javascript API的)。

最後,你可以把一些國際化的文本(翻譯)成束(基本上,dashlet.get.properties,dashlet.get_DE.properties,dashlet.get_ES.properties等,通過瀏覽器lanugages)。

還有一些選項可以將客戶端JavaScript或css文件包含到此dashlet中。

要看到如何組裝所有這些,你可以嘗試閱讀this page。可能不是一個很好的閱讀,但它會希望清除一些事情。

+0

確定你可以做到這一點,我的聲明是關於使用webscripts與根對象或類似的東西。實際上,你可以創建與認證沒有露天/股webscript,但你不能訪問任何內容/根的對象/動作/規則等,取決於你怎麼在webscript需要顯示。 – Teqnology

+1

這正是一個初學者的書應該如何解釋強制頁面創建組件 –

+0

從初學者初學者:) – Zlatko

相關問題