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

管理テーマでレンダリングされるページを強制的に作成する方法はありますか?そのパスは ‘admin /’で始まります。

ベストアンサー

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

方法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.';
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です