검색결과에서 이미지 불러오기에 관하여 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

검색결과에서 이미지 불러오기에 관하여 정보

검색결과에서 이미지 불러오기에 관하여

본문

rims님의 전체검색스킨을 사용하고 있는데요. 오늘 발견했는데, 검색결과에서 이미지를 불러오긴 하는데, 첨부파일로 첨부된것만 불러오고, 에디터에서 삽입한 이미지는 불러오지 않고 있네요.
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=130650&sca=%EC%A0%84%EC%B2%B4%EA%B2%80%EC%83%89

첨부파일 이미지, 에디터에서 삽입한 이미지 모두를 불러오게 하려면 어디를 어떻게 수정하면 되는지 알려주시면 고맙겠습니다.....

아래 스킨 소스입니다.
search.skin.php
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<!--
<form name=fsearch method=get onsubmit="return fsearch_submit(this);" style="margin:0px;">
<table align=center width=95% cellpadding=2 cellspacing=0>
<input type="hidden" name="srows" value="<?=$srows?>">
<tr>
    <td align=center>
        <?=$group_select?>
        <script type="text/javascript">document.getElementById("gr_id").value = "<?=$gr_id?>";</script>

        <select name=sfl class=select>
        <option value="wr_subject||wr_content">제목+내용</option>
        <option value="wr_subject">제목</option>
        <option value="wr_content">내용</option>
        <option value="mb_id">회원아이디</option>
        <option value="wr_name">이름</option>
        </select>

        <input type=text name=stx class=ed maxlength=20 required itemname="검색어" value='<?=$text_stx?>'>

        <input type=submit value=" 검 색 ">

        <script type="text/javascript">
        document.fsearch.sfl.value = "<?=$sfl?>";

        function fsearch_submit(f)
        {
            if (f.stx.value.length < 2) {
                alert("검색어는 두글자 이상 입력하십시오.");
                f.stx.select();
                f.stx.focus();
                return false;
            }

            // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
            var cnt = 0;
            for (var i=0; i<f.stx.value.length; i++) {
                if (f.stx.value.charAt(i) == ' ')
                    cnt++;
            }

            if (cnt > 1) {
                alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
                f.stx.select();
                f.stx.focus();
                return false;
            }
           
            f.action = "";
            return true;
        }
        </script>
    </td>
</tr>
<tr>
    <td align=center>
        연산자 &nbsp;
        <input type="radio" name="sop" value="or" <?=($sop == "or") ? "checked" : "";?>>OR &nbsp;
        <input type="radio" name="sop" value="and" <?=($sop == "and") ? "checked" : "";?>>AND
    </td>
</tr>
</table>
</form>
<p>
 -->
<?
if($stx)
{
echo "<p>검색결과 (<b>{$board_count}</b>개의 게시판, <b>".number_format($total_count)."</b>개의 게시글, <b>".number_format($page)."/".number_format($total_page)."</b> 페이지)</p>";
 }
?>

<style>
.line {clear:both;margin:10px auto;border-top:1px solid #ddd;margin-bottom:20px;}
#search_alist h3 {font:bold 16px gulim;margin:0;padding:0}
#search_alist ul {list-style-type:none;margin:0;padding:0}
#search_alist li {clear:both;list-style-type:none;margin:0;padding:2px;}

#search_alist .s_subject a {font:normal 15px dotum;color:#1424c3;letter-spacing:-1px;text-decoration:underline;}
#search_alist .s_content {font:normal 12px dotum;color:#333;line-height:170%;}
#search_alist .s_content img.s_thm {border:1px solid #ccc;margin-right:8px;margin-bottom:8px;padding:0;}
#search_alist .s_name {font:normal 12px dotum;color:#009933}
#search_alist .s_date {font:normal 12px dotum;color:#aaa}
#search_alist .s_word1 {font:bold 15px dotum;color:#1424c3}
#search_alist .s_word2 {font:bold 12px dotum;color:#000}
</style>
<div id="search_alist">
<?
$k=0;
for($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++) {
?>
<div class="line"></div>
<h3><a href='./board.php?bo_table=<?=$search_table[$idx]?>&<?=$search_query?>'><?=$bo_subject[$idx]?>(<?=count($list[$idx])?>)</a></h3>
<ul>
<?
$comment_href = "";

$data_path = $g4[path]."/data/file/".$search_table[$idx];
$thumb_data_path = $g4[path]."/data/file/$search_table[$idx]/thumb";

for($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++){

//내용에서 html코드가 보이면 주석해제 후 사용***1
$list[$idx][$i][content]=cut_str(strip_tags($list[$idx][$i][wr_content]),300,"...");

$comment_href=$comment=$img=$file_name="";

$list[$idx][$i][subject]=str_replace("<span style='background-color:YELLOW; color:RED;'>","<span class='s_word1'>",$list[$idx][$i][subject]);
//$list[$idx][$i][content]=str_replace("<span style='background-color:YELLOW; color:RED;'>","<span class='s_word2'>",$list[$idx][$i][content]);

//내용에서 html코드가 보이면 주석해제 후 사용***2
$list[$idx][$i][content]=str_replace($stx,"<span class='s_word2'>".$stx."</span>",$list[$idx][$i][content]);

// 가변 파일
$file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

$file_name=$file[file][0][file];

$file_reading=$data_path."/".$file_name;
$simg=$thumb_data_path."/s".$file_name;

if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){

if(file_exists($simg)) $img=$simg;
else $img=$file_reading;
}

if($list[$idx][$i][wr_is_comment]) {

$comment_href = "#c_".$list[$idx][$i][wr_id];

$comment="[코멘트] ";
}
?>
<li>
<p class="s_subject"><a href="<?=$list[$idx][$i][href].$comment_href?>"><?=$comment.$list[$idx][$i][subject]?></a> &nbsp;<a href="<?=$list[$idx][$i][href].$comment_href?>" target="_blank9eaecd">[새창]</a></p>
<p class="s_content">
<?if($img){?>
<a href="<?=$list[$idx][$i][href]?>"><img src="<?=$img?>" width="90" align="left" class="s_thm"></a>
<?}?>
<?=$list[$idx][$i][file]?><?=$list[$idx][$i][content]?></p>
<p><span class="s_name"><?=$list[$idx][$i][name]?></span> - <span class="s_date"><?=$list[$idx][$i][wr_datetime]?></span></p>
</li>
<?}?>
</ul>
<?}?>
</div>

<p style="text-align:center;"><?=$write_pages?></p>

댓글 전체

cheditor을 사용 중이시라면

에디터로 업로드하면 data/file/게시판이름/cheditor4/1304 형식의 폴더에 저장이 됩니다.

get_file 함수는 db에서 받아오지만 cheditor로 업로드 시 db에 저장하지 않으니 이 경우에 db에 저장을 하셔서 받아오시던가 아니면 preg_match 함수로 해당 게시글 주소에 img 태그가 있나 확인하여 있으면 그 주소를 받아와 섬네일을 생성하던가 .. 방법은 여러가지가 있습니다.

이 부분을 잘 확인하셔서 수정하시면 되시겠네요.

$data_path = $g4[path]."/data/file/".$search_table[$idx];
$thumb_data_path = $g4[path]."/data/file/$search_table[$idx]/thumb";
.
.
.
$file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

$file_name=$file[file][0][file];

$file_reading=$data_path."/".$file_name;
$simg=$thumb_data_path."/s".$file_name;

if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){
 
if(file_exists($simg)) $img=$simg;
else $img=$file_reading;
}
호성2님,,,,
댓글 고맙습니다.
그런데 제가 아직 php에 대해서는 무지 초보라서요....^^
위에 적어주신 내용에 대해서 잘 이해를 못하겠네요....ㅜㅜ

그냥 스킨을 수정한다던가 함수를 추가한다던가 이런 방법으로는 불가능할까요?
// 가변 파일
$file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

$file_name=$file[file][0][file];

$file_reading=$data_path."/".$file_name;
$simg=$thumb_data_path."/s".$file_name;

if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){

if(file_exists($simg)) $img=$simg;
else $img=$file_reading;
} else if(preg_match("/data\/cheditor4[^<>]*\.(gif|jp[e]?g|png|bmp)/i", $list[$idx][$i][content], strtolower($editerImg))) {
$img = $editerImg[0];

}

이 소스를

//내용에서 html코드가 보이면 주석해제 후 사용***1
$list[$idx][$i][content]=cut_str(strip_tags($list[$idx][$i][wr_content]),300,"...");

이 위로 올려서 사용해보세요.
먼저 첨부파일의 이미지가 존재하는지 확인 후 없으면 에디터 이미지를 확인합니다.
있는 경우엔 해당 이미지를 줄여서 출력합니다.

썸네일로 생성해서 불러오고 싶으시면 썸네일 생성 부분을 따로 만드시면 됩니다.
전체 55 |RSS
그누4 질문답변 내용 검색

회원로그인

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