/*
Name : Yubikiri Board for Oekaki
Version : 1.0 beta
Language : Korean
Used : PHP
이 프로그램은 하나의 오에카키용 스킨이 아닙니다.
오히려 게시판에 가깝죠.
오에카키나 페인트BBS는 입력툴일 뿐입니다.
CGI용 오에카키를 참고하지 않았기 때문에
구조상 많은 차이를 보일수 있습니다.
일반 프리사이즈 보드와의 차이점
1. 향상된 페이징 기능
2. 에니메이션 기능
3. 새 게시판 생성기능
4. 삭제기능
*/
$id = isset($_GET['id']) ? $_GET['id'] : '';
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$sort = isset($_GET['sort']) ? $_GET['sort'] : '';
if( !$id )
{
echo "
게시판 ID가 입력되지 않았습니다.";
exit;
}
if( !is_dir("id/$id") )
{
echo "{$id}는 존재하지 않는 게시판입니다.";
exit;
} else { $vars_id = "?id=$id"; }
include( "id/$id/config.php" );
$vars_sort = $vars_page = '';
if( $sort ){ $vars_sort = "&sort=$sort"; } else $sort = "0";
if( !$page || $page <= 0 ){ $page = 1; } else $vars_page = "&page=$page";
$vars = $vars_id.$vars_sort.$vars_page;
$numbers = @file( "id/$id/$id.list$sort" );
if( !$numbers ){ $things = 0; }
else{ $things = @count( $numbers ) - 1; }
$pages = ceil( ( $things ) / $pagesize );
if( $things!=0 ){ if( $page > $pages ){ echo "";exit; } }
$lnum = $things - ( $page * $pagesize ) + 1;
if( $lnum < 1 ){ $lnum = 1; }
$fnum = $things - ( $pagesize * ( $page - 1 ) );
$pagesize2 = $fnum - $lnum + 1;
$pagepage = ceil( ( $page ) / $perpage );
$page3 = ( $pagepage - 1 ) * $perpage + 1;
$page4 = $page3 + $perpage - 1;
$pageb = $page3 - 1;
$pagen = $page3 + $perpage;
$back = "". $ll ."이전$lr";
if( $pageb < 1 ){ $pageb = 1; $back = ""; }
$next = "". $ll ."다음$lr";
if( $page4 >= $pages ){ $page4 = $pages; $next = ""; }
$first = '';
if( $page > $perpage ){ $first = "◀"; }
$least = $pages % $perpage;
if( $least == 0 ){ $least = $perpage; }
if( $page < $pages - $least + 1 ){ $last = "▶"; }
$fp = fopen( "skin/$skin.skin" , "r" );
$skindata = fread( $fp , filesize( "skin/$skin.skin" ) );
fclose( $fp );
$ID = $id;
$TTL = $things;
$NPG = $page;
$TPG = $pages;
$WLM = "$wmin-$wmax";
$HLM = "$hmin-$hmax";
$ACTPNT = "action.php?mode=paint";$DW = $dwidth;$DH = $dheight;
$skindata = explode( "" , $skindata );$ADMIN = "[관리자] [전체 관리자] ";
$PTRN1 = array( 'TTL' , 'TPG' , 'NPG' , 'WLM' , 'HLM' , 'WDTH' , 'ACTPNT' , 'ID' , 'ADMIN' , 'DH' , 'DW' );
for( $si1 = 0; $si1 < count( $PTRN1 ); $si1++ )
{
$skindata[1] = str_replace( $PTRN1[$si1]. "" , ${$PTRN1[$si1]} , $skindata[1] );
}
echo $skindata[1];
$a = '';
for( $i = $page3; $i <= $page4; $i++ )
{
$a .= "$ll$i$lr";
}
$a = str_replace( "$ll$page$lr","$ll$page$lr" , $a );
$LST = $first . $back . $a . $next . $last;
for( $i = $fnum; $i >= $lnum; $i-- )
{
$picnum = trim( $numbers[$i] );
$cmt = @file( "id/$id/data/$picnum.txt" );
$info = explode( "|" , $cmt[0] );
$info0[$i] = $info[0];
$info1[$i] = $info[1];
$info2[$i] = $info[2];
$comment[$i] = '';
for( $i2 = 1; $i2 < count($cmt); $i2++ )
{
$cmts = explode( "|" , $cmt[$i2] );
$cmts[0] = $cmts[0];
$cmts[1] = $cmts[1];
$cmts[2] = $cmts[2];
$cmts[3] = substr($cmts[3],0,16);
# $cmts[3] = $cmts[3];
if( $cmts[5] ){
$cmts[5] = "[HP]";}
$comment[$i] .= "$cmts[0] -$cmts[5]--$cmts[3]
$cmts[4]
$cmts[2]";
}
$size = @getimagesize( "id/$id/data/$picnum.png" );
$SIZE = "-" . $size[0] . "x" . $size[1] . "-";
$SIZE2 = $size[3];
$PIC = "id/$id/data/$picnum.png";
$NUM = $i;
$NUM2 = $picnum;
$CMT = $comment[$i];
$view[$i] = $skindata[2];
$SUB = $info2[$i];
$aniwidth = $size[0] + 4; $aniheight = $size[1] + 70;
if( $info1[$i] == "yes" ) { $ANI = "[Animation] $info[4]"; }
else{ $ANI = "[NoAni] $info[4]"; }
$DEL = "[DEL]";
$PTRN2 = array( 'NUM' , 'NUM2' , 'CMT' , 'PIC' , 'SIZE' , 'SUB' , 'SIZE2' , 'WDTH' , 'ANI' , 'ID' , 'DEL');
for( $si2 = 0; $si2 < count( $PTRN2 ); $si2++ )
{
$view[$i] = str_replace( $PTRN2[$si2] . "" , ${$PTRN2[$si2]} , $view[$i] );
}
echo $view[$i];
}
$PTRN5 = array( 'CMT' , 'TTL' , 'TPG' , 'NPG' , 'LST' , 'WLM' , 'HLM' , 'WDTH' , 'ACTPNT' , 'ID');
for( $si3 = 0; $si3 < count( $PTRN5 ); $si3++ )
{
$skindata[5] = str_replace( $PTRN5[$si3] . "" , ${$PTRN5[$si3]} , $skindata[5] );
}
echo $skindata[5];
?>