웹마스터 팁
썸네일 방식으로 이미지 원본 주소 가져오기
2018.08.22 11:44
modules/document/document.item.php 파일에 getThumbnail() 함수를 참고하여 원본 이미지 주소를 가져오도록 하였습니다.
목적은 widget_lightgallery_skin 의 경우 첨부파일에 대해서만 작동을 하는데 첨부파일이 아닌 본문 삽입 이미지인 경우에도 작동하도록 하기 위함입니다.
/* 썸네일 방식으로 원본 이미지 주소 가져오기 */
function getThumbnail_oriSrc_min()
{
// Return false if the document doesn't exist
if(!$this->document_srl) return;
// If not specify its height, create a square
if(!$height) $height = $width;
// Return false if neither attachement nor image files in the document
if(!$this->get('uploaded_count') && !preg_match("!<img!is", $this->get('content'))) return;
// Get thumbnai_type information from document module's configuration
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;
}
// thumb_image 강제 지정 기능 - sejin7940 ( 120714 - 시작)
$args->document_srl = $this->document_srl;
$output = executeQuery('document.getDocument', $args, $this->columnList);
$thumb_image_srl = $output->data->thumb_image;
if($thumb_image_srl) {
// Find an iamge file among attached files if exists
if($this->get('uploaded_count')) {
$oFileModel = &getModel('file');
$file_list = $oFileModel->getFiles($this->document_srl);
if(count($file_list)) {
foreach($file_list as $file) {
if($thumb_image_srl == $file->file_srl) {
if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$file->source_filename)) continue;
$source_file = $file->uploaded_filename;
if(!file_exists($source_file)) $source_file = null;
else break;
}
}
}
if($source_file){
return $source_file;
}
}
}
// thumb_image 강제 지정 기능 - sejin7940 ( 120714 - 끝)
// Define thumbnail information
// Target File
$source_file = null;
// Find an iamge file among attached files if exists
if($this->get('uploaded_count'))
{
$oFileModel = &getModel('file');
$file_list = $oFileModel->getFiles($this->document_srl, array(), 'file_srl', true);
if(count($file_list))
{
foreach($file_list as $file)
{
if($file->direct_download!='Y') continue;
if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$file->source_filename)) continue;
$source_file = $file->uploaded_filename;
if(!file_exists($source_file)) $source_file = null;
else break;
}
}
}
// If not exists, file an image file from the content
if(!$source_file)
{
$content = $this->get('content');
$target_src = null;
preg_match_all("!src=(\"|')([^\"' ]*?)(\"|')!is", $content, $matches, PREG_SET_ORDER);
$cnt = count($matches);
for($i=0;$i<$cnt;$i++)
{
$target_src = trim($matches[$i][2]);
if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$target_src)) continue;
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;
if(!$target_src) continue;
else
{
$source_file = $target_src;
break;
}
}
}
}
if($source_file)
{
return $source_file;
}
return;
}
댓글 0
제목 | 글쓴이 | 날짜 |
---|---|---|
새글/업데이트/이미지/동영상/첨부파일 아이콘 없애기 [18] | 老姜君 | 2008.11.21 |
무료 psd, html 탬플릿, 아이콘 사이트공유합니다. | 허허길드짱 | 2018.11.27 |
act로 다른 페이지 보여주기 [1] | 이온디 | 2018.07.25 |
단축url API 사용하시는 분들... | 미스터강 | 2018.06.01 |
확장변수값 계산하여 게시판 리스트에 출력하기(총계 게시판) [1] | klaist | 2009.11.30 |
PHP 뮤텍스 락 설치법(memcached 활용) [1] | 에이트 | 2018.09.03 |
PHP 뮤텍스 락 설치법(redis 활용) | 에이트 | 2018.09.11 |
위젯 가운데 정렬 하는법 [3] | 불금 | 2015.07.05 |
요즘 제가 jquery 웹앱 솔루션을 개발했습니다. [2] | 안드류KIM | 2018.04.03 |
썸네일 방식으로 이미지 원본 주소 가져오기 | 에이트 | 2018.08.22 |
다른 서버 간 서브도메인 쿠키 공유 | 에이트 | 2018.08.04 |
DB를 손쉽게 관리 [1] | EISOFT | 2018.07.15 |
CKEditor 이용시 몇가지 유용한 설정 [11] | prologos | 2015.05.02 |
Google 스프레드시트에서 구글 번역으로 XE 다국어 내용 만들기(Lang.xml 용도) | 달빛늑대 | 2018.07.17 |
Code-Highlighter 3.0.83 가로 스크롤바를 어디론가 보내 버리고 싶으신 분. | 달빛늑대 | 2018.07.16 |
[수정]알림센터 Lite에 메일발송 기능을 추가하기 [11] | 매실茶 | 2013.11.25 |
고정도메인 host 변경하기 | 해피정닷컴 | 2016.03.11 |
도메인 변경 또는 설치 폴더 변경시 이미지 주소변경하기 | 해피정닷컴 | 2018.06.08 |
게시판글 엑셀 파일 보내기 php7용 | 황금날개 | 2018.06.05 |
글 작성시 미리 저장된 서식 불러오기. [10] | 개돌 | 2009.07.09 |