2010-12-19 7 views

答えて

31

path_is_admin()を使用できます。 - 引数(0)とSUBSTR($ _ GET [ 'Q']、0、5) @timmyと@Scott Reynen:Drupalの8 Drupalの6についてisAdminRoute()

$is_admin = \Drupal::service('router.admin_context')->isAdminRoute(); 
if ($is_admin) { 
    // Do stuff. 
} 
+0

これは次のように使用できます。if(path_is_admin(current_path())){ // Do stuff。 } –

+0

ありがとう私はあなたの例で答えを更新しました。 – gagarine

7

私はあなたの最終目標を完全に理解していませんが、あなたの質問への回答:誰かが管理セクションにある場合、全体の管理セクションでは、管理者/

2で始まるパスを持っているので

1)if (arg(0) == 'admin') { ... }は、あなたが選択することができ、管理/設定/管理/テーマでは)、表示します管理セクションのための別のテーマ、そして主題ではなくそのテーマがロードされているときに誰かが管理者であることを知っているでしょう。

+0

返事に感謝し、フロントエンドのテーマは、私はsection.iは、管理セクション内のすべてのリンクのための管理のテーマを表示する管理者のために選択された個別のテーマを持っているにもかかわらず、ブロック管理部に表示されます。 –

2

あなたの究極の目標が何であるかはっきりしていません。詳しい説明は?

パスを確認している場合は、Scott Reynenの#1がそのトリックを行う必要があります。

Drupal 6には、デフォルトの変数$ is_adminもあります。現在のユーザーに管理者権限がある場合はTRUEになります。この変数を確認すると便利です。詳細については、こちらをご覧ください:http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

フォローアップの質問には、フロントエンドのテーマは常にadmin/build/blockに表示されます。これは、ブロックを移動してテーマセクションに割り当てるときに、設定しているテーマがどこにあるのかを知りたいからです。複数のテーマが有効になっている場合は、admin/build/blockにある別のテーマの設定(セカンダリ行)をクリックしてみてください。あなたは私が何を意味するか見るでしょう。

0

上記の解決策は、2番目の問題になると、ページの中心(つまりメインコンテンツ)にログインブロックを追加したいと思うようです。もしあなたがブロック設定ページに行き、 "User Login"ブロックをページ上の所望の場所に設定し、保存をクリックする必要がある場合、いくつかのページで。ブロックの隣のconfigureをもう一度クリックすると、「このブロックを表示する必要のあるページ」などの設定を行うオプションが表示されます。

0

について

if (path_is_admin(current_path())) { 
    // Do stuff. 
} 

「admin」はいくつかのパターンを欠場するでしょう。以下のコードは、私のサイトのすべての管理ページのURLを取得し、あなたのサイトは多かれ少なかれ持つかもしれません。

$arg = arg(); 
$isAdminPage = ($arg[0] == 'admin' || $arg[2] == 'edit' || $arg[0] == 'user' || $arg[2] == 'workflow' || $arg[2] == 'statistics'); 
if ($isAdminPage) { 
    // do admin stuff 
} 
関連する問題