【Drupal】フォームフィールドをカスタムしたい時のフック関数
例えば、カスタムしたいフィールドを含むコンテンツタイプのシステム内部名称が「hoge_content_type」、
カスタムしたいフィールドのシステム内部名称が「field_fuga_date」とする。
またfield_fuga_dateのフィールドは日付型でyyyy/mm/ddからyyyy/mmの形式に変更したいとする。
yyyy/mm形式のフィールド
通常のフィールドの時
<?php
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_alter().
*/
function MY_MODULE_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form_id == 'node_hoge_content_type_edit_form') {
$form['field_fuga_date']['widget'][0]['value']['#date_date_element'] = 'month';
$form['field_fuga_date']['widget'][0]['value']['#date_date_format'] = 'Y-m';
}
}
$form_idの値は、念の為kint関数を用いるかしてコンテンツ登録画面にアクセスし正しい値を確認した方が良い。
Paragraph内のフィールドの時
/**
* Implements hook_field_widget_WIDGET_TYPE_form_alter().
*/
function MY_MODULE_field_widget_entity_reference_paragraphs_form_alter(&$element, &$form_state, $context) {
if ($element['#paragraph_type'] == '<パラグラフのシステム内部名称>') {
// yyyy/mmの形式にする
$element['subform']['field_fuga_date']['widget'][0]['value']['#date_timezone'] = 'Asia/Tokyo';
$element['subform']['field_fuga_date']['widget'][0]['value']['#date_date_element'] = 'month';
$element['subform']['field_fuga_date']['widget'][0]['value']['#date_date_format'] = 'Y-m';
}
}
Author And Source
この問題について(【Drupal】フォームフィールドをカスタムしたい時のフック関数), 我々は、より多くの情報をここで見つけました https://qiita.com/ookinimaru/items/816a1bd78ca5898c49a6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .