말러83

주요글 선택해서 메인에서 보여주기

선택된 글을 메인에서 뿌려주는 기능입니다. 최신글 기능과는 달리, 관리자가 '주요글' 옵션을 설정해준 경우에만 보여주게 됩니다.


1. write.skin.php에서 옵션에 "주요글" 옵션을 만들어줍니다.

    <? if ($member[mb_level] == 10) { ?>
    <input type=checkbox value="1" name="wr_1" <?if($write[wr_1]==1) echo "checked";?>>주요글
    <? } ?>

    레벨 10인 관리자만이 선택할 수 있게 했습니다. 저는 wr_1을 주요글 옵션으로 사용했는데, 다른 번호를 사용하셔도 무방합니다.


2. latest_hot() 이라는 함수를 만들어줍시다~ 저는 extend 폴더에 latest_hot.php라고 만들어서 추가했습니다.

<? //latest_hot.php
function latest_hot($skin_dir="",$rows, $subject_len,$options="")
{
    global $config;
    global $g4;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

    $list = array();

 $sql = " select bo_table, bo_subject from $g4[board_table] order by gr_id, bo_table ";
 $result = sql_query($sql);

 for ($i=0; $row=sql_fetch_array($result); $i++) {
  $templist = get_hotlist($row[bo_table],$rows);
  
  //$templist에 있는 것들을 $list에 하나씩 넣기
  for($j=0; $j<sizeof($templist); $j++) {
   $list[] = $templist[$j];
  }
 }

 for ($i=0; $i<sizeof($list); $i++) {
      ob_start();
        include "$latest_skin_path/latest.skin.php";
        $content = ob_get_contents();
        ob_end_clean();
 }
 return $content;
}

function get_hotlist($bo_table,$rows) {
    global $g4;
  $tmp_write_table = "g4_write_" . $bo_table; // 게시판 테이블 전체이름
  $sql = " select * from $tmp_write_table where wr_is_comment = 0 and wr_1 = 1 order by wr_id desc limit 0, $rows ";
  $result = sql_query($sql);
  for ($i=0; $row = sql_fetch_array($result); $i++) {
   $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
   $list[$i]['bo_table'] = $bo_table;
         $list[$i]['href'] = "$g4[bbs_path]/board.php?bo_table=$bo_table&wr_id=$row[wr_id]";

  }
  return $list;
}

?>

    wr_1 이외의 다른 값을 사용했다면, 쿼리문을 적당히 수정하셔야겠죠~

3. head.php의 적당한 위치에 다음을 넣어줍니다.

    <?=latest_hot("basic", 8, 70,"4,25");?>

    물론 괄호 안의 인수들은 필요에 따라 변경해서 쓰시면 되겠죠~ 저같은 경우는 hot_list라는 스킨을 따로 만들어서 쓰고 있습니다.

4. 도움이 되었다면 리플 달아주는 센스~

    아아.. 역시 마무리가 어렵죠~ ㅋㅋ

|

댓글 10개

와..너무 멋지고 훌륭합니다. ^^ 이걸 랜덤하게 출력할 수 도 있나요?
함수 latest_hot의 마지막 for문 앞에
shuffle($list);
이렇게 해서 $list의 순서를 한 번 섞어주면 되지 않을까요?
며칠 고민하던걸 한방에 해결해 주셨습니다.. 너무너무 감사....
좋은 자료 감사합니다
전 안되네요.. -_- ㅠㅠ
감사합니다.
latest_hot.php
적용해보니.. 글의 제목이 보이지 않네요... 그것만 보이면 딱 좋은데...
그러게요.. 제목이 안나오네요.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
18년 전 조회 3,437
18년 전 조회 3,193
18년 전 조회 5,324
18년 전 조회 4,945
18년 전 조회 4,969
18년 전 조회 1.2만
18년 전 조회 4,431
18년 전 조회 2,946
18년 전 조회 6,225
18년 전 조회 4,427
18년 전 조회 1.6만
18년 전 조회 7,821
18년 전 조회 4,218
18년 전 조회 4,307
18년 전 조회 6,605
18년 전 조회 1.4만
18년 전 조회 4,366
18년 전 조회 2,977
18년 전 조회 6,638
18년 전 조회 6,969
🐛 버그신고