Changeset 95046 in spip-zone


Ignore:
Timestamp:
Feb 9, 2016, 1:37:30 PM (3 years ago)
Author:
marcimat@…
Message:

Supprimer, sur les objets ayant des statuts, les éléments à la poubelle trop vieux (rastapopoulos)

Location:
_plugins_/fabrique/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fabrique/trunk/changelog.txt

    r95029 r95046  
    33-----------------------------------
    44
     5
     62.0.27 le 09 02 2016
     7--------------------
     8
     9* Lorsqu'un objet gère des statuts, supprimer les éléments à la poubelle
     10  de plus de 24h comme le fait SPIP pour les articles.
    511
    6122.0.26 le 08 02 2016
  • _plugins_/fabrique/trunk/fabrique/prefixe_pipelines.php.html

    r94507 r95046  
    172172**/
    173173function [(#PREFIXE)]_objet_compte_enfants($flux) {
    174         if ($flux['args']['objet']=='rubrique'
    175                 AND $id_rubrique=intval($flux['args']['id_objet'])) {
    176 
    177 <BOUCLE_objet_compte_enfants(DATA){source tableau,(#OBJETS|objets_options_presentes{#LISTE{statut_rubrique,id_rubrique}})}>
    178                 [(#STATUT|oui)
    179                 // juste les publiés ?
     174        if ($flux['args']['objet']=='rubrique' AND $id_rubrique=intval($flux['args']['id_objet'])) {
     175<BOUCLE_objet_compte_enfants(DATA){source tableau,(#OBJETS|objets_options_presentes{#LISTE{statut_rubrique,id_rubrique}})}>[(#REM)
     176
     177][              // juste les publiés ?
    180178                if (array_key_exists('statut', $flux\['args'\]) and ($flux\['args'\]\['statut'\] == 'publie')) {
    181                         $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique=".intval($id_rubrique)." AND (statut='publie')");
     179                        $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique = ".intval($id_rubrique)." AND (statut = 'publie')");
    182180                } else {
    183                         $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique=".intval($id_rubrique)." AND (statut<>'poubelle')");
    184                 }
    185                 ][(#STATUT|non)
    186                         $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique=".intval($id_rubrique));
    187                 ]
    188 </BOUCLE_objet_compte_enfants>
     181                        $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique = ".intval($id_rubrique)." AND (statut <> 'poubelle')");
     182                }(#STATUT|oui)][(#REM)
     183
     184][              $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique = ".intval($id_rubrique));(#STATUT|non)][(#REM)
     185
     186]</BOUCLE_objet_compte_enfants>
    189187        }
    190188        return $flux;
     
    202200
    203201/**
    204  * Optimiser la base de données en supprimant les liens orphelins
    205  * de l'objet vers quelqu'un et de quelqu'un vers l'objet.
     202 * Optimiser la base de données
     203 * <BOUCLE_desc_objets_optimiser_liens(DATA){source tableau,(#OBJETS|objets_options_presentes{table_liens})}{0,1}>
     204 * Supprime les liens orphelins de l'objet vers quelqu'un et de quelqu'un vers l'objet.[(#REM)
     205]</BOUCLE_desc_objets_optimiser_liens>[(#REM)
     206]<BOUCLE_desc_objets_poubelle(DATA){source tableau,(#OBJETS|objets_champ_present{statut})}{0,1}>
     207 * Supprime les objets à la poubelle.[(#REM)
     208]</BOUCLE_desc_objets_poubelle>
    206209 *
    207210 * @pipeline optimiser_base_disparus
     
    210213 */
    211214function [(#PREFIXE)]_optimiser_base_disparus($flux){
     215<B_objets_optimiser_liens>
    212216        include_spip('action/editer_liens');
    213         $flux['data'] += objet_optimiser_liens(array(<BOUCLE_objets_optimiser_base_disparus(DATA){source tableau,(#OBJETS|objets_options_presentes{table_liens})}{', '}>'#TYPE'=>'*'</BOUCLE_objets_optimiser_base_disparus>),'*');
     217        $flux['data'] += objet_optimiser_liens(array(<BOUCLE_objets_optimiser_liens(DATA){source tableau,(#OBJETS|objets_options_presentes{table_liens})}{', '}>'#TYPE'=>'*'</BOUCLE_objets_optimiser_liens>),'*');
     218</B_objets_optimiser_liens>[(#REM)
     219]<B_objets_optimiser_poubelle>[(#REM)
     220]<BOUCLE_objets_optimiser_poubelle(DATA){source tableau,(#OBJETS|objets_champ_present{statut})}>
     221        sql_delete("#TABLE", "statut='poubelle' AND maj < " . $flux['args']['date']);
     222</BOUCLE_objets_optimiser_poubelle>
    214223        return $flux;
    215224}</BOUCLE_si_optimiser_base_disparus>[
  • _plugins_/fabrique/trunk/fabrique_fonctions.php

    r94507 r95046  
    910910                        break;
    911911
     912               
    912913                case "optimiser_base_disparus":
    913914                        # nettoie depuis spip_{objet}_liens
    914915                        # mais aussi les liaisions vers spip_{objet} (uniquement si une table de liens existe)
    915                         return (bool)fabrique_lister_tables($objets, 'liens');
    916                         #return (bool)fabrique_lister_tables($objets, 'objets');
     916                        if (fabrique_lister_tables($objets, 'liens')) {
     917                                return true;
     918                        }
     919                        # nettoie aussi les objets à la poubelle (si avec statut)
     920                        if (objets_champ_present($objets, 'statut')) {
     921                                return true;
     922                        }
    917923                        break;
    918924                       
  • _plugins_/fabrique/trunk/paquet.xml

    r95029 r95046  
    22        prefix="fabrique"
    33        categorie="outil"
    4         version="2.0.26"
     4        version="2.0.27"
    55        etat="test"
    66        compatibilite="[3.1.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.