如何在Joomla 1.0中构建用户对象?

如何在Joomla 1.0中构建用户对象?,joomla,Joomla,我为正在开发的Joomla 1.0模块准备了一个助手脚本。我用它来执行AJAX任务(读写数据库,返回JSON),所以我需要停止Joomla输出它的头等等 到目前为止,我已经通过破解一些代码来解决这个问题,包括设置数据库连接等: define( '_VALID_MOS', 1 ); require_once '../globals.php'; require_once '../configuration.php'; require_once '../includes/joomla.php'; 唯

我为正在开发的Joomla 1.0模块准备了一个助手脚本。我用它来执行AJAX任务(读写数据库,返回JSON),所以我需要停止Joomla输出它的头等等

到目前为止,我已经通过破解一些代码来解决这个问题,包括设置数据库连接等:

define( '_VALID_MOS', 1 );
require_once '../globals.php';
require_once '../configuration.php';
require_once '../includes/joomla.php';
唯一的问题是没有创建
$my
变量(当前用户的
mosu user
对象)


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

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

$mainframe = new mosMainFrame( $database, '', '.' );
$mainframe->initSession();
$my = $mainframe->getUser();

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

在将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>.

运行。

在有人因为这个非常安全的机制炒我鱿鱼之前,请放心,我已经从真正的实现中删除了细节,因为我的答案过于冗长。

啊,我想知道如何避免打印标题。如果它是一个模块呢?你不能直接调用模块,但是Joomla中的每个请求都可以!将只加载一个组件。如果您有一个执行AJAX请求的模块,则需要构建一个组件来配合它