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