web-dev-qa-db-ja.com

パネルページのpage.tpl.phpオーバーライド?

すべてのPanelsカスタムページに特定のtpl.phpファイルを使用したい。

「Panels Everywhere」モジュールを使用しようとすると、いくつかのフォーマットの問題が発生するので、代替手段が必要です。

3
drupalmav

Template_preprocess_page関数を使用して、Panelsページのカスタムtplを追加できます。方法は次のとおりです。

/**
 * Implements template_preprocess_page().
 */
 function MODULEORTHEMENAME_preprocess_page(&$variables) {
    if (module_exists('page_manager') && count(page_manager_get_current_page())) {
        $variables['theme_hook_suggestions'][] = 'page__panels';
    }
 }

次に、カスタムPanelsページ用のpage--panels.tpl.phpを作成します。

7
arshadcn

質問はすべてのパネルページに影響を与えることなので、@ arshacnの答えは正しいですが、別個のtplが必要な場合、またはいくつかにのみ影響を与える場合は、どのcontentypeでもこれを実行します。

// ads theme-hook-nodetype-suggestions
      function MYMODULEORMYTHEME_preprocess_page(&$vars, $hook) {
        if (isset($vars['node']->type)) {
        $vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
        }
    }

これにより、「page--yourcontentype.tpl.php」の提案が追加され、必要なすべてのcontentypeに対してページ--yourcontentype.tpl.phpが作成されます。tplファイルをサブテーマテンプレートフォルダーに配置します。

0
pinueve