2011-02-02 17 views

答えて

2
<?php 
global $user; 


if ($user->uid) 
{ 
Welcome: 
print l($user->name,'user/'.$user->uid); 
print l("logout","logout");//this is logout link 
} 
else 
{ 
//show him login form 
} 
?> 
1

非常に簡単に。私はいくつかの時間を取ったが、私はこれを理解した:

  • 私はユーザーの役割に応じて自分のノードへのアクセスを許可または拒否するモジュール 'taxonomy access permissions'を使用します。
  • インストールしたら、「ログイン」と「ログアウト」という用語でタクソノミを作って、このタクソノミーをノードタイプ 'ページ'で利用できるようにします。
  • TAPモジュールを管理し、匿名ユーザーのアクセス許可を設定します。ログインして拒否拒否を拒否し、ログアウトして拒否拒否を許可します。同じ方法で、認証されたユーザの権限を設定します。ログインして拒否拒否を許可し、ログアウトし拒否拒否を拒否します。 結果:ページを追加し、タクソノミを「ログイン済み」に設定すると、認証されたユーザーだけがページを表示します。 「ログアウト」に設定すると、匿名ユーザーだけがそのページを表示します。
  • パス 'log_in'を持つページを作成し、パス 'user'にリダイレクトするコンテンツPHPコードを追加し、分類を 'logged out'に設定します。私がログインしていないときは、ノードにアクセスでき、ログインページにリダイレクトされます。すでにログインしている場合は、ノードにアクセスできなくなります。
  • パス 'log_out'を持つページを作成し、ユーザーをパス 'logout'にリダイレクトし、タクソノミーを 'logged in'に設定するコンテンツPHPコードとして作成します。ログインしていないときは、ノードにアクセスできなくなります。私がすでにログインしている場合は、ノードにアクセスしてログアウトします。
  • の2つの新しい項目を追加します.1つはパス 'log_in'で 'LOGIN'と呼ばれ、もう1つはパス 'log_out'で 'LOGOUT'と呼ばれます。
  • 完了!ログインしていない人は、そのノードへのアクセスが拒否されているため、メニュー項目 'LOGIN'は表示されますが、 'LOGOUT'は表示されません。ログインしたユーザーは、そのノードへのアクセスが拒否されているため、 'LOGOUT'という項目は表示されますが、 'LOGIN'は表示されません。
2

DrupalはCMSのアプリですので、一つは 'Stucture' から管理者としてこれをtweek可能性 - > 'ブロック' セクション。そこに 'User Menu'ブロックがあります。これは、ログアウトフィールドの表示を担当します。 これを有効にして、現在のテーマの表示領域にドラッグするようにしてください。 一方、URLから直接ログアウトできるようにするには、まずブラウザのキャッシュをクリアしてください。最終的にApache($ sudo /etc/init.d/apache2 restart)を再起動して と入力し、​​と入力します。トリックをする必要があります。

+0

drupalのより新しいバージョンでは、このタイプの緊急事態についてhttp:// yourdomain /?q = user/logoutとhttp:// yourdomain /?q = user/loginを試すこともできます。 – fuzzyanalysis

関連する問題