T3 Framework空白のテンプレートを使用しています。メガメニューにログインフォームをサブメニューとして挿入したので、ユーザーがメニュー項目にカーソルを合わせると表示されます。
ユーザーがログインしているかどうかに応じて、メニュー項目のタイトル(またはそこに表示されるテキスト)を変更したいと思います。ログインしていない場合は「ログイン」、ログインしている場合は「hi(ユーザー名)」。
これは可能ですか、おそらく2つの異なるメニュー項目(ゲストユーザー用と登録済み用)を作成せずに、テンプレートにphpを追加することによって可能ですか?
これは私がやったことです:
mod_loginの Template Override を作成します
完了したら、次のファイルを開きます。
templates/YOUR_TEMPLATE/html/mod_login/default_logout.php
以下を追加します:
$doc = JFactory::getDocument();
$doc->addScriptDeclaration('
jQuery(document).ready(function($){
$(".menu").find("a.something").empty().text("Hi ' . $user->username .'");
});
');
質問を理解している場合、ユーザーがログインしているかどうかに応じて、メニュー項目を非表示/変更したいですか?
これで、ゲストユーザーやログインしたユーザーからコンテンツを非表示にする方法を管理できました。
新しい「ゲスト」グループを作成します;
詳細なガイド here があります。
その後;
これにより、アクセスレベルの問題が解決されます。
'Hi {Username}'を追加するには、NoNumbers Sourcerer を使用し、$user->username
はモジュールタイトル内にあります。
Sourcererは、phpコードをチェックして、よく使用されるJoomlaオブジェクト/変数を参照しているかどうかを確認し、作成します。つまり、これらの変数を毎回自分で作成する必要はありません。
(@Loddersと比較して)おそらく最もクリーンな方法ではありませんが、機能し、他のモジュールなどに簡単に複製できます...
お役に立てれば!