2012-11-30 3 views
-1

mvc Codeigniter로 작성된 사이트가 있습니다. 특정 위치의보기 내부에서 다른보기를 호출하기를 원합니다. 예를 들어 메뉴가 많은 페이지에서 반복되고 모두에게 동일하기 때문입니다.보기 안에 다른보기를 포함시키는 가장 좋은 방법

public function home() 
    { 
     $data['menu_function'] = $this->load->view('backend/include/menu_function_view'); 
     $data['menu'] = $this->load->view('backend/include/menu_view'); 
     $this->load->view('backend/include/header_view_logged'); 
     $this->load->view('backend/home_view',$data); 
     $this->load->view('backend/include/footer_view'); 
    } 

을 내 home_view

<?php 
echo($menu_function); 
?> 
<div id="page"> 
    <?php 
    echo($menu); 
    ?> 
    <div id="content"> 
.... 

문제는 $ 메뉴 안에있는 내용을 양식 페이지 밖으로 것입니다으로 내 컨트롤러에서

나는이 쓰기 있습니다. 내가 불을 지르고에서 ithe HTML이 같은 것을 보았다 :

<div id="menu"> 
... 
</div> 
    <div id="page"> 
    ... 
    </div> 

대신 :

내가 그것을 어떻게

<div id="page"> 
    <div id="menu"> 
     ... 
    </div> 
    </div> 
을 를 해결할 수 ?

답변

1

이것이 최선의 방법인지는 모르겠지만 일반적으로보기에로드하는 템플릿 파일을 만드는 데 사용됩니다. 여기에 기본적인 아이디어 : 폴더보기에서

내가 파일 template.php을 만들 포함 컨트롤러에서

파일 header.php and footer.php

을 : 다음 폴더보기를 만들

$this->load->view('includes/header'); 
$this->load->view($main_content); 
$this->load->view('includes/footer'); 

이 /가 포함되어있는 등 전화 :

$data['main_content'] = 'user/dashboard'; 
$this->load->view('template', $data); 

편집 : 메뉴가 유용합니다. m

$ menu_config와 같은 데이터를 헤더 또는보기 템플릿에 전달하는 것은 어떻습니까?

header.php 컨트롤러에

<html> 
<head> 
    <title>$title</title> 
</head> 
<body> 

<?php 
    if($menu_position == 'top1') { 
     $this->load->view($menu); 
    } 
?> 

:

$data['main_content'] = 'user/dashboard'; 
$data['menu'] = 'top_menu'; 
$data['menu_position'] = 'top1'; 
$this->load->view('template', $data); 
+0

와 내가 머리글과 바닥 글과 함께했던 방법이지만 메뉴는 특정 부분에있는 경우 나 특정에 삽입 할 div –

+0

편집 한 답변은 어떻습니까? – SubRed

+0

$ this-> load-> view ($ menu)를 사용하면 아이디어가 효과적입니다. 나는 "include"와 같은 funxtion을 만들 수 있고 잘 작동한다. –

관련 문제