首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享UI头定制化

共享UI头定制化
EN

Stack Overflow用户
提问于 2014-10-27 16:32:27
回答 2查看 3K关注 0票数 3

我想要自定义共享UI标题,例如删除一些按钮,如人员和共享文件。我发现这可以通过修改位于tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/share/imports文件夹中的share er.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/1212

正确的方法是在tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension目录下创建相同的文件夹结构,并将修改后的文件放在那里。我在这个文件夹中创建了文件夹层次结构,并在这个文件夹中复制了share er.lib.js文件,但是现在网站上没有看到这些更改。我漏掉了什么吗?有人能建议正确的方法来做这件事吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-28 08:42:26

tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension重写tomcat/webapps/share/WEB-INF/classes/alfresco的一般指导方针是正确的,但有一个重要的警告:它只适用于webscripts。

在您的示例中,生成头文件涉及两个文件:

  • WEB-INF/classes/alfresco/site-webscripts/org/alfresco/share/header/share-header.get.js
  • WEB-INF/classes/alfresco/site-webscripts/org/alfresco/share/imports/share-header.lib.js

前者确实属于一个webscript (您将在同一个目录中找到一个share-header.get.desc.xml )。可以通过将文件放置在WEB-INF/classes/alfresco/web-extension下的类似目录结构中来覆盖该文件,正如您在研究中正确地发现的那样。

然而,后者并不是webscript的一部分。相反,它是通过导入指令导入的。导入是一种完全不同的机制,WEB-INF/classes/alfresco/web-extension技巧在这里不起作用。

share-header.get.js的第一行阐明了这一点:

代码语言:javascript
复制
<import resource="classpath:/alfresco/site-webscripts/org/alfresco/share/imports/share-header.lib.js">

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

导入的资源实际上是从类路径加载的,没有任何web-extension覆盖。要导入自定义版本的share er.lib.js,第一行应该是:

代码语言:javascript
复制
<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 (就像您已经做的那样)。

请记住,当您创建一个新的自定义文件时,重新启动Al新鲜to是更安全的。另一方面,在编辑现有的自定义文件时,只需访问本地安装的/share/service/index并单击Refresh Web ScriptsClean Dependency Caches就足够了。

票数 4
EN

Stack Overflow用户

发布于 2014-10-27 21:49:48

实际上,你的方法不是最好的。与Alfresco文档一样,您应该在share-config-custom.xml文件夹中配置您的tomcat/shared/classes/web-extension。你应该在那里找到一个样本文件。在共享webapp文件夹中查找原始的share-config.xml:并搜索<header>标记。它看起来与此类似:

代码语言:javascript
复制
<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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26592279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档