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. 関連モジュール降順で並び替える タイトル
サイトの環境設定 8.9.x 編集
CentOS 7.50 消せないファイルを消すには
jQuery Revolution 7.50 jQuery Revolutionのリンクがスマホで機能しない
テーマ 8.7.x Bartikのtwigについて
PCRE 7.50 preg_match()がおかしい
テーマ 8.9.x スマホに向いたテーマについて
サイトの環境設定 7.15 トップ(ホーム)ページを変更するには?
コンテンツの作成 8.4x コンテンツ作成時のフォームレイアウトの変更
コンテンツの管理 8.9.x 写真の変更を行いたい
言語 6.22 URLエイリアスを使った場合に、翻訳したページで同じURLエイリアスが使えないという不具合
Apache2.4 7.50 Apache2.4のアクセス制限
テーマ 7.34 スマホ、PCおよびアプリを同時に運用可能なおすすめのテーマはありますでしょうか?
ブロック 7.23 伸縮するfieldsetブロックを追加したい
コンテンツの管理 8.4x Action カスタムアクションを作成する方法
コンテンツの管理 7.50 Administration menu 標準のユーザー管理ページ
コンテンツの作成 7.34 ajax 標準のajaxフォーム(複数値:値の数=無制限)の制御l方法
SESSION 8.9.x api $_SESION操作のAPI
サイト情報 8.9.x api Drupal::request() メモ
フォーム 8.9.x api GET/POSTされた情報を得る方法
コンテンツの作成 8.4x archiver zipファイル圧縮・解凍する方法

ページ