스마트 에디터 썸네일 문의드립니다.
본문
스마트 에디터 사용중인데요.
리스트에서 에디터에서의 이미지를 썸네일로 가져오고 있습니다.
<?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
그누5 배포판에 있는 갤러리 스킨에서 해보고 올려주신거 그대로 복사해서도 해봤는데 정상적으로 썸네일 잘 생성되네요.
혹시 예전 버전이라면 최근 버전으로 업로드해보세요.
작은별님. 답변 감사드려요 ^^
그누 버전은 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 로 바꾼다고 해서 해결이 잘 된거라 생각되진 않네요.
어떤 방법이 있을까요?
문제점을 알아내었습니다.
스마트에디터가 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);
을 추가하였습니다.
아래 코드처럼 패턴에 i를 추가하여 대소문자를 구분하지 않도록 하셔도 됩니다.
$pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i";