Создать новый вид сайта Alfresco 5.2

Я пытаюсь создать новый тип сайта. Когда я создаю новый, в выборе появляется только 1 тип: «Совместный сайт». Я хочу добавить больше возможностей. Например, «Пользовательский сайт» и для этого сайта с предопределенными страницами и панелью инструментов. У меня есть решение для этого, но оно заключается в изменении файлов presets.xml и share-header.get.js. Я хочу сделать то же самое, добавив свои собственные файлы, а не редактируя существующие файлы.

Заранее спасибо.


person Antonio González Borrego    schedule 20.06.2017    source источник


Ответы (1)


Вы правы, когда хотите не трогать стандартные файлы, поставляемые с дистрибутивом Alfresco. Вы можете добавлять новые пресеты сайта через стандартные механизмы расширения.

Например, вы должны иметь возможность поместить файл presets.xml в web-extension/site-data/presets, который описывает ваши пресеты. Похоже, у вас уже есть пример того, как это должно выглядеть.

Затем в разделе 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, как показано выше. Вместо этого вы можете использовать модуль расширения Share. Создайте файл с именем presets.xml в папке web-extension/site-data/extensions:

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

Это должно добавить новый «некоторый-сайт-пресет» в список, который вы видите при создании нового сайта в 5.2.

person Jeff Potts    schedule 23.06.2017
comment
У меня это не сработало, по крайней мере, с Alfresco 5.2.f. - person Antonio González Borrego; 27.06.2017
comment
Обновлен мой ответ с особенностями, связанными с 5.2. - person Jeff Potts; 28.06.2017