Attention, la méthode que nous allons voir ici ne fonctionne que si vous utilisez FCKeditor avec PHP.
Toutefois, les utilisateurs d'ASP trouveront leur bonheur grâce à l'explication de Glouferu.
Coté client (javascript)
Nous allons commencer par ajouter un peu de javascript dans le filemanger, de façon à avoir un bouton 'delete' à coté des fichiers uploadés.
Pour cela, il faut éditer le fichier frmresourceslist.html qui se situe dans le dossier editor > filemanager > browser > default.
Nous devons ajouter la fonction qui enverra la requête vers le serveur, je l'ai appellé DelFile().
Pour fonctionner correctement, elle nécesite des variable supplémentaire et une fonction CallBack :
var ResourceType;
var CurrentFolder;
function DelFile( fileName ){
if(confirm("Supprimer le fichier " + fileName + " ?")){
ResourceType = oConnector.ResourceType;
CurrentFolder = oConnector.CurrentFolder;
oListManager.Clear() ;
oConnector.CurrentFolder = CurrentFolder + fileName;
oConnector.SendCommand( 'DelFile', null, DelFileCallBack ) ;
}
}
function DelFileCallBack() {
LoadResources( ResourceType, CurrentFolder ) ;
}
Placez ce bout de code APRES la balise <script type="text/javascript">, à la ligne 29.
Toujours dans le même fichier, recherchez le code suivant, nous allons y ajouter quelques lignes (indiquées en rouge) :oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize ){
// Lien delete
var dLink = '<a style="color:red;" href="#" onclick="DelFile(\'' + fileName + '\');return false;">' ;
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ;
// Get the file icon.
var sIcon = oIcons.GetIcon( fileName ) ;
return '<tr>' +
'<td width="16">' +
sLink +
'<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' +
'</td><td> ' +
sLink +
fileName +
'</a>' +
' ' + dLink + 'del</a>' +
'</td><td align="right" nowrap> ' +
fileSize +
' KB' +
'</td></tr>' ;
}
Après avoir vidé le cache du navigateur, vous devriez déjà avoir quelques chose ressemblant à ceci :

Seul problème, ça ne fonctionnera pas tant qu'on aura pas fait la modification coté serveur.
Coté serveur (PHP)
Nous devons ajouter le code qui supprimera le fichier du serveur. Pour cela, il faut éditer le fichier connector.php qui se situe dans le dossier editor > filemanager > browser > default > connectors > php > connectors.
Placez le code suivant AVANT la ligne 93 ( CreateXmlHeader ... ) si vous avez la version 2.4.3
ou AVANT la ligne 52 ( // Check if it is an allowed command ) pour la version 2.6 :
if ( $sCommand == 'DelFile' ){
$file = trim($sCurrentFolder, '/');
$sCurrentFolder = rtrim($sCurrentFolder, '/');
$sCurrentFolder = substr($sCurrentFolder, 0, strrpos($sCurrentFolder, '/') + 1);
$filepath = ServerMapFolder( $sResourceType, $currentFolder ) . $file;
@unlink($filepath);
$sCommand == 'GetFoldersAndFiles';
}