在drupal模块中插入PHP代码

时间:2012-10-03 11:39:16

标签: php drupal-7

我的自定义drupal 7模块中有一个iframe,它显示来自远程URL的数据,如下所示: -

$element[$delta]['#markup'] = '<iframe class="page_flipper" src="someURL"></iframe>';

它运行良好但我想在此iframe中显示另一个脚本/程序的输出。该程序结合了HTML,CSS,JavaScript和PHP的代码。换句话说,我想将该程序集成到上面的iframe中。任何人都可以告诉我该怎么办?

我试图在iframe的src属性中使用相对路径指向程序,如下所示: -

$element[$delta]['#markup'] = '<iframe class="page_flipper" src="mydir/index.php"></iframe>';

但它没有用,drupal在iframe "The requested page "/<site_name>/node/myFlip/index.php" could not be found.中显示此错误。感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:1)

下面的片段是否可以解决问题?

// Get the path to the module..
$module_path = drupal_get_path('module', 'MY_MODULE');

// Prepend with the Drupal root..
$path = DRUPAL_ROOT . '/' . $module_path . '/mydir/index.php'; 

// Use..
$element[$delta]['#markup'] = 
  "<iframe class='page_flipper' src='$path'></iframe>";

我觉得更安全地将带有PHP脚本的文件夹放在Drupal安装的根目录中。然后你可以通过以下方式访问它:

global $base_url;
$path = $base_url . '/ext/index.php';

答案 1 :(得分:1)

您可以使用Drupals drupal_get_path()和url()函数构建文件的绝对URL。

$iframe_url = url(drupal_get_path('module','MYMODULE').'/mydir/index.php',array('absolute'=>true));

$element[$delta]['#markup'] = "<iframe class='page_flipper' src='$iframe_url'></iframe>";