2009-03-24 13 views
0

私は開発しているJoomla 1.0モジュール用のヘルパースクリプトを持っています。私はAJAXタスク(データベースへの読み書きとJSONの返信)を実行するために使用しているので、Joomlaがヘッダやその他のものを出力するのを止める必要があります。Joomla 1.0でユーザオブジェクトをどのように構築するのですか?

私はこれまで、必要なデータベース接続などを設定するために含まれてやって一緒にいくつかのコードをハッキングすることで、この周りを持っている:

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

唯一の問題は、$my変数(mos_userオブジェクト現在のユーザー用)が作成されていません。

このユーザーを作成するにはどうすればよいですか?どのファイルに含める必要がありますか?

答えて

0

私はそれが$mainframeオブジェクト上の機能だことがわかっていますが、その後、あまりにもことを構築する必要があります。

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

あなたはindex2.php no_html = 1(あなたが必要とする他のパラメータが続くも呼び出すことができますか?標準コンポーネントで生の出力を取得します。

+0

ああ、ヘッダーが印刷されないようにする方法が不思議でした。それがモジュールだとしたらどうでしょう? – nickf

+0

モジュールを直接呼び出すことはできませんが、Joomla!正確に1つのコンポーネントをロードします。 AJAXリクエストを実行するモジュールを持っている場合は、コンポーネントをビルドする必要があります。 – jlleblanc

0

1.5モジュールを1.0に移行するときに、私はまさにこの問題に直面しましたが、上記の回答のどれも完全なストーリーを提供していないようでした。ニックフの答えが私のところにあるのが大半でしたが、私はメインフレームを構築しようとしているウサギの穴に落ちました。

私はおそらく$ 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>. 

そして、誰もがこの素晴らしい安全なメカニズムのために私を炎の前に、残りの部分は、それが私の答えのためにunneccessarily冗長だったとして、私は実際の実装から詳細を省略さまし安心。

+0

関数内からグローバル変数($ myなど)にアクセスするには、関数の先頭に次の行を追加します。 "global $ my;" – nickf

関連する問題