| 제목 | 흠..헤더 질문입니다. | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 소연신 | 작성시각 | 2017/05/30 14:04:32 | 
|  | |||
| 뭔가 질문이 다시 옛날로 돌아간 느낌이네요 ㅎㅎ 
 일단.. 지금 헤더 분(body윗부분)을 클래스로 만들어서 주소별로 js랑 css 로드하고 있습니다. MY_Controller에 remap정의해서 공통헤더로요. 근데... 이렇게 하지말고 개별헤더로 사용하라고 하더라구요. 뭐, 불필요한 js가 로드될수도 있고, 조건을 계속 줘야되고, 뎁쓰가 무너지고..뭐 여러 이유였습니다. 
 
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Header
{
    function __construct()
    {
        $CI =& get_instance();
        $this->segment1 = $CI->uri->segment(1);
        $this->segment2 = $CI->uri->segment(2);
        $this->segment3 = $CI->uri->segment(3);
    }
    function load_Css()
    {
        return $this->loadCss();
    }
    function load_Js()
    {
        return $this->loadJs();
    }
    function load_HeadTag()
    {
        return $this->headTag();
    }
    function load_Header()
    {
        return $this->header();
    }
    protected function header()
    {
        $result = '';
        $result = $result.'<!doctype html>'."\n";
        $result = $result.'<html lang="en">'."\n";
        $result = $result.'    <head>'."\n";
        $result = $result.'        <meta charset="UTF-8">'."\n";
        $result = $result.'        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'."\n";
        $result = $result.'        <title>pickdol</title>'."\n";
        return $result;
    }
    protected function headTag()
    {
        $result = '';
        if ($this->segment1 != 'Admin' && $this->segment2 != 'Ajax_admin' && $this->segment2 != 'Ajax_admin_bean' && $this->segment2 != 'Ajax_admin_bet'
            && $this->segment2 != 'Ajax_admin_coin' && $this->segment2 != 'Ajax_admin_ip' && $this->segment2 != 'Ajax_admin_item' && $this->segment2 != 'Ajax_admin_level'
            && $this->segment2 != 'Ajax_admin_memo' && $this->segment2 != 'Ajax_admin_point' && $this->segment2 != 'Ajax_admin_stats' && $this->segment2 != 'Ajax_admin_accesslog'
            && $this->segment3 != 'get_game_result' && $this->segment3 != 'get_game_rate' ) {
            // 접속 ip
            set_access_ip_write();
        }
        $result = $result.'        <link href="/static/images/.ico" type="image/x-icon" rel="shortcut icon" />'."\n";
        $result = $result.'        <link href="/static/css/alertify.css" rel="stylesheet" />'."\n";
        if ($this->segment1 != 'Admin') {
            $result = $result.'        <link href="/static/css/layout.css" rel="stylesheet" />'."\n";
        }
        if ($this->segment1 == 'Main' || $this->segment1 == '') {
            $result = $result.'        <meta name="naver-site-verification" />'."\n";
            $result = $result.'        <meta name="Keywords" >'."\n";
            $result = $result.'        <meta name="description" >'."\n";
            $result = $result.'        <meta property="og:type" content="website">'."\n";
            $result = $result.'        <meta property="og:image">'."\n";
            $result = $result.'        <meta property="og:title" content="">'."\n";
            $result = $result.'        <meta property="og:keywords" >'."\n";
            $result = $result.'        <meta property="og:description" ">'."\n";
        }
        $result = $result.'        <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.js"></script>'."\n";
        $result = $result.'        <script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>'."\n";
        $result = $result.'        <script src="//cdn.jsdelivr.net/alertifyjs/1.9.0/alertify.min.js"></script>'."\n";
        $result = $result.'        <script src="/static/js/common.js"></script>'."\n";
        return $result;
    }
    protected function loadCss()
    {
        $result = '';
        switch ($this->segment1) {
            case 'Main':
            case '':
                $result = '        <link href="/static/css/main.css" rel="stylesheet" />';
                break;
            case 'User':
                $result = '        <link href="/static/css/user.css" rel="stylesheet" />';
                break;
            case 'Chatting':
                $result = '        <link href="/static/css/chat.css" rel="stylesheet" />';
                break;
            case 'Board':
                $result = '        <link href="/static/css/board.css" rel="stylesheet" />';
                break;
            case 'Mypage':
                $result = '        <link href="/static/css/mypage.css?v=201705" rel="stylesheet" />';
                break;
            case 'Market':
                $result = '        <link href="/static/css/market.css" rel="stylesheet" />';
                break;
            case 'Game':
                $result = '        <link href="/static/css/game_data.css" rel="stylesheet" />';
                break;
            case 'Memo':
                $result = '        <link href="/static/css/memo.css" rel="stylesheet" />';
                break;
            case 'Admin':
                $result = '        <link href="/static/css/admin.css" rel="stylesheet" />';
                break;
            case 'Rank':
                $result = '        <link href="/static/css/rank.css" rel="stylesheet" />';
                break;
            case 'Livegame':
                $result = '        <link href="/static/css/live_game.css" rel="stylesheet" />';
                break;
            default:
                # code...
                break;
        }
        return $result;
    }
    protected function loadJs()
    {
        $result = '';
        switch ($this->segment1) {
            case 'Main':
            case '':
            case 'User':
                $result = '        <script src="/static/js/user.js"></script>'."\n";
                break;
            case 'Board':
                $result = '        <script src="/static/js/board.js"></script>'."\n";
                $result = $result.'        <script src="/static/js/board_draw.js"></script>'."\n";
                $result = $result.'        <script src="/static/js/paging.js"></script>'."\n";
                break;
            case 'Mypage':
                $result = '        <script src="/static/js/mypage.js?v=201705"></script>'."\n";
                $result = $result.'        <script src="/static/js/paging.js"></script>'."\n";
                break;
            case 'Market':
                $result = '        <script src="/static/js/market.js?v=201705"></script>'."\n";
                break;
            case 'Game':
                if ($this->segment3) {
                    $result = '        <script src="/static/js/stats_'.$this->segment3.'.js"></script>'."\n";
                }
                break;
            case 'Memo':
                $result = '        <script src="/static/js/memo.js?v=201705"></script>'."\n";
                $result = $result.'        <script src="/static/js/paging.js"></script>'."\n";
                break;
            case 'Admin':
                if ($this->segment3 == 'members_whole' || $this->segment3 == 'members_block' || $this->segment3 == 'members_withdrawal') {
                    //$result = '<script src="/static/js/admin_point.js"></script>';
                } else if ($this->segment3 == 'coinpayment_list' || $this->segment3 == 'coin_list' || $this->segment3 == 'coin_pay' || $this->segment3 == 'account_info') {
                    $result = '        <script src="/static/js/admin_coin.js"></script>'."\n";
                } else if ($this->segment3 == 'rc_list' || $this->segment3 == 'rc_exchange' || $this->segment3 == 'rc_pay' || $this->segment3 == 'rc_set') {
                    $result = '        <script src="/static/js/admin_bean.js"></script>'."\n";
                } else if ($this->segment3 == 'point_list' || $this->segment3 == 'point_pay' || $this->segment3 == 'point_set') {
                    $result = '        <script src="/static/js/admin_point.js"></script>'."\n";
                } else if ($this->segment3 == 'item_list' || $this->segment3 == 'item_pay' || $this->segment3 == 'itembuy_list') {
                    $result = '        <script src="/static/js/admin_item.js"></script>'."\n";
                } else if ($this->segment3 == 'class_view' || $this->segment3 == 'class_point_list' || $this->segment3 == 'class_point_pay'  || $this->segment3 == 'class_point_set') {
                    $result = '        <script src="/static/js/admin_level.js"></script>'."\n";
                } else if ($this->segment3 == 'message_list' || $this->segment3 == 'message_confirm' || $this->segment3 == 'message_write') {
                    $result = '        <script src="/static/js/admin_memo.js"></script>'."\n";
                } else if ($this->segment3 == 'ip_access' || $this->segment3 == 'ip_block') {
                    $result = '        <script src="/static/js/admin_ip.js"></script>'."\n";
                } else if ($this->segment3 == 'best' || $this->segment3 == 'free' || $this->segment3 == 'tip' || $this->segment3 == 'humor' || $this->segment3 == 'photo' || $this->segment3 == 'sports' || $this->segment3 == 'entry' ||
                            $this->segment3 == 'reply' || $this->segment3 == 'accuse' || $this->segment3 == 'notice' || $this->segment3 == 'qna' || $this->segment2 == 'boardView') {
                    $result = '        <script src="/static/js/admin_board.js?v='.time().'"></script>'."\n";
                    $result = $result.'        <script src="/static/js/admin_board_draw.js"></script>'."\n";
                } else if ($this->segment3 == 'site_popup') {
                    $result = '        <script src="/static/js/popup.js"></script>'."\n";
                } else if ($this->segment3 == 'site_imagebanner') {
                    $result = '        <script src="/static/js/banner.js"></script>'."\n";
                } else if ($this->segment3 == 'stats') {
                    $result = '        <script src="/static/js/admin_stat.js"></script>'."\n";
                } else if ($this->segment3 == 'bet_betting' || $this->segment3 == 'bet_rank') {
                    $result = '        <script src="/static/js/admin_bet.js"></script>'."\n";
                }
                $result = $result.'        <script src="/static/js/paging.js"></script>'."\n";
                $result = $result.'        <script src="/static/js/admin.js"></script>'."\n";
                $result = $result.'        <script src="/static/js/admin_draw.js"></script>'."\n";
                break;
            case 'Test':
                $result = '';
                break;
            case 'Rank':
                $result = '        <script src="/static/js/rank.js?v=20170515"></script>'."\n";
                $result = $result.'        <script src="/static/js/paging.js"></script>'."\n";
                break;
            case 'Livegame':
                $result = '        <script src="/static/js/livegame.js"></script>'."\n";
                break;
            default:
                # code...
                break;
        }
        if($this->segment1 != 'Admin') {
            $result = $result.'        <script src="/static/js/jquery.bxslider.min.js"></script>'."\n";
            $result = $result.'        <script src="/static/js/publish.js"></script>'."\n";
            $result = $result.'        <script src="/static/js/popup.js"></script>'."\n";
            $result = $result.'        <script src="/static/js/banner.js"></script>'."\n";
            $result = $result.'        <script>window.alert = null</script>'."\n";
        }
        return $result;
    }
}
기존에 사용하던 공통헤더입니다. 다른 분들은 헤더 부분을 어떻게 관리하는지 궁금합니다. 공통헤더 말고 모든 페이지마다 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title></title>
    <script>
            window.serverInfo = {
                "host":"<?=$gchathost;?>",
                "port":80
            };
    </script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div id="isle">
</div>
<script>
      
    </script>
</body>
</html>그냥 이런식으로 사용하라는데..솔직히 이해가 잘 안가서요. 여러분들은 어떻게 하시는지 의견을 듣고 싶습니다. | |||
| 다음글 | $this->db->close(); 이거 꼭... (3) | ||
| 이전글 | db 수동연결시 폼 검증에 대해 여쭤보고 싶습니다. (2) | ||
| 
                                한대승(불의회상)
                                /
                                2017/05/30 14:20:49 /
                                추천
                                0
                             
                                레이아웃을 만들고 레이아웃별로 관리하고 있습니다.
                             | 
| 
                                변종원(웅파)
                                /
                                2017/05/30 14:24:33 /
                                추천
                                0
                             헤더, 푸터는 웹, 모바일, 팝업용도로 3개 사용하고 내부에서 분기처리합니다. _remap 에서 선언해서 사용합니다. 간결하고 눈에 잘 띄도록 하는게 중요하다고 생각하는 1인이라서요. |