본문 바로가기
그누보드/기타

[그누보드] 추천/비추천 기능 커스텀 하기. ( 질문 항목이 딱 2개인 투표기능 만들기 / 투표한 회원 정보 보기 )

by Gi-One 2022. 2. 3.

#그누보드 #추천 #비추천 #커스텀

 

 

안녕하세요 Gi_1입니다.

이전, 백앤드 개발자가 없을 때 들어온 의뢰였습니다. (사실 있었는데 소통이 안되서 프론트 쪽에서 커버를..)

 

 

 

---기능---

의뢰는 게시판 별 투표기능 추가 였습니다.

저는 게시판 별 추천/비추천을 생각 해 냈고, 투표 항목을 2개로, 질문을 고정하는 형식으로 제안 했습니다.

투표를 하게 되면, 글 작성자와 관리자는 투표자의 이름 / 연락처 / 투표날짜 를 알 수 있습니다.

사용자는 투표를 몇명이 했는지만 알 수 있습니다.

 

 

 

 

---추천/비추천을 항목에 맞게 퍼블리싱---

        <!--  추천 비추천 시작 { -->
        <?php if ( $good_href || $nogood_href) { ?>
        <div id="bo_v_act">
            <?php if ($good_href) { ?>
              <p class="c_poll_box">
                투표 A
                <span class="bo_v_act_gng">
                  <a href="<?php echo $good_href.'&amp;'.$qstr ?>" id="good_button" class="bo_v_good">
                    <span class="sound_only">투표 A</span>
                    <strong>투표하기</strong>
                  </a>
                                    <span class="poll_p">
                    <?php echo number_format($view['wr_good']) ?>
                                    </span>
                  <b id="bo_v_act_good"></b>
              </span>
              </p>
            <?php } ?>
            <?php if ($nogood_href) { ?>
              <p class="c_poll_box">
                투표 B
                <span class="bo_v_act_gng">
                  <a href="<?php echo $nogood_href.'&amp;'.$qstr ?>" id="nogood_button" class="bo_v_nogood">
                    <span class="sound_only">투표 B</span>
                    <strong>투표하기</strong>
                  </a>
                                    <span class="poll_p">
                    <?php echo number_format($view['wr_nogood']) ?>
                                    </span>
                  <b id="bo_v_act_nogood"></b>
              </span>
              </p>
            <?php } ?>
        </div>
        <?php } else {
            if($board['bo_use_good'] || $board['bo_use_nogood']) {
        ?>
        <div id="bo_v_act">
            <?php if($board['bo_use_good']) { ?><span class="bo_v_good"><span class="sound_only">A</span><strong><?php echo number_format($view['wr_good']) ?></strong></span><?php } ?>
            <?php if($board['bo_use_nogood']) { ?><span class="bo_v_nogood"><span class="sound_only">B</span><strong><?php echo number_format($view['wr_nogood']) ?></strong></span><?php } ?>
        </div>
        <?php
            }
        }
        ?>

 

위 코드 상에서 보면, 좋아요 = 투표 A로, 싫어요 = 투표 B로 퍼블리싱 했을 뿐 입니다.

 

 

---투표(추천/비추천)한 사용자 목록 나열---

 

 

 <?php if ($member['mb_id'] == $write['mb_id'] || $is_admin) { ?>
                    <p class="go_member_good_nogood">
                        A로 투표 한 인원
                    </p>
          <table class="go_member_list">
            <thead>
              <col style="width:33.33%">
                            <col style="width:33.33%">
              <col style="width:33.33%">
            </thead>
            <tr>
              <th>이름</th>
                            <th>연락처</th>
              <th>날짜</th>
            </tr>
            <? //추천인 아이디 출력(비추천은 good -> nogood)
                $sql = " select * from $g5[board_good_table] where bo_table ='$bo_table' and wr_id='{$view[wr_id]}' and bg_flag='good' ";
                $result = sql_query($sql);
                while($row = sql_fetch_array($result)){
            ?>
            <tr>
              <td>
                <?php
                                // echo $row['mb_id'];
                                 ?>

                                <?php
                                $user = get_member($row['mb_id']);

                                echo $user['mb_name'];
                                ?>
              </td>
                            <td>
                                <?php echo $user['mb_hp']; ?>
                            </td>

              <td>
                                <?php echo date("Y-m-d", strtotime($row['bg_datetime'])) ?>
              </td>
            </tr>
            <?php } ?>
          </table>

                    <p class="go_member_good_nogood">
                        B로 투표한 인원
                    </p>
          <table class="go_member_list">
            <thead>
                            <col style="width:33.33%">
                            <col style="width:33.33%">
              <col style="width:33.33%">
            </thead>
            <tr>
              <th>이름</th>
                            <th>연락처</th>
              <th>항목</th>
            </tr>
            <? //추천인 아이디 출력(비추천은 good -> nogood)
                $sql = " select * from $g5[board_good_table] where bo_table ='$bo_table' and wr_id='{$view[wr_id]}' and bg_flag='nogood' ";
                $result = sql_query($sql);
                while($row = sql_fetch_array($result)){
            ?>
            <tr>
              <td>
                <?php
                                // echo $row['mb_id'];
                                 ?>
                                <?php
                                    $user = get_member($row['mb_id']);

                                    echo $user['mb_name'];
                                ?>
              </td>
                            <td>
                                <?php
                                    echo $user['mb_hp'];
                                ?>
                            </td>
              <td>
                                <?php echo date("Y-m-d", strtotime($row['bg_datetime'])) ?>
              </td>
            </tr>
            <?php } ?>
          </table>
        <?php } ?>


        <!-- }  추천 비추천 끝 -->

 

 

추천/비추천은 아이디 별로 1번만 진행 할 수 있고 자신의 글에는 추천 할 수 없습니다.

따라서 alert창이 추천~관련 글로 출력 되는데

bbs/good.php << 에서 수정 해주시면 되겠습니다.

댓글