2017-06-20 59 views
0

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

在此先感谢。

回答

0

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

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

然后,在网络推广/网站webscripts /组织/户外/模块,您可以添加创建,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。相反,您可以使用共享扩展模块。创建一个名为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> 

有了这个扩展的地方,你也必须重写共享header.get.js。要做到这一点,创建下网络扩展/站点webscripts/COM/someco /预置/共享/与此内容标头名的文件:

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") } 
    ]; 
} 

这应该添加新的“一些现场预置“到您在5.2中创建新网站时看到的列表。

+0

它没有为我工作,至少与Alfresco 5.2.f. –

+0

更新了我的回答,其中包含与5.2相关的细节。 –