2011-02-02 7 views
0

나는 무엇을 해야할지 모르겠다는 약간의 문제가있다.codeigniter 사이드 바

은 내가 가진 템플릿을

  • 헤더
  • 내용
  • 사이드 바
  • 바닥 글
  • 변경해야 할 유일한 것은 내용을 모두 내 페이지

, 그래서 내 사이드 ​​바/꼬리말에 데이터를 전달하는 방법

컨트롤러를 만들어야합니까? 또는 라이브러리를 만들고 내 template.php 파일에로드해야합니까?

내가이 템플릿 시스템 http://williamsconcepts.com/ci/codeigniter/libraries/template/index.html

답변

0

내가 특정 템플릿 라이브러리에 대해 확실하지 오전하지만 난 다른 뷰 안에 뷰를 중첩에 의해 일반적으로 수행되는 것을 알고 않습니다를 사용 한 데이터에로드로 초기보기는 중첩 된보기에도 전파됩니다. 템플릿 라이브러리없이

컨트롤러 기능

function index() { 

    $data['some_var'] = "some value"; 
    $data['another_var'] = "another value"; 

    $this->load->view('first_view',$data); 
} 

first_view

이때
<? $this->load->view('header') ?> 

<h1>Content</h1> 

<? $this->load->view('sidebar') ?> 
<? $this->load->view('footer') ?> 

, first_view에로드 header로 전파되는 $data, sidebarfooter.

따라서 이러한보기에서 $some_var 또는 $another_var을 사용할 수 있습니다.

UPDATE

당신은 귀하의 의견 에 데이터를로드 할 수있는 또 다른 방법은 전 세계적으로$data이보기 데이터, 당신이 당신의 템플릿을로드하기 직전에이 사항입니다

$this->load-vars($data); 

이 기능을 함께 템플릿에 의해로드 된 모든보기에서이 모든 데이터에 액세스 할 수 있어야합니다. 이 샷건 방식이지만 your chosen template library으로이를 수행하는 것이 좋습니다.

+0

@jondavidjohn 그 좋은 생각이지만, 그게 최선의 방법이 아니며, 더 나은 방법이 있어야한다고 생각합니다 :) 저를 도울 수있는 다른 사람이 있기를 바랍니다 :) 그러나 도움을 많이 주셔서 감사합니다;) – Sjmon

+0

내 대답을 업데이트했습니다. 템플릿 라이브러리 문서를 읽은 후 언젠가는보실 수 있습니다.) – jondavidjohn

+0

@jondavidjohn 그런데 모든 컨트롤러에 $ this-> load-> vars ($ data)를 입력해야 작동합니다 :/ – Sjmon

0

콘텐츠 만 변경하면 머리글, 사이드 바 또는 바닥 글에 대해 영역을 설정하지 않아도됩니다. 콘텐츠를 주 템플릿 파일에 추가하기 만하면됩니다.당신이 자주이 지역의 내용을 변경해야합니다 경우

그러나, 내가 좋아하는, 따라서 각 컨트롤러 생성자에서 "기본"이들 지역에 대한 전망 및로드를 만들 것입니다 :

$this->template->write_view('header', 'default/header'); 
$this->template->write_view('sidebar', 'default/sidebar'); 
$this->template->write_view('footer', 'default/footer'); 

을 당신도 다음 수 이러한 기본 지역보기를 확장하거나 메소드별로이를 덮어 씁니다 (자세한 내용은 라이브러리의 문서를 참조하십시오).