2011-04-05 4 views
1

나는 tiny_mce의 image_list_url을 PHP 파일로 변경하려고합니다.JS로 PHP 파일을 포함

URL을 image_list.php 파일로 변경했습니다. js 파일과 동일한 정확한 출력 텍스트를 생성합니다.

동일한 출력을 한 후에도 이미지 목록이 표시되지 않습니다.

콘텐츠 유형이 영향을 주는지 궁금합니다.

내 JS 파일의 콘텐츠는

:

// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. 
// There images will be displayed as a dropdown in all image dialogs if the "external_link_image_url" 
// option is defined in TinyMCE init. 

var tinyMCEImageList = new Array(
    // Name, URL 
    ["Logo 1", "media/logo.jpg"], 
    ["Logo 2 Over", "media/logo_over.jpg"] 
); 

은 내 PHP 코드 :

<?php 
    require('../../../system/config.php'); 
    $strPath = APP_ROOT.DS.'sys_uploads/images/'; 
    $objFileList = dir($strPath); 
    $arrFileList = array(); 
    while (false !== ($entry = $objFileList->read())) { 
     if(is_file($strPath.$entry)) 
      $arrFileList[] = array($entry, ABS_URL.'/sys_uploads/images/'.$entry); 
    } 
    $objFileList->close(); 

    header('Content-type: application/x-javascript'); 
    //header('Content-type: text'); 
?> 
// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. 
// There images will be displayed as a dropdown in all image dialogs if the "external_link_image_url" 
// option is defined in TinyMCE init. 

var tinyMCEImageList = new Array(
    // Name, URL 
<?php 
    if(count($arrFileList)>0) 
     foreach($arrFileList as $dataRow): 
?> 
    ["<?php echo $dataRow[0];?>", "<?php echo $dataRow[1];?>"], 
<?php endforeach; ?> 
); 

은 내 PHP 출력은 :

// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. 
// There images will be displayed as a dropdown in all image dialogs if the "external_link_image_url" 
// option is defined in TinyMCE init. 

alert('test working or not'); 

var tinyMCEImageList = new Array(
    // Name, URL 
    ["Logo 1", "media/logo.jpg"], 
    ["Logo 2 Over", "media/logo_over.jpg"] 
); 

편집 :

제안에 따라 경찰 난 추가 너무 전야의 팝업 메시지 n은 나타나지 않았다.

해결책 :

던 내 코드에 오류가 있었지만 링크에서 좋은 해결책을 찾을 알고 제안 다음은 .js와 PHP 파일 출력이 모두 동일로

http://tinymce.moxiecode.com/wiki.php/Configuration%3aexternal_image_list_url

+0

왜'$ arrFileList'의 크기를 계산합니까? 그것이 배열 인 한'foreach '에는 필요하지 않습니다. – Htbaa

+0

나는 그 빈 ... 제안을위한 thnx ... 내 코드를 최적화하는 데 도움이 건너 뛰고 싶습니다 – KoolKabin

답변

1

, 거기가해야 차이는 없어. text/javascript은 JS에서 가장 널리 지원되는 MIME 유형이므로 사용하면 도움이 될 것입니다.

XYZ.php.js와 같은 규칙을 사용하고 php.js 파일을 PHP로 구문 분석하기 위해 mod_rewrite를 사용하여 동적으로 생성 된 JS 파일의 이름을 지정하지 않아도됩니다.

편집 :

는 또한, 공식 TinyMCE docs 당, 또한 눈에 보이지 않는 출력의 비열한 원인이 될 수 있습니다 UTF8 BOM 검사, 동적으로 생성 된 JS에서 <?php 여는 태그 이전에 공백이 없다는 것을 확인하십시오.

+0

나는 ('Content-type : text/javascript'); 너무 도움이되지 않았다 ... 좋은 abt 두 번째 아이디어도 훌륭하다 ... 나는 그것을 시도 할 것이다 – KoolKabin

+0

어떻게 js 파일을 포함하고 있습니까? –

+0

그냥 tiny_mce 스크립트에서 ... 즉. tiny_mce_url 목록의 옵션에서 지정 ... – KoolKabin

0

헤더를 변경할 필요가 없습니다. 자바 스크립트 만 출력하면됩니다.

js.php : alert("Working!")로 HTML

: 나는 test.htm을로드 할 때

<script type="text/javascript" src="js.php"></script>, 나는이 확실히 잘못된 헤더 유형의 문제가 경고 상자

+0

나는 당신의 제안도 시도했습니다 ... 그러나 너무 팝업 메시지가 나타나지 않습니다 ... – KoolKabin

0

을 얻었다.

당신이 라인

헤더 ('콘텐츠 형식 : 응용 프로그램/x-자바 스크립트')를 변경하십시오 수 있습니다;

헤더

에 ('콘텐츠 유형 : 응용 프로그램/자바 스크립트');

응용 프로그램/x-javascript는 올바른 javascript 헤더가 아닙니다. 이게 도움이되는지 말해주세요

+0

변경 사항이 없습니다 ... – KoolKabin