我有一个drupal网站。我想要生成一个Iframe与内容从我的drupal网站,其他网站可以嵌入。
我认为如何才能做到这一点:
方法1:创建一个独立于drupal的php脚本。
导入配置文件,从而访问数据库。生成内容作为一个独立的网页。将此脚本的url作为iframe的源url分发。问题:无法在iframe中提供drupal功能,例如与登录用户的交互。
方法2:从drupal内部创建iframe。
创建一个使用hoom_menu (iframe的url )定义菜单项的新模块。从菜单项的回调函数中定义iframe的内容。然后以某种方式为所需的iframe分配一个自定义page.tpl.php主题,以便只呈现iframe的内容而不呈现所有其他页面元素(块、菜单、页脚等)。
如有任何评论,特别是方法2,将不胜感激!:)
发布于 2010-10-29 18:34:10
我就是这样做的,就在这个星期!
我创建了一个定制模块,它只输出我想要的内容(使用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')));发布于 2015-04-16 08:18:36
我发现格雷厄姆的答案非常有用。不幸的是,我没有足够的声誉在这个网站上添加评论,所以我将不得不把我的评论在一个答复。
5年过去了,信息略有变化:
print render($page['content']);发布于 2017-03-10 19:26:34
方法3
您可以使用此模块伊夫拉梅,该模块允许您创建IFRAME就绪网页。
安装它,然后转到要用作iframe内容admin/structure/types/manage/CONTENTTYPE/display的内容类型的显示设置。
选择IFRAME视图模式并选择要显示的字段。
然后使用url像这样的domain.com/entity_iframe/node/NID,您将有一个显示没有额外的标题,页脚等.
默认情况下,在每个节点(设置)下向管理员提供一个示例嵌入/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中的设置控制了嵌入代码的一些细节。
要完全控制所使用的主题,可以将其与主题结合使用
https://stackoverflow.com/questions/4042366
复制相似问题