HTMLのブロックをNode Add/Edit formに追加するにはどうすればよいですか?新しい#markup
フィールドを追加しようとしましたが、weight
を使用して必要な場所に配置できませんでした。
目的の場所については、下の画像を参照してください。セブンテーマの右側に表示される垂直タブのすぐ下。
グループ化された垂直タブと同じ方法でフォーム配列にレンダリング可能な要素を挿入する場合は、 hook_form_alter()
を追加してdetails
フォーム要素:
function MYMODULE_form_alter(&$form, $form_state, $form_id) {
// @TODO: Add your own logic for filtering relevant node forms
if (in_array($form_id, array('node_page_form', 'node_page_edit_form'))) {
$form['example'] = array(
'#type' => 'details',
'#title' => t(''),
'#description' => t(''),
'#group' => 'advanced',
'#open' => TRUE,
'markup' => array(
'#markup' => '<p>Random Markup</p>',
),
'#weight' => 1000,
);
}
}
ノードフォームに関係のないマークアップを追加する場合は、Sevenにサブテーマを付けて、独自の node-edit-form.htmlを追加することをお勧めします独自のマークアップを追加して、サブテーマに.twig テンプレートを追加します。
<div class="layout-node-form clearfix">
<div class="layout-region layout-region-node-main">
{{ form|without('advanced', 'actions') }}
</div>
<div class="layout-region layout-region-node-secondary">
{{ form.advanced }}
<p>Random Markup</p>
</div>
<div class="layout-region layout-region-node-footer">
{{ form.actions }}
</div>
</div>
セブンテーマのコンテンツ領域のメインコンテンツブロックの下にブロックを配置するだけで、フォームの下部にブロックが配置され、カスタムCSSを使用してブロックを設計できます。
/node/*/edit
/node/add/*
パスをブロックの表示フィールドに入力すると、ノード編集ページにのみブロックが追加されます。それ以外の場合、ブロックはすべての管理ページに表示されます。