최신글 썸네일 등록하기 소스좀 봐주세요
본문
안녕하세요.
현재 진행상황이 첨부파일로만 이미지를 올렸을때는 썸네일이 등록이 되나,
외부 이미지나 유튜브는 최신글 썸네일이 뜨질 않습니다.
외부이미지는 https://sir.kr/g5_tip/2657 이 글 참고해서 data/file 에 잘 저장이 되는것을 확인하였습니다.
유튜브 소스는 https://sir.kr/g5_skin/15094?sca=%EC%B5%9C%EC%8B%A0%EA%B8%80&sfl=wr_subject%7C%7Cwr_content&stx=%EC%8D%B8%EB%84%A4%EC%9D%BC&page=2 이 글을 참고 했구요
latest.skin.php 의 현재 소스는
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php'); // 최신글에 썸네일 인클루드
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
?>
<div class="lat">
<h2 class="lat_title"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>"><?php echo $bo_subject ?></a></h2>
<ul>
<?php
for ($i=0; $i<count($list); $i++) {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], false, true);
if($thumb['ori']) {
$img = $thumb['ori'];
} else {
$img = G5_IMG_URL.'/no_img.png';
$thumb['alt'] = '이미지가 없습니다.';
}
$img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
?>
<li>
<?php
echo "<a href=\"".$list[$i]['href']."\"> ";
echo $img_content; // <-- 썸네일 출력문
if ($list[$i]['is_notice'])
echo "<strong>".$list[$i]['subject']."</strong>";
else
echo $list[$i]['subject'];
echo "</a>";
?>
</li>
<?php } ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<li class="empty_li">게시물이 없습니다.</li>
<?php } ?>
</ul>
<a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>" class="lt_more"><span class="sound_only"><?php echo $bo_subject ?></span><i class="fa fa-plus" aria-hidden="true"></i><span class="sound_only"> 더보기</span></a>
</div>
이거인데 첨부파일로 업로드 한것만 적용이 되는 상태이고
밑에는 제가 수정을 해본건데 콘솔에서 오류는 없는데 유튜브 썸네일만 생성이 되고 나머지는 이렇게 뜹니다.
코드는 이렇습니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
?>
<div class="lat">
<h2 class="lat_title"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>"><?php echo $bo_subject ?></a></h2>
<ul>
<?php
if(count($list) >= 3){ $listscale = 1; }
else{ $listscale = count($list); }
for ($i=0; $i<count($list); $i++) {
?>
<li>
<?php
echo "<a href=\"".$list[$i]['href']."\"> ";
if ($list[$i]['is_notice']){
echo "<strong>".$list[$i]['subject']."</strong>";
}elseif($thumb['ori']){
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], false, true);
$img = $thumb['ori'];
$img_content = '<img src="'.$img.'" alt"'.$thumb['alt'].'" >';
echo $img_content;
echo $list[$i]['subject'];
}else{
$youtube_key = substr($list[$i]['wr_link1'],-11,11);
$img_content = '<img src="https://img.youtube.com/vi/'.$youtube_key.'/mqdefault.jpg" alt="'.$thumb['alt'].'" width="205px" height="100px">';
echo $img_content;
echo $list[$i]['subject'];
}
echo "</a>";
if ($list[$i]['comment_cnt']) echo "
<span class=\"lt_cmt\">+ ".$list[$i]['comment_cnt']."</span>";
?>
<span class="lt_date"><?php echo $list[$i]['datetime2'] ?></span>
</li>
<?php } ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<li class="empty_li">게시물이 없습니다.</li>
<?php } ?>
</ul>
<a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>" class="lt_more"><span class="sound_only"><?php echo $bo_subject ?></span><i class="fa fa-plus" aria-hidden="true"></i><span class="sound_only"> 더보기</span></a>
</div>
어떻게 수정해야 할지 피드백 부탁드립니다.
!-->!-->
답변 2
}elseif($thumb['ori']){
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], false, true);
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], false, true); 가
elseif($thumb['ori']){ 의 밑에 있기때문에 항상 $thumb['ori'] 값은 없습니다.
if($list[$i]['is_notice']){
}else{
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], false, true);
if($thumb['ori']){
//썸네일있음
}else{
//썸네일 없음 . Youtube 임.
}
}
위 방식처럼 해야합니다.
!-->!-->
등록하신 코드 21번 줄 }
elseif
(
$thumb
[
'ori'
]){ 부분에서 else if 띄어쓰기 에러입니다.
다른 부분은 자세히 안봐서 잘 모르겠습니다 ^^;
답변을 작성하시기 전에 로그인 해주세요.