【问题标题】:Share config custom.xml for specific site in Alfresco在 Alfresco 中为特定站点共享配置 custom.xml
【发布时间】:2017-10-20 17:41:27
【问题描述】:

我不希望在特定网站的管理方面显示几个方面。所以我更改了共享配置自定义 XML。但是,所有站点都反映了这种变化。我怎样才能使这个特定于一个网站?

感谢任何帮助。

提前致谢!!!

【问题讨论】:

    标签: alfresco alfresco-share


    【解决方案1】:

    您应该使用站点评估器来使用每个站点单独共享模块的概念:

    在 alfresco\site-data\extensions\ 中创建一个 share-extension-mysitename-module.xml 文件,如下所示:

            <id>My site module</id>
            <auto-deploy>true</auto-deploy>
            <evaluator type="site.module.evaluator">
                <params>
                    <sites>mysitename</sites>
                    <applyForNonSites>false</applyForNonSites>
                </params>
            </evaluator>
            <customizations>
                <customization>
                    <targetPackageRoot>org.alfresco</targetPackageRoot>
                    <sourcePackageRoot>com.mypackage</sourcePackageRoot>
                </customization>
            </customizations>
            <configurations>
                <config evaluator="string-compare" condition="DocumentLibrary" >
                ...
                   <aspects>
                        <visible>
                            <aspect name="my:visibleaspect" />
                        </visible>
                    </aspects>
                </config>
            </configurations>           
    
        </module>
    </modules>
    

    【讨论】:

      【解决方案2】:

      据我所知,我认为这不可能按站点进行自定义共享配置。

      我看到了两个(可能不令人满意的)解决方案:

      1. 您可以创建您的 custom evaluator 并使用它来使某些部件可访问(或不可访问)。

        <bean id="evaluator.doclib.action.siteBased" class="xx.xx.xx.web.evaluator.SiteBasedEvaluator">
           <property name="sites">
               <list>
                   <value>mysite</value>
               </list>
           </property>
        </bean>
        
        public class SiteBasedEvaluator extends BaseEvaluator {
        
           private List<String> sites;
        
           public SiteBasedEvaluator() {
               super();
           }
        
           public SiteBasedEvaluator(String... pSites) {
               super();
               sites = Arrays.asList(pSites);
           }
        
          public boolean evaluate(JSONObject jsonObject) {
               Boolean isFound = false;
               if (sites != null) {
                   for (String site : sites) {
                       isFound = site.equals(getSiteId(jsonObject));
                       if (isFound) {
                           break;
                      }
                   }
               }
              return isFound;
        }
        
      2. 你可以在你的tomcat中部署两个share war,每个都有你想要的share-config-custom.xml

      【讨论】:

        猜你喜欢
        • 2021-06-09
        • 2014-11-25
        • 1970-01-01
        • 2022-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多