source: spip-zone/_plugins_/authentification/openid/spip_2_0/openid_pipelines.php @ 32228

Last change on this file since 32228 was 32228, checked in by cedric@…, 11 years ago

un sous dossier pour la partie spip 2.0 du plugin, qui ne formera qu'un seul paquet multiversions

File size: 3.3 KB
Line 
1<?php
2
3
4/**
5 * ajouter un champ openID sur le formulaire CVT editer_auteur
6 *
7 * @param array $flux
8 * @return array
9 */
10function openid_editer_contenu_objet($flux){
11        if ($flux['args']['type']=='auteur') {
12                include_spip('public/assembler');
13                $flux['args']['contexte']['openid'] = sql_getfetsel('openid','spip_auteurs','id_auteur='.sql_quote($flux['args']['contexte']['id_auteur']));
14                $openid = recuperer_fond('formulaires/inc-openid', $flux['args']['contexte']);
15                $flux['data'] = preg_replace('%(<li class="editer_email(.*?)</li>)%is', '$1'."\n".$openid, $flux['data']);
16        }
17        return $flux;
18}
19
20/**
21 * ajouter l'open_id soumis lors de la soumission du formulaire CVT editer_auteur
22 *
23 * @param array $flux
24 * @return array
25 */
26function openid_pre_edition($flux){
27        if ($flux['args']['table']=='spip_auteurs') {
28                if ($openid = _request('openid')) {
29                        include_spip('inc/openid');
30                        $flux['data']['openid'] = nettoyer_openid($openid);
31                }
32        }
33        return $flux;
34}
35
36/**
37 * Afficher l'openid sur la fiche de l'auteur
38 * @param array $flux
39 */
40function openid_afficher_contenu_objet($flux){
41        if ($flux['args']['type']=='auteur'
42                AND $id_auteur = $flux['args']['id_objet']
43                AND $openid = sql_getfetsel('openid','spip_auteurs','id_auteur='.intval($id_auteur))
44        ){
45                $flux['data'] .= propre("<div><img src='".find_in_path('images/login_auth_openid.gif')
46                        ."' alt='"._T('openid:openid')."' width='16' height='16' />"
47                        . " [->$openid]</div>");
48
49        }
50
51        return $flux;
52}
53
54/**
55 * Afficher l'openid sur le formulaire de login
56 * @param <type> $flux
57 * @return <type>
58 */
59function openid_recuperer_fond($flux) {
60        if ($flux['args']['fond']=='formulaires/login'){
61                $login = pipeline('social_login_links','');
62
63                $scriptopenid = "";
64                if ($login = $flux['data']['contexte']['var_login']
65                AND $openid = sql_getfetsel('openid','spip_auteurs','login='.sql_quote($login))
66                ) {
67                        $openid = preg_replace(',^http://,i','',$openid);
68                        $message = _T('openid:form_login_openid_ok')  // . $openid
69                        . "<br />[<a href=\"#\" onclick=\"jQuery('.editer_login .explication').hide();jQuery('.editer_password').show();return false;\">"._T('openid:form_login_openid_pass')."</a>]";
70                        $scriptopenid = "jQuery('#var_login').keyup(function(){
71                                if (jQuery(this).val()!='".addslashes($login)."') {
72                                        jQuery('.editer_login .explication').hide();
73                                        jQuery('.editer_password').show();
74                                } else {
75                                        jQuery('.editer_login .explication').show();
76                                }
77                        });";
78                }
79                else
80                        $message = _T('openid:form_login_openid');
81
82                $flux['data']['texte'] .= "<style type='text/css'>"
83                ."input#var_login {width:10em;background-image : url(".find_in_path('images/login_auth_openid.gif').");background-repeat:no-repeat;background-position:center left;padding-left:18px;}\n"
84                ."input#password {width:10em;padding-right:18px;}\n"
85                .".explication {margin:5px 0;}"
86                ."</style>"
87                ."<script type='text/javascript'>"
88                ."jQuery(document).ready(function(){jQuery('input#var_login').after('<div class=\'explication\'>".addslashes($message)."</div>');"
89                .($scriptopenid?"if (!jQuery('.editer_password').is('.erreur')) jQuery('.editer_password').hide();":"")
90                ."$scriptopenid});"
91                ."</script>";
92        }
93        /*if ($flux['args']['fond']=='formulaires/inscription'){
94                $insc = pipeline('social_inscription_links','');
95                $flux['data']['texte'] = str_replace('<form',$insc . '<form',$flux['data']['texte']);
96        }*/
97        return $flux;
98}
99
100?>
Note: See TracBrowser for help on using the repository browser.