This repository has been archived by the owner on Jul 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
seenthissq_pipelines.php
executable file
·82 lines (76 loc) · 2.26 KB
/
seenthissq_pipelines.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
/**
* Insertion dans le pipeline post_insertion
*
* Lors de l'inscription depuis la page d'un auteur, ajouter celui-ci à la liste des suivis du compte créé
*
* @param array $flux
* Le contexte du pipeline
* @return array $flux
*/
function seenthissq_post_insertion($flux){
if ($flux['args']['table'] == 'spip_auteurs') {
if ($auteur_page = _request('auteur_page')) {
sql_insertq("spip_me_follow",
array(
"id_follow" => $flux['args']['id_objet'],
"id_auteur" => $auteur_page,
"date" => "NOW()"
)
);
}
}
return $flux;
}
/**
* Insertion dans le pipeline trig_auth_trace
*
* Lors du logout d'un auteur, repasser la valeur du champ en_ligne à la date courante
*
* @param array $flux
* Le contexte du pipeline
* @return array $flux
*/
function seenthissq_trig_auth_trace($flux){
if ($flux['args']['date'] == '0000-00-00 00:00:00') {
include_spip('inc/session');
// si c'est l'auteur actuellement connecté qui se déconnecte
if (session_get('id_auteur') and $flux['args']['row']['id_auteur'] == session_get('id_auteur')) {
sql_updateq('spip_auteurs', array('en_ligne' => date('Y-m-d H:i:s')), 'id_auteur=' . $flux['args']['row']['id_auteur']);
}
}
return $flux;
}
/**
* Insertion dans le pipeline preparer_visiteur_session
*
* Lors du login d'un auteur, passer la valeur du champ en_ligne à la date courante (même dans l'espace public)
*
* @param array $flux
* Le contexte du pipeline
* @return array $flux
*/
function seenthissq_preparer_visiteur_session($flux){
if (!empty($flux['args']['row']['id_auteur'])) {
sql_updateq('spip_auteurs', array('en_ligne' => date('Y-m-d H:i:s')), 'id_auteur=' . $flux['args']['row']['id_auteur']);
}
return $flux;
}
/**
* Optimiser la base de donnée en supprimant les liens orphelins
*
* @param array $flux
* @return array
*/
function seenthissq_optimiser_base_disparus($flux) {
$n = &$flux['data'];
# les followers dont le compte auteur a été supprimé
$res = sql_select("F.id_follow AS id",
"spip_me_follow AS F
LEFT JOIN spip_auteurs AS auteur
ON F.id_follow=auteur.id_auteur",
"auteur.id_auteur IS NULL");
$n += optimiser_sansref('spip_me_follow', 'id_follow', $res);
return $flux;
}