在phpcms v9 内容编辑器(ckeditor)中附件上传后如何以文件名作链接 100
今天研究phpcms,v9,在编辑器里的附件上传那,上传完附件,点击附件,添加后文章中生成的是:链接为附件的完整路径,名称也为完整路径。这样很不人性化,想改成:上传完附件...
今天研究phpcms,v9,在编辑器里的附件上传那,上传完附件,点击附件,添加后文章中生成的是:链接为附件的完整路径,名称也为完整路径。这样很不人性化,想改成:上传完附件点击确定添加进正文中后,链接为附件链接地址,但显示为文件名,找不到代码,不知道如何修改,求助啊~
展开
1个回答
展开全部
我也遇到这个问题,网上找了半天没找到方式,于是自己动手改了一下,有不对之处,请高手指教,主要修改 /statics/js/swfupload/swf2ckeditor.js 文件,方法如下:
1、找到 submit_ckeditor 函数,在函数中加入 var in_name = d.$("#att-name").html();
function submit_ckeditor(uploadid,textareaid){
var d = window.top.art.dialog({id:uploadid}).data.iframe;
var in_content = d.$("#att-status").html();
var in_name = d.$("#att-name").html(); //这行是新加的
var del_content = d.$("#att-status-del").html();
insert2editor_mix(textareaid,in_content,in_name,del_content)
}
2、找到 insert2editor 函数,复制并改函数名称(因为直接改原函数怕有其他地方调用会出错),给函数加一个参数in_name,在函数中加入 var name = in_name.substring(1).split('|'); 并把for循环中的最后一个 data[n] 改为 name[n]
function insert2editor_mix(id,in_content,in_name,del_content) { //新加了参数 in_name
if(in_content == '') {return false;}
var data = in_content.substring(1).split('|');
var name = in_name.substring(1).split('|'); //这行是新加的
var img = '';
for (var n in data) {
img += IsImg(data[n]) ? '<img src="'+data[n]+'" /><br />' : (IsSwf(data[n]) ? '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="movie" value="'+data[n]+'" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="'+data[n]+'" type="application/x-shockwave-flash" width="460"></embed></object>' :'<a href="'+data[n]+'" />'+name[n]+'</a><br />') ; //这行的 name[n] 为原来的 data[n] 修改而成
}
$.get("index.php?m=attachment&c=attachments&a=swfdelete",{data: del_content},function(data){});
CKEDITOR.instances[id].insertHtml(img);
}
1、找到 submit_ckeditor 函数,在函数中加入 var in_name = d.$("#att-name").html();
function submit_ckeditor(uploadid,textareaid){
var d = window.top.art.dialog({id:uploadid}).data.iframe;
var in_content = d.$("#att-status").html();
var in_name = d.$("#att-name").html(); //这行是新加的
var del_content = d.$("#att-status-del").html();
insert2editor_mix(textareaid,in_content,in_name,del_content)
}
2、找到 insert2editor 函数,复制并改函数名称(因为直接改原函数怕有其他地方调用会出错),给函数加一个参数in_name,在函数中加入 var name = in_name.substring(1).split('|'); 并把for循环中的最后一个 data[n] 改为 name[n]
function insert2editor_mix(id,in_content,in_name,del_content) { //新加了参数 in_name
if(in_content == '') {return false;}
var data = in_content.substring(1).split('|');
var name = in_name.substring(1).split('|'); //这行是新加的
var img = '';
for (var n in data) {
img += IsImg(data[n]) ? '<img src="'+data[n]+'" /><br />' : (IsSwf(data[n]) ? '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="movie" value="'+data[n]+'" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="'+data[n]+'" type="application/x-shockwave-flash" width="460"></embed></object>' :'<a href="'+data[n]+'" />'+name[n]+'</a><br />') ; //这行的 name[n] 为原来的 data[n] 修改而成
}
$.get("index.php?m=attachment&c=attachments&a=swfdelete",{data: del_content},function(data){});
CKEDITOR.instances[id].insertHtml(img);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询