使用RoxyFileman的所选文件不会出现在TinyMCE编辑器中

时间:2015-08-23 09:54:55

标签: php integration tinymce-4 roxy-fileman

当我使用roxy fileman选择文件或图像时,如果我不在tinymce源字段中使用键盘,则文件或图像不会出现在编辑器中。如果我写一个空格并且在点击" Ok"之前删除它,它工作正常。按钮。

如果没有触发keyup事件,则由tinymce图像或链接工具不考虑roxy fileman给出的路径(一条好路径)! ?

Firefox或Chrome中的相同问题。

PHP 5.5.9,TinyMCE 4,roxyfileman 1.4.3,Ubuntu 14.04

是否有一个我没有正确使用的参数?

我的代码:



<!DOCTYPE html>
<html>
	<head>
		<title>Test TinyMCE</title>
		<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>

		<script type="text/javascript" src="js/tinymce/tinymce.min.js"></script>
	    <!-- place in header of your html document -->

	</head>
	<body>
<textarea id="tinymce" name="tinymce" rows="60" cols="80">
</textarea>
<script>
// This must be set to the absolute path from the site root.
var roxyFileman = '/public/fileman/index.html?integration=tinymce4';
  $(function() {
    tinyMCE.init({language: 'fr_FR', selector: '#tinymce', plugins: 'link image', 
                 toolbar: "link | image", file_browser_callback: RoxyFileBrowser});
});

function RoxyFileBrowser(field_name, url, type, win) {
  var cmsURL = roxyFileman;  // script URL - use an absolute path!
  if (cmsURL.indexOf("?") < 0) {
    cmsURL = cmsURL + "?type=" + type;
  }
  else {
    cmsURL = cmsURL + "&type=" + type;
  }
  cmsURL += '&input=' + field_name + '&value=' + win.document.getElementById(field_name).value;
  tinyMCE.activeEditor.windowManager.open({
    file: cmsURL,
    title: 'Images / Fichiers',
    width: 850, // Your dimensions may differ - toy around with them!
    height: 650,
    resizable: "yes",
    plugins: "media",
    inline: "yes", // This parameter only has an effect if you use the inlinepopups plugin!
    close_previous: "no"
	}, {
    window: win,
    input: field_name
	  });
  return false;
}
</script>
	</body>
</html>
&#13;
&#13;
&#13;

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在conf.js中写下编辑器的名称

现在INTEGRATION:“custom”将其替换为“INTEGRATION”:

对于Roxy Fileman与CKEditor的集成,将其设置为“ckeditor”,对于TinyMCE 3.x设置“tinymce3”,为TinyMCE 4.x设置“tinymce4”。对于自定义实现设置“custom”,然后填写位于fileman / js / custom.js中的“FileSelected()”函数 - 有关更多详细信息,请参阅“Roxy Fileman自定义集成”。默认值为“custom”。打开文件浏览器时,可以通过发送URL参数“integration”来覆盖此设置。

答案 1 :(得分:0)

这是TinyMCEs旧版file_browser_callback的一个错误:您需要在插入链接对话框中的“要显示的文本”后面写一些内容,否则文件将不会出现在textarea中。 新的file_picker_callback可以避免这种情况,因为它“能够更新对话框中的元数据”(see doc)

<强>解决方案
作为旧版file_browser_callback的解决方法,我在TinyMCEs链接插件的源代码中添加了一行,如果“要显示的文本”为空,则使用文件名作为文本。

tinymce\plugins\link\plugin.min.js的链接插件(u.title:null};)中搜索并添加此行:

if(!u.text){u.text=e.split('\/').pop()};

或更短:

u.text||(u.text=e.split("/").pop());

<强>解释
u.text是“要显示的文字”
e是完整的路径
split("/").pop()删除路径并保留文件名