/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2014 *
+ * Copyright (c) 2001-2016 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
if ($champs['fichier'] // un plugin a pu interdire la modif du fichier en virant le champ
AND $ancien_fichier // on avait bien note le nom du fichier avant la modif
AND $ancien_fichier!==$champs['fichier'] // et il a ete modifie
+ AND !tester_url_absolue($ancien_fichier)
AND @file_exists($f = get_spip_doc($ancien_fichier)))
spip_unlink($f);
else $deja_parents[$lien['objet']][] = $lien['id_objet'];
}
- // verifier les droits d'associer
- foreach($objets_parents as $objet=>$ids){
- foreach($ids as $k=>$id){
- if (!autoriser('associerdocuments',$objet,$id)){
+ // trier les objets à traiter : ne pas prendre en compte ceux qui sont déjà associés ou qu'on n'a pas le droit d'associer
+ foreach ($objets_parents as $objet => $ids) {
+ foreach ($ids as $k => $id) {
+ if ((
+ isset($deja_parents[$objet])
+ and in_array($id, $deja_parents[$objet])
+ )
+ or !autoriser('associerdocuments', $objet, $id)
+ ) {
unset($objets_parents[$objet][$k]);
}
}