관리자 테마로 페이지를 강제로 렌더링 (오버레이 모드)


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 / mypage'로 지정하십시오.


1
왜 공감해야합니까? 이 기능은 D7 코어에 있으며, 질문은 버전을 지정하지 않지만 포스터 시점에 질문 D7이 릴리스되었습니다.
MediaFormat

그렇습니다.
Countzero

2
'admin /'으로 시작하는 사용자 정의 페이지가 반드시 관리자 테마를로드하지 않는 것 같습니다.
DrCord

보기에 완벽하고 단순합니다!
Patoshi パ ト シ

작동하지 않습니다.
Christia

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.