1

activecollabのカスタムモジュールを使用しています。以下のオブジェクトを使用して、ログインしたユーザーデータを取得する方法を知る必要があります。

$this->logged_user 

または、ログインしているユーザーを取得する別の方法がある場合は、お知らせください。ログインしているユーザーの情報/データを自分のページに印刷したいだけです。

変更:

このオブジェクトをモデルで使用すると、機能しませんでした。ログインしているユーザーのオブジェクトを誰かが知っているでしょうか。それによって、ログに記録されたユーザーIDやその他のものを取得できます。モデル内のそのオブジェクトでも機能しますか?

4

4 に答える 4

2

ああ、最終的に解決策を得ました...

activecollabでは、ユーザーオブジェクトがない場所ならどこでも、この行でログインしたユーザーオブジェクトを取得できます。$this->logged_user

$this->logged_user = Authentication::getLoggedUser();

また、ログインユーザーに使用できるその他の基本情報を取得するには、次のようにします。

$this->logged_user->getId()
$this->logged_user->getName()
$this->logged_user->getDisplayName()
$this->logged_user->getEmail()
$this->logged_user->getCompany()
$this->logged_user->isAdministrator()
$this->logged_user->getLanguage()
于 2012-05-18T10:39:09.940 に答える
1

これは解決されたようです。それでも、他の誰かがこの質問に遭遇した場合の説明は次のとおりです。

  1. $this->logged_userコントローラでのみ使用できますが、モデルでは使用できません
  2. $logged_userビューで利用できるので、次のようなものを使用できます。{$logged_user->getFirstName(true)|clean}
  3. 他の場所では、Authentication::getLoggedUser()
于 2012-05-18T12:52:35.967 に答える
0

使用する

echo $this->logged_user;

変数を出力します。

于 2012-05-17T12:08:39.337 に答える
0

ログインしたユーザー情報を保存するコードがあると思います。

その場合は、それをエコーする必要があります。

例えば:

echo $this->logged_user; 

この背後で実行するコードを実装していない場合、機能しません。さらに情報が必要な場合は、さらにコードを含めてください。

新しい情報に照らして修正された回答

アクティブなコラボ プロジェクトについてこれを知ったので、そのコンテキストで説明します。

object ActiveCollab::findUserById( int $user_id)

これにより、userID に基づいてユーザー オブジェクトが取得されますが、このためのすべてのメソッドは取得しないように設定されています。

読み取るには、API を使用できます。これを行う方法の詳細は、http: //www.activecollab.com/docs/manuals/developers/api/companies-and-usersにあります。

API リクエストは、読み取りアクションと書き込みアクションの両方を処理できます。

于 2012-05-17T12:02:53.243 に答える