0 pour ne pas tuer les articles # specialement affectes a une rubrique non-existante (plugin, # cf. https://core.spip.net/issues/1549 ) $res = sql_select("A.id_article AS id", "spip_articles AS A LEFT JOIN spip_rubriques AS R ON A.id_rubrique=R.id_rubrique", "A.id_rubrique > 0 AND R.id_rubrique IS NULL AND A.maj < $mydate"); $n += optimiser_sansref('spip_articles', 'id_article', $res); // les articles a la poubelle sql_delete("spip_articles", "statut='poubelle' AND maj < $mydate"); // // Auteurs // include_spip('action/editer_liens'); // optimiser les liens de tous les auteurs vers des objets effaces // et depuis des auteurs effaces $n += objet_optimiser_liens(array('auteur' => '*'), '*'); # effacer les auteurs poubelle qui ne sont lies a rien $res = sql_select("A.id_auteur AS id", "spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur", "L.id_auteur IS NULL AND A.statut='5poubelle' AND A.maj < $mydate"); $n += optimiser_sansref('spip_auteurs', 'id_auteur', $res); # supprimer les auteurs 'nouveau' qui n'ont jamais donne suite # au mail de confirmation (45 jours pour repondre, ca devrait suffire) sql_delete("spip_auteurs", "statut='nouveau' AND maj < " . sql_quote(date('Y-m-d', time() - 45 * 24 * 3600))); /** * Permet aux plugins de compléter l'optimisation suite aux éléments disparus * * L'index 'data' est un entier indiquant le nombre d'optimisations * qui ont été réalisées (par exemple le nombre de suppressions faites) * et qui doit être incrémenté par les fonctions * utilisant ce pipeline si elles suppriment des éléments. * * @pipeline_appel optimiser_base_disparus */ $n = pipeline('optimiser_base_disparus', array( 'args' => array( 'attente' => $attente, 'date' => $mydate ), 'data' => $n )); if (!$n) { spip_log("Optimisation des tables: aucun lien mort"); } }