Joomla - популярная CMS и может возникнуть необходимость встраивания книг ELiS в Joomla!
Обычно для встраивания одного ресурса в другой используется Embed-код c iframe. У этого подхода есть недостатки, особенно значимые для книг:
- Iframe имеют всегда заданную ширину и высоту, при встраивании размеры конкретного iframe могут неподойти к сайту.
- Заранее неизвестна высота книги и может появиться вертикальный скролбар либо пустое пространство под книгой.
Иными словами, хочется чтобы размеры iframe подстраивались автоматически под размеры книги. Сделать это можно только используя javascript как со стороны сайта с ресурсом, так и на встраивающей стороне. В большинстве случаев такой вариант является неудачным, т.к. большинство сайтов не позволяют встраивать javascript по соображения безопасности. Но решить эту задачу можно написав модуль, встраивающий внешние ресурсы при помощи подобия вики-разметки. Для этого я написал модуль oEmbedder.
Содержание
oEmbedder[править]
https://github.com/borovinskiy/oEmbedder
OEmbedder состоит из двух частей: для Drupal и для Joomla!.
Drupal[править]
Для Drupal есть модуль oembedder, который позволяет сторонним модулям экспортировать нужные ресурсы через протокол oEmbed :). Говоря проще, если у вас есть модуль и он уже отдает некоторый код для встраивания в iframe, вы можете добавить очень простую функцию, реализующую hook_oembedder и получить простой способ встраивания в Joomla! А если приложить еще чуть-чуть усилий, то ваш iframe будет еще меняться в размерах на стороне встроившего сайта Joomla!
Joomla![править]
Надо просто установить в Joomla! готовый плагин oEmbedder, активировать его и добавить URL сайта Drupal в настройках плагина.
Теперь в Joomla! можно просто взять URL ресурса в фигурные скобки для вставки Embed-кода с подстраивающимся размером. Примерно так:
{{oembedder:https://example.com/node/123}}
ELiS[править]
Для книг ELiS поддержка oEmbedder уже реализована. Устанавливайте в Joomla 2 или Joomla 3 бесплатный плагин oEmbedder. Затем в нужных местах указываете ссылку на книгу {{oembedder:https://example.com/node/123}}.