Supprimer des éléments

Bonsoir les écureuils
sur https://www.spip.net/fr_article1112.html#Supprimer-des-elements
je peu lire …

Supprimer des éléments

1. Comment supprimer un article ?

On ne peut pas supprimer directement un article, mais on peut le mettre « à la poubelle » dans le menu de sélection du statut de l’article. Les articles à la poubelle sont automatiquement effacés au bout de 24 heures ; cela vous laisse un temps de répit en cas de mauvaise manipulation.

quel est donc le fichier spip ou le délai de 24h00 est fixé.
j’aimerais augmenter le délai

merci pour votre aide

Si tu installes le plugin Corbeille, le délai sera infini.

Merci RealET pour ta réponset la piste

je ne souhaite plus utiliser le plugin corbeille, je ne souhaite pas avoir des supressions d’article ou autre sur la mutualisation qui soit infini

j’ai découvert suite a l’explosion du quota disk que certain avez des articles a la corbeille de 2019.

donc l’idée est d’augmenter ce temps un peu plus que 24h00, peu être qu’un défine ferais l’affaire mais je ne sais pas trop ou chercher

https://git.spip.net/spip/spip/src/branch/master/ecrire/genie/optimiser.php#L46

merci graphie pour la piste ,

je vais mettre dans le mes_fonctions de ma mutu

/**

* Vider les contextes ajax de plus de 48h

*/

function optimiser_caches_contextes() {

sous_repertoire(_DIR_CACHE, 'contextes');

if (is_dir($d = _DIR_CACHE . 'contextes')) {

include_spip('inc/invalideur');

purger_repertoire($d, ['mtime' => time() - 48 * 24 * 3600, 'limit' => 10000]);

}

}

et je modifie ala valeur souhaité le
time() - 48 * 24 * 3600,

je comprend pas cette ligne qui d’apres la doc doit être égal a 24h00
une ame charitable pourrais me l’expliqué

48243600 et a quoi correspond le limit

merci les écureuils

Euh tu mélanges 2 choses il me semble.

Ton code est pour la suppression du cache contextes que je ne connais pas sur mes site.

Pourquoi tu veux allongé la corbeille ?
Tu as beaucoup d’article à la poubelle qui te manque ?

Salut pierre,

pour répondre a tes questions, je reprend un peu le fil initial si ça permet une meilleur compréhension de ma problématique.

je suis sur une mutu et j’avais activé le plugin corbeille car j’ai eu plusieurs fois des webmestre qui on crié au secours qu’il avais effacé un article et celui-ci n’été plus récupérable puisque spip au bout de 24h00 l’avais définitivement suprimé.

Cool corbeille empechera cela, Mais …

Je me suis retrouvé avec une alerte de quota disk, et du coup en charchant un peu je me suis rendu compte que certain site avais supprimé des articles en 2012 mais que ceci été en corbeille, et que les documents n’avais pas été supprimés non plus.

donc je souhaite supprimé le plugin corbeille de la mutu, mais rallongé le temps imparti a spip pour effacer les articles 24h00 et trop court pour nous on aimerais pouvoir réglé ça a 15 jours environ.

ben oui ils sont indiscipliné MDR

est ce plus clair pour toi ? a tu une idée ?

Corbeille supprime le vidage auto, normal que tu te retrouves avec des tonnes de trucs encombrants, si tu va pas cliquer régulièrement sur les petits boutons un par un pour éviter … de supprimer des articles récents.
Hyper efficace pour un site avec peu de rédacteurs, impossible à gérer pour des gros sites.

Le vidage s’effectuant par une tache cron (optimiser base ?) je suppose qu’il y a un test pour vérifier le délai de 24h. C’est là qu’il faut agir.
Te reste plus qu’à trouver un dev spip qui accepte de mettre les mains dans le cambouis pour trouver l’endroit du test (qui n’est pas forcément dans le code principal)… et surtout la tache concernée.
A++

merci pour la piste
si je met dans le mes_options.php la fonction , ça va le faire ou pas ?

function optimiser_base($attente = 1296000) {
optimiser_base_disparus($attente);
}

supprime au bout de1 5 jours
mais est ce que spip sera prioritaire avec

function optimiser_base($attente = 86400) {
optimiser_base_disparus($attente);`

}

Désolé, je ne peux pas faire plus : je ne suis pas dev et je ne comprend rien à spip. j’ai trouvé cette piste sans aucune précision sur internet à partir des taches cron de mon spip.
Bon courage

Ben non, c’est pas une fonction _dist.

Tu pourrais créer un ticket pour demander la création d’une constante
_ARTICLES_DELAI_SUPPRESSION_POUBELLE
(à l’image de la constante _AUTEURS_DELAI_REJET_NOUVEAU qui existe déjà)

Et sinon dans l’immédiat est-ce que c’est pas une combinaison du plugin corbeille, qu’il faudrait activer, et d’une nouvelle instance paramétrable (par une constante par exemple) du pipeline optimiser_base_disparus, qu’il faudrait créer ?
Dans ton plugin squelette perso, ou dans le plugin corbeille lui-même si ça a du sens.
Ce pipeline continuera à être appelé tous les 86400s puisque c’est en dur dans spip, mais ton instance du pipeline effacera, ou pas, ce qu’il veut avec les délais que tu veux.

Merci Jean Luc pour tes eclaircissement,

Je pense que les DEV de spip on bien autre chose a faire que de creer cette constante qui a l’air d’etre un besoin particulier, toutefois modifié le plugin corbeille n’est pas dans mes cordes.

Donc la seul piste que je serais faire c’est de modifier le code en dur dans spip, mais c’est franchement un truc a pas faire.

Je vais attendre qu’un écureuil dans les mois qui arrive ai envie de coder ça.

merci a vou tous j’ai a chaque fois ma dose d’apprentissage des arcanes de spip pour mon plus grans plaisir

j’ai un doute entre la ligne 46 et la ligne 71
https://git.spip.net/spip/spip/src/branch/master/ecrire/genie/optimiser.php#L46

qulqu’un pourrais me confirmer quel ligne modifié pour augmenter le temps

merci beaucoup

Je le fait pour deux trois petits truc mais mon serveur local me permet de mettre des étiquettes aux fichiers modifiés, donc de les repérer facilement sans même les noter.
Attention, ne succombe pas à la tentation d’aller dans le dossier ecrire/genie/optimiser.php :smiling_imp:
Et surtout ne lis pas les lignes 193 à 194

// les articles a la poubelle
	sql_delete("spip_articles", "statut='poubelle' AND maj < $mydate_quote");

Cela pourrait te donner des idées malsaines telles qu’essayer de rajouter du temps à $mydate_quote qui semble être utilisée pour déterminer la date des articles à éliminer.
il semble que cela soit géré à partir de cette unique commande.

Voire même, ce que suggère jluc en plus léger : faire un petit truc à lancer régulièrement pendant que corbeille retient les articles dans ses petits bras musclés, sans aucune modification de spip
Après, ne me demande pas ce qu’est $mydate_quote d’où ça vient et comment c’est chargé… Si tu fait ta propre formule, tu n’en as pas besoin, tu peux utiliser la date système

ah merci pour la piste :wink:

je pense que je vais virer certaine ligne de optimiser.php (hummmmm pas bien)

creer une tache cron qui executera un petit script tous les 15 jours sur l’ensemble des bdd du serveur

ave la requete
sql_delete("spip_articles", "statut='poubelle'

sur qu’un truc plus simple,
genre a mettre dans mes_options racine serveur ça serais cool

aah attention, tant qu’à modifier optimiser.php, et devoir gérer derrière les mises à jours spip, autant enlever 15 jours à $mydate_quote
et t’as plus de problème.
Et si tu fait un cron associé au plugin poubelle, le faire simplement tourner tous les 15 jours n’est pas valable :
il faut aussi tester MAJ (J-15), sinon, lorsqu’il se déclenchera, il videra tes 15 jours de poubelle y compris la journée en cours.

on voit que je ne suis pas dev, ni bon en maths, il faut en enlever au contraire