ページを強制的に管理テーマでレンダリングする(オーバーレイモード)


13

ページを「admin /」で始まるページのように、管理テーマで強制的にレンダリングする方法はありますか?

回答:


4

contribモジュールがありThemeKeyがあること

現在のパス、分類用語、言語、ノードタイプ、および他の多くのプロパティに応じてテーマを自動選択できる、シンプルまたは洗練されたテーマ切り替えルールを定義できます。また、他のモジュールによって公開される追加のプロパティをサポートするために簡単に拡張できます。Drupalのテーマの継承およびThemeKeyプロパティと組み合わせて、次のような機能を簡単に実現できます。

個別にスタイル設定されたチャンネルフロントページ/「スプラッシュ」画面日付/時刻選択されたクリスマステーマモバイルテーマさまざまな自動検出モバイルデバイス「限定」または「古い」ブラウザコンテンツ、ユーザー、またはロール固有のテーマ用の特別なテーマ環境(運用、ステージング、テスト、サンドボックスなど)を示して、ライブサーバーで安全に再設計をテストする

関連する質問もこちらで確認してください。


14

また、カスタムモジュールを作成してこれを行うこともできます。

方法1

これは、Drupalの内部パス(別名パスソース)に基づいて、既存のページをテーマにしたい場合に使用します。この例ではhook_custom_themeを使用します

<?php
function MYMODULE_custom_theme() {
  // match node/1
  if (arg(0) == 'node' && arg(1) == '1') {
    return variable_get('admin_theme');
  }
}

方法2

URLパス(別名パスエイリアス)に基づいて既存のページをテーマにしたい場合に使用します。この例でもhook_custom_themeを使用しています

<?php
function MYMODULE_custom_theme() {
  // get arguments
  $arg = explode('/', substr(request_uri(), strlen(base_path())));
  // match {wildcard}/path 
  // Using strpos as $arg[1] may end up having stuff like so ?order=title&sort=asc
  if (isset($arg[1]) && strpos($arg[1], 'path') !== false && !isset($arg[2])) {
    return variable_get('admin_theme');
  }
}

方法3

テーマを設定してページを作成する場合に使用します。この例ではhook_menuを使用します。詳細については、hook_menuに関する別のすばらしい記事をご覧ください

<?php
function MYMODULE_menu() {
  $items = array();

  // match some/path
  $output['some/path'] = array(
    'title' => t('Page Title'),
    'page callback' => 'MYMODULE_page',
    'theme callback' => 'variable_get',
    'theme arguments' => array('admin_theme'),
  )
}

function MYMODULE_page() {
  return 'Hello world.';
}


4

ページにadminで始まるパスを指定するだけです: 'admin / mypage'


1
なぜ下票なのか?この機能はD7コアにあり、質問ではどのバージョンが指定されていませんが、ポスターの時点で質問D7がリリースされました。
MediaFormat 14

うん、完全に意味のあるコメントIMO。
カウントゼロ14年

2
「admin /」で始まるカスタムページが必ずしも管理テーマを読み込むとは思えません。
DrCord

ビューに最適で単純化!
パトシパトシ

これは動作しません。
クリスティ

1
  1. この機能は現在D7コアにあります。

  2. 「hook_admin_paths」をUIに効果的に公開するモジュールがあります:https ://drupal.org/project/admin_theme

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.