2016-10-18 3 views
1

이것은 내 코드입니다. 나는 페이지와 어린이 페이지에 메뉴를 보여준다. 문제는 어린이의 모든 어린이 페이지에이 메뉴를 표시하는 방법입니까? 거기에어린이 페이지에 메뉴를 표시하는 방법 모든 어린이 페이지 drupal

/** 
* Implements hook_preprocess_page(). 
*/ 
function agnian_material_admin_preprocess_page(&$variables) { 
// @todo: add an if statement to add below data only for "page__admin__content" page. 
$variables['node_types'] = node_type_get_names(); 

가/** * 렌더는 "admin/구조"페이지의 메뉴는 모든 하위 페이지를합니다.

// get current page path 
$path = \Drupal::request()->getPathInfo(); 
if(strpos($path, '/admin/structure') !== false) { 
$tree = \Drupal::menuTree(); 
$params = $tree->getCurrentRouteMenuTreeParameters('admin'); 
$admin_menu = $tree->load('admin', $params); 
$admin_structure_menu = array_key_exists('system.admin_structure', $admin_menu['system.admin']->subtree) ? $admin_menu['system.admin']->subtree['system.admin_structure'] : null; 
if($admin_structure_menu) { 
$subtree = $tree->build($admin_structure_menu->subtree); 
*/

/*이 부분 만 "관리/구성"페이지 사이에 메뉴 항목 위치를 동기화 및 그것은 동기화 */

$old_items = $subtree['#items']; 
$tmp = $subtree['#items'] = array(); 
foreach($old_items as $key => $value) $tmp[$key] = $value['title']; 
asort($tmp); 
foreach($tmp as $key => $value) $subtree['#items'][$key] = $old_items[$key]; 

/* 끝 */

자식 페이지의
$variables['admin_menu'] = $subtree; 
} 
} 

/** End of Render "admin/structure"페이지의 메뉴는 모든 서브 페이지에 있습니다. * /}

+0

u는 백 오피스를 사용하여 메뉴 페이지와 하위 페이지를 연결하면 나는 메뉴가 모든 논문 페이지에 표시됩니다, 그것을 얻을 – Matoeil

+0

다른 옵션을 해달라고 백 오피스에 메뉴를 만들고, 메뉴 블록을 표시하고, 매개 변수를 표시합니다. 원하는 페이지를 선택하십시오. – Matoeil

+0

재생 해 주셔서 감사합니다. 나는 뒷자리가 무엇인지 이해하지 못한다. 이 대구 메뉴는 첫 번째 자식에만 표시됩니다. 예를 들어 내 페이지는 x이고 x는 x에 표시된 메뉴이며 x1은 자식 x2 (x> x1> x2)에 표시되지 않습니다. 내 문제는 x2 및 x3 페이지의 메뉴입니다. – Evi

답변

0

함께

if(strpos($path, '/admin/structure') !== false) { 

교체하려고

[^/+ "슬래시 제외한 하나 개 이상의 문자"의미한다.

또는 구조 후 무엇을해야

 if( preg_match("/admin/structure(.*)", $path)!== false) { 
+0

친애하는, Matoeil. 시간 내 주셔서 감사 드리며 답장을 보내십시오. 나는 그것을 대체했지만 작동하지 않으며 메뉴조차도 부모 페이지에 표시되지 않습니다 (나는 무엇을 해야할지 모르겠다 ( – Evi