2014-10-27 68 views
3

我想定製共享UI標頭,例如刪除一些按鈕,如人員和共享文件。我發現這可以通過修改位於tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/share/imports文件夾中的share-header.lib.js文件來完成。 在修改此文件時,我可以看到更改。但作爲已被告知這些鏈接: https://forums.alfresco.com/forum/developer-discussions/alfresco-share-development/correctbest-way-customize-shares-ui-07182011 http://ecmarchitect.com/archives/2010/09/07/1212Alfresco共享UI標頭定製

正確的做法是tomcat的/ webapps中/股/ WEB-INF /類/戶外/網絡的擴展目錄下創建的文件夾結構,並把修改後的文件在那裏。我創建了文件夾層次結構,並將修改後的share-header.lib.js文件複製到此文件夾中,但現在網站上未顯示這些更改。我錯過了什麼嗎?任何人都可以建議正確的方法來做到這一點?

謝謝!

+0

http:// localhost:8081/share/page/modules/deploy。其模塊部署url.Create模塊,並通過上面的url更新它。讓我知道你是否面臨任何問題。 – 2014-10-27 19:33:01

+0

嗨@KrutikJayswal,謝謝你的回覆。我不需要添加一個新模塊,只需要禁用標題中的兩項。有一個容易做到這一點? – juilee 2014-10-27 19:56:08

+0

我們在談論什麼版本?我將用另一個標記這個問題,其中我已經爲4.2版本回答了這個問題。 – Miki 2014-10-28 08:36:26

回答

4

tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension覆蓋tomcat/webapps/share/WEB-INF/classes/alfresco的一般準則是正確的,但有一個大的警告:它只適用於web腳本。

你的情況有參與報頭的生成兩個文件:

  • WEB-INF /類/戶外/站點webscripts /組織/戶外/股/頭/股,header.get .js文件
  • WEB-INF /類/戶外/站點webscripts /組織/戶外/股/進口/股,header.lib.js

前者確實屬於webscript(你會發現一個share-header.get.desc.xml在同一個目錄中)。這個文件可以通過將文件放在WEB-INF/classes/alfresco/web-extension下的類似目錄結構中來覆蓋,正如您在研究中找到的那樣。

但後者不是web腳本的一部分。而是通過導入指令導入。導入是一個完全不同的機制,並且這個技巧在這裏不起作用。

share-header.get.js第一線澄清這一點:

<import resource="classpath:/alfresco/site-webscripts/org/alfresco/share/imports/share-header.lib.js"> 

model.jsonModel = { 
    rootNodeId: "share-header", 
    ... 

導入的資源是從類路徑字面上加載,而沒有任何web-extension覆蓋。要導入共享header.lib.js的自定義版本,第一行應該是:

<import resource="classpath:/alfresco/web-extension/site-webscripts/org/alfresco/share/imports/share-header.lib.js"> 

因此,在總結我的建議是同時定製header/share-header.get.js(只是第一行)和imports/share-header.lib.js(如你」已經完成)。

請記住,當您創建新的自定義文件時,重新啓動Alfresco會更安全。另一方面,當您編輯現有的定製文件時,在本地安裝上訪問/共享/服務/索引就足夠了,然後單擊Refresh Web ScriptsClean Dependency Caches

+0

太棒了!非常感謝,完美的作品! – juilee 2014-10-28 12:48:56

2

其實,你的方法不是最好的。 正如在Alfresco文檔中,您應該在tomcat/shared/classes/web-extension文件夾中配置您的share-config-custom.xml。你應該在那裏找到一個示例文件。 在共享webapp文件夾中查找原始的share-config.xml:並搜索<header>標記。它看起來與此類似:

<app-items> 

     <!-- defaults: icon="{id}.png" label="header.{id}.label" description="header.{id}.description" --> 

     <item type="link" id="my-dashboard">{userdashboardpage}</item> 

     <item type="js" id="sites">Alfresco.module.Sites</item> 

     <item type="link" id="people">/people-finder</item> 

     <item type="link" id="repository" condition="conditionRepositoryRootNode">/repository</item> 

     <item type="container" id="more"> 

      <container-group id="my"> 

       <item type="link" id="my-tasks">/my-tasks</item> 

       <item type="link" id="my-workflows">/my-workflows</item> 

       <item type="link" id="my-content">/user/user-content</item> 

       <item type="link" id="my-sites">/user/user-sites</item> 

       <item type="link" id="my-profile">{userprofilepage}</item> 

      </container-group> 

      <container-group id="tools" permission="admin"> 

       <item type="link" id="application">/console/admin-console/application</item> 

       <item type="link" id="groups">/console/admin-console/groups</item> 

       <item type="link" id="replication-jobs" condition="!conditionEditionTeam">/console/admin-console/replication-jobs</item> 

       <item type="link" id="repository">/console/admin-console/repository</item> 

       <item type="link" id="trashcan">/console/admin-console/trashcan</item> 

       <item type="link" id="users">/console/admin-console/users</item> 

       <item type="link" id="more">/console/admin-console/</item> 

      </container-group> 

     </item> 

    </app-items> 

複製整節在share-config-custom.xml文件。進行更改並重新啓動Alfresco。你應該很好走。

+2

「app-items 「方法曾經是正確的,直到版本4.2.d,但現在已被棄用。最近的版本(4.2.e,4.2.f,5.0.x)使用​​Aikau,Share的新UI界面。原始問題涉及使用這種新方法的share-header.lib.js。 – softwareloop 2014-10-28 08:48:56