태그 게시판 만들기 > 기술자료 | 해피정닷컴

태그 게시판 만들기 > 기술자료

본문 바로가기

사이트 내 전체검색

태그 게시판 만들기 > 기술자료

그누보드 태그 게시판 만들기

페이지 정보


본문

테그 게시판으로 변경하는 방법입니다.



1. skin / board / style.css 끝에 내용 추가
/* 태그 */
.tagList{width:100%;height:auto;overflow:hidden;font-size:0.7em;}
.tagList.view{padding-bottom:30px;position:relative;box-sizing:border-box;padding-left:30px}
.tagList.view i.material-icons{display:block;width:30px;height:30px;position:absolute;left:0;top:0;line-height:30px;text-align:center;color:#34c3d4}
.tagList.view .tagListIpt{height:auto;border:none;padding:0}
.tagList.view .tagListIpt ul li.tag{padding-right:10px}
.tagList.view .tagListIpt ul li.tag:hover{background:none}
.tagList.view .tagListIpt ul li.tag a{color:#34c3d4;}
.tagList.view .tagListIpt ul li.tag a:hover{text-decoration:underline}
.tagList .tagListTit{width:100%;height:auto;overflow:hidden;line-height:30px;box-sizing:border-box;padding-left:30px;position:relative}
.tagList .tagListTit u{color:#666;text-decoration:none}
.tagList .tagListTit i{width:30px;height:30px;position:absolute;left:0;top:0;text-align:center;line-height:30px;}
.tagList .tagListTit span{display:inline-block;float:right;color:#666;padding-right:10px;line-height:30px}
.tagList .tagListTit span a{color:#34c3d4;margin:0 5px}
.tagList .tagListTit span a:hover{color:#666}
.tagList .tagListIpt{background:#fff;width:100%;height:auto;overflow:hidden;box-sizing:border-box;padding:10px;border:1px solid #ccc}
.tagList .tagListIpt ul li{display:inline-block;float:left;color:#34c3d4;position:relative;padding-left:10px;padding-right:30px;line-height:30px}
.tagList .tagListIpt ul li.tag{cursor:pointer}
.tagList .tagListIpt ul li.tag:hover{background:#34c3d4;color:#fff}
.tagList .tagListIpt ul li i{display:block;width:30px;height:30px;line-height:30px;position:absolute;top:0;right:0;}
.tagList .tagListIpt ul li input[type='text']{padding:0 10px;color:#34c3d4;height:30px;background:none;border:none}
.tagList .tagListIpt ul li span.overlap{ color: #e82727; }

.tagInfo{width:100%;height:auto;overflow:hidden;margin-top:10px;min-height:30px}
.tagInfo a{display:inline-block;line-height:30px;color:#34c3d4;margin-right:5px}
.tagInfo a.onTag{color:#ff28ee;text-decoration:underline}
.tagInfo a:hover{text-decoration:underline}



2. skin / board / basic / list.skin.php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
아래에 내용 추가

// wr_tag 필드 추가
$field_query = "SHOW COLUMNS FROM {$write_table} WHERE `Field` = 'wr_tag';";
$field_row = sql_fetch( $field_query );
if(!$field_row['Field']) {
    sql_query(" ALTER TABLE `{$write_table}` ADD `wr_tag` varchar(255) default '' ", true);
}



3. skin / board / basic / write.skin.php

3-1. 페이지 상단에 css 추가하기
add_stylesheet('<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">', 0);


3-2. 태그 입력창 추가
    <input type="hidden" name="wr_tag" id="wr_tag">
    <div class="tagList">
        <div class="tagListTit">
            <i class="material-icons">label</i>    태그입력 <u>( 최대15글자 / 10개 / <b>spacebar</b>를 이용해 작성 )</u>
        </diV>
        <div class="tagListIpt">
            <ul>
                <?php
                if($write['wr_tag']){
                    
                    $tags = explode(',',$write['wr_tag']);
                    for($i=0; $i<count($tags); $i++){
                        echo '<li class="tag">#<span>'.$tags[$i].'</span><i class="material-icons">clear</i></li>';
                    }
                }
                ?>
                <li class="tabTxt"><input type="text" id="tagIpt" placeholder="태그를 입력해주세요!" maxlength="15"></li>
            </ul>            
        </div>
    </div>


3-3. 페이지 하단에 script 추가
    <script>
    // 태그 스크립트
    $(window).ready(function(){
        
        $(document).on('click','.tag > i',function(){
            $(this).parent().remove();
        });
        
        $(".ppTag").click(function(){
            inputTag($(this).data('word'));
            return false;
        });

        $("#tagIpt").on("keyup", function(event) {
            $(".tagListIpt ul li span").removeClass('overlap');
            if(event.keyCode == 32){
                $(this).val($(this).val().replace(/ /gi, ""));
                inputTag($(this).val());
            }
        });

    });

    function inputTagList(){
        var linCnt = $(".tagListIpt ul li.tag").length;
        var tag = '';
        for(var i=0; i<linCnt; i++){
            var j = i+1;
            if(!tag){
                tag = $(".tagListIpt ul li:nth-child("+j+") span").html();
            }else{
                tag += ','+$(".tagListIpt ul li:nth-child("+j+") span").html();
            }
        }
        tag = tag.replace(" ", "");
        console.log('after replace : '+tag);
        $("#wr_tag").val(tag);
    }

    function chkOverlap(a){
        var linCnt = $(".tagListIpt ul li.tag").length;
        var overlap = false;
        for(var i=0; i<linCnt; i++){
            var j = i+1;
            if(a == $(".tagListIpt ul li:nth-child("+j+") span").html()){
                $(".tagListIpt ul li:nth-child("+j+") span").addClass('overlap');
                overlap = true;
            }
        }
        return overlap;
    }

    function inputTag(a){
        a = a.replace(/ /g, '');
        var linCnt = $(".tagListIpt ul li.tag").length;
        if(chkOverlap(a) == false){
            if(linCnt < 10){
                var taghtml_ = '';
                taghtml_ += '<li class="tag">#<span>';
                taghtml_ += a;
                taghtml_ += '</span><i class="material-icons">clear</i></li>';    
                
                $(".tabTxt").before(taghtml_);
            }else{
                alert('태그틑 최대 10개까지 입력가능합니다.');    
            }
            $("#tagIpt").val('');
        }
    }
    </script>



4. skin / board / view.skin.php

4-1. 상단에 css 추가
add_stylesheet('<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">', 0);


4-2. 테그가 보일 위치에 내용 추가    
    <!-- 태그 -->
    <?php
    //echo "wr_tag = ". $view['wr_tag'];
    if($view['wr_tag']){
        $tags = explode(',',$view['wr_tag']);
    ?>
        <div class="tagList view">
            <i class="material-icons">label</i>
            <div class="tagListIpt">
                <ul>
                    <?php for($i=0; $i<count($tags); $i++){?>
                        <li class="tag"><a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table?>&sfl=wr_tag&stx=<?php echo $tags[$i]?>"># <?php echo $tags[$i]?></a></li>
                    <?php }?>
                </ul>            
            </div>
        </div>
    <?php
    }
    ?>
 

댓글목록

등록된 댓글이 없습니다.


Total 2,640건 15 페이지
  • RSS
기술자료 목록
2360
HTML   8127  2019-12-16 12:13 ~ 2019-12-16 12:46  
2359
Linux   7456  2019-12-13 21:28  
열람
그누보드   5606  2019-12-10 21:41 ~ 2019-12-10 22:07  
2357
그누보드   6025  2019-11-08 13:38 ~ 2019-11-15 11:33  
2356
PHP   6590  2019-10-28 10:05  
2355
HTML   8920  2019-10-25 18:48 ~ 2019-10-25 18:49  
2354
그누보드   7337  2019-10-16 02:05 ~ 2019-10-16 02:52  
2353
JavaScript   6829  2019-10-02 22:05 ~ 2019-10-04 16:13  
2352
PHP   8541  2019-10-02 16:52 ~ 2020-06-05 13:50  
2351
Linux   5575  2019-10-02 16:42 ~ 2019-10-02 16:49  
2350
그누보드   5204  2019-09-30 20:00  
2349
Linux   6331  2019-09-30 18:06 ~ 2021-09-01 13:12  
2348
HTML   6902  2019-09-27 14:07 ~ 2019-09-27 14:08  
2347
PHP   12372  2019-09-27 10:14 ~ 2019-09-27 10:52  
2346
영카트   7376  2019-09-27 09:25  
2345
PHP   8934  2019-09-24 00:41 ~ 2019-09-24 00:42  
2344
Linux   5403  2019-09-23 23:03  
2343
그누보드   4927  2019-09-23 08:32  
2342
Secure   6019  2019-09-19 22:17  
2341
제로보드   7805  2019-09-17 14:13 ~ 2019-09-17 14:21  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.