포럼

카르마님의 외부이미지 저장 애드온이 있습니다.

문서 저장시 외부 이미지를 복사하고 저장하면 로컬서버로 간편하게 저장이 됩니다.

링크가 깨지는 것을 예방할 수 있는 효과가 있습니다.


최근에 문서를 저장할 때가 아니라, 문서를 읽을 때 외부이미지 저장기능이 작동하면 좋겠다는 생각을 했습니다.


그런데 생각만큼 되지 않는군요.

제가 생각한 방식은 이렇습니다.


<?php
    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 실행여부도 어떻게 확인해야 하는지 알수가 없네요.


애드온의 작동여부를 확인할 수 있는 디버깅 기법이 따로 있는지요?

지금 이 소스에서 어떤 문제가 있는지 고견을 부탁드립니다.

글쓴이 제목 최종 글
Luacast Laravel도 매력 만점이네요. [13] 2015.06.03 by 또별
하얀마법 외부이미지 저장애드온의 새로운 접근법 [6] 2015.06.04 by 초보해외유저
키스미베이베 클라우드 플레이어를 쓰면 SCM 플레이어 버그가있네요 [5] 2015.06.06 by 키스미베이베
이온디 회사 프로젝트를 XE 버전으로 컨버팅 해보는 개인 프로젝트;; [1] 2015.06.06 by 불금
AElsE- 애드온 기본기능에서... [1] 2015.06.06 by GG
GG 어떤 업체의 자동 홈페이지 견적 프로그램 [10] 2015.06.07 by 휘즈
karutian 레이아웃 & 위젯 개발 2번째... [5] file 2015.06.07 by 이온디
엑스이짱짱 1.8.1 익스플로러에서 글쓰기, 첨부 불가. 저만 그런가요? [2] 2015.06.08 by 다미아빠
착한동구 LEVELS 레이아웃과 보드 이쁘네요 [1] 2015.06.09 by 마야
karutian 레이아웃 beta버전 선착순 배포. [12] file 2015.06.09 by karutian
키스미베이베 혹시 리얼서버로 미국쪽에 서버호스팅 하는곳 아시는분은 추천좀해주세요 [10] 2015.06.10 by LI-NA
꿈을엮는직공 닷홈 php 5.5 지원하는군요. [6] 2015.06.11 by 꿈을엮는직공
socialskyo 고맙게 사용하고 있는 애드온 / 모듈 ^^ [3] 2015.06.11 by NASANA
GG xe 1.8.3 버전부터 사용 가능한 모듈 소개 [10] 2015.06.12 by XE원
다미아빠 XE3 프레임워크 라라벨로 선정한 이유 [18] 2015.06.12 by 세에
이온디 레이아웃 타입 자동 적용 기능 [7] 2015.06.12 by 세에
socialskyo 닷홈이 드디어... [14] 2015.06.12 by 트리온
oscarmike XE 채팅위젯 무얼쓰시나요? [26] 2015.06.12 by 우하하_
카이네드 포인트 복권 스킨입니다. [20] file 2015.06.12 by Kimㅇ.ㅅ
세상의모든계산기 혹시... 구글 광고중에 성형외과 많이 나오시는 분 계신가요? [8] 2023.11.17 by 공기반