Интеграция Sharepoint в Alfresco использует встроенный сервер Jetty, на котором работает сервер Sharepoint.Если вы посмотрите на URL-адрес «Редактировать онлайн», он покажет номер порта, отличный от номера всех веб-страниц Alfresco (по умолчанию 7070).
Я никогда не проводил глубокое исследование по этому вопросу, но с Sharepointпредставляет собой расширение HTTP, похожее на WebDAV, возможно, с использованием некоторых специальных заголовков или встроенного плагина / функции браузера, для того чтобы создать на вашем сайте функцию «Редактировать онлайн», вам просто нужно предложить те же URL-адреса, которые Alfresco создает для онлайн-редактирования, иубедитесь, что пользователь работает с IE.Это перенаправит пользователя на VTI-сервер , таким образом, почти полностью исключив SpringMVC из картинки (вам просто нужно сгенерировать правильные URL).
РЕДАКТИРОВАТЬ: как alfresco генерирует VTIURL-адреса
Взгляните на actions.js , который фактически генерирует URL-адреса, лежащие в основе ссылок редактирования онлайн в Share.Метод _launchOnlineEditor
- это то, что обрабатывает клики по тем пустым ссылкам, которые вы видели, и он также предоставляет логику, которая создает URL:
// Ensure we have the record's onlineEditUrl populated
if (!Alfresco.util.isValueSet(record.onlineEditUrl))
{
var onlineEditUrl = this.doclistMetadata.custom.vtiServer.host + ":" +
this.doclistMetadata.custom.vtiServer.port + "/" +
$combine("alfresco", loc.site.name, loc.container.name, loc.path, loc.file);
if (!(/^(http|https):\/\//).test(onlineEditUrl))
{
// VTI server now supports HTTPS directly http://issues.alfresco.com/jira/browse/DOC-227
onlineEditUrl = window.location.protocol + "//" + onlineEditUrl;
}
record.onlineEditUrl = onlineEditUrl;
}
, если у нас было, например:
loc.site.name == mySite
loc.container.name == documentLibrary
loc.path == /images
loc.file == logo.png
со значениями по умолчанию для сервера VTI он выдаст следующий URL:
http://localhost:7070/alfresco/mySite/documentLibrary/images/logo.png
Если вы также продолжите читать этот метод, то окажется, что я был совершенно не прав: не только простая магия MS ассоциирует приложения Officeна определенные URL-адреса, а точнее элемент управления ActiveX создается в вашем браузере, что приводит к правильному вызову:
var controlProgID = "SharePoint.OpenDocuments",
//...
activeXControl = new ActiveXObject(controlProgID + ".3");
return activeXControl.EditDocument3(window, record.onlineEditUrl, true, appProgID);
Это должно завершить картину того, как создавать ссылки Sharepoint из вашего пользовательскогоприложения, указывающие на правильное местоположение в хранилище Alfresco.