source: spip-zone/_plugins_/medias_dereferencer/trunk/TODO.txt @ 111365

Last change on this file since 111365 was 90802, checked in by teddy.spip@…, 6 years ago

Ce plugin offre un fichier d'inclusion à mettre dans le squelette 'robots.txt.html'.
Cette inclusion listera tous les documents avec le statut 'prepa'. Chaque media sera en Disallow pour les moteurs de recherche.

Ce plugin agit sur les statuts des medias et de leur liaison à des objets en lançant une tâche de fond (qui va mettre à jour les statuts des medias et crée les liaisons). Il arrive parfois que les documents joints à des objets publiés ne soient pas mis à jour si les objets liés changent de statut. Ces documents restent publier. Ce qui pose problème.
Le principe est donc le suivant :

  • On recherche tous les objets auxquels des documents sont liés, on regarde leur statut. S'ils ne sont plus publiés, on met à jour le statut du document à 'prepa' s'il ne l'est pas déjà.
  • On recherche tous les raccourcis typographiques faisant mention des documents (cf. actuellement docXXX, imgXXX et embXXX) et on lie ces documents aux objets. Si l'objet est publié, le document le sera aussi.

Ce travail est fait toutes les 24h.

File size: 2.0 KB
Line 
1# Sélectionner les documents publiés liés à des articles non publiés.
2SELECT * FROM spip_documents WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='article' AND id_objet IN (SELECT id_article FROM spip_articles WHERE statut NOT IN ('publie'))) AND statut IN ('publie')
3
4# Sélectionner les documents non publiés liés à des articles publiés
5SELECT * FROM spip_documents WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='article' AND id_objet IN (SELECT id_article FROM spip_articles WHERE statut IN ('publie'))) AND statut NOT IN ('publie')
6
7# Sélectionner les liens de documents liés à des articles qui n'existent plus en BDD
8SELECT * FROM spip_documents_liens WHERE objet='article' AND id_objet NOT IN (SELECT id_article FROM spip_articles)
9
10
11
12# Sélectionner les documents publiés liés à des rubriques non publiés.
13SELECT * FROM spip_documents WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='rubrique' AND id_objet IN (SELECT id_rubrique FROM spip_rubriques WHERE statut NOT IN ('publie'))) AND statut IN ('publie')
14
15# Sélectionner les documents non publiés liés à des rubriques publiés
16SELECT * FROM spip_documents WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='rubrique' AND id_objet IN (SELECT id_rubrique FROM spip_rubriques WHERE statut IN ('publie'))) AND statut NOT IN ('publie')
17
18# Sélectionner les liens de documents liés à des articles qui n'existent plus en BDD
19SELECT * FROM spip_documents_liens WHERE objet='rubrique' AND id_objet NOT IN (SELECT id_rubrique FROM spip_rubriques)
20
21
22
23# Lister les objets liés à des documents.
24SELECT DISTINCT objet FROM spip_documents_liens
25
26
27SELECT id_document,statut FROM spip_documents WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='article' AND id_objet IN (SELECT id_article FROM spip_articles WHERE statut NOT IN ('publie'))) AND statut IN ('publie')
Note: See TracBrowser for help on using the repository browser.