0

私は Joomla 2.5 を使用しており、サイトの先頭に次のコードを含むモジュールがあります。

        <?php
$user =JFactory::getUser()->guest;
    if ($user->guest) {
      echo 'Please sign up or sign in to view this'
    }
    else {
      echo 'Here is the content';
    }
       ?>

私が試したがうまくいかなかったのは、最初の if ステートメントに変数 $member を追加することです。その人がエコーを表示するためにログインしていない場合は、$member を == true に設定します。

なぜ私はこれをしたいのですか?ユーザーがログインしているかどうかを判断するために Joomla API を呼び出すよりも、$member のステータスを確認した方が、サイトの読み込みが速くなると思います。

訪問者がメンバーであるかどうかを判断するための呼び出しは、すべてのページで約 5 ~ 7 回です。JFactory::getUser() 関数 (上記のすべてのコード) を 5 ~ 7 回使用すると、Web サイトが少し遅くなります。そのため、最初の呼び出しで $member == true を作成することを考えました。これがサイトのパフォーマンス/速度の点で優れていると考えているのが間違っている場合は、修正してください。

私はこれを試しました:

        <?php
$user =JFactory::getUser()->guest;
    if ($user->guest) {
      echo 'Please sign up or sign in to view this'
      $member == true;
    }
    else {
      echo 'Here is the content';
    }
       ?>

ヘッダーモジュールに上記のコードがあります。しかし、後で同じページまたは記事の他のモジュールで php コードを使用すると、$member のステータスが認識されず、常にユーザーがログインしていないと判断されます。

私は何を間違っていますか?PHPの本をチェックしましたが、エラーが見つかりませんでした。どんな助けでも感謝します。

4

2 に答える 2

1

あなたはすでに を呼び出している$user->guestので、次のように変更してみてください:

$user = JFactory::getUser()->guest;

これに:

$user = JFactory::getUser();

別の方法として、次を使用することもできます。

$user =& JFactory::getUser();
if($user->id=0){
    echo 'Please sign up or sign in to view this'
    $member == true;
}
else {
    echo 'Here is the content';
}
于 2013-08-30T15:23:34.027 に答える