5

Drupal初心者です。ユーザーが自分のアカウントを作成するとき、個人用の連絡先フォームを持つオプションがあります。それを無効にするにはどこに行けばよいですか?権限にはありません。これは悪いオプションではありませんが、私のサイトのユーザーが混乱することはわかっています。それはいくつかを怖がらせるかもしれません!

4

8 に答える 8

6

Drupal 7 でテスト済み。

テーマの template.php に以下を配置します。MYTHEME をテーマ名に変更します。

function MYTHEME_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_profile_form') {
    $form['contact']['#access'] = FALSE;
  }
}

access が unset() ではなく、false に設定されていることに注意してください。つまり、削除されます。そうすれば、データの流れを妨げません。

于 2012-10-02T18:28:28.400 に答える
3

Drupal 6 または 5 で admin/build/contact/settings にアクセスすると、「デフォルトで個人連絡先フォームを有効にする」のチェックを外すことができます。

于 2010-03-30T11:04:32.497 に答える
2

個人用連絡先フォームは、Drupal でデフォルトで取得されるものではありません。これを行うことができるモジュールがあります。おそらくそのようなモジュールをアクティブにしています。admin/build/settings でアクティブ化したモジュールを確認します。

通常のユーザーに対してのみこれを無効にする場合は、代わりに権限設定を確認する必要があります。

于 2010-03-29T19:56:31.597 に答える
2

「Core - Optional」の下の連絡先モジュールを無効にします。「連絡先」に関連するユーザー権限を調べて、チェックを外します。

個人的には、サイト全体の連絡フォームを処理する Webform をお勧めします。UI を使用してフォームを作成できます。お問い合わせページを取得する最も簡単な方法。

于 2010-03-29T19:59:54.890 に答える
2

Drupal 7

All answers NOT remove the section for personal contact option displayed (D7) at "user/%/edit"

enter image description here

For remove tab AND settings for Drupal 7:

/**
 * Implements hook_form_alter().
 */
function MY_MODULE_form_alter(&$form, &$form_state, $form_id) {
  if ('user_profile_form' === $form_id) {
     $form['contact']['#access'] = FALSE;
  }
}

/**
 * Implements hook_preprocess_page().
 */
function MY_MODULE_preprocess_page(&$variables) {
    $menu_items = menu_get_item();
    if('user/%/edit' === $menu_items['path']){
         $variables['page']['content']['content']['content']['system_main']['contact']['#access'] = FALSE;
    }
}

After:

enter image description here

于 2014-11-14T23:13:36.783 に答える
1

Drupal6:

サイト全体の連絡先フォームを有効にしたいが、個人の連絡先フォームのオプションをユーザーに表示したくない場合は、次の手順に従う必要があります。

  1. カスタム モジュールを作成する

    http://www.hankpalan.com/blog/drupal/make-custom-drupal-module

  2. 次のコードを .module ファイルに追加します。

    function your_module_name_form_user_profile_form_alter(&$form, &$form_state) {

    unset ($form['contact']);

    }

于 2010-07-08T16:04:22.977 に答える
0

drupal で設定したモジュールを確認するか、連絡先フォームの設定を確認してください。サイト全体の連絡フォームとユーザーの連絡フォームのオプションがあると思います。

于 2010-03-29T19:58:34.617 に答える
-1

連絡先のアクセス許可を使用します。それは許可を提供します:

管理者が「個人連絡先フォーム」を使用できるロールを構成できるようにする「個人連絡先フォームを使用する」。

また、単純化モジュールには、そのための別のオプションがあります。

于 2015-05-25T15:42:35.427 に答える