채택완료

스마트 에디터 썸네일 문의드립니다.

2014-10-13 (월) 19:10:57 11,142

스마트 에디터 사용중인데요.

리스트에서 에디터에서의 이미지를 썸네일로 가져오고 있습니다.

<?php
            $thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height']);

            if($thumb['src']) {
                $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'" class="article_thumb f_l bda">';
            } else {
                $img_content = '<img src="'.G5_IMG_URL.'/icon_noimage.png" alt="이미지 없음" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'" class="article_thumb f_l bda">';
            }

            echo $img_content;
  ?>​

첨부파일일때는 썸네일이 잘 불러와지는데, 스마트에디터에서의 이미지는 썸네일로 못 불러오네요.

혹시나 해서 ckeditor4로 변경해보았더니 이때는 썸네일을 불러옵니다.

스마트에디터에서만 썸네일이 적용이 안되는 것 같은데요.

무엇이 문제인지 모르겠어요.. 조언 부탁드려요..

|

답변 4개 / 댓글 1개

채택된 답변
+20 포인트

그누5 배포판에 있는 갤러리 스킨에서 해보고 올려주신거 그대로 복사해서도 해봤는데 정상적으로 썸네일 잘 생성되네요.

혹시 예전 버전이라면 최근 버전으로 업로드해보세요.

아래 코드처럼 패턴에 i를 추가하여 대소문자를 구분하지 않도록 하셔도 됩니다.

Copy
$pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i";

문제점을 알아내었습니다.

스마트에디터가 ie7, ie8 일경우 태그를 대문자로 db에 저장을 하네요.

ie11일 경우에 테스트를 해보니 <img 로 소문자로 db에 저장이 됩니다.

하여..

common.lib.php 파일의

// 에디터 이미지 얻기
function get_editor_image($contents, $view=true)
{
    if(!$contents)
        return false;

    // $contents 중 img 태그 추출
    if ($view)
        $pattern = "/<img([^>]*)>/iS";
    else
        $pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/";
    preg_match_all($pattern, $contents, $matchs);

    return $matchs;
}​

부분에 소문자로 변경해주는

$contents = strtolower($contents);

을 추가하였습니다.

답변에 대한 댓글 1개

익스11을 사용해서 거기까진 확인을 못했었네요. 제가 배워갑니다.

작은별님. 답변 감사드려요 ^^

그누 버전은 5.0.15 입니다. ^^

혹시나 해서 DB에 저장되는 내용을 보니 ckeditor4​는 <img 로 , smarteditor는 <IMG로 입력이 되네요.

common.lib.php 파일의

// 에디터 이미지 얻기
function get_editor_image($contents, $view=true)
{
    if(!$contents)
        return false;

    // $contents 중 img 태그 추출
    if ($view)
        $pattern = "/<img([^>]*)>/iS";
    else
        $pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/";
    preg_match_all($pattern, $contents, $matchs);

    return $matchs;
}​

부분의 $pattern 부분이 <img 로 되어 있어서 이것을 <IMG로 바꾸니 썸네일이 잘 보이네요.

그런데, 이렇게 할 경우 ckeditor4​​는 썸네일이 안보여요.

에디터를 관리자페이지에서 선택할 수 있으니, 단순히 <IMG 로 바꾼다고 해서 해결이 잘 된거라 생각되진 않네요.

어떤 방법이 있을까요?

답변을 작성하려면 로그인이 필요합니다.