您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

fckeditor具有查看/重命名/删除功能

2024/5/15 21:16:55发布26次查看
第一步 找到这个文件 /fckeditoreditorfilemanagerbrowserdefaultfrmresourceslist.html
将已经存在的代码修改为:
复制内容到剪贴板代码:olistmanager.getfolderrowhtml = function( foldername, folderpath )
{
// build the link to view the folder.
var slink = ' ' ;
var rlink = '' ;
var dlink = '' ;
var sslink =  rlink + dlink;
return '' +
   '  ' +
    slink +
    foldername +
    ' ' + sslink +
  '
' ;
}
olistmanager.getfilerowhtml = function( filename, fileurl, filesize )
{
var sicon = oicons.geticon( filename ) ;
// build the link to view the file.
var slink = ' ' ;
var vlink = '' ;
var rlink = '' ;
var dlink = '' ;
// get the file icon.
    var sslink =  vlink + rlink + dlink;
return '' +
   '  ' +
    slink +
    filename +
    '' +
   '  ' +
    filesize +
    ' kb' + sslink +
  '
' ;
}
function openfolder( folderpath )
{
// load the resources list for this folder.
window.parent.frames['frmfolders'].loadfolders( (folderpath) ) ;
}
function openfile( fileurl )
{
window.top.opener.seturl( fileurl.replace( '#', '%23' ) ) ;
window.top.close() ;
window.top.opener.focus() ;
}
function deletefolder( folderurl )
{
if ( !confirm( 'do you really delete the folder ' + folderurl + ' ?' ) ) return false;
oconnector.sendcommand( 'deletefolder', 'foldername=' + ( encodeuri(folderurl) ) , deletefoldercallback ) ;
}
function deletefoldercallback( fckxml )
{
var onode = fckxml.selectsinglenode( 'connector/error' ) ;
var ierrornumber = parseint( onode.attributes.getnameditem('number').value ) ;
var serrordescription = string( onode.attributes.getnameditem('originaldescription').value ) ;
switch ( ierrornumber )
{
  case 0 :
   refresh() ;
   break ;
  case 201 :
   alert( 'you have no permissions to delete the folder' ) ;
   break ;
  case 202 :
   alert( 'invalid folder name' + serrordescription ) ;
   break ;
  case 203 :
   alert( 'folder not exists' + serrordescription ) ;
   break ;
  default :
   alert( 'error deleting folder. nerror number: ' + ierrornumber  + ' nerror description: ' + serrordescription ) ;
   break ;
}
}
function deletefile(fileurl)
{
if ( !confirm( 'do you really delete the file ' + fileurl + ' ?' ) ) return false;
oconnector.sendcommand( 'deletefile', 'filename=' + encodeuri( fileurl ) , deletefilecallback ) ;
}
function deletefilecallback( fckxml )
{
var onode = fckxml.selectsinglenode( 'connector/error' ) ;
var ierrornumber = parseint( onode.attributes.getnameditem('number').value ) ;
var serrordescription = string( onode.attributes.getnameditem('originaldescription').value ) ;
switch ( ierrornumber )
{
  case 0 :
   refresh() ;
   break ;
  case 301 :
   alert( 'you have no permissions to delete the file' ) ;
   break ;
  case 302 :
   alert( 'invalid file name' + serrordescription ) ;
   break ;
  case 303 :
   alert( 'file not exists' + serrordescription  ) ;
   break ;
  default :
   alert( 'error deleting file. nerror number: ' + ierrornumber  + ' nerror description: ' + serrordescription ) ;
   break ;
}
}
function renamefolder( foldername )
{
var newname = prompt('please enter the new folder name for ' + foldername + ':', foldername);
if ((newname != null) && (newname != '') && (newname != foldername)) {
  oconnector.sendcommand( 'renamefolder', foldername= + encodeuri(foldername) + &newname= + encodeuri ( newname ), renamefoldercallback ) ;
}
}
function renamefoldercallback( fckxml )
{
var onode = fckxml.selectsinglenode( 'connector/error' ) ;
var ierrornumber = parseint( onode.attributes.getnameditem('number').value ) ;
var serrordescription = string( onode.attributes.getnameditem('originaldescription').value ) ;
switch ( ierrornumber )
{
  case 0 :
   refresh() ;
   break ;
  case 401 :
   alert( 'you have no permissions to rename the folder' ) ;
   break ;
  case 402 :
   alert( 'invalid folder name' + serrordescription ) ;
   break ;
  case 403 :
   alert( 'is not folder' + serrordescription ) ;
   break ;
  case 404 :
   alert( 'folder not exists' + serrordescription ) ;
   break ;
  default :
   alert( 'error renaming folder. nerror number: ' + ierrornumber  + ' nerror description: ' + serrordescription ) ;
   break ;
}
}
function renamefile( filename )
{
var newname = prompt('please enter the new file name for ' + filename + ':', filename);
if ((newname != null) && (newname != '') && (newname != filename)) {
  oconnector.sendcommand( 'renamefile', filename= + encodeuri( filename ) + &newname= + encodeuri( newname ), renamefilecallback ) ;
}
}
function renamefilecallback( fckxml )
{
var onode = fckxml.selectsinglenode( 'connector/error' ) ;
var ierrornumber = parseint( onode.attributes.getnameditem('number').value ) ;
var serrordescription = string( onode.attributes.getnameditem('originaldescription').value ) ;
switch ( ierrornumber )
{
  case 0 :
   refresh() ;
   break ;
  case 501 :
   alert( 'you have no permissions to rename the file' ) ;
   break ;
  case 502 :
   alert( 'invalid file name' + serrordescription ) ;
   break ;
  case 503 :
   alert( serrordescription +  'is not a file' ) ;
   break ;
  case 504 :
   alert( 'file not exists' + serrordescription  ) ;
   break ;
  default :
   alert( 'error renaming file. nerror number: ' +  ' nerror description: ' + serrordescription ) ;
   break ;
}
}
2。 第二步 找到这个文件 /fckeditoreditorfilemanagerbrowserdefaultfrmfolders.html
  将函数openfolder(folderpath)最后一句修改为:
复制内容到剪贴板代码:var agent = navigator.useragent;
if(agent.indexof('msie') != -1 || agent.indexof('trident') != -1) {
    window.parent.frames['frmresourceslist'].loadresources( oconnector.resourcetype, (folderpath) ) ;
}else{
    window.parent.frames['frmresourceslist'].loadresources( oconnector.resourcetype, encodeuri(folderpath) ) ;
}
3。第三步,找到fckeditoreditorfilemanagerbrowserdefaultbrowser.html
添加函数:
复制内容到剪贴板代码:function selectbrowser(str) {
  var agent = navigator.useragent;
  if(agent.indexof('gecko') != -1) {
     return encodeuricomponent(str);
  }else if(agent.indexof('msie') != -1 || agent.indexof('trident') != -1) {
     return str;
  }else{
     return encodeuricomponent(str);
  }
}
第79行修改为: oconnector.connectorurl += 'serverpath=' + selectbrowser( sserverpath ) + '&' ;
第91行修改为: surl += '¤tfolder=' + selectbrowser( this.currentfolder ) ;
4。第四步 再找这个文件 fckeditoreditorfilemanagerconnectorsphpcommands.php
添加:
复制内容到剪贴板代码:  header('content-type:text/html;charset=utf-8');
function deletefolder( $resourcetype, $currentfolder ) {
$sfoldername = $_get['foldername'];
$serrormsg      = '';
$sserverdir = servermapfolder( $resourcetype, $currentfolder . / . $sfoldername ,'deletefolder');
    /*if(empty($_cookie[xxxxxx])) {
  $serrornumber    = 201; //permissions
}else */ if(empty($_get['foldername']) or (!is_dir($sserverdir))) {
  $serrornumber    = 202;  //invalid folder name.
  $serrormsg         =  $sfoldername;
}else    if(!file_exists($sserverdir)) {
  $serrornumber    = 203; // folder not exists
  $serrormsg         =  $sfoldername;
  echo $sfoldername;exit();
    }else{
     if(@rmdir($sserverdir)) {
     $serrornumber = 0;//success
     }else{
     $serrornumber = 222;
     $serrormsg    = 目录删除失败,原因:1。目录不为空n2。没有权限;
     }
}
echo '' ;
}
function deletefile( $resourcetype, $currentfolder ) {
$sfilename     = iconv(utf-8,gbk,$_get['filename']);
$serrormsg            = ;
$sserverdir = servermapfolder( $resourcetype, $currentfolder . / . $sfilename ,'deletefile');
/*if(empty($_cookie['hazysuser'])) {
     $serrornumber   = 301;  //security error.
}else*/ if( empty($_get['filename']) or (!is_file($sserverdir))) {
  $serrornumber   = 302; //invalid file name.
  $serrormsg        = $sfilename;
}else if(!file_exists($sserverdir)) {
  $serrornumber   = 303; //file not exists.
  $serrormsg        = $sfilename;
}else{
        if(@unlink($sserverdir)) {
     $serrornumber  = 0;
  }else{
     $serrornumber  = 333;
           $serrormsg     = 无法删除此文件,原因:n1。没有权限。n2。必须在dos下才能删除的特殊文件;
  }
}
echo '';
}
function renamefolder( $resourcetype, $currentfolder ) {
    $serrormsg   = '';
$sfoldername = urldecode(mb_convert_encoding($_get['foldername'],gbk,utf-8));
$snewname  = urldecode(mb_convert_encoding($_get['newname'],gbk,utf-8));
$sserverdir  = servermapfolder( $resourcetype, $currentfolder . / . $sfoldername ,'renamefolder');
$snewdir  = servermapfolder( $resourcetype, $currentfolder . / . $snewname ,'renamefolder' );
/*if( empty($_cookie[xxxxxx])) {
  $serrornumber   = 401;
}else */if ( empty($_get['foldername']) or  empty($_get['newname']) ) {
  $serrornumber = 402;//invalid folder name.
  $serrormsg      = $sfoldername .' != '.$snewname;
/*}else if (!is_dir($sserverdir)) {
        $serrornumber = 403;  //is not folder
  $serrormsg    = $sfoldername.' is not folder';
}else if (!file_exists($sserverdir)) {
   $serrornumber = 404;  //folder not exists.
   $serrormsg    = $sfoldername;*/
}else {
  if(rename($sserverdir,$snewdir,stream_context_create() )) {
     $serrornumber = 0;
  }else{
     $serrornumber = 444;
           $serrormsg = 无法修改目录名称:.$sfoldername.'为'.$snewname.'。';
  }
}
echo '';
}
function renamefile( $resourcetype, $currentfolder ) {
$sfilename = iconv(utf-8,gbk,$_get['filename']);
$snewname = iconv(utf-8,gbk,$_get['newname']);
$serrormsg  = '';
$sserverdir = servermapfolder( $resourcetype, $currentfolder . / . $sfilename ,'renamefile');
$snewdir = servermapfolder( $resourcetype, $currentfolder . / . $snewname ,'renamefile');
/*if(empty($_cookie[xxxxxx])) {
    $serrornumber   = 501;
}else */if( empty($_get['filename']) or empty($_get['newname']) ) {
  $serrornumber  = 502;
}else  if(!is_file($sserverdir)) {
  $serrornumber = '503';
  $serrormsg    = $sfilename .' is not a file';
}else if(!file_exists($sserverdir)) {
  $serrornumber = '504';
  $serrormsg    = $sfilename .' is not exists';
}else{
  if(rename($sserverdir,$snewdir)) {
     $serrornumber    = 0;
  }else{
     $serrornumber    = 555;
     $serrormsg = 无法重命名此文件:.$sserverdir;
  }
}
echo '';
}
修改function getfoldersandfiles( $resourcetype, $currentfolder )函数,并添加以下内容:
复制内容到剪贴板代码:$agent = $_server['http_user_agent'];
if(stripos($agent,gecko)>0) {
  $currentfolder   = urldecode($currentfolder);
}
if(stripos($agent,gecko)>0) {
  $sserverdir = iconv(utf-8,gbk,$sserverdir);
}
5。第五步 fckeditoreditorfilemanagerconnectorsphpconfig.php
第28行修改为:$config['configallowedcommands'] = array('quickupload', 'fileupload', 'getfolders', 'getfoldersandfiles', 'createfolder','deletefolder','deletefile','renamefolder','renamefile') ;
6。第六步 fckeditoreditorfilemanagerconnectorsphpconnector.php
在相应地方添加以下代码:
复制内容到剪贴板代码:  case deletefolder:
   deletefolder( $sresourcetype, $scurrentfolder );
   break ;
  case deletefile:
   deletefile( $sresourcetype, $scurrentfolder );
   break ;
  case renamefolder:
   renamefolder( $sresourcetype, $scurrentfolder );
   break ;
  case renamefile:
   renamefile( $sresourcetype, $scurrentfolder );
   break ;
7。第七步 fckeditoreditorfilemanagerconnectorsphpio.php
第70行函数function createserverfolder( $folderpath, $lastfolder = null )里添加:
$folderpath = iconv(utf-8,gbk,$folderpath);
8。第八步 fckeditoreditorfilemanagerconnectorsphputil.php
第50行修改为:
return (mb_convert_encoding(htmlspecialchars($value),utf-8,gbk)) ;
上面的为完全版,但要自己动手。在 http://www.uushare.com/user/littlenew/file/1942702里有免费版,不过里面某些代码已经加密,请勿破解,保证不含任何恶意代码,也不会有反向连接等一系列其它联网活动。
[url= http://www.hazytime.cn/article/article.asp?/6370-1-1.html]也可以到我的网站查看[/url]。
1。我的ie8在apache下不能浏览中文目录里的图片,怎么办?
       在ie8的设置里选中:发送 utf-8 url
2。免费版本已经存在的问题:在firefox不能修改、删除文件,只能上传文件.
测试环境:windows 2003 + apache 2.2.11 + php5.3 + utf-8(不带bom)
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product