Clustraly
Pages, catégories & étiquettes

Supprimez sans perdre : la mécanique du soft-delete de la Corbeille

Corbeille Mécanique du soft-delete est une fonctionnalité du module Pages, catégories & étiquettes de Clustraly. Le soft-delete met une entité à la corbeille en posant un marqueur deleted_at et en la désindexant, sans toucher ses données liées.

Une suppression dans Clustraly n'efface rien : elle marque la ligne, la retire de la recherche publique et conserve tout le reste. Vous décidez ensuite de restaurer ou de purger.

Suppression réversible

Une corbeille, pas une trappe : chaque suppression reste rattrapable

Quand vous supprimez une page, une catégorie ou une étiquette, Clustraly ne détruit rien. L'opération pose un marqueur deleted_at sur la ligne : l'entité quitte l'affichage courant mais reste stockée, prête à revenir.

La suppression définitive et le nettoyage en cascade, eux, n'ont lieu que depuis la Corbeille ou le cron de purge. Le geste quotidien reste donc toujours réversible.

  • model->trash() pose deleted_at au lieu d'effacer la ligne
  • L'entité reste en base, prête à restaurer
  • La purge définitive est une action séparée et volontaire
Comment ça marche

Un seul appel, TrashService::trash(type, id), et la ligne bascule proprement

TrashService::trash reçoit un type et un id, ne récupère qu'une ligne vivante (requête scopée sur les entités non supprimées), puis appelle model->trash() pour horodater deleted_at.

Une entité déjà en corbeille ou introuvable ne repart pas dans le circuit : l'appel retourne simplement false, sans effet de bord.

  • Cible uniquement les lignes vivantes, jamais une déjà supprimée
  • deleted_at horodate la mise à la corbeille
  • Retour false si la ligne est absente ou déjà en corbeille
Recherche à jour

L'entité disparaît de la recherche publique à l'instant même

Pas d'attente de reprise d'index : dès la mise à la corbeille, SearchIndex::deleteForEntity retire l'entité de l'index de recherche.

Vos visiteurs cessent aussitôt de tomber sur un contenu que vous venez de retirer, sans que vous ayez à déclencher une réindexation complète du site.

  • Désindexation instantanée via SearchIndex::deleteForEntity
  • Aucun contenu retiré ne reste trouvable en recherche
  • Pas besoin d'attendre le reindex complet
Restauration à l'identique

Vos données liées ne bougent pas, donc rien à reconstruire au retour

La mise à la corbeille ne touche aucune donnée enfant. Traductions, méta SEO, liaisons pivot et rattachements restent exactement en place.

C'est précisément cette immobilité qui garantit qu'une restauration remet l'entité intacte, avec tous ses liens, sans réassemblage manuel.

  • Traductions, méta SEO et liaisons conservées telles quelles
  • Aucune cascade déclenchée à la mise à la corbeille
  • La restauration retrouve l'entité intacte
Quand vous l'utilisez

Retirer vite, sans stress, et se garder le droit de revenir en arrière

Fausse manœuvre, contenu à dépublier d'urgence, ménage de fin de campagne, doublon à écarter : le soft-delete couvre le geste quotidien de suppression sans jamais vous enfermer.

Vous retirez maintenant de la vue et de la recherche, vous tranchez plus tard entre restauration et purge.

  • Corriger une suppression accidentelle sans perte
  • Sortir un contenu de la recherche sans le détruire
  • Nettoyer l'espace de travail tout en gardant un filet
  • Écarter un doublon avant d'en décider la purge
Garde-fous & traçabilité

Chaque mise à la corbeille est tracée, propre et branchée sur vos plugins

L'opération déclenche le hook content.trashed pour vos extensions, invalide le cache public concerné pour que le site reflète le retrait, et journalise un audit type.trash.

Rien ne se supprime en silence : vous gardez la trace de qui a retiré quoi, et une double mise en corbeille est bloquée net.

  • Hook content.trashed pour brancher vos plugins
  • Cache public invalidé pour refléter le retrait
  • Audit type.trash pour la traçabilité
  • Double mise en corbeille refusée (retour false)
Pourquoi ça compte

La suppression qui ne fait pas peur

Le soft-delete transforme un geste redouté en décision réversible : la ligne est marquée, retirée de la recherche et tracée, mais tout le reste attend sagement. L'outil retire proprement, vous gardez la décision finale entre restaurer et purger.

FAQ

Questions fréquentes

Une page mise à la corbeille est-elle vraiment supprimée ?
Non. Le soft-delete pose seulement un marqueur deleted_at et retire l'entité de l'affichage et de la recherche. La ligne et ses données restent en base jusqu'à une purge explicite depuis la Corbeille ou le cron.
Que deviennent les traductions, la méta SEO et les liaisons ?
Elles ne sont pas touchées. La mise à la corbeille ne déclenche aucune cascade sur les données enfant, ce qui permet une restauration à l'identique avec tous les rattachements d'origine.
Le contenu retiré reste-t-il visible dans la recherche ?
Non. Dès la mise à la corbeille, SearchIndex::deleteForEntity désindexe l'entité, sans attendre une réindexation complète du site.
Que se passe-t-il si je supprime deux fois le même élément ?
Rien de fâcheux. TrashService::trash ne traite qu'une ligne vivante et retourne false si l'entité est absente ou déjà en corbeille.
Prêt à commencer ?

Supprimez sans arrière-pensée

La mécanique du soft-delete de Clustraly retire proprement une entité de la vue et de la recherche, trace l'action et laisse ses données liées intactes. Vous gardez la main : restaurer à l'identique ou purger définitivement, quand vous l'avez décidé.