drupa8でhook_init()する方法

カテゴリ PHP コアバージョン 8.3x 関連モジュール PHP

 

コメント

ユーザー actbrain の写真

カスタムモジュールで対応

module_name
 +- src
 |   +- EventSubscriber
 |       +- Module_nameSubscriber.php
 +- module_name.info.yml
 +- module_name.services.yml

module_name.info.yml

name: Module name
type: module
description: 〜
core: 8.x

module_name.services.yml

services:
  module_name_event_subscriber:
    class: Drupal\module_name\EventSubscriber\Module_nameSubscriber
    tags:
      - {name: event_subscriber}

src/EventSubscriber/Module_nameSubscriber.php

<?php

namespace Drupal\min_init\EventSubscriber;

use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class Min_initSubscriber implements EventSubscriberInterface {

  public function checkForRedirection(GetResponseEvent $event) {
    $request_uri = $_SERVER['REQUEST_URI'];
    \Drupal::logger('min_init')->notice($request_uri);
    if (preg_match('!^(/node/[0-9]+/)(edit|clone/prepopulate).*?destination=node/[0-9]+$!', $request_uri, $m)) {
      $path = \Drupal\Core\Url::fromUserInput($m[1] . $m[2]);
      $response = new RedirectResponse($path->toString());
      $response->send();
    }
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    $events[KernelEvents::REQUEST][] = array('checkForRedirection');
    return $events;
  }

}

ページ

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ降順で並び替える Core Ver. 関連モジュール タイトル
フォーム 7.15 Webform Webformで確認画面
フォーム 7.15 Webform Webform - 確認ページの多言語化
フォーム 7.15 system mail()での送信が失敗する
フォーム 7.38 Webform Webformでタクソノミーを参照したい
フォーム 7.34 Webform 動的なフォーム(webform)
フォーム 7.38 Views Views一覧の絞り込み検索フォームで複数フィールドを対象にしたい
フォーム 7.16 Webform, Mail System, Mime Mail, Jp Mail Helper 送信メールのサブジェクトが長いと文字化けする
フォーム 7.15 Webform WebformのEntity Translation
フォーム 7.38 Webform Webformモジュールをアップデートしたら「このフィールドを入力してください」
フォーム 7.15 DefaultTextForNode 新しいページの作成方法を一から教えてください
フォーム 8.9.x api GET/POSTされた情報を得る方法
フォーム 8.6.x JavaScript 特定のformにJavaScriptを紐付ける方法
フォーム 8.9.x Views Views exposed filterのフォームに#default_valueを仕込む方法
フォーム 7.43 Webform フォーム関数が実行されるタイミングについて
ブロック 7.15 Views ひとつのViewsをページやブックページ中で再利用する方法は?
ブロック 7.23 伸縮するfieldsetブロックを追加したい
メール 7.50 Smtp smtpでGmailアカウントを使いたい
ユーザ 7.38 user form 新規ユーザー登録時、パスワード再設定時のパスワード入力抜けを防ぎたい
ユーザ 7.23 PHP user_load_multiple()の復帰値
ユーザ 7.44 Password Policy 無効なユーザーを整理したい

ページ