제로보드 -> 미니위니 (정렬기능 확장) No.1-1 > Web Development

본문 바로가기
  • kb@lovelet.com
사이트 내 전체검색

RESOURCES Web Development

제로보드 -> 미니위니 (정렬기능 확장) No.1-1

페이지 정보

본문

* 제로보드의 zboard.php 를 아래의 설명대로 수정합니다. (검정색의 상단과 하단 사이에 색상으로 된 코드를 삽입.)


// 관리자일때는 게시판 글 옮기기때문에 게시판 리스트를 뽑아옴;;
if($is_admin) {
$_dbTimeStart = getmicrotime();
$board_result=mysql_query("select no,name from $admin_table where no!='$setup[no]'");
$_dbTime += getmicrotime()-$_dbTimeStart;
}

/////////////제로보드 기능 확장 by 알릭
if($act == "my") {
$_dbTimeStart = getmicrotime();
$que1=mysql_fetch_array(mysql_query("select count(*) from $t_board"."_$id where ismember = '$member[no]'"));
$total = $que1[0];
$que="select * from $t_board"."_$id where ismember = '$member[no]' order by no desc limit $start_num, $page_num";
$result=mysql_query($que,$connect) or Error(mysql_error());
$_dbTime += getmicrotime()-$_dbTimeStart;
}

if($act == "hot") {

$hot_no = 10 ; //리플 또는 다른 기준 몇개부터 hot 으로 지정할것인지 입력 (0으로 할경우 기준순으로 정렬된 전체 목록표시)

$_dbTimeStart = getmicrotime();
$que1=mysql_fetch_array(mysql_query("select count(*) from $t_board"."_$id where total_comment >= '$hot_no'"));
$total=$que1[0];
$que="select * from $t_board"."_$id where total_comment >= '$hot_no' order by total_comment desc limit $start_num, $page_num";
//total_comment 는 리플수, hit 로 교체하면 조회수, total_comment+hit 로 교체하면 두개 더한수를 기준으로 정렬
//order by 이후에 오는것과 앞에 오는것이 같아야함 que1 과 que 모두 수정
$result=mysql_query($que,$connect) or Error(mysql_error());
$_dbTime += getmicrotime()-$_dbTimeStart;
}

if($act == strval(floatval($act)) && strpos($act,".") === false) {
$_dbTimeStart = getmicrotime();
$que1="select * from $t_board"."_$id where ismember = '$act'";
$result1=mysql_query($que1,$connect) or Error(mysql_error());
$total=mysql_num_rows($result1);
$que="select * from $t_board"."_$id where ismember = '$act' order by no desc limit $start_num, $page_num";
$result=mysql_query($que,$connect) or Error(mysql_error());
$_dbTime += getmicrotime()-$_dbTimeStart;
}

if($act == "new_r") {
$query = "DROP TEMPORARY TABLE IF EXISTS temp";
$result = @mysql_query($query);
$query = "CREATE TEMPORARY TABLE temp SELECT reg_date, parent from $t_comment"."_$id ORDER BY reg_date DESC";
$result = @mysql_query($query);
$query1 = "SELECT distinct parent from temp";
$res1 = mysql_query($query1);
$total=mysql_num_rows($res1);
$query = "SELECT distinct parent from temp limit $start_num, $page_num";
$res = mysql_query($query);
}

if ($act) {
$page_num=$setup[memo_num];
if(!$page) $page=1;

$total_page=(int)(($total-1)/$page_num)+1;

if($page>$total_page) $page=$total_page;

$start_num=($page-1)*$page_num;
}
///////////////// by 알릭 end

/***************************************************************************
* 스킨에서 사용할 페이지 정리
**************************************************************************

*주의!: "hot" 부분의 // 으로 표시된 주석을 원하는 설정으로 고칩니다 (기본값은 리플순, 10개이상)

/***************************************************************************
* 스킨에서 사용할 페이지 정리
**************************************************************************/

부터

/***************************************************************************
* 각종 링크를 미리 지정하는 부분
**************************************************************************/

까지 나오는 모든 코드중에 &divpage=$divpage 가 있으면
&divpage=$divpage&act=$act 로 모두 바꿔줍니다.

&divpage=$prevdivpage&divpage=$nextdivpage 도 위와 마찬가지로
&act=$act 를 끝에 붙여줍니다.

/***************************************************************************
* 각종 링크를 미리 지정하는 부분
**************************************************************************/

부터 하단의

/***************************************************************************
* 마무리 부분 include
**************************************************************************/
까지의 코드를 아래의 내용으로 교체 합니다.

/***************************************************************************
* 각종 링크를 미리 지정하는 부분
**************************************************************************/

// 글쓰기버튼
if($is_admin||$member[level]<=$setup[grant_write]) $a_write=""; else $a_write=";
// 목록 버튼
if($is_admin||$member[level]<=$setup[grant_list]) $a_list=""; else $a_list=";
// 취소버튼
$a_cancel="";
// 정렬 버튼의 경우 $desc를 역으로 변환
if($desc=="desc") $t_desc="asc"; else $t_desc="desc";
//정렬버튼에 act 를 유지시킨다.
if ($act) { $href.= "&act=$act"; }
// 번호 정렬
$a_no="";
// 제목 정렬
$a_subject="";
// 이름 정렬
$a_name="";
// 조회순 정렬
$a_hit="";
// 추천수 정렬
$a_vote="";
// 날자별 정렬
$a_date="";
// 첫번째 항목의 다운로드 순서
$a_download1="";
// 두번째 항목의 다운로드 순서
$a_download2="";
/////제로보드 확장 by 알릭
//// 전체목록
$a_all="";
//my post
$a_my="";
// hot (리플많은순)
$a_hot="";
// New-R (최근 리플달린시간순)
$a_new_r="";

/***************************************************************************
* 정리한 데이타를 출력하는 부분
**************************************************************************/

// 헤더 출력
$_skinTimeStart = getmicrotime();
head('',"script_list.php");
// 상단 현황 부분 출력
if($no&&$setup[use_alllist]) {
$data_temp=mysql_fetch_array(mysql_query("select * from $t_board"."_$id where no='$no'"));
}
//작성자 별 묶음
$a_user="";

include "$dir/setup.php";
$_skinTime += getmicrotime()-$_skinTimeStart;
// 현재 선택된 데이타가 있을때, 즉 $no 가 있을때 데이타 가져옴
if($no&&$setup[use_alllist]) {
$_view_included = true;
include "view.php";
}
// 리스트의 상단 부분 출력
$_skinTimeStart = getmicrotime();
include $dir."/list_head.php";
$_skinTime += getmicrotime()-$_skinTimeStart;
//가상번호를 정함
$loop_number=$total-($page-1)*$page_num;
if($setup[use_alllist]&&!$prev_no) $prev_no=$no;

if ($act=="new_r") {
while ($data1 = mysql_fetch_array($res)) {
$add_result = mysql_query("SELECT * from $t_board"."_$id WHERE no = $data1[parent]");
while($data=@mysql_fetch_array($add_result)) {
list_check(&$data);
$_skinTimeStart = getmicrotime();
//if($data[headnum]>-2000000000) {
include $dir."/list_main.php";
//}
//else {include $dir."/list_notice.php"; }
$_skinTime += getmicrotime()-$_skinTimeStart;
$loop_number--;
}
}
}
else {
// 뽑혀진 데이타만큼 출력함
while($data=@mysql_fetch_array($result)) {
list_check(&$data);
$_skinTimeStart = getmicrotime();
if($data[headnum]>-2000000000) {include $dir."/list_main.php";}
else {include $dir."/list_notice.php"; }
$_skinTime += getmicrotime()-$_skinTimeStart;
$loop_number--;
}
}
if($check2) {
while($data=@mysql_fetch_array($result2)) {
list_check(&$data);
$_skinTimeStart = getmicrotime();
if($data[headnum]>-2000000000) {include $dir."/list_main.php";}
else {include $dir."/list_notice.php"; }
$_skinTime += getmicrotime()-$_skinTimeStart;
$loop_number--;
}
}
// 마무리 부분 출력하는 부분;;
$_skinTimeStart = getmicrotime();
include $dir."/list_foot.php";
$_skinTime += getmicrotime()-$_skinTimeStart;

if($zbLayer) {
$_skinTimeStart = getmicrotime();
echo "\\n.$zbLayer."\\n";
unset($zbLayer);
$_skinTime += getmicrotime()-$_skinTimeStart;
}
foot();
/***************************************************************************
* 마무리 부분 include
**************************************************************************/


* 제로보드의 view.php 를 아래의 설명대로 수정합니다

// 목록 버튼 에 해당하는 코드를 아래로 교체합니다.

// 목록 버튼
if($is_admin||$member[level]<=$setup[grant_list]) $a_list=""; else $a_list=";


/****************************************************************************************
* 실제 출력 부분
***************************************************************************************
의 상단에... 아래내용을 삽입합니다.

//상단 탭 버튼 링크 출력
// &desc=desc 에서 =desc 를 =$t_desc 로 교체하면 매번클릭시 정렬순서 반전(예:한번클릭하면 최근부터.. 한번더 클릭하면 예전부터)
// 전체목록
$a_all="";
//my post
$a_my="";
// hot (리플많은순)
$a_hot="";
// New-R (최근 리플달린시간순)
$a_new_r="";
//작성자 별 묶음
$a_user="";

* 이상입니다... 이제 상단탭 5개는 잘 작동하리라 믿구용...

그외에.. 나중에 나올 다른 설명들 전에.. 미니위니의 계층형코멘트 와 비쥬얼 에디터를 달아두시면 도움이 되겠습니다.. (제가 그걸 모두 설치하고 적용한 팁이라..)

미니위니 비쥬얼 에디터 제로보드용 제로보드에 계층형 코멘트 달기


조만간.. 다른 부가적 기능들... (경매, 클립, 설문조사, 찬반토론, 자동폭파, 클립, Hot클립, 다이알로그를 이용한 아주 빠른 팝업로그인창, 사용자 레벨, 코멘트 수정(계층유지 + 에디터 적용), 글수정횟수 및 날짜 표시 등)
하나하나 단계별로 또 설명해드리겠습니다.

Share Post:

댓글목록

등록된 댓글이 없습니다.

Sign In
OR
Don't have an account? SIGN UP

Keywords

Visits

접속자

Total Visits
1,893,823