Создайте IFrame с сайта Drupal - PullRequest
       3

Создайте IFrame с сайта Drupal

4 голосов
/ 28 октября 2010

У меня есть сайт друпал. Я хочу создать Iframe с контентом с моего сайта drupal, который могут встраивать другие сайты.

Как мне кажется, этого можно достичь:

Метод 1 : Создание php-скрипта, автономного от движка drupal.

Импортировать файл конфигурации и, следовательно, получить доступ к базе данных. Создайте контент как отдельную веб-страницу. Распределите URL-адрес этого скрипта в качестве исходного URL-адреса iframe. Проблемы: не может обеспечить функциональность drupal в iframe, например взаимодействие с вошедшим в систему пользователем.

Метод 2 : Создание iframe из друпала.

Создайте новый модуль, который определяет пункт меню, используя hoom_menu (URL для iframe). Определите содержимое iframe из функции обратного вызова пункта меню. Затем Каким-то образом назначьте пользовательскую тему page.tpl.php для нужного URL-адреса iframe, чтобы отображалось только содержимое iframe без всех других элементов страницы (блоков, меню, нижнего колонтитула и т. 1021 *

Будем весьма благодарны за любые комментарии, особенно для метода 2! :)

Ответы [ 4 ]

6 голосов
/ 29 октября 2010

Я сделал именно это, только на этой неделе!

Я создал пользовательский модуль, который выводит только то содержимое, которое я хочу (используя hook_menu()).Затем я создал шаблон страницы (page-mycustommodule.tpl.php), в котором есть только

<?php print $content; ?> 

в тегах <body>.

Это было практически все.Чтобы узнать имя, которое должно иметь шаблон вашей страницы, используйте модули devel и theme_devel, затем просто нажмите на страницу, и она скажет вам, какие шаблоны она искала.

обратите внимание: любые ссылки в iframe изменят только содержимое этого кадра, поэтому, когда ваш модуль создает ссылки, используйте соответствующую цель, чтобы родительская страница перешла на новый URL:

l('link text',
  'node/' . $mynode->nid,
   array('attributes' => array('target' => '_parent')));
1 голос
/ 16 апреля 2015

Я нашел ответ Грэма очень полезным. К сожалению, у меня недостаточно репутации на этом сайте, чтобы добавить комментарий, поэтому мне придется добавить свой комментарий в ответ.

5 лет, информация немного изменилась:

  • Модуль theme_devel теперь называется вместо этого devel_themer.
  • В D7 шаблон именования шаблонов немного отличается от 2 дефисы: страница - [front | internal / path] .tpl.php ( см. документы )
  • Шаблоны D7 немного отличаются в зависимости от массивов рендеринга, поэтому шаблон должен выглядеть примерно так: print render($page['content']);
0 голосов
/ 10 марта 2017

метод 3

вы можете использовать этот модуль https://www.drupal.org/project/entity_iframe, который позволяет вам создавать IFRAME READY веб-страницы

установить его и перейти к настройкам отображения вашего типа контента, который выхотите использовать в качестве содержимого iframe admin/structure/types/manage/CONTENTTYPE/display

, выберите режим просмотра IFRAME и выберите поля, которые вы хотели бы видеть

, а затем используйте URL-адрес, такой как domain.com/entity_iframe/node/NID, и вы получитеотображение без дополнительных колонтитулов и т. д. ...

По умолчанию пример кода EMBED / IFRAME предоставляется администратору под каждым узлом. Настройки

    <iframe width="100%" height="300" src="domain.com/entity_iframe/node/96" frameborder="0" class="entity_iframe entity_iframe_node" id="entity_iframe_node_96" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>

Настройки в admin/config/system/entity_iframe controlнекоторые детали кода для встраивания

Для полного контроля над используемой темой вы можете использовать в сочетании с https://www.drupal.org/project/entity_iframe_theme

0 голосов
/ 29 октября 2010

Что именно вам нужно для iframe? Узел? Блок? Это должно быть статическим или динамическим?
Вы можете просто создать узел с php-фильтром и сгенерировать вывод iframe. Затем вы можете поместить эти выходные данные между тегами <pre>, чтобы они отображались в виде кода, который пользователи могут копировать / вставлять на своем сайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...