SharePoint Alfresco PHP MySQL
О сайте Контакты
понедельник, 31 августа 2015 г.

Отображение библиотеки одного сайта на другом сайте SharePoint

Иногда необходимо показать список файлов из библиотеки одного сайта на странице другого, причем второй сайт может быть из другой коллекции сайтов. Есть несколько способов как это сделать, включая использование функционала копий документов. Приемлемым и простым можно назвать решение, работающее как отображение содержимого веб-страницы библиотеки на другой странице.

За основу будет взят следующий код:

<div id="targetDiv"><img src="/_layouts/images/GEARS_AN.GIF"></div>

<iframe id="sourceIframe" style="display:none;" src="/Shared%20Documents/Forms/AllItems.aspx" onload="DisplayContent()"></iframe>

<script src="http://sharepoint/Style%20Library/JS/JQuery/2.1.3/jquery.min.js"></script>

<script type="text/javascript">
function DisplayContent() {
  var targetDiv = $("div#targetDiv");
  var sourceIframe = $("iframe#sourceIframe");
  var contents = sourceIframe.contents().find("#scriptWPQ2 table[summary]");
  contents.find("*").removeAttr("id onclick onfocus onmouseover onmousedown oncontextmenu");
  targetDiv.html(contents.html());
}
</script>

Его смысл в том, что создается слой, в котором будет производиться отображение библиотеки. Временно в этом слое отображается индикатор загрузки, который висит до тех пор, пока не будет загружено содержимое страницы библиотеки. Это содержимое загружается в iframe, который внутри себя в невидимом и изолированном режиме как бы отрисовывает страницу. После загрузки включается функция-обработчик. В этой функции из загруженного содержимого запросом JQuery-селектора выбирается нужная часть страницы (в данном случае, это таблица). Затем она подчищается (убираются события мыши, ведь функции по этим событиям будут недоступны - они останутся в iframe) и выводится на первоначальный слой, где раньше был индикатор.

Здесь в параметре src тега iframe указывается ссылка на библиотеку документов, которую нужно отобразить. Ниже следует включение JQuery, причем нужно заранее позаботиться о наличии этой библиотеки внутри SharePoint или подгружать ее со стороннего ресурса.

Чтобы этот код выводил содержимое библиотеки, его нужно вставить на страницу. Для этого нужно войти в режим изменения страницы и в верхней панели инструментов (ленточной панели) в разделе «Вставка» нажать «Код внедрения». Будет отображен виджет, внутрь которого и надо вставить этот код.

После сохранения страницы можно будет ее посмотреть. Должен отобразиться зеленый индикатор загрузки, затем сама библиотека. Этот способ вполне подойдет не только для отображения библиотек, но и для отображения на страницах SharePoint вообще чего угодно с минимальными затратами на программирование.

Sergey Lysenko, понедельник, 31 августа 2015 г.

Комментарии: