Changeset 104227 in spip-zone


Ignore:
Timestamp:
May 6, 2017, 2:06:39 PM (2 years ago)
Author:
bystrano@…
Message:

Éviter que le CRON « optimiser » ne supprime les logos du site

Pour rester compatible avec l'API de logos historique, on enregistre les logos
du site comme liés au site dont l'id est 0. Le problème c'est que le CRON
d'optimisation des liens disparus efface ces liens.

Du coup on bidouille, on enregistre les logos dans une meta, et on passe
derrière le CRON pour rétablir les liens tout de suite après leur suppression.

Location:
_plugins_/logos_roles/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/logos_roles/trunk/action/editer_logo.php

    r103781 r104227  
    5858                                array('objet="site"', 'id_objet=0', 'role='.sql_quote($role))
    5959                        );
     60
     61                        include_spip('inc/config');
     62                        $logos_site = lire_config('logos_site');
     63                        unset($logos_site[$role]);
     64                        ecrire_config('logos_site', $logos_site);
    6065                } else {
    6166                        objet_dissocier(
     
    150155                );
    151156
     157                // On enregistre les logos du site dans une meta, pour pouvoir les rétablir
     158                // automatiquement après le passage du CRON d'optimisation, qui efface les
     159                // liens vers des id_objet qui valent 0.
     160                include_spip('inc/config');
     161
     162                $logos_site = lire_config('logos_site') ?: array();
     163                $logos_site[$role] = intval($id_document);
     164                ecrire_config('logos_site', $logos_site);
     165
    152166        // Cas des autres logos
    153167        } else {
  • _plugins_/logos_roles/trunk/logos_roles_pipelines.php

    r103433 r104227  
    9999        return $flux;
    100100}
     101
     102/**
     103 * Rétablir les logos du site, qui sont systématiquement effacés dans le CRON
     104 * d'optimisation.
     105 *
     106 * @pipeline optimiser_base_disparus
     107 * @param  array $flux Données du pipeline
     108 * @return array       Données du pipeline
     109 */
     110function logos_roles_optimiser_base_disparus($flux) {
     111
     112        include_spip('inc/config');
     113
     114        foreach (lire_config('logos_site') as $role => $id_document) {
     115                sql_insertq(
     116                        'spip_documents_liens',
     117                        array(
     118                                'id_document' => intval($id_document),
     119                                'objet' => 'site',
     120                                'id_objet' => 0,
     121                                'role' => $role,
     122                        )
     123                );
     124        }
     125
     126        return $flux;
     127}
  • _plugins_/logos_roles/trunk/paquet.xml

    r103781 r104227  
    22        prefix="logos_roles"
    33        categorie="multimedia"
    4         version="0.6.5"
     4        version="0.6.6"
    55        etat="test"
    66        compatibilite="[3.1.1;3.2.*]"
     
    2626        <pipeline nom="header_prive" inclure="logos_roles_pipelines.php" />
    2727        <pipeline nom="formulaire_charger" inclure="logos_roles_pipelines.php" />
     28        <pipeline nom="optimiser_base_disparus" inclure="logos_roles_pipelines.php" />
    2829
    2930        <pipeline nom="roles_logos" />
Note: See TracChangeset for help on using the changeset viewer.