전체 최신글 질문좀 드릴게요..!

전체 최신글 질문좀 드릴게요..!

QA

전체 최신글 질문좀 드릴게요..!

본문

우산님 전체최신글 팁자료실에 있는 내용을 latest_lib.php 아래부분에 넣어서 

최신글을 불러오게 되면 전체내용은 자세히 잘나오지만 

이상하게도 ico_new.gif의 경우에는 사진없으므로 나오네요 

 

1) 팁자료의 소스를  latest_lip.php 아래에다가 저렇게 넣는게 맞는지요?

적용후에 이미지 위치를 확인해보니 

보통 다른 latest 적용시에는 
<img src="도메인주소/skin/latest/basic/img/icon_new.gif" alt="새글" title="">이렇게 위치가 

나오면서 사진이 잘나오는데요 !

 

 

전체최신글 적용시에는 엑박이 뜨면서 

<img src="/host/home2/홈페이지폴더/html/skin/latest/basic/img/icon_new.gif" alt="새글" title=""> 

이런식으로 경로가 이상하게 적용되는데요

 

스킨은 둘다 동일한 스킨을 적용하여도 이렇게 엑박이 나오네요 ..!

 

2)전체 최신글 적용시 기본basic 최신글로 썸네일적용시에도 따로 설정해줘야할게있나요?

 

'부디 초보를 위한 자세한 설명 부탁드릴게요..!

 

 

 

 


<?php
if (!defined('_GNUBOARD_')) exit;
 
/* 다중게시판 최신글 추출 Latest */
/* 제작 : SIR 내컴퓨터 */
/* 버전 : 1.0.2 */
/* 마스타님께서 if (!G5_USE_CACHE || !file_exists($cache_file)) { 부분 이상 검출 */
 
function latest($skin_dir='basic', $bo_table=false, $rows=10, $subject_len=40,$bo_title=false)
{
    global $g5;
    static $css = array();
    $bo_table = explode(';' , $bo_table);
    
    /* 모바일 스킨 디렉토리 */
    if(G5_IS_MOBILE) {
        $latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
        $latest_skin_url  = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
    }
    /* 데스크탑 스킨 디렉토리 */
    else {
        $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
        $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;
    }
    
    /* Latest 케시파일 생성 */
    $cache_botable = "";
    $cache_time = date("Ymdhi");
    for($y=0;$y<count($bo_table);$y++){
        $cache_botable .= $bo_table[$y];
    }
    $cache_botable = md5($cache_botable);
    $cache_newfile = G5_DATA_PATH."/cache/latest-{$cache_botable}-{$skin_dir}-{$rows}-{$subject_len}-{$cache_time}.php";
 
    /* 최근 1분간 새로 등록된 케시가 없을경우 DB에서 데이터 추출후 신규 케시 생성 */
    if (!G5_USE_CACHE || !file_exists($cache_newfile)) {
        /* 다중 게시판 게시물 추출 */
        $sql = "select a.* from ";
        for($y=0;$y<count($bo_table);$y++){
            if($y!=0) $sql .= "union all ";
            else $sql .= "( ";
            $tmp_write_table = $g5['write_prefix'] . $bo_table[$y]; // 게시판 테이블 전체이름
            $sql .= "select *,'{$bo_table[$y]}' as `bo_table` from {$tmp_write_table} "; // 
            if($y+1==count($bo_table)) $sql .= ") ";
        }
        $sql .= "a where `wr_is_comment` = 0 order by `wr_datetime` DESC limit ".$rows." ";
        $result = sql_query($sql);
        
        /* 다중 게시판 게시물 리스트 추출 */
        $list = array();
        for ($i=0; $row = sql_fetch_array($result); $i++) {
            /* 추출된 게시물이 등록된 게시판 매칭 */
            for($y=0;$y<count($bo_table);$y++){
                if ($bo_table[$y]==$row['bo_table']){
                    $sql = "select * from `{$g5['board_table']}` where `bo_table` = '{$bo_table[$y]}' "; 
                    $board = sql_fetch($sql);
                }
            }
            $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);
        }
        
        /* 기존에 등록된 케시파일을 삭제 */
        $files = glob(G5_DATA_PATH."/cache/latest-{$cache_botable}-{$skin_dir}-{$rows}-{$subject_len}-*");
        if (is_array($files)) {
            $cnt=0;
            foreach ($files as $cache_oldfile) {
                $cnt++;
                unlink($cache_oldfile);
            }
        }
        
        /* 케시파일 신규 생성 */
        $handle = fopen($cache_newfile, 'w');
        $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject=\"".get_text($board['bo_subject'])."\";\n\$list=".var_export($list, true)."?>";
        fwrite($handle, $cache_content);
        fclose($handle);
    }
    
    /* 케시파일 로드 */
    include_once($cache_newfile);
    
    /* List에서 사용할 Board 데이터 추출 */
    $bo_table = $bo_table[0];
    if($bo_title) $bo_subject = $bo_title;
    
    /* 스킨연결 */
    ob_start();
    include $latest_skin_path.'/latest.skin.php';
    $content = ob_get_contents();
    ob_end_clean();
    
    return $content;
}
 
 
?>
 
<?php
function latest_all($skin_dir="", $rows=10, $subject_len=40, $contents_len=200, $category="", $orderby="") { 
  global $config; 
  global $g5; 
  
  $list = array(); 
  $limitrows = $rows; 
  
  $sqlgroup = " select bo_table, bo_subject from $g5[board_table] where  bo_use_search=1 order by bo_use_search"; 
  $rsgroup = sql_query($sqlgroup); 
  //echo $sqlgroup; 
  if ($skin_dir) 
    $latest_skin_path = G5_PATH."/skin/latest/$skin_dir"; 
  else 
    $latest_skin_path = G5_PATH."/skin/latest/$config[cf_latest_skin]"; 
  
  for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) { 
    $bo_table = $rowgroup[bo_table]; 
    
    // 테이블 이름구함 
    $sql = " select * from {$g5[board_table]} where bo_table = '$bo_table'"; 
    $board = sql_fetch($sql); 
    
    $tmp_write_table = $g5[write_prefix] . $bo_table; // 게시판 테이블 실제이름 
    
    // 옵션에 따라 정렬 
    $sql = "select * from $tmp_write_table where wr_is_comment = 0 "; 
    $sql .= (!$category) ? "" : " and ca_name = '$category' "; 
    $sql .= (!$orderby) ? "  order by wr_id desc " : "  order by $orderby desc, wr_id desc "; 
    $sql .= " limit $limitrows"; 
    //echo $sql; 
    $result = sql_query($sql); 
    
    for ($i=0; $row = sql_fetch_array($result); $i++, $k++) { 
      
      if(!$orderby) $op_list[$k] = $row[wr_datetime]; 
      else  { 
        $op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]); 
        $op_list[$k] .= $row[wr_datetime]; 
        $op_list[$k] .= $row[wr_name]; 
        $op_list[$k] .= $row[wr_10]; 
      } 
      
      $list[$k] = get_list($row, $board, $latest_skin_path, $subject_len, $wr_name, $wr_10); 
      
      $list[$k][bo_table] = $board[bo_table]; 
      $list[$k][bo_subject] = $board[bo_subject]; 
      $list[$k][wr_name] = $board[wr_name]; 
      $list[$k][wr_10] = $board[wr_10]; 
      
      $list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len, $wr_name, $wr_10); 
    } 
  } 
  
  if($k>0) array_multisort($op_list, SORT_DESC, $list); 
  if($k>$rows) array_splice($list, $rows); 
 
  ob_start(); 
  include $latest_skin_path.'/latest.skin.php'; 
  $content = ob_get_contents(); 
  ob_end_clean(); 
  return $content; 
} 
?>

이 질문에 댓글 쓰기 :

답변 1

경로상수 문제입니다.

 

<?php echo G5_URL ?>

= 도메인/(루트)

 

<?php echo G5_PATH ?>

= 도메인/host/home2/홈페이지폴더/html

 

즉 URL 의 경우 현재 도메인의 루트폴더 이후부터 나오지만

PATH의 경우 전체경로가 모두 출력됩니다.

 

latest 스킨 안의 img 불러오는곳을 확인해보세요.

 

  

답변을 작성하시기 전에 로그인 해주세요.
전체 18
QA 내용 검색

회원로그인

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