2013-04-15 2 views

답변

7

확인. 해결책을 찾았습니다 :

  1. elfinder라는 플러그인에 폴더를 만듭니다.
  2. 최신 elFinder을 다운로드하고이 폴더 plugins/elfinder에 넣으십시오.
  3. 플러그인 'elfinder'를 플러그인 목록 (tinymce.init)에 추가하십시오.
  4. 이름 바꾸기 JS/elfinder.min.js에 JS/plugin.min.js
  5. 플러그인의 루트 폴더에 파일 plugin.min.js (elfinder/plugin.min.js) 내부
  6. 삽입 다음 텍스트를 만들기 저장 :

tinymce.PluginManager.add ("elfinder", 기능 (에디터, URL) {

editor.settings.file_browser_callback = 기능 (아이디, 값, 유형, 승리를) {

$('<div />').dialogelfinder({ 
    url: url + '/php/connector.php', 
    commandsOptions: { 
     getfile: { 
      oncomplete: 'destroy' 
     } 
    }, 
    getFileCallback: function (url) 
    { 
     var fieldElm = win.document.getElementById(id); 
     fieldElm.value = editor.convertURL(url, null, true); 
     if ("fireEvent"in fieldElm) { 
      fieldElm.fireEvent("onchange") 
     } else { 
      var evt = document.createEvent("HTMLEvents"); 
      evt.initEvent("change", false, true); 
      fieldElm.dispatchEvent(evt) 
     } 
    } 
    }); 

}}; }, [ "elfinder/js"]);

+0

감사합니다,하지만 나를 위해 작동하지 않습니다. – WebbedIT

+0

내가 말한대로 다 했니? – dikirill

+0

@dikirill은 레일 2에 사용할 수 있습니까? 'null 메서드의 'dialogelfinder'를 호출 할 수 없습니다. 브라우저 콘솔 – Nithin

5

나는 단계를 수행 할 때 이제 작동합니다, 위키 업데이트 : https://github.com/Studio-42/elFinder/wiki/Integration-with-TinyMCE-4.x

차 변경 TinyMCE에 더 이상 플러그인 InlinePopup를 사용하지 않는 것으로하고, 콜백이 변경되고 대신 file_browser_callback : 'elFinderBrowser' 당신이해야 file_browser_callback : elFinderBrowser

이 자바 스크립트에 elFinderBrowser 콜백을 추가합니다 : TinyMCE를 초기화에서

: 따옴표를 제거

function elFinderBrowser (field_name, url, type, win) { 
    tinymce.activeEditor.windowManager.open({ 
    file: '/elfinder/elfinder.html',// use an absolute path! 
    title: 'elFinder 2.0', 
    width: 900, 
    height: 450, 
    resizable: 'yes' 
    }, { 
    setUrl: function (url) { 
     win.document.getElementById(field_name).value = url; 
    } 
    }); 
    return false; 
} 

그리고 마지막으로 수정/콜백 사용 elfinder.html 파일을 복사 : 위 대한

<!-- Include jQuery, jQuery UI, elFinder (REQUIRED) --> 

<script type="text/javascript"> 
    var FileBrowserDialogue = { 
    init: function() { 
     // Here goes your code for setting your custom things onLoad. 
    }, 
    mySubmit: function (URL) { 
     // pass selected file path to TinyMCE 
     top.tinymce.activeEditor.windowManager.getParams().setUrl(URL); 

     // close popup window 
     top.tinymce.activeEditor.windowManager.close(); 
    } 
    } 

    $().ready(function() { 
    var elf = $('#elfinder').elfinder({ 
     // set your elFinder options here 
     url: 'php/connector.php', // connector URL 
     getFileCallback: function(file) { // editor callback 
     FileBrowserDialogue.mySubmit(file.url); // pass selected file path to TinyMCE 
     } 
    }).elfinder('instance');  
    }); 
</script> 
+0

게시물의 시작 부분에있는 문서로 연결되는 링크가 올바른 코드입니다. 거기에서 적어도 코드는 나를 위해 일했다! – 6bytes

+0

누구나 init 함수가 무엇인지 생각할 수 있습니까? – emfi