2017-03-23 4 views
1

Drupalの8.2 my_module.moduleファイルに次のコードがあります。Drupal 8、hook_preprocess_ルート別ページ

 

    /** 
    * Implements hook_preprocess_page(). 
    * 
    */ 
    function my_module_preprocess_page(&$variables) { 
     if(\Drupal::routeMatch()->getRouteName() == my.route) 
      doSomething(); 
    } 


    function doSomething(){ 
     //code here 
    } 

私の意図は、いくつかのコードユーザーがmy.routeを要求した場合のみを実行することです。

Drupalにはこのような機能はありますか?

 

    function my_route_preprocess_page(&$variables) { 
     //code here 
    } 

ありがとうございます。

答えて

0

drupalには、そのような前処理機能はありません。

実際に使用するフックはhook_preprocess_page()ではなくhook_preprocess_HOOK()で、ページだけでなくルート以外についても使用できます。 hook_preprocess_HOOK() apiを参照してください。

0

いいえ、テーマの前処理のアイデアはあなたの小枝で利用できる変数を前処理しているので、実際にはルートを前処理していないので、Drupal 8はあなたが望むような機能(ルートの前処理)意味をなさない

あなたは、あなたのルートで検証したページ、ブロック、ビューなどを前処理しているようにすることができます。

function theme_preprocess_page(&$variables) { 
    $current_route = \Drupal::routeMatch(); 
    $route_name = $current_route->getRouteName(); 

    else if($route_name == 'myroute.hook') { 
     //your logic here 
    } 
} 

あなたは、Drupalのドキュメント上のDrupal 8のために利用可能なテーマの前処理について詳しく読むことができます:theme.incを。