
Drupal8 保存時にHookを使って値を追加したい
2021-08-29T16:04:00.000Z
Drupal
こんにちは 田村です。
Drupal8で保存時に処理を追加したい場合がありました。
保存時になにか処理を追加したい場合はHookを使って処理を追加するよと良さそうです。
例えば「保存時に『公開期限』が空の場合に公開日の100日後を追加する」といった処理を追加したいとします。
この場合、仮にmasizime_custom
というカスタムモジュールを作成し次のように記述します。
このHookの後で保存処理が行われるので、Hook内では変数をセットするだけで大丈夫です。
modules/custom/masizimecustom/masizimecustom.module
/**
* Implements hook_node_presave().
*/
function masizime_custom_node_presave($node)
{
if ($node->getType() == 'article') {
// 公開状態で「公開期限」が空の場合公開日の100日後をセット
if ($node->isPublished() && !$node->unpublish_on->value) {
$node->unpublish_on->setValue(strtotime('100 day', $node->created->value));
}
}
}
https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_ENTITY_TYPE_presave/8.2.x
以上
「Drupal8 保存時にHookを使って値を追加したい」でした。