it-swarm-korea.com

팝업이 이미 사용 중일 때 노드 / 편집 화면에서 Drupal 7 오버레이를 어떻게 사용합니까?

노드/편집 양식에 버튼을 추가하는 모듈을 작성 중입니다. 이 버튼은 라이트 박스에 DIV/IFRAME를 팝업해야합니다. Drupal 7은 관리 및 노드/편집 페이지에 새로운 오버레이 모듈을 사용합니다.

그래서 내 질문은 내 버튼이 노드/편집 페이지에 있으므로 오버레이를 오버레이해야합니다. 오버레이에 액세스하여 변경하거나 Z- 인덱스를 변경하는 방법이 있습니까? 아니면 직접 오버레이 코드를 작성하여 라이트 박스 효과 (노드 오버레이/오버레이 편집)를 생성합니까?

1
Camsoft

오버레이에서 사용하는 Z- 색인을 변경할 수 있지만 필요하지 않다고 생각합니다. 오버레이 모듈에서 사용하는 것보다 높은 Z- 색인을 오버레이에 사용하기 만하면됩니다.

오버레이가 언제 출력되는지 또는 어떻게 출력되는지 알아야 할 경우 hook_page_alter() made의 구현 인 overlay_page_alter () 에 의해 실행되는 코드를 확인해야 overlay.module.

function overlay_page_alter(&$page) {
  // If we are limiting rendering to a subset of page regions, deny access to
  // all other regions so that they will not be processed.
  if ($regions_to_render = overlay_get_regions_to_render()) {
    $skipped_regions = array_diff(element_children($page), $regions_to_render);
    foreach ($skipped_regions as $skipped_region) {
      $page[$skipped_region]['#access'] = FALSE;
    }
  }

  $mode = overlay_get_mode();
  if ($mode == 'child') {
    // Add the overlay wrapper before the html wrapper.
    array_unshift($page['#theme_wrappers'], 'overlay');
  }
  elseif ($mode == 'parent' && ($message = overlay_disable_message())) {
    $page['page_top']['disable_overlay'] = $message;
  }
}
2
kiamlaluno