it-swarm-korea.com

프로그래밍 방식으로 일부 콘텐츠 영역에서 새 메뉴 블록을 만들고 설정하는 방법

프로그래밍 방식으로 몇 가지 요소를 추가하고 일부 콘텐츠 영역에서 블록으로 활성화하는 새 메뉴를 만들고 싶습니다.

프로그래밍 방식으로 어떻게 할 수 있습니까?

기존 메뉴에 새 요소를 추가하는 방법을 알고 있지만 새 메뉴를 만드는 방법을 모릅니다.

1
Ek Kosmos

menu_save를 사용하여 메뉴를 저장합니다.

$menu = array(
  'menu_name' => '',
  'title' => '',
  'description' => '',
);
menu_save($menu);

블록을 활성화하는 API 함수가 있는지 확실하지 않지만 블록 테이블에 행을 삽입하여 수행 할 수 있습니다. 모듈, 델타, 테마 및 지역을 알아야합니다. 메뉴의 경우 메뉴 모듈은 delta가 menu_name 인 메뉴를 만듭니다.

따라서 위의 경우 다음과 같이 할 수 있습니다.

$menu_block = array(
  'module' => 'menu',
  'delta' => $menu['menu_name'],
  'theme' => '', // Either get the active theme or you can do it for all themes
  'region' => 'content', // Where you want to place it, theme dependant
  'status' => 1,
);

따라서 할 수있는 동안이 테마를 특정하게 만들거나 설치 프로필에서이 작업을 수행 할 수 있습니다. 여기서 어떤 테마가 활성 테마 여야하는지 등을 알고 있습니다.

3
googletorp

며칠 전에 비슷한 질문이있었습니다. hook_menu를 사용하여 모듈에서 평소처럼 메뉴를 만든 다음 hook_install을 사용하여 새 메뉴를 만들 수 있습니다.

 $items['devel/cache/clear'] = array(
  'title' => 'Empty cache',
  'page callback' => 'devel_cache_clear',
  'description' => 'Clear the CSS cache and all database cache tables which store page, node, theme and variable caches.',
  'access arguments' => array('access devel information'),
  'menu_name' => 'devel',
);

자체 메뉴가있는 사용자 정의 모듈?

0
oranges13