2011-01-25 17 views
3

私はクライアント用に構築している新しいウェブサイトでtinyMCEをテストしています。ここで TinyMCE画像URLに余分なスラッシュを追加

は、私は画像の挿入を行うと、イメージの1つを選択したときに

http://simplicity.s462.sureserver.com/editor.php

私がいる問題がある...エディタのテストページでTinyMCEのに余分なスラッシュが追加されますイメージURL。その結果、画像は見つからない。余分なスラッシュを手動で削除すると、イメージが見つかります。

tinyMCEがこれらの余分なスラッシュを追加しないようにするにはどうすればよいですか?私は単純な答えがあると確信していますが、私は何時間も探していて、答えが見つからない運がありません。私は何を間違えているのですか?ここで

は、イメージリストを作成するために使用されるPHPコードである:ここで

<?php // this must be the very first line in your PHP file! 

// You can't simply echo everything right away because we need to set some headers first! 
$output = ''; // Here we buffer the JavaScript code we want to send to the browser. 
$delimiter = ""; // for eye candy... code gets new lines 

$output .= 'var tinyMCEImageList = new Array('; 

$directory = "../../images"; // Use your correct (relative!) path here 

// Since TinyMCE3.x you need absolute image paths in the list... 
$abspath = preg_replace('~^/?(.*)/[^/]+$~', '/$1', $_SERVER['SCRIPT_NAME']); 

if (is_dir($directory)) { 
    $direc = opendir($directory); 

    while ($file = readdir($direc)) { 
     if (preg_match('~^.~', $file)) { // no hidden files/directories here... 
      if (is_file("$directory/$file") && getimagesize("$directory/$file") != FALSE) { 
       // We got ourselves a file! Make an array entry: 
       $output .= $delimiter 
        . '["' 
        . utf8_encode($file) 
        . '", "' 
        . utf8_encode("$abspath/$directory/$file") 
        . '"],'; 

      } 
     } 
    } 

    $output = substr($output, 0, -1); // remove last comma from array item list (breaks some browsers) 
    $output .= $delimiter; 

    closedir($direc); 
} 
else 
{ 
    echo "false"; 
} 

// Finish code: end of array definition. Now we have the JavaScript code ready! 
$output .= ');'; 

// Make output a real JavaScript file! 
header('Content-type: text/javascript'); // browser will now recognize the file as a valid JS file 

// prevent browser from caching 
header('pragma: no-cache'); 
header('expires: 0'); // i.e. contents have already expired 

// Now we can send data to the browser because all headers have been set! 
echo $output; 

?> 

はTinyMCEのための設定は以下のとおりです。あなたの助けを

 // General options 
    mode : "textareas", 
    theme : "advanced", 
    plugins : "spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", 

    // Theme options 
    theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect", 
    theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor", 
    theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen", 
    theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage", 
    theme_advanced_toolbar_location : "top", 
    theme_advanced_toolbar_align : "left", 
    theme_advanced_statusbar_location : "bottom", 
    theme_advanced_resizing : true, 
    relative_urls : false, 
    convert_urls : false, 


    // Example content CSS (should be your site CSS) 
    content_css : "css/example.css", 

    // Drop lists for link/image/media/template dialogs 
    template_external_list_url : "js/template_list.js", 
    external_link_list_url : "js/link_list.js", 
    external_image_list_url : "external_image_list_url.php", 
    media_external_list_url : "js/media_list.js", 

おかげで!!

+0

はあなたが解決策を見つけるか:

tinymce.init({ selector: '#relurlstopage', relative_urls: true, document_base_url: 'http://www.tinymce.com/tryit/' }); 

は、URLの

tinymce.init({ plugins: 'link image code', convert_urls: false }); 

ソースを変換しないでください。私はURLを追加するときに同じ問題を抱えています。 – Aaron

答えて

1

PHPが二重スラッシュを挿入しているようです。私は$abspath/をされて終わると、あなたが既に存在しているスラッシュを追加している

utf8_encode("$abspath/$directory/$file") 

を言うとき$directoryはそうimages/をされて終わることを推測しています。あなたの最初のステップは、$abspath,$directory、および$fileのPHP内の値を調べることです。

例では、すべてのイメージが1つのディレクトリにあり、そのディレクトリがWebサーバーに関する限り/imagesであることを知っています。だから、あなたはいくつかの問題を抱えて、単純に言う:

utf8_encode("/images/$file") 

パスを操作して貼り付けるのではなく、

5

以下は、tinymceのウェブサイトからのいくつかの例です。

私は余分な../../スラッシュで問題を解決しました。

絶対URLの

tinymce.init({ 
    relative_urls: false 
}); 

絶対URLのホスト名を持ちます。特定のページへ

tinymce.init({ 
    relative_urls: false, 
    remove_script_host: false 
}); 

相対URLの

tinymce.init({ 
    relative_urls: true 
}); 

URLの相対。http://www.tinymce.com/tryit/url_conversion.php

関連する問題