原来文章有点问题,现在已经修复bug
1. 打开”/fckeditor/editor/filemanager/connectors/php/commands.php” 这个文件
在最下面添加几个函数
[php]
//delete uploadfiles 删除附件
function DeleteFile(){
$filePath = $_GET['FileName'];
if (empty($filePath)) {
$sErrorNumber = '102';
$sErrorMsg = "no select";
}else {
$d_root = $_SERVER['DOCUMENT_ROOT'];
$t = @unlink($d_root.$filePath);
$sErrorNumber = '0';
}
}
//delete folder 删除文件夹(单个删除)
function DeleteFolder(){
$folderPath = $_GET['FolderPath'];
$d_root = $_SERVER['DOCUMENT_ROOT'];
$path = $d_root.$folderPath;
$openDir = opendir($path);
$file = readdir($openDir);
while($file = readdir($openDir)){
if($file!='.' && $file != '..'){
$isc[] = $file;
}
}
if(!is_array($isc)){
@rmdir($path);
}else{
echo '<folderError path="'.$path.'" info = "1" />';
}
}
//delete allfolder 删除所有文件夹包括附件
function DeleteAllFolder(){
$folderPath = $_GET['FolderPath'];
delAll($folderPath);
}
//del all 这个是检测文件和删除所有文件夹的函数 用于检测文件下面是否还有附件,如果有则提示是否确定删除?
//如果选择确定,则删除该文件下的所有文件.如果否,则不删除,.
function delAll($path){
$openDir = opendir($path);
while($file = readdir($openDir)){
if($file!='.' && $file != '..'){
$fullPath = $path.'/'.$file;
}
if(!is_dir($fullPath)){
@unlink($fullPath);
}else{
delAll($fullPath);
}
}
closedir($openDir);
if(rmdir($path)){
return true;
}else{
return false;
}
}
[/php]
2. 打开”/fckeditor/editor/filemanager/connectors/php/connector.php” 这个文件
搜索 case ‘CreateFolder’ :
如果搜索不到直接找到第78行.
在下面添加
[php]
case ‘DeleteFile’ :
DeleteFile();
break;
case ‘DeleteFolder’ :
DeleteFolder();
break;
case ‘DeleteAllFolder’ :
DeleteAllFolder();
break;
[/php]
3.打开”fckeditor/editor/filemanager/connectors/php/config.php”这个文件
搜索
$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder') ;
将这段代码修改成
$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder', 'DeleteFile', 'DeleteFolder', 'DeleteAllFolder') ;
4.打开”fckeditor/editor/filemanager/browser/default/frmresourceslist.html”这个文件
然后搜索
oListManager.GetFolderRowHtml = function( folderName, folderPath, folderUrl )
将这个函数里面的内容修改成
oListManager.GetFolderRowHtml = function( folderName, folderPath, urltest )
{
// Build the link to view the folder.
var sLink = ‘<a href=”#” onclick=”OpenFolder(\” + ProtectPath( folderPath ) + ‘\’);return false;”>’ ;
return ‘<tr><td width=”25px”><a href=”javascript:void(0)” onclick=”DeleteFolder(\”+folderName+ ‘\’,\”+ProtectPath(urltest) +’\’)”><img src=”images/delete.gif” alt=”Delete ‘ + folderName + ‘” /></a></td>’ + ‘<td width=”16″>’ + sLink + ‘<img alt=”” src=”images/Folder.gif” width=”16″ height=”16″ border=”0″ /><\/a>’ + ‘<\/td><td nowrap colspan=”2″> ’ + sLink + folderName + ‘<\/a>’ + ‘<\/td><\/tr>’ ;
}
这是在每个文件夹前面添加一个删除按钮
4.继续查找
oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
将函数里面的内容替换成
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=”25px”><a href=”javascript:void(0)” onclick=”DeleteFile(\”+ProtectPath( fileUrl )+ ‘\’)”><img src=”images/delete.gif” alt=”Delete ‘ + fileName + ‘” /></a></td>’ + ‘<td width=”16″>’ + sLink + ‘<img alt=”” src=”‘+ ProtectPath( fileUrl ) +'” width=”40″ height=”40″ border=”0″ /><\/a>’ + ‘<\/td><td> ’ + sLink + fileName + ‘<\/a>’ + ‘<\/td><td align=”right” nowrap> ’ + fileSize + ‘ KB’ + ‘<\/td><\/tr>’ ;
}
同个文件,114行左右for循环替换修改成
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ,sCurrentFolderUrl) ) ;
}
5.紧接着在这个函数下面添加4个方法
[php]
//delete file
//cary add
function DeleteFile( fileUrl ){
if ( fileUrl == null )
return ;
if (confirm('Do you really want to delete this picture ?')) {
oConnector.SendCommand( 'DeleteFile', 'FileName=' + encodeURIComponent( fileUrl) , DeleteFileCallBack ) ;
} else {
return ;
}
}
//cary add
function DeleteFileCallBack( fckXml ){
if ( oConnector.CheckError( fckXml ) == 0 )
window.parent.frames['frmResourcesList'].Refresh() ;
}
function DeleteFolder( folderName, folderUrl){
if ( folderName == null )
return ;
if (confirm('Do you really want to delete this folder ?')) {
oConnector.SendCommand( 'DeleteFolder', 'FolderPath=' + encodeURIComponent(folderUrl+folderName) , DeleteFolderCallBack ) ;
} else {
return ;
}
}
//delete folder
function DeleteFolderCallBack( fckXml ){
var msg = 'The folder which you want to delete has subfolders or subfiles. Are you sure to delete all of them ?';
if ( oConnector.CheckError( fckXml ) != 0 )
return ;
// Get the current folder path.
var oFolderErr = fckXml.SelectSingleNode( ‘Connector/folderError’ ) ;
if ( oFolderErr == null )
{
window.parent.frames['frmResourcesList'].Refresh() ;
return;
}
var err = oFolderErr.attributes.getNamedItem('info').value ;
var path = oFolderErr.attributes.getNamedItem('path').value ;
if(err == 1){
if (confirm(msg)) {
oConnector.SendCommand( 'DeleteAllFolder', 'FolderPath=' + encodeURIComponent(path) , DeleteFolderCallBack ) ;
} else {
return ;
}
}
}
[/php]
6.修改下css样式
打开”fckeditor/editor/filemanager/browser/default/browser.css”这个文件
添加如下css样式
a:link, a:visited {text-decoration:none; color:#00F;}
a:hover, a:active {text-decoration:underline; color:#F00;}
img {border:0;}
这是为了去掉下划线
如果发现什么问题,可以给我发邮件 yangzeyanlove@foxmail.com