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

时间:2009-03-24 23:17:19

标签: joomla

我正在开发一个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对象)。

如何创建此用户?我需要包含哪些文件?

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分: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>.

在任何人为了这个非常安全的机制而惹恼我之前,请放心,我已经从实际实施中删除了细节,因为我的回答是不必要的冗长。