Для вставки документов в сторонние сайты используется Embed-код на основе iframe. Для большинства пользователей этого кода будет достаточно. Владельцы сайтов могут предпочесть более гибкий способ вставки документов библиотеки таких как книги, видео, прямые трансляции и презентации на своих сайтах. Повышение гибкости достигается с помощью бесплатного и открытого модуля oEmbedder для популярных CMS:
Преимущества в установке модуля oEmbedder - отсутствие фиксированных размеров iframe, предотвращение появления скроллбаров у документа и возможность адаптироваться к ширине браузера. Особенно актуальным этот модуль будет для мобильных браузеров.
Для остальных сайтов существует простой способ добавления ресурсов на внешние сайты с помощью скрипта JavaScript.
Содержание
Примеры встроенного контента[править]
С помощью JavaScript на хостинге blogspot: http://elis-demo.blogspot.com
Модуль для WordPress: http://wordpress.elibsystem.ru
Модуль для Joomla!: http://joomla.elibsystem.ru
Самостоятельная реализация коннектора[править]
Конечной точкой (endpoint) протокола в ELiS является /oembedder. Т.е. https://elis.example.com/oembedder.
Пример:
Бывают задачи, когда ресурсы в ELiS надо собрать и встроить в сторонних системах.
В ELiS для этого есть поддержка протоколов и собственное API. Далее рассказывается как именно можно программным путем собрать ресурсы в ELiS и встроить в сторонние сайты.
Задача разделяется на:
- извлечение метаданных;
- скачивание ресурсов;
- встраивание ресурсов;
- создание аккаунтов и авторизация пользователей;
- сбор статистики.
Извлечение метаданных[править]
OAI-PMH[править]
Метаданные в ELiS можно получить по протоколу OAI-PMH.
Документация: https://elibsystem.ru/docs/oai-pmh
OAI-PMH позволяет получить в XML все добавленные ресурсы за определенный промежуток времени в формате метаданных Dublin Core.
OAI-PMH можно использовать для извлечения изменений и, например, раз в сутки ходить в ELiS и получать список добавленных ресурсов для автоматического экспорта.
Все ресурсы ELiS имеют шаблон https?://elis.example.com/node/\d+. Т.е. содержат в URI идентификатор ноды (ресурса). Например https://elis.example.com/node/12345.
Если вам нужны еще какие-то метаданные, получить их можно добавлением /info к URI ресурса, т.е. по шаблону https://elis.example.com/node/\d+/info вы получите доступ к служебному отображению ресурса в Drupal7 и всем связанным полям.
Endpoint: https://elis.example.com/elis/oai.
OPDS[править]
Вы можете последовательно извлечь все ноды главного каталога по протоколу OPDS.
Документация: https://elibsystem.ru/docs/opds
Endpoint: https://elis.example.com/opds.
Скачивание ресурса[править]
Возможность скачивания ресурса может ограничиваться правами доступа. В некоторых случаях ссылка для скачивания дается по OAI-PMH.
Встраивание ресурсов[править]
- добавление /embed к идентификатору ноды;
- использование протокола oEmbed.
Встраивание добавлением /embed к URL[править]
Для встраивания с помощью /embed надо просто к любому URL добавить /embed и указать получившийся URL в iframe. Частая проблема при встраивании в iframe - не известна оптимальная высота ресурсов. Здесь следует обращать внимание на тип ноды. Ноды типа презентации, видео и трансляций имеют соотношение сторон контента 16/9 + высота панели и именно так можно попытаться рассчитать высоту iframe зная тип ресурса. Для большинства остальных ресурсов можно выбрать любую высоту.
Тип ресурса можно извлечь во время сканирования метаданных. Откройте плеер нужного типа и посмотрите код вставки как пример, который вам можно реализовать во внешней системе.
Блок кода вставки[править]
Чтобы копировать код вставки было проще, есть специальный блок "ELiS Embed", который можно включить и расположить в нужном месте сайта.
Подробнее: https://elibsystem.ru/node/648
Преимущество способа: он автоматически подстраивает высоту встроенного ресурса.
Встраивание с помощью oEmbed[править]
Протокол oEmbed позволяет отправить запросы на специальный endpoint и попросить код вставки для ресурса по некоторому URL.
В ELiS oEmbed endpoint является '/oembedder', а в качестве URL надо запрашивать ресурс в виде https://elis.example.com/node/12345.
Endpoint: https://elis.example.com/oembedder
Пример запроса:
https://elis.psu.ru/oembedder?maxwidth=616px&format=jsonp&callback=generatedcallback&url=https%3A%2F%2Felis.psu.ru%2Fnode%2F510014