【问题标题】:Using curl or file_get_contents in Joomla administrator component在 Joomla 管理员组件中使用 curl 或 file_get_contents
【发布时间】:2017-11-06 21:40:07
【问题描述】:

我在 Joomla 中构建了一个具有多个视图的管理员组件。一个视图“回顾”使用 AJAX 调用以“原始”格式查看“详细信息”并将 HTML 插入页面(效果很好)。我现在有一个用于视图“recap”的“pdf”格式,我想用我从“原始”格式的视图“详细信息”中获得的相同内容填充。我有一个成功的 PDF 的“Hello World”,但无法确定如何使用 PHP 获取“详细信息”视图并填写 PDF。

我尝试了以下方法:

$this->loadTemplate('details');

由于我无法指定格式“原始”而失败,Joomla 错误:未找到布局 default_details。

file_get_contents('same url as successful AJAX call');

失败并显示错误日志:未能打开流:HTTP 请求失败! HTTP/1.1 403 禁止。对 curl 使用相同的策略也会在身份验证上失败。我知道我可以通过 curl 调用传递身份验证详细信息,但似乎我只能获取当前用户的用户名和哈希密码。我想我可以为确实有权访问但似乎不安全的用户硬编码凭据。

此时,我只能想着复制default.php中的所有代码并利用它的模型来获取数据,但是我的优秀程序员却在尖叫“NO!!!”。

【问题讨论】:

    标签: php ajax curl joomla


    【解决方案1】:

    据我了解,您希望为页面提供 HTML 和 PDF 编码。 HTML 视图使用客户端 AJAX 从其他视图加载数据并将其显示在页面上。这不适用于 PDF 视图,因为 PDF 文件需要在服务器端呈现。

    file_get_contents() 方法没有意义,您正在尝试渲染 PDF 文件以从动态内容(不是保存在文件系统中的静态文件)中提供服务。

    您可以通过调用将另一个视图包含在您的 PHP 代码中,而不是在客户端进行。这样做的方法取决于另一个视图是组件还是模块。

    【讨论】:

      猜你喜欢
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2012-02-19
      • 2012-10-11
      • 1970-01-01
      • 2018-09-25
      相关资源
      最近更新 更多