2012-08-07 1 views
1

다양한 시나리오를 기반으로 이미지 관리자의 경로와 루트 경로를 설정해야합니다.TinyMCE 편집기에서 이미지 관리자에 사용자 지정 매개 변수 보내기

동일한 사용자가 이미지 관리자를 사용하여 다른 페이지의 이미지를 업로드 할 수 있습니다. 시나리오를 나타 내기 위해 클라이언트 측에서 매개 변수를 보내려고합니다. 예를 들어 사용자가 홈페이지에서 편집기를 사용하고 있다면 집으로 보내십시오. 마찬가지로, 우리에게 연락하는 데 사용하는 경우 연락을 보내십시오. 내가 할 수있는 일은 init 동안 클라이언트 측에서 루트 경로를 설정하는 것입니다. 예 : imagemanager_rootpath : "test" 하지만 내 경로는 내가 보낸 매개 변수를 기반으로 서버 측에서 계산됩니다. 이것을 할 수있는 방법이 있습니까?

1 :

나는 당신의 문제로 이해하는 것과

답변

0

두 가지 옵션이 서버에서 템플릿에서 자바 스크립트를 생성 (말 멋지 또는 동등한 사용)와 TinyMCE에 초기화 코드에 올바른 루트 경로를 삽입 .

<?php 
$root_path = get_root_path(); 
?> 

// Other javascript goes here 

tinymceInstance = tinyMce.init({ 
    //parameters 
    imagemanager_rootpath: "<?php echo $root_path ?>" 
}); 

: 2 :

그래서, 바로 PHP에서,이 같은 끝낼 수 초기화하는 때 자바 스크립트가 갖고 싶어하는 모든 매개 변수를 포함하는 자바 스크립트 매개 변수 파일을 생성 한 다음 이것을 사용 tinyMCE 인스턴스.

매개 변수 파일 :

<?php 
echo "window.serverParameters = ".json_encode(array("imageRoot" => get_root_path())); 
?> 

HTML :

<html> 
    <head> 
     <script src="serverParameters.php" type="text/javascript" /> 
    </head> 
</html> 

자바 스크립트 :

tinymceInstance = tinyMce.init({ 
    //parameters 
    imagemanager_rootpath: window.serverParameters.imageRoot 
}); 

희망하는 데 도움이!

+0

두 옵션을 모두 시도했습니다. 그리고 많은 코드를 반복해야했습니다. Session [ "imagemanager.filesystem.rootpath"] = ""과 거의 비슷합니다. 편집기를 사용하는 모든 페이지에서 때로는 페이지에 여러 페이지가 있고 여러 위치에 업로드해야합니다. tinyMce.init()에서 맞춤 매개 변수를 설정하고 서버 측에서받을 수 있다면 좋을 것입니다. 나는 현재 두 번째 옵션을 사용하고 있지만 js 매개 변수 대신 세션의 루트 경로를 설정합니다. –

0

현재로서는 더 나은 방법을 찾을 수 없습니다. 리소스 유형을 나타내는 매개 변수를 사용하고 루트 경로를 결정하고 Session [ "imagemanager.filesystem.rootpath"] = "someRootPath"를 설정하는 도우미 메소드를 작성했습니다. 편집기에서 뷰를 반환하는 컨트롤러에서이 헬퍼 메서드를 호출합니다. 이것에는 몇 가지 단점이 있습니다. 하나는 도우미 메서드가 이미지 관리자를 사용하는 관계없이 선행 호출된다는 것입니다. 나의 초기 접근 방식은 일단 이미지 관리자가 클릭되면 경로를 설정하는 것이었다. 따라서보기의 편집기가 이미지 관리자를 사용하지 않는 경우 도우미 메서드를 호출하지 마십시오. 두 번째 단점은 동일한보기에 여러 편집기가 있지만 다른 위치에 업로드해야하는 경우입니다. 이건 불가능 해. 모든 편집기는 세션에서 설정된 동일한 루트 경로를 사용합니다. 다시 한 번 더 나은 접근법은 각 편집기에서 서버로 값을 보내고 루트 경로를 설정하는 것입니다. 여러 위치를 사용하는 한 가지 방법은 모든 위치를 가져 와서 magemanager_rootpath : "someRootPath"를 사용하여 tinyMce 편집기의 init()에 설정하는 것입니다. 그러나보기가 여러 편집기를 사용하고 모두보기에서 동일한 위치를 사용하는 경우 헬퍼 메서드는 원래 방법으로 여러 번이 아니라 한 번만 호출된다는 이점이 있습니다. 그래서 Skurrier의 답변을 정확하다고 표시하고 있지만 더 나은 접근 방법을 찾으면 의견을 남깁니다.

관련 문제