【问题标题】:PHP pages in Joomla! 3.xJoomla 中的 PHP 页面! 3.x
【发布时间】:2015-02-23 11:18:22
【问题描述】:

我正在构建一个 Joomla! 3.3.6 的网站,我想在里面放一个我自己做的工具。 我知道有很多插件可以让我在 Joomla! 的模块中编写 PHP 或 JavaScript,但是这个工具使用 dompdf 库并且有很多 .js 和 .php 文件,所以这可能非常困难(如果不是不可能的话) 以这种方式集成它。

所以我需要将它放在一个目录中,并为他提供与 Joomla 其余部分相同的访问限制和用户控制!网站。我需要在这些页面中添加一个代码来检查用户是否已登录,在这种情况下,获取用户的 ID/用户名。经过一些操作后,页面需要将信息保存在 Joomla! 的数据库中,在用户的表中(使用用户的 id 作为参考)。

我发现这个脚本应该可以完成这项工作:

<?php
    define( '_JEXEC', 1 );
    define('JPATH_BASE', __DIR__);
    require_once ( JPATH_BASE .'/includes/defines.php' );
    require_once ( JPATH_BASE .'/includes/framework.php' );
    $app = JFactory::getApplication('site');
    $db = JFactory::getDbo(); 
    $user = JFactory::getUser();
    $profile = JUserHelper::getProfile($user->id);
?>

但是添加

require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );

导致页面加载为空白。

有没有办法做我需要或不需要的事情?

【问题讨论】:

    标签: php joomla


    【解决方案1】:

    这仅仅意味着没有正确定义 JPATH_BASE。空白页表示您的页面上有错误,但您需要启用错误报告。

    尝试改变这个:

    define('JPATH_BASE', __DIR__);
    

    到这里:

    define( 'JPATH_BASE', realpath(dirname(__FILE__).'/..' ));
    

    【讨论】:

    • 感谢您的回答。我已尝试应用您的更改并启用了错误报告 (error_reporting(-1);) 但我现在得到的唯一错误是:“加载资源失败:服务器响应状态为 500(内部服务器错误)”在浏览器控制台中。如果它可以帮助我要放置代码的 .php 文件位于 Joomla! 根目录 (web/curriculum/myfile.php) 的子目录中。
    • web是Joomla根目录的目录,还是你的Joomla根目录
    • 这是 Joomla 根目录。
    • 嗯,这很奇怪,因为我刚刚使用完全相同的目录名称和代码对此进行了测试,并且工作正常。
    • 我做了更多的测试,现在它可以工作了@Lodder!不知道为什么之前没有,但是使用您的“JPATH_BASE”声明一切正常,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2011-05-27
    • 1970-01-01
    相关资源
    最近更新 更多