포럼
외부이미지 저장애드온의 새로운 접근법
2013.03.15 17:28
카르마님의 외부이미지 저장 애드온이 있습니다.
문서 저장시 외부 이미지를 복사하고 저장하면 로컬서버로 간편하게 저장이 됩니다.
링크가 깨지는 것을 예방할 수 있는 효과가 있습니다.
최근에 문서를 저장할 때가 아니라, 문서를 읽을 때 외부이미지 저장기능이 작동하면 좋겠다는 생각을 했습니다.
그런데 생각만큼 되지 않는군요.
제가 생각한 방식은 이렇습니다.
if(!defined('__ZBXE__') && !defined('__XE__')) exit();
/**
* @outimage.addon.php
* @author 카르마(http://www.wildgreen.co.kr)
*
**/
require_once('./addons/auto_outimage/auto_outimage.func.php'); // 함수가져오기
if(Context::get('module')=='admin') return; // 관리자 모듈에서는 실행않음
if($called_position == 'before_display_content') {
$var = $this->variables;
$document_srl = $var[document_srl];
if(!$document_srl) return;
$module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl);
$args->document_srl = $document_srl;
$output = executeQuery('document.getDocument', $args);
$content = $output->data->content;
//$oDocument = $oDocumentModel->getDocument($document_srl);
// $content = $oDocument->getContent(false,false,false,false);
$upload_target_srl = $document_srl;
$oFileController = &getController('file');
$contImg = extractImage($content);
if(count($contImg)) {
$replace = $content;
foreach($contImg as $src) {
$ri_localfile = geRitLocalFile($src,$ri_avoid_domain,'N');
if(strcmp($src,$ri_localfile)==true)
{
$url = parse_url($ri_localfile);
$path_parts = pathinfo($url['path']);
$file_info['name']=$path_parts['basename'];
$file_info['tmp_name']=$ri_localfile;
$file_obj = $oFileController->insertFile($file_info,$module_info->module_srl,$upload_target_srl,0,true);
if(@$file_obj->variables['uploaded_filename']!=null) $replace = str_replace($src,$file_obj->variables['uploaded_filename'],$replace);
@unlink($ri_localfile);
}
}
$obj->module_srl = $module_info->module_srl;
$obj->content = $replace;
$obj->document_srl = $document_srl;
executeQuery('addons.auto_outimage.updateDocument', $obj);
}
}
?>
$called_position 에 대한 저의 이해가 떨어져서 인지, 작동이 안되네요.
문서저장 때와 문서읽을 때의 executeQuery 실행여부도 어떻게 확인해야 하는지 알수가 없네요.
애드온의 작동여부를 확인할 수 있는 디버깅 기법이 따로 있는지요?
지금 이 소스에서 어떤 문제가 있는지 고견을 부탁드립니다.
댓글 6
-
푸시아
2013.03.15 17:41
-
하얀마법
2013.03.15 18:05
넵 메시지 부분으로 호출해서 어떤 부분이 에러가 있는지 확인해야겠네요.
말씀하신 부분을 왜 그냥 넘겼는지 모르겠네요.
감사합니다. ^^
-
웹개밥
2013.03.16 00:43
하얀마법님 강좌 기다리고있는 1인 입니다!
-
하얀마법
2013.03.16 01:48
외부 이미지 자동 저장에 관련된 팁은 사용팁 게시판에 올렸습니다. ^^
네이버 실시간 등록에 관한 것은 지금도 헤매고 있습니다. ㅎㅎ
-
조인잡
2013.06.27 17:22
텍스타일에서 사용은 안되네요.
텍스타일에서 애드온 사용으로 해서 글작성후 발행할려고 하니까 에러발생
-
초보해외유저
2015.06.04 07:11
1.8.2 에서 지금 테스트 해봤는데 8개 사진을 복사해서 붙여넣기 글 등록하니깐 바로 사진이 저장됩니다.
감사합니다..!!
글쓴이 | 제목 | 최종 글 |
---|---|---|
jooyoon88 | 라라벨 과 XE 는 잘 어울리는 한쌍 인 것 같습니다. [8] | 2015.06.04 by 또별 |
이온디 | 블로그용 스킨이 없네요.. [5] | 2015.05.31 by 독도2005 |
키스미베이베 | 언제부터인가 xpresseditor를 쓰면 css가 안되어있네요 | |
착한동구 | 우와 어쩌다 이런 곳 알았는데 레이아웃 만드시는분들 파라다이스 될듯 하네요 [5] | 2015.05.30 by XESTUDIO |
쿨럭이 | 아파치에서 nginx으로 해방되다!! [11] | 2015.05.30 by Luatic™ |
숭숭군 | XEIcon 언제쯤 업데이트 될까요? [4] | 2015.05.29 by 숭숭군 |
이온디 | 작년부터 만들던 레이아웃이 있는데 디자인에서 진도가 안 나가네요. [13] | 2015.05.29 by 이온디 |
쿨럭이 | 데이타베이스 vs htm ?? [3] | 2015.05.29 by 기진곰 |
inJin | 모바일 브라우저 호환성 문제 때문에 열이 뻗치네요.. [5] | 2015.05.29 by inJin |
GG | 어제 오늘 갑자기 트래픽이 늘어서 뭐지? 했는데... | |
화랑529 | XE 책 좀 추천해주세요. [6] | 2015.05.28 by 화랑529 |
우냠냠냠 | 호스팅 입문 어떤걸로 하셨었나요? [22] | 2015.05.27 by 김아흥 |
김아흥 | xe에만 접속하면 묘하게 느리네요 [29] | 2015.05.27 by 김아흥 |
김아흥 | contactus 모듈 좀 이상하네요.. [4] | 2015.05.27 by 김아흥 |
큰돌♡ | 공홈 게시판 중 재밌는 현상 발견.... [3] | 2015.05.25 by 큰돌♡ |
착한동구 | 부트스트랩 컴퍼넌트 이쁘네요 | |
karutian | 레이아웃을 만든다는건 보통일이 아니군요 [12] | 2015.05.25 by 착한동구 |
DCONF | 안드로이드 앱 제작 모듈의 개발자입니다. [32] | 2015.05.25 by jjnj |
CONORY | XE개발에 입문하시는 분들 참고해주세요. [9] | 2015.05.24 by karutian |
karutian | 레이아웃 개발 진행현황! |
xeschool 에 보면 애드온을 설명하실때
$message
=
$position
.
'\n'
.
'Module : '
.
$this
->module.
'\n'
.
'Mid : '
.
$this
->mid.
'\n'
.
'Act : '
.
$this
->act.
'\n'
.
'Module_srl : '
.
$this
->module_srl.
'\n'
.
'Document_srl : '
.
$this
->document_srl;
$script
= sprintf(
'<script type="text/javascript"> xAddEventListener(window,"load", function() { alert("%s"); } );</script>'
,
$message
);
Context::addHtmlHeader(
$script
);
코드가 있어요.
$message 부분에 dump 할 부분을 넣으시면 될 것 같습니다.