묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
최근 이미지 출력에 붙여넣기 한 이미지가 안뜨네요.
첨부파일을 담은 문서는 최근 이미지로 잘 출력이 됩니다.
검색을 해봤더니 최근 웹진을 변형하면 사용할 수 있다고 들었습니다.
방법을 알고싶습니다.~~~~ 홈페이지 트래픽 문제로 이미지 파일을 첨부하기가 힘들어서요...
최근 이미지 출력에 붙여넣기 한 이미지가 안떠요
2008.10.20 00:47
최근 이미지 출력에 붙여넣기 한 이미지가 안뜨네요.
첨부파일을 담은 문서는 최근 이미지로 잘 출력이 됩니다.
검색을 해봤더니 최근 웹진을 변형하면 사용할 수 있다고 들었습니다.
방법을 알고싶습니다.~~~~ 홈페이지 트래픽 문제로 이미지 파일을 첨부하기가 힘들어서요...
댓글 3
-
느까끼
2008.10.20 09:55
-
ddddffdfd
2008.10.22 15:41
답변 감사합니다... 그런데 해결이 되지 않네요 -
신지
2008.10.25 04:54
저도 해결이 안되네요.
아마 다음 버전에 반영될 것으로 생각됩니다만.....
우선 임시로 해결하시려면
modules/document/document.item.php에서 썸네일 부분을 아래부분으로 교체하시면 됨
function thumbnailExists($width = 80, $height = 0, $type = '') {
if(!$this->document_srl) return false;
if(!$this->getThumbnail($width, $height, $type)) return false;
return true;
}
function getThumbnail($width = 80, $height = 0, $thumbnail_type = '') {
if(!$this->document_srl) return;
if(!$height) $height = $width;
// 문서 모듈의 기본 설정에서 Thumbnail의 생성 방법을 구함
if(!in_array($thumbnail_type, array('crop','ratio'))) {
$config = $GLOBALS['__document_config__'];
if(!$config) {
$oDocumentModel = &getModel('document');
$config = $oDocumentModel->getDocumentConfig();
$GLOBALS['__document_config__'] = $config;
}
$thumbnail_type = $config->thumbnail_type;
}
// 문서의 이미지 첨부파일 위치를 구함
$document_path = sprintf('./files/attach/images/%d/%d/',$this->get('module_srl'), $this->get('document_srl'));
if(!is_dir($document_path)) FileHandler::makeDir($document_path);
// 썸네일 임시 파일명을 구함
if($width != $height) $thumbnail_file = sprintf('%sthumbnail_%dx%d_%s.jpg', $document_path, $width, $height, $thumbnail_type);
else $thumbnail_file = sprintf('%sthumbnail_%d_%s.jpg', $document_path, $width, $thumbnail_type);
// 썸네일이 있더라도 글의 수정시간과 비교해서 다르면 다시 생성함
if(file_exists($thumbnail_file)) {
$file_created_time = date("YmdHis",filemtime($thumbnail_file));
$modified_time = $this->get('last_update');
if($modified_time > $file_created_time) @unlink($thumbnail_file);
}
if(file_exists($thumbnail_file)&&filesize($thumbnail_file)<1) return;
// 썸네일 파일이 있으면 url return
if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file;
// 생성 시작
FileHandler::writeFile($thumbnail_file, '', 'w');
// 첨부파일이 있는지 확인하고 있으면 썸네일 만듬
$oFile = &getModel('file');
$file_list = $oFile->getFiles($this->document_srl);
if(count($file_list)) {
foreach($file_list as $file) {
if($file->direct_download!='Y') continue;
if(!preg_match("/(jpg|png|jpeg|gif)$/i",$file->source_filename)) continue;
$filename = $file->uploaded_filename;
if(!file_exists($filename)) continue;
FileHandler::createImageFile($filename, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type);
if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file;
}
}
// 첨부파일이 없으면 내용에서 추출
$content = $this->get('content'+ ');
$target_src = null;
preg_match_all("!http:\/\/([^ ^\"^']*?)\.(jpg|png|gif|jpeg)!is", $content, $matches, PREG_SET_ORDER);
for($i=0;$i<count($matches);$i++) {
$src = $matches[$i][0];
if(preg_match('/\/(common|modules|widgets|addons|layouts)\//i', $src)) continue;
else {
$target_src = $src;
break;
}
}
if($target_src) {
$tmp_file = sprintf('%sthumbnail_%d.tmp.jpg', $document_path, $width);
FileHandler::getRemoteFile($target_src, $tmp_file);
FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg', $config->thumbnail_type);
@unlink($tmp_file);
return Context::getRequestUri().$thumbnail_file;
}
FileHandler::writeFile($thumbnail_file,'');
return;
}