1

我的自定义 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.任何帮助表示赞赏。谢谢

4

2 回答 2

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';
于 2012-10-04T08:08:19.257 回答
1

You can use Drupals drupal_get_path() and url() functions to build an absolute url to the file.

$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>";
于 2012-10-04T17:04:04.580 回答