[原创]让FCKeditor的File manager支持”删除” (php)
FCKeditor是一款很好用的所见即所得编辑器, 内置的File manager也实现了基本的文件管理功能, 唯一遗憾的是, 不支持删除…
没关系, 其实只需以下几步就可以实现删除文件和文件夹:
1, fckeditor\editor\filemanager\browser\default\frmresourceslist.html, 编辑:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->oListManager.GetFolderRowHtml = function( folderName, folderPath, folderUrl ) { // Build the link to view the folder. var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath( folderPath ) + '\');return false;">' ; return '<tr>' + '<td width="16">' + sLink + '<img alt="" src="images/Folder.gif" style="max-width:90%" style="max-width:90%" border="0">' + '</td> <td nowrap colspan="2"> ' + sLink + folderName + '' + '</td> <td align="right" width="45">- <a href="#" onclick="DeleteFolder(\''+folderName+'\',\''+ folderUrl.replace( /'/g, '\\\'') + '\');return false;">Delete</a> </td>' ; } <br>2, fckeditor\editor\filemanager\browser\default\frmresourceslist.html, 编辑:<br><dl class="code">PHP code<pre class="brush:php;toolbar:false"> <!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize ) { // Build the link to view the folder. var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath( fileUrl ) + '\');return false;">' ; // Get the file icon. var sIcon = oIcons.GetIcon( fileName ) ; return '<tr>' + '<td width="16">' + sLink + '<img alt="" src="images/icons/'%20+%20sIcon%20+%20'.gif" style="max-width:90%" style="max-width:90%" border="0">' + '</td> <td> ' + sLink + fileName + '' + '</td> <td align="right" nowrap> ' + fileSize + ' KB' + '</td> <td align="right" width="45">- <a href="#" onclick="DeleteFile(\''+fileName+'\',\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">Delete</a> </td>' ; } <br>3, fckeditor\editor\filemanager\browser\default\frmresourceslist.html, 增加:<br><dl class="code">PHP code<pre class="brush:php;toolbar:false"> <!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->function DeleteFile( fileName, fileUrl ) { if (confirm('Are you sure you wish to delete ' + fileName + '?')) { oConnector.SendCommand( 'DeleteFile', "FileUrl=" + escape( fileUrl ), Refresh ) ; } } function DeleteFolder( folderName, folderPath ) { if (confirm('Are you sure you wish to delete \'' + folderName + '\' and all files in it?')) { oConnector.SendCommand( 'DeleteFolder', "FolderName=" + escape( folderPath + folderName ), Refresh ) ; } }
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/", sCurrentFolderUrl ) ) ;
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->function DeleteFile( $resourceType, $currentFolder ) { $file = $_SERVER['DOCUMENT_ROOT'].$_GET['FileUrl']; if (is_file($file)) { unlink($file); } else { echo '<error number="1? originaldescription=”unable to locate file">'; } } function DeleteFolder( $resourceType, $currentFolder ) { $folder = $_SERVER['DOCUMENT_ROOT'].$_GET['FolderName']; if (is_dir($folder) ) { DELETE_RECURSIVE_DIRS($folder); } else { echo '<error number="2? originaldescription=" unable to locate folder>'; } } function DELETE_RECURSIVE_DIRS($dirname) { // recursive function to delete // all subdirectories and contents: if(is_dir($dirname))$dir_handle=opendir($dirname); while($file=readdir($dir_handle)) { if($file!="." && $file!="..") { if(!is_dir($dirname."/".$file)) { unlink ($dirname."/".$file); } else { DELETE_RECURSIVE_DIRS($dirname."/".$file); } } } closedir($dir_handle); rmdir($dirname); } <div class="clear"> </div></error></error>