source: spip-zone/_plugins_/newsletters/trunk/newsletters_pipelines.php

Last change on this file was 106720, checked in by marcimat@…, 2 years ago

Petite notice en moins lors de la désinstallation.

File size: 2.1 KB
Line 
1<?php
2/**
3 * Plugin Newsletters
4 * (c) 2012 Cedric Morin
5 * Licence GNU/GPL
6 */
7
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10
11
12/**
13 * Quand une newsletter est publiee fixer les images dans un dossier IMG/nl/xx/
14 * pour ne jamais perdre les images temporaires
15 *
16 * @param $flux
17 * @return mixed
18 */
19function newsletters_pre_edition($flux){
20        if ($flux['args']['table']=='spip_newsletters'
21          AND $flux['args']['action']=='instituer'
22          AND $id_newsletter = $flux['args']['id_objet']
23          AND $statut_ancien = $flux['args']['statut_ancien']
24          AND isset($flux['data']['statut'])
25          AND $statut = $flux['data']['statut']
26          AND $statut != $statut_ancien
27          AND ($statut=='publie')){
28
29                // generer une version a jour (ne fera rien si deja cuite)
30                $generer_newsletter = charger_fonction("generer_newsletter","action");
31                $generer_newsletter($id_newsletter);
32
33                // fixer les images et autre
34                $fixer_newsletter = charger_fonction("fixer_newsletter","action");
35                $fixer_newsletter($id_newsletter);
36
37                $flux['data']['baked'] = 1;
38        }
39
40        return $flux;
41}
42
43
44/**
45 * Optimiser la base de donnees en supprimant les liens orphelins
46 * de l'objet vers quelqu'un et de quelqu'un vers l'objet.
47 *
48 * @param array $flux
49 * @return array
50 */
51function newsletters_optimiser_base_disparus($flux){
52        include_spip('action/editer_liens');
53        $flux['data'] += objet_optimiser_liens(array('newsletter'=>'*'),'*');
54        return $flux;
55}
56
57
58/**
59 * Tache periodique d'envoi
60 *
61 * @param array $taches_generales
62 * @return array
63 */
64function newsletters_taches_generales_cron($taches_generales){
65
66        // ne pas generer une erreur SQL si on est pas encore installe
67        if (!empty($GLOBALS['meta']['newsletters_base_version'])) {
68                // date de la prochaine newsletter programmee
69                $next = sql_getfetsel('date','spip_newsletters','statut='.sql_quote('prog')." AND date>".sql_quote("1000-01-01"),"","date","0,1");
70                if ($next){
71                        $next = strtotime($next);
72                        $delai = $next-$_SERVER['REQUEST_TIME'];
73                        $delai = max($delai,110);
74                        $delai = min($delai,31*24*60*60);
75                        $taches_generales['newsletters_programmees'] = $delai;//3*60*60; // 3h
76                }
77        }
78
79        return $taches_generales;
80}
Note: See TracBrowser for help on using the repository browser.