创建一种新的站点Alfresco 5.2

时间:2017-06-20 20:34:42

标签: alfresco alfresco-share

我正在尝试创建一种新类型的网站。当我创建一个新的时,只在选择中出现一种类型:"协作网站"。我想添加更多选项。例如"自定义站点",以及具有预定义页面和仪表板的该站点。我已经为此获得了解决方案,但它正在修改presets.xml和share-header.get.js文件。我想通过添加自己的文件来做同样的事情,而不是编辑现有的文件。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您希望避免触及Alfresco发行版附带的开箱即用文件,这是正确的。您可以通过标准扩展机制添加新的站点预设。

例如,您应该能够在描述预设的web-extension / site-data / presets中放置一个presets.xml文件。听起来你已经有了一个应该是什么样子的例子。

然后,在web-extension / site-webscripts / org / alfresco / modules下,您可以添加具有以下内容的create-site.get.js:

var sitePresets = [
   {id: "site-dashboard", name: msg.get("title.collaborationSite")},
   {id: "some-new-preset", name: msg.get("title.somePreset")}
];
model.sitePresets = sitePresets;

请注意,根据您使用的Alfresco版本,这已略有变化。例如,在5.2中,我认为您不需要覆盖create-site.get.js,如上所示。相反,您可以使用共享扩展模块。在web-extension / site-data / extensions中创建一个名为presets.xml的文件:

<extensions>
  <modules>
    <module>
      <id>Additional Site Presets</id>
      <version>1.0</version>
      <auto-deploy>true</auto-deploy>
      <evaluator type="default.extensibility.evaluator"/>
      <customizations>
        <customization>
           <targetPackageRoot>org.alfresco</targetPackageRoot>
           <sourcePackageRoot>com.someco.presets</sourcePackageRoot>
        </customization>

        <customization>
           <targetPackageRoot>org.alfresco.share.pages</targetPackageRoot>
           <sourcePackageRoot>com.someco.presets</sourcePackageRoot>
           <alwaysApply>
              <webscript>share-header</webscript>
           </alwaysApply>
        </customization>
      </customizations>
    </module>
  </modules>
</extension>

使用该扩展名,您还必须覆盖share-header.get.js。为此,请使用以下内容在web-extension / site-webscripts / com / someco / presets / share / header下创建具有该名称的文件:

var siteService = widgetUtils.findObject(model.jsonModel, "id", "SITE_SERVICE");
if (siteService && siteService.config)
{
   siteService.config.additionalSitePresets = [
      { value: "some-site-preset", label: msg.get("title.someSite") }
   ];
}

这应该将新的“some-site-preset”添加到您在5.2中创建新网站时看到的列表。