latest() 수정했읍니다. > 그누3 팁자료실

그누3 팁자료실

latest() 수정했읍니다. 정보

그누호환 latest() 수정했읍니다.

본문

보드를 제거하면  latest()함수를 쓴 곳은 전부 화면이 깨지는 현상을 방지 했읍니다.
보통 보드를 제거하면 main.php 에 latest()함수를 직접 제거해주면 좀 번거로울뿐 문제는 없었으나.
자작프로그램에 나온 Mypage 를 쓸경우에는 꼭 이렇게 수정해줘야 합니다.
mypage 에도 latest() 를 써야 하는데 만약  회원이 등록한 최신글 의 보드가 없어지면 회원들의
마이페이지 는 전부깨집니다.  한개의 보드를 제거했을때 전회원의 bo_5 를 수정하기란 불가능
그래서 회워들이 보드가 없어진것을 알수 있도록(No Available Board) 수정함.

참 그리고 마이페이지 코드 보니 일부분 쿼리문의 테이블 명이 틀렸더군요. 다행히도 그 쿼리문은 불필요한 부분들이라 페이지 운용에 상관 없었음 그리고 보드설정에서 회원레벨별 권한 설정이 가능한데 따로 설정을 해야 하는지 ??  그리고 이코드들도 페이지가 깨지지는 않았으나 전부 작동이 안되는
코드들 엿음  제로보드로 부터 포팅 과정에 실수로 보여지는데 하여튼 코드의 반정도로 줄이면
부하가 덜 수 있을 듯 보여집니다.   


<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);

//==============================================================================
//  최신글 관련 함수
//==============================================================================


// 최신글 추출
function latest($skin_dir='', $bo_table, $rows=10, $len=40)
{
    global $latest_skin, $cfg;

    $tmp_latest_skin = $latest_skin;

    // 스킨디렉토리값이 넘어왔다면
    if ($skin_dir) {
        $latest_skin = "./$cfg[bbs_dir]/skin/latest/$skin_dir";
    }

    $sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";

    $bo = sql_fetch($sql);
If($bo){
    $bo_subject = $bo[bo_subject];

    $sql = " select *
              from {$cfg[write_table_prefix]}{$bo_table}
              where wr_comment = 0
              order by wr_id desc limit 0, $rows ";
    $result = sql_query($sql);
    for ($i=0; $row = mysql_fetch_array($result); $i++) {
        $list[$i] = $row;

        $list[$i][href] = "./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$bo_table&wr_id=$row[wr_id]";

        // 코멘트 카운트
        $list[$i][commentcnt] = "";
        if ($row[wr_commentcnt] > 0) {
            $list[$i][commentcnt] = "($row[wr_commentcnt])";
        }

        $list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
        $list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
        $list[$i][content] = get_text($row[wr_content]);
        $list[$i][date] = substr($row[wr_datetime],2,8);

        $list[$i][icon_new] = "";
        if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
            $list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
        }

        for ($k=1; $k<=$cfg[file_count]; $k++) {
            if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
                $list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
            }
        }

        for ($k=1; $k<=$cfg[link_count]; $k++) {
            if ($row["wr_link".$k]) {
                $link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
                $link[$i]["link_href".$k] = "./?doc=$cfg[bbs_dir]/gblink.php&$qstr&wr_id=$row[wr_id]&index=$k";
            }
        }
    }
    mysql_free_result($result);
   
    include "$latest_skin/latest.skin.php";

    $latest_skin = $tmp_latest_skin;
}
else{
echo "No Available Board";
}
}
?>
추천
0

댓글 전체

전체 1,026
그누3 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT