it-swarm-ja.com

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

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

13
hpn

Contribモジュールがあります ThemeKey that

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

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

関連する質問もチェックしてください ここ

4
Refineo

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

方法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_men を使用しています。詳細については、別の 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.';
}
14
timofey.com

モジュール開発者であれば、 hook_admin_paths を使用して、管理テーマでレンダリングするパスを定義できます。

7
Daniel

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

4
MediaFormat
  1. この機能は現在D7コアに含まれています。

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

1
aaronbauman