Basic Chulsuk에서의 출석 여부를 나타내는 위젯

Tip & Tech

활용팁

홈 > 회원포럼 > 활용팁
활용팁

Basic Chulsuk에서의 출석 여부를 나타내는 위젯

13 이니스프리 22 887 6 0

안녕하세요?


주말 잘 보내고 계시는지요? ^^


어느덧 2018년도 앞으로 주말이 두 번밖에 남지 않았네요~



한별아빠 님께서 만들어주신 출석부 보드스킨(Basic Chulsuk 1.8)를 잘 사용하다가


출석 여부를 보여주는 위젯을 찾지 못해서 급하게 하나 만들어봤어요~

(혹시 위젯이 이미 아미나에 올라와있는데 제가 삽질을 한 것이 아닌지 모르겠네요.) 


제가 건망증이 심해서 그런지 메인화면에 출석 위젯이 없으면 출석을 자주 잊어버리더군요 ㅠㅠ


제 실력이 미천해서 코딩이나 디자인이 다소 투박하거나 어색할 수 있다는 점을 양해 부탁드려요~ 


여러모로 부족한 스크립트이지만 한별아빠 님을 비롯한 아미나 회원님들께 번번이 신세만 져서 감사한 마음에 올려보네요 ^^


제가 사용법을 잘 모르는지 SyntaxHighlighter를 사용하면 계속 문제가 발생해서 부득이 코드를 그냥 올려드려 죄송하네요. 



<style>

.myButton {

    background-color:#44c767;

    -moz-border-radius:28px;

    -webkit-border-radius:28px;

    border-radius:28px;

    border:2px solid #10781a;

    display:inline-block;

    color:#ffffff;

    font-family:Arial;

    font-size:17px;

    padding:16px 31px;

    text-shadow:0px 1px 0px #2f6627;

}

.myButton:active {

    position:relative;

    top:1px;

}

#no_attendance {

  background-color:#f51111;

  border:2px solid #9c1111;

}

</style>

  

<?php  

    global $g5, $member;

    $bo_table = ''; // 게시판 테이블명을 입력하세요.

    $write_table = "g5_write_{$bo_table}";

    $sql_attendance = " select mb_id from $write_table where mb_id = '{$member['mb_id']}' and wr_datetime >= '".G5_TIME_YMD." 00:00:00' and wr_datetime <= '".G5_TIME_YMD." 23:59:59' ";

    $result = sql_fetch($sql_attendance);

    if ($result['mb_id']) {

        echo "<a href = '/bbs/board.php?bo_table=".$bo_table."' class='myButton'><i class='fa fa-calendar-check-o'></i>출석완료!</a>";

    } else {

        echo "<a href = '/bbs/board.php?bo_table=".$bo_table."' class='myButton' id='no_attendance'><i class='fa fa-calendar-check-o'></i>출석하세요</a>";

    }

?>



정상적으로 출석을 했다면 다음과 같이 초록색으로 출력됩니다.

(너무 당연한 것이지만 노파심에서 말씀드리면 폰트어썸이 적용되어 있어야 아이콘이 출력됩니다) 


1a19e1c3262984d88a9f589d37d5cd73_1544888654_0749.png
 


만약 출석을 하지 않았으면 CSS에서 #no_attendance가 선택되도록 하여 빨간색으로 출력되도록 했어요.


1a19e1c3262984d88a9f589d37d5cd73_1544888699_6601.png
 

보기에는 좀 흉하지만 이렇게 표시되면 저처럼 건망증이 심한 사람도 정신이 번쩍 들어서 출첵을 잊어버리기 힘들 것 같네요 ㄷㄷ



제가 어제와 오늘 이틀에 걸쳐 테스트했을 때에는 잘 작동하는데 다른 분들의 환경에서는 어떨지 모르겠네요.

(죄송하지만 제 핸드폰에 문제가 있어서 모바일에서는 아직 테스트를 못했네요 ㅠㅠ) 


생각해보니 제 OS와 모니터에서 블루라이트 차단 모드가 켜있어서 다른 분들과 색상이 좀 다르게 보이긴 하겠네요.


그리고 메인에 접속할 때마다 DB를 확인한다는 점에서 비효율적이긴 한데 이 부분과 관련해서는 제가 좀 더 공부해볼게요~



한편 widget.setup.php 파일이 굳이 필요할까 생각이 들긴 하지만 다음과 같이 간단하게 작성해 봤네요~! ^^


위에 올려드린 스크립트에서 1) $bo_table 변수를 선언하는 부분을 삭제하시고, 2) $bo_table -> $wset['bo_list'] 모두 변경하셔야 


widget.setup.php과 연동되어 정상적으로 작동하겠네요.



<?php

    if (!defined('_GNUBOARD_')) exit;

?>

 

<div class="tbl_head01 tbl_wrap">

    <table>

    <caption>위젯설정</caption>

    <colgroup>

        <col class="grid_2">

        <col>

    </colgroup>

    <thead>

    <tr>

        <th scope="col">구분</th>

        <th scope="col">설정</th>

    </tr>

    </thead>

    <tbody>

    <tr>

        <td align="center">추출보드</td>

        <td>

            <?php echo help('출석부 보드스킨(Basic Chulsuk 1.8)의 보드아이디를 적어주세요.');?>

            <input type="text" name="wset[bo_list]" value="<?php echo $wset['bo_list']; ?>" size="60" class="frm_input">

        </td>

    </tr>

    </tbody>

    </table>

</div>


1a19e1c3262984d88a9f589d37d5cd73_1544888748_8967.png
 


여러모로 부족한 제 스크립트를 읽어주셔서 항상 감사드립니다 :)


그럼 좋은 주말 되시고 남은 연말 뜻깊게 보내세요~!


22 Comments
11 이름없음 2018.12.19 08:04  
다운로드 할 때 출첵이라도 하라고 해놨습니다ㅠ
비영리로 운영되는 사이트라 그런가 아무도 활동을 안하고 다운족들만 있어서..ㅎㅎ

Congratulation! You win the 6 Lucky Point!

와 대단히 멋진 아이디어입니다.능력자시네요
저는 방법을 모르니 그냥 ...부러움에 댓글을 남기고 갑니다.
사실 위 소스도 적용못하고 있다는 ㅎㅎ

Congratulation! You win the 31 Lucky Point!

11 이름없음 2018.12.26 09:12  
이니스프리님~ 좋은 코드를 공개해 주셔서 감사합니다. 해당 위젯을 설명대로 해서 "보드 내용보기"에 적용을 했는데요. 코드는 잘 작동하지만 댓글쓰기가 작동을 안하는 오류가 생기는데, 제가 뭘 잘못한 것일까요?..ㅜㅜ
13 이니스프리 2018.12.26 22:21  
안녕하세요?

원래 저는 메인화면 위젯으로 사용하려고 만들었거든요.

제가 연말이라 경황이 없어서 보드스킨과 관련된 부분까지는 생각을 못했네요.


현재 어떤 보드스킨을 사용하시는지는 모르겠지만

제가 올린 스크립트를 그대로 보드스킨에 포함을 하셨기 때문에 변수가 충돌이 일어난 것으로 보이네요.

$bo_table과 $write_table이 원래 보드스킨에서 사용되는 변수였다면 댓글 등과 관련하여 문제가 발생하게 됩니다.

따라서 다음과 같이 변수명을 수정하면 제가 테스트한 바로는 정상적으로 작동합니다.


<div class="view-padding">
<?php
    $cc_table = ''; // 게시판 테이블명을 입력하세요.
    $write_table1 = "g5_write_{$cc_table}";
    $sql_attendance = " select mb_id from $write_table1 where mb_id = '{$member['mb_id']}' and wr_datetime >= '".G5_TIME_YMD." 00:00:00' and wr_datetime <= '".G5_TIME_YMD." 23:59:59' ";
    $result = sql_fetch($sql_attendance);
    if ($result['mb_id']) {
        echo "<a href = '/bbs/board.php?bo_table=".$cc_table."'><i class='fa fa-calendar-check-o'></i>출석완료!</a>";
    } else {
        echo "<a href = '/bbs/board.php?bo_table=".$cc_table."'><i class='fa fa-calendar-check-o'></i>출석하세요</a>";
    }
?>



그럼 즐거운 연말 되세요 ^^
11 이름없음 2018.12.27 08:55  
우와~ 스크린샷까지..너무 친절하십니다..ㅠㅠ 덕분에 잘 적용했어요..감사합니다..
이니스프리님도 즐거운 연말 되시고, 새해 복 많이 받으세요~~
13 이니스프리 2018.12.27 12:20  
충돌 없이 잘 적용이 되셨다니 다행이네요~!
저도 보드스킨에 적용하는 것까지 충분히 고려를 못했는데 덕분에 제대로 테스트해보게 되었네요 ^^
그럼 이름없음 님께서도 새해 복 많이 받으세요 :)
4 나눔샵 06.14 21:12  
좋은 소스 감사드려요
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand