web-dev-qa-db-ja.com

Privatemsgモジュールが管理者と自分自身をオートコンプリートで表示する

Drupal 7.を使用しています。 Privatemsg モジュールで、オートコンプリートは自分と管理者を表示します。オートコンプリートにログインして管理者の表示を無効にしているユーザー?

3
user16803

このコードをtemplate.phpファイルに追加します

function yourtheme-name_query_privatemsg_autocomplete_alter($query) {
  global $user;
  $query-> condition('u.uid' , $user->uid, '<>');
}
1

言語が英語でない場合は、コンテンツ翻訳をインストールできます。

そして、config-> translateのあなた、自分自身を削除し、@ userまたは%userを使用します。

0
Mrt.bagh

回答をありがとう、@ Tajdar Khan Afridi。正解として選択したかったのですが、許可されていません...このコメントを追加する必要がありました。プライベートメッセージブロックモジュールを使用している場合は、プライベートメッセージブロックモジュールの後にフックが起動することを確認する必要があります。 (これは、Tajdarが示唆するようにテーマに配置された場合、ミュートの問題になる可能性がありますが、このコードはモジュール内により多く属していると思うので、テーマが変更されても機能は失われません)。

function MYMODULE_module_implements_alter (&$implementations, $hook) {
  if ($hook == 'query_alter' && isset ($implementations['MYMODULE'])) {
    $group = $implementations['MYMODULE'];
    unset($implementations['MYMODULE']);
    $implementations['MYMODULE'] = $group;
  }
}

function MYMODULE_query_privatemsg_autocomplete_alter ($query) {
  global $user;
  $query->condition('u.uid' , $user->uid, '<>');     // Exclude the current user
  $query->condition('u.uid' , 1, '<>');              // Exclude the main admin
}
0
Coyote6