웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
외부이미지 링크 + 고해상도 이미지 섬네일 생성 팁
2015.05.26 10:25
https://github.com/xpressengine/xe-core/issues/790
위 글타래를 보고 글타래 안에 있는 @proglos 님 팁과 @bj람보님이 제안해준 방법을 조합시켜 사용중에 있습니다. 저는 이렇게 하니
아직까지 100%는 아니지만 섬네일 미싱 이슈가 가장 줄어들었습니다.
아직 https 로 된 외부이미지는 못가져오는 듯 합니다. 다음CDN/루리웹등과 같은 사이트의 이미지는 랜덤하게 미싱하는 경우가 있습니다.
document.item.php 에서 아래 부분을 Replace 해주세요.
// If not exists, file an image file from the content
if(!$source_file)
{
$content = $this->get('content');
$target_src = null;
preg_match_all('/<\s*img[^>]*src\s*=\s*["\']?([^"\']*)/i', $content, $matches, PREG_SET_ORDER);
$cnt = count($matches);
for($i=0;$i<$cnt;$i++)
{
$target_src = trim($matches[$i][1]);
if(preg_match('/\/(common|modules|widgets|addons|layouts)\//i', $target_src)) continue;
else
{
if(!preg_match('/^(http|https):\/\//i',$target_src)) $target_src = Context::getRequestUri().$target_src;
$tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->document_srl));
if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp');
FileHandler::getRemoteFile($target_src, $tmp_file);
if(!file_exists($tmp_file)) continue;
else
{
list($_w, $_h, $_t, $_a) = getimagesize($tmp_file);
// if($_w<$width || $_h<$height) continue;
$source_file = $tmp_file;
$is_tmp_file = true;
break;
}
}
}
}