CI는 라라벨과 다르게 뷰페이지를 처리하는 블레이드템플릿처럼 섹션별로 바인드하는 방식이 없다는걸 확인.
검색을 하다보니 클래스확장을 통해서 맞춰주고 처리를 하더군요
bootstrap내 대시보드 레이아웃 샘플로 작업을 연동하려다 보니 css,js의위치에따라 레이아웃이 깨지는걸 확인-_-;;
결국 참조하여 만들기로 했습니다.
/application/core/ 디렉토리내에 MY_Loader.php라는 클래스를 만듭니다.(/application/config/config.php 내에 $config['subclass_prefix'] 값을 따라갑니다 디폴트값은 _MY입니다.)
생성을 했으면 클래스파일을 써주어야겠죠
대충대충 만들어재낍니다
소스 코드는 아래에 넣어둡니다.
class MY_Loader extends CI_Loader{ public function admintemplate($template_name, $vars = array(), $return = FALSE) { $param=array( 'template_name'=>$template_name,//컨텐츠 템플릿 뷰의 경로 'vars'=>$vars,//넘길 파라미터 'leftmenu'=>isset($vars['leftmenu']) ? $vars['leftmenu'] : 'adminlayout/leftmenu',//레이아웃 껍데기1 'topmenu'=>isset($vars['topmenu']) ? $vars['topmenu'] : 'adminlayout/topmenu',//레이아웃 껍데기2 'footer'=>isset($vars['footer']) ? $vars['footer'] : 'adminlayout/footer',//레이아웃 껍데기3 'ResourceTop'=>isset($vars['loadResource']['top']) ? $vars['loadResource']['top'] :array(),//레이아웃껍데기4 'ResourceBottom'=>isset($vars['loadResource']['bottom'])? $vars['loadResource']['bottom'] : array(),//레이아웃껍데기5 ); $this->view('adminlayout/body', $param); } //JS 로드 public function loadJs($src){ if(is_file(".".$src)){ return ''; } } //CSS로드 public function LoadCss($src){ if(is_file(".".$src)){ return ''; } } }
레이아웃이야 종류에따라 전부 다를테니...전 관리자대시보드기반인지라 사용자함수처리를 admintemplate으로 처리해뒀습니다.
이정도 검색할정도면 이미 뷰페이지경로에 대한 이해도가 있어 검색했을거라믿습니다.
컨트롤러에서 사용하는 방법입니다
public function index(){ $loadResource=array( 'top'=>array($this->load->loadCss("/resource/admin/vendors/iCheck/skins/flat/green.css"),), 'bottom'=>array($this->load->loadJs("/resource/admin/vendors/iCheck/skins/flat/green.css"),), ); $return=array('loadResource'=>$loadResource); $this->load->admintemplate('admin/main',$return); }
$this->load->loadCss("/resource/admin/vendors/iCheck/skins/flat/green.css")
의 경우 위와같이 리소스파일(js,css) 파일을 로드하는 형태입니다 body에서 처리되는 admintemplate에서 첫번째인자가 컨텐츠 템플릿이라고 보시면됩니다.
그럼 body쪽을 확인해 보실까요? top과 bottom으로 나눈이유는 위에 이미 이야기했으니 언급은 하지않겠습니다.
...뭔가 엄청 많지만 기본 레이아웃 껍데기안에서 $this->view 를 통해 처리가 되버립니다.해결은 얼추 보긴했습니다만
라라벨에서 지원하는 블레이드템플릿이 얼마나 좋은건지 다시한번 일깨워주네요. 일단 베이직하게 사용할수있게 body쪽을 아래에 공개합니다.
...syntaxhighlighter가 정상적으로 인식을 하지않아 텍스트로 남겨둡니다.
============================================================================================
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>관리자메인</title>
<?php foreach($ResourceTop as $k =>$r01):?><?=$r01.PHP_EOL?><?endforeach;?>
</head>
<body>
<?php $this->view($leftmenu)?>
<?php $this->view($topmenu)?>
<!-- page content -->
<?php $this->view($template_name)?>
<!-- /page content -->
<!-- footer content -->
<?php $this->view($footer)?>
<!-- /footer content -->
<?php foreach($ResourceBottom as $k =>$r02):?><?=$r02.PHP_EOL?><?endforeach;?>
</body>
</html>
'사용유틸리티' 카테고리의 다른 글
PhpStorm 관련 플러그인 추천 (0) | 2021.04.28 |
---|---|
무료 캡처툴 picpick (0) | 2017.06.20 |
[php]엑셀 다운로드 기능구현화 (0) | 2017.05.18 |
PHPSTORM 간 SVN 세팅 및 처리방법 (0) | 2017.04.24 |
phpstorm 관련 설정 (1) | 2016.10.31 |