source: spip-zone/_plugins_/gravatar/gravatar_pipelines.php @ 113876

Last change on this file since 113876 was 113876, checked in by cedric@…, 21 months ago

on peut forcer le refresh d'un gravatar d'un auteur depuis sa page dans ecrire/ avec un ?var_mode=recalcul

  • Property svn:keywords set to Id
File size: 3.1 KB
Line 
1<?php
2
3/**
4 *
5 * Gravatar : Globally Recognized AVATAR
6 *
7 * @package     plugins
8 * @subpackage  gravatar
9 *
10 * @author      Fil, Cedric, Thomas Beaumanoir
11 * @license     GNU/GPL
12 *
13 * @version     $Id: gravatar_pipelines.php 113876 2019-02-12 16:54:29Z cedric@yterium.com $
14 **/
15
16if (!defined("_ECRIRE_INC_VERSION")) return;
17
18/**
19 * Utilisation du pipeline "affiche_gauche" :
20 * on affiche un bloc identique a celui du logo de l'auteur avec son gravatar
21 * n'a d'effet que dans SPIP < 3 car la page exec a ensuite ete renommee
22 *
23 * @param  Array $flux  Structure permettant de generer la page
24 * @return Array        La structure retournee apres traitement
25 */
26function gravatar_affiche_gauche($flux) {
27        if ((_request('exec') == 'auteur_infos')) {
28                if ($id_auteur = intval(_request('id_auteur'))
29                AND $email = sql_fetsel('email', 'spip_auteurs', 'id_auteur='.$id_auteur)
30                AND $email = $email['email']) {
31                        include_spip('inc/gravatar');
32                        if ($gravatar_cache = gravatar($email)) {
33                                // On affiche un bloc identique a celui du logo de l'auteur avec son gravatar
34                                include_spip('inc/filtres_images_mini');
35                                $img = image_reduire('<img src="'.$gravatar_cache.'" alt="" class="miniature_logo" />', 170, 170);
36                                if ($taille = @getimagesize($gravatar_cache))
37                                        $taille = _T('info_largeur_vignette', array('largeur_vignette' => $taille[0], 'hauteur_vignette' => $taille[1]));
38                                $bouton = bouton_block_depliable(_T('gravatar:titre_gravatar_auteur'), false, "gravatar-$id_auteur");
39
40                                $cadre_gravatar = '<div id="iconifier-gravatar-' . $id_auteur . '" class="iconifier">';
41                                $cadre_gravatar .= debut_cadre('r', find_in_path('images/gravatar-24.gif'), '', $bouton, '', '', false);
42                                $cadre_gravatar .= '<div><a href="' . $gravatar_cache . '">'. $img . '</a></div>';
43                                $cadre_gravatar .= debut_block_depliable(false,"gravatar-$id_auteur")
44                                        . '<div class="cadre_padding">'
45                                        . '<div class="spip_xx-small">' . $taille . '</div>'
46                                        . '</div>'
47                                        . fin_block();
48                                $cadre_gravatar .= fin_cadre_relief(true);
49                                $cadre_gravatar .= '</div>';
50
51                                $flux['data'] .= $cadre_gravatar;
52                        }
53                }
54        }
55
56        return $flux;
57}
58
59
60/**
61 * Inserer le gravatar de l'auteur qui sera utilise comme #LOGO_AUTEUR par defaut
62 * tant que l'auteur n'a pas upload son propre logo
63 * Utilise dans SPIP >=3.0.0-dev
64 * @param array $flux
65 * @return array
66 */
67function gravatar_recuperer_fond($flux){
68        if (test_espace_prive()
69          AND $flux['args']['fond'] == 'formulaires/editer_logo'
70          AND $flux['args']['contexte']['objet']=='auteur'
71                AND $id_auteur = $flux['args']['contexte']['id_objet']
72                AND strpos($flux['data']['texte'],'spip_logo')==false
73          AND $email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur))){
74
75                include_spip('inc/gravatar');
76                if ($gravatar = gravatar_img($email, '', _VAR_MODE==='recalcul' ? true : false)) {
77                        $gravatar = extraire_attribut($gravatar,'src');
78                        $logo = recuperer_fond('formulaires/inc-apercu-logo',array('logo'=>$gravatar,'quoi'=>'logo_on','editable'=>'','titre'=>_T('gravatar:titre_gravatar_auteur')));
79                        $p = strpos($flux['data']['texte'],'<label');
80                        $flux['data']['texte'] = substr_replace($flux['data']['texte'],$logo,$p,0);
81                }
82        }
83        return $flux;
84}
85?>
Note: See TracBrowser for help on using the repository browser.