web-dev-qa-db-ja.com

コンテンツタイプまたはユーザーロールごとに垂直タブを無効にする

一部のユーザーは、ノード編集フォームの垂直タブに表示されるフィールドセットのいずれかを編集する機能しか持っていない場合があります。このような場合、垂直タブを1つしか選択できないため、垂直タブを使用するのはかなりばかげています。スクリーンショットを見る:

screenshot

では、ユーザーの役割によって垂直タブを無効にすることは可能ですか?または、それを除いて、特定のコンテンツタイプに対して完全に無効化しますか?私のユースケースでは、場所を垂直タブに表示しないようにします。

レンダリング可能なフィールドとフィールドグループを一緒に試しましたが、フォームが正しく管理されていませんでした(バグだと思います)。アレンジフィールドは垂直タブを分離することはできません。

10
Jay

これにはいくつかの方法があります。

  1. Renderable Elements モジュールを使用できます(前述のとおり)。これにより、インストールの任意のビルドを登録し、フィールドUIを介して表示を管理できます。フォームの管理/表示画面で既存のエンティティの(追加の)要素を利用できるようにします。たとえば、連絡先フォームを登録し、フィールドUIを介してフィールドを再配置できます。現在はフォームで問題なく機能しますが、その他のサポートは2回目の反復で提供されます。

  2. または、カスタムモジュールに以下を追加します。

    $config['yourcontenttype_node_form'] = FALSE;
    variable_set('vertical_tabs_forms', $config);
    
  3. 垂直タブを無効にする sandbox module

これがこれです コアの問題 これを指します。

7
user842

#accessチェックを使用して、垂直タブが表示されないようにすることもできます。

$form['additional_settings']['#access'] = FALSE;

それをフックフォームの変更に、またはフォームのロードとレンダリングの間に追加するだけです。その後、render($ form)を呼び出してマークアップを取得できます。

6
Derek Webb

レンダリング可能な要素は現在サポートされていません。プロジェクトページでは、他の提供されたモジュールと競合するため、本番サイトではこれに依存しないことを認めています。

垂直タブを完全に無効にする方法の問題は this thread で対処されます。

Dripmanは、垂直タブを完全に無効にする シンプルなサンドボックスモジュール を作成しました。

Dripmanのモジュールは、コーディングに対する希望のレベルに応じて、フィールドや役割に基づいて選択できるように簡単にカスタマイズできます。

@nicozによる簡潔な回答との重複についての謝罪

0
autopoietic

モジュール Vertical Tabs Visibility を使用できます。

このモジュールは、コンテンツタイプの追加/編集フォームの垂直タブの可視性を管理するのに役立ちます。

コンテンツタイプの垂直タブの表示を管理するには、フォームを追加/編集します。単に/admin/config/user-interface/vertical-tabs-visibilityページを開き、コンテンツタイプを選択します。ノードの追加/編集フォームの垂直タブは、チェックされたコンテンツタイプに対して無効になります。

現在モジュールはサンドボックスにあります

0
milkovsky

私の使用例では、ノード編集フォームのPublishing optionsセクションに適用されている垂直タブを無効にしようとしました(これは、特定のユーザーセットがアクセスできる唯一のフィールドセットだったためです)。

// Place somewhere in MYMODULE_form_alter()...
$form['additional_settings']['#type'] = 'fieldset';
$form['additional_settings']['#collapsible'] = FALSE;
$form['options']['#collapsible'] = FALSE;

明確にするために、additional_settings#collapsibleをFALSEに設定する必要があるだけでなく、その中の要素には#collapsibleset toFALSE, in my case that was theoptions`要素も必要です。

0