갤러리 최신글 랜덤 추출 방법좀 알려주세요 (소스 포함)

갤러리 최신글 랜덤 추출 방법좀 알려주세요 (소스 포함)

QA

갤러리 최신글 랜덤 추출 방법좀 알려주세요 (소스 포함)

답변 1

본문

이천이지님의 최신글 갤러리 스킨을 사용하고 있습니다. (이천이지님 감사^.^*)
 
 
위의 자료를 사용중입니다.
 
최신글 갤러리에서 이미지와 제목만 나오게 변경을 했는데요 여기에서 최신글을 랜덤으로 게시판에서 추출하여
 
이미지와 제목만 표시되게 하려 합니다.
 
 
 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
/*
 *     latest.skin Gallery for Gnuboard4
 *      latest.skin.php
 *     
 *      Copyright 2011 Man Hyung, cho
 *     
 *      File encoding: Korean(EUC-KR)
 *
 */
$cols  = 6; //  이미지 가로갯수 //  이미지 세로 갯수는 메인에서 지정(총 이미지 수)
$image_h  = 15; // 이미지 상하 간격
$is_crop = 1;
// $is_crop     : 세로 높이가 $height를 넘을 때 crop 할 것인지를 결정
//                0 : crop 하지 않습니다
//                1 : 기본 crop
//                2 : 중간을 기준으로 crop
$col_width = (int)(99 / $cols);

//불당썸---------------------------------------------------------------//
$img_width = 80; //표시할 이미지의 가로사이즈
$img_height = 110; //표시할 이미지의 세로사이즈

//언샾마스트 퀄리티(썸 노이즈바지)
$filter[type] = 99;
$filter[arg1] = 100;
$filter[arg2] = 1;
$filter[arg3] = 2;
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';
$no_img = $latest_skin_path."/img/no_img.gif";
// 불당썸을 include
include_once("$g4[path]/lib/thumb.lib.php");
//불당썸---------------------------------------------------------------//

// $list_content = "40"; //내용길이
?>
<script type="text/javascript">
// 제목 문자화
    function prettyFont(txt) {
        var str = '';
        if (typeof notice == "undefined") notice = "false";
        str += '<img src="<?=$latest_skin_path?>/txt2img.php?text='+encodeURIComponent(txt)+'&font='+prettyFont.font+'&size='+prettyFont.size+'&bgcolor='+prettyFont.bgColor+'&txtcolor='+prettyFont.txtColor+' border="0" />';
        document.write(str);
    }
    function pretty1Font(txt,notice) {
        var str = '';
        if (typeof notice == "undefined") notice = "false";
        str += '<img src="<?=$latest_skin_path?>/txt2img.php?text='+encodeURIComponent(txt)+'&font='+pretty1Font.font+'&size='+pretty1Font.size+'&bgcolor='+pretty1Font.bgColor+'&txtcolor='+pretty1Font.txtColor+' border="0" />';
        document.write(str);
    }
    function pretty2Font(txt,notice) {
        var str = '';
        if (typeof notice == "undefined") notice = "false";
        str += '<img src="<?=$latest_skin_path?>/txt2img.php?text='+encodeURIComponent(txt)+'&font='+pretty2Font.font+'&size='+pretty2Font.size+'&bgcolor='+pretty2Font.bgColor+'&txtcolor='+pretty2Font.txtColor+' border="0" />';
        document.write(str);
    }
    prettyFont.font = "./font/NanumGothicBold.ttf";
    prettyFont.size = 15;
    prettyFont.bgColor = "ffffff";
    prettyFont.txtColor = "777777";
    pretty1Font.font = "./font/NanumGothic.ttf";
    pretty1Font.size = 13;
    pretty1Font.bgColor = "ffffff";
    pretty1Font.txtColor = "777777";
    pretty2Font.font = "./font/NanumGothicBold.ttf";
    pretty2Font.size = 9;
    pretty2Font.bgColor = "ffffff";
    pretty2Font.txtColor = "777777";
</script>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
 <td height='30' colspan="<?=$cols?>" style="padding-left:10px;">
    <table width="97%" border="0" cellspacing="5" cellpadding="0">
     <tr bgcolor="#FFFFFF">
        <td height="22"><script type='text/javascript'>pretty2Font('· <?=$board[bo_subject]?>');</script></td>
        <td align="right">  <a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>'><img src="<?=$latest_skin_path?>/img/btn_more.gif" border="0"></span></a></td>
     </tr>
     <tr><td colspan="2" height="1" bgcolor="#c7c7c7"></td></tr>
  <tr><td colspan="2" height="5" bgcolor="#FFFFFF"></td></tr>
    </table>
 </td>
</tr>
 <? for ($i=0; $i<count($list); $i++) {
   if ($i>0 && $i%$cols==0) {
    echo "<tr><td colspan='$cols' height='$image_h'></td></tr><tr>";
   }
 ?>
 <td width="<?=$col_width?>%" align="center" valign='middle'>
 <table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse">
 <tr>
  <td>
  <?
  //썸네일 생성
  $thumfile = "";
  $thumb = $thumb_path.'/'.$list[$i][wr_id];
  //$file = "$g4[path]/data/file/$bo_table/".urlencode($list[$i][file][0][file]);
  $file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
  //$noimg = "$latest_skin_path/img/noimg.gif";
  // 업로드된 파일이 이미지라면
  //if (preg_match("/\.(gif|jp[e]?g|png|bmp)$/i", $file) && file_exists($file)) {
  if (preg_match("/\.(jpg|gif|png|bmp)$/i", $file) && file_exists($file)) {
   //$img=thumbnail($data_path. "/".$image, $imgwidth, $imgheight, 0, 1);  //썸네일이 없을경우 원본출력
   $thumb = thumbnail($file, $img_width, $img_height, 0, $is_crop, 90, 0, "",  $filter, $noimg); //언샾마스크추가
 
  } else { //에디터에서 삽입한 이미지
   $edit_img = $list[$i]['wr_content'];
   if (eregi("data/cheditor4[^<>]*\.(gif|jp[e]?g|png|bmp)", $edit_img, $tmp)) { // data/cheditor------
   $file = $g4[path].'/' . $tmp[0]; // 파일명
   $thumb=thumbnail($file, $img_width, $img_height, 0, $is_crop, 90, 0, "",  $filter, $noimg); //언샾마스크추가
   }
  }
  //if (file_exists($thumb)) {
    //$thumfile = "<img src='{$thumb}' width='{$img_width}' height='{$img_height}' border='0' style='border:1px #ccc solid'></a>";
  if (preg_match("/\.(jpg|gif|png|bmp)$/i", $thumb) && file_exists($thumb)) {
   echo "<table border='0' cellpadding='0' cellspacing='0'>";
   echo "<tr><td width='{$img_width}' height='{$img_height}' align='center' valign='middle'>";
   echo "<a href='{$list[$i]['href']}'><img src='$thumb' border='0' align='absmiddle'></a>";
   echo "</td></tr>";
   echo "<tr><td width='{$img_width}' align='center' valign='middle' style='padding:2px 0;>";
   echo "<a href='{$list[$i]['href']}'><span style='font-size:8pt;'>{$list[$i]['subject']}</span>";
   echo "</td></tr></table>";
   }

  else if (!file_exists($list[$i][file_image0])){ // no img
   echo "<table style='border: 0px solid #e7e7e7; padding:0; margin:0; border-collapse:collapse'>";
   echo "<tr><td width='{$img_width}' height='{$img_height}' align='center' valign='middle' style='border: 1px solid #e7e7e7;'>";
   echo "<a href='{$list[$i]['href']}'><img src='$no_img' border='0' align='absmiddle'>";
   echo "</td></tr>";
   echo "<tr><td width='{$img_width}' align='center' valign='middle' style='padding:2px 0;>";
   echo "<a href='{$list[$i]['href']}'><span style='font-size:8pt;'>{$list[$i]['subject']}</span>";
   echo "</td></tr></table>";
  }
  ?>
  </td>
 </tr>
 </table>
 </td>
 <? } ?>
 
 <?
 $cnt = ($i%$cols);
 for ($k=$cnt; $k<$cols && $cnt; $k++) {
  echo "<td width=$col_width%> </td>";
 }
 ?>
 
 <? if (count($list) == 0) { echo "<td align=center height=50>게시물이 없습니다.</td>"; } ?>
 
 </td>
</tr>
</table>
 
이 소스를 어떻게 고쳐야 랜덤으로 추출되는지를 알고싶습니다.
 
팁게 보니까 랜덤추출글 있는데 좀 복잡하고 이미지도 뽑아오는지 모르겠어서요~
 

이 질문에 댓글 쓰기 :

답변 1

스킨은 수정할 필요 없구요.


/lib/latest.lib.php 파일을 수정하셔야 되요.


최신글 함수 다음에 밑에 함수 붙어 넣고


최신글 불러 올때는  <?=latest_rand('스킨','게시판이름','불러올 갯수')?>


이걸 쓰시면 됩니다.






// 최신글 추출
function latest_rand($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
    global $g4;

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

    $list = array();

    $sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
    //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by rand() limit 0, $rows ";
    // 위의 코드 보다 속도가 빠름
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by rand() limit 0, $rows ";
 //explain($sql);
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++)
        $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
   
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로