it-swarm-korea.com

활성 탭의 제목 가져 오기

현재 활성화 된 보조 탭의 제목을 가져올 수 있습니까?

나중에 콘텐츠에서이 탭의 제목을 다시 사용하고 싶습니다. 가까운 menu_local_tasks(1)을 찾았지만 전체 테마 출력을 반환합니다. hook_menu()에서 정의한 제목 만 원합니다.

편집 :
hook_menu 구조 (동위 요소를 포함하지 않고의 요소 만 잘림) :

$items['events/%node'] = array(
    'title' => 'Events',
    'page callback' => 'page_events',
    'page arguments' => array(1),
    'type' => MENU_NORMAL_ITEM,
);

$items['events/%node/stats'] = array(
  'title' => 'Stats',
  'access callback' => TRUE,
  'page callback' => 'page_stats',
  'page arguments' => array(1),
  'type' => MENU_LOCAL_TASK,
  'weight' => 3,
);

$items['events/%node/stats/year'] = array(
  'title' => 'This Year',
  'access callback' => TRUE,
  'type' => MENU_DEFAULT_LOCAL_TASK,
  'weight' => 0,
);

$items['events/%node/stats/lastyear'] = array(
  'title' => 'Last Year',
  'access callback' => TRUE,
  'page callback' => 'page_stats',
  'page arguments' => array(1),
  'type' => MENU_LOCAL_TASK,
  'weight' => 1,
); 

예를 들어 events/%node/stats/year 페이지에서 'This Year'를 받고 싶습니다.

3
ack

menu_get_active_title () 당신이 찾고있는 함수 여야합니다.

function menu_get_active_title() {
  $active_trail = menu_get_active_trail();

  foreach (array_reverse($active_trail) as $item) {
    if (!(bool) ($item['type'] & MENU_IS_LOCAL_TASK)) {
      return $item['title'];
    }
  }
}

메뉴 유형에 플래그 MENU_LOCAL_TASK (MENU_DEFAULT_LOCAL_TASK 메뉴 유형도 포함)가 포함 된 메뉴에서 작동합니다.

함수는 Drupal 7에서도 정의됩니다.

Update : /node/% node/view와 같은 메뉴의 경우 menu_get_active_title()은/node/% node의 제목을 반환합니다. . 다음 코드는 제목 콜백에 의해 제목이 제공되는 경우를 포함하여 이러한 경우에도 올바른 제목을 반환해야합니다. 나는 방금 Drupal 7; 내가 사용하는 테스트 사이트에 실제로 Drupal 6)가 없습니다.

$item = end(menu_get_active_trail());

if (!empty($item['title_callback'])) {
  $args = array();
  if (!empty($item['title_arguments'])) {
    foreach ($item['title_arguments'] as $value) {
      if (is_int($value)) {
        // Get the value from the menu item map.
        if (!empty($item['map'])) {
          $args[] = $item['map'][$value];
        }
      }
      else {
        $args[] = $value;
      }
    }
  }

  $title = call_user_func_array($item['title_callback'], $args);
} 
 else {
   $title = $item['title'];
 }
4
kiamlaluno

drupal_get_headers () 를 사용하여이를 수행 한 다음 결과를 파싱 할 수 있어야합니다.

1
greggles

menu_get_item ($ path = NULL, $ router_item = NULL) http://api.drupal.org/api/drupal/includes --menu.inc/function/menu_get_item/6 . 경로 값을 전달할 수 있어야합니다. 그러면 'title'값을 포함하는 메뉴 탭 항목의 세부 정보가 포함 된 배열이 반환됩니다.

$ _GET [ 'q']를 사용하여 현재 경로를 가져옵니다.

1
DeeZone