0

我有一个我正在开发的 Joomla 1.0 模块的帮助脚本。我用它来执行 AJAX 任务(读取和写入数据库,返回 JSON),所以我需要停止 Joomla 输出它的标题和诸如此类的东西。

到目前为止,我已经通过将一些代码组合在一起来完成必要的包括设置数据库连接等来解决这个问题:

define( '_VALID_MOS', 1 );
require_once '../globals.php';
require_once '../configuration.php';
require_once '../includes/joomla.php';

唯一的问题是没有创建$my变量(mos_user当前用户的对象)。

如何创建此用户?我需要包含什么文件?

4

3 回答 3

0

我发现它是$mainframe对象上的一个函数,但你也必须构造它:

$mainframe = new mosMainFrame( $database, '', '.' );
$mainframe->initSession();
$my = $mainframe->getUser();
于 2009-03-24T23:34:33.007 回答
0

您还可以调用 index2.php?no_html=1(后跟您需要的任何其他参数)来获取标准组件的原始输出。

于 2009-03-25T13:38:43.227 回答
0

在将 1.5 模块迁移到 1.0 时,我刚刚遇到了这个问题,但上述答案似乎都没有给出完整的故事。nickf 的回答让我大部分时间都到达了那里,但后来我在尝试构建大型机时掉进了一个兔子洞。

然后我假设 $my 可能已经创建了,虽然它不能在函数中工作(我是 PHP 新手,所以我认为它可以访问)我发现在模块范围内使用它很好,如图所示以下:

<?php
/**
 * Demo package
 *
 * @package    Demo package
 * @subpackage Modules
 */

// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );


class modDcsgSimulatorHelper
{

    /**
     * security by obscurity
     */
    function getAppToken( $username )
    {
      return urlencode($username);
    }
}

$apptoken = modDcsgSimulatorHelper::getAppToken( $my->username );
?>
Run the <A href="http://somesecurewebsite.com?apptoken=<?php echo $apptoken; ?>">A Secure Link</A>.

在有人因为这个非常安全的机制而抨击我之前,请放心,我已经从真正的实现中省略了细节,因为我的答案不必要地冗长。

于 2009-03-31T08:49:19.490 回答