Changeset 60767 in spip-zone


Ignore:
Timestamp:
Apr 30, 2012, 7:29:13 AM (9 years ago)
Author:
zonepro@…
Message:

Précédent commit parti sans commentaires :
Finalisation fiche utilisateur en création + fiche annonce (2 formulaires)
+ localisation des utilisateurs : géocodage + visualisation
+ mise en place de la certification
+ nouveau jeu de squelettes pour habillage (avec slider accueil)
ATTENTION : SPIP 3 uniquement (pour le moment)

Location:
_plugins_/sel
Files:
141 added
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/sel/formulaires/inc-liste_organisations.html

    r57906 r60767  
     1<script type="text/javascript"><!--
     2$(function() {
     3
     4
     5// A REVOIR     
     6        /*
     7        $("#choix_selorg").click(function () {
     8      $('.editer_liste_organisations').hide("blind", { direction: "horizontal" }, 1000);
     9          return false;
     10        });
     11        */
     12}
     13// --></script>
     14
     15
     16<li id="choix_selorg"><a href=""><img id="fleche" [(#ENV{org}|non) src="#CHEMIN{img/deplierbas.gif}"] [(#ENV{org}|oui) src="#CHEMIN{img/deplierhaut.gif}"]  /><:sel:vous_etes_correspondant:></a></li>
    117<B_liste_organisations>
    2 <li class='editer_liste_sels fieldset'>
     18<li class='editer_liste_organisations fieldset' [(#ENV{org}|non) style="display:inline;"] [(#ENV{org}|oui) style="display:none;"]>
    319                <fieldset>
    4                 <legend style="display:inline;"><:auteur:correspondant_auteur_organisations:></legend>
     20                <legend><:auteur:correspondant_auteur_organisations:></legend>
    521                <BOUCLE_liste_organisations(ORGANISATIONS)>
    6                         <input type="checkbox" name="org_#ID_ORGANISATION" id="org_#ID_ORGANISATION" value="oui"[(#ENV{sel_#ID_ORGANISATION}|=={oui}|oui)checked="checked"]/>
    7                         <label for="org_#ID_ORGANISATION">#NOM</label>
     22                        <input class="checkbox" type="checkbox" name="org[#COMPTEUR_BOUCLE]" id="org_#ID_ORGANISATION" value="#ID_ORGANISATION"[(#ENV{org}|find{#ID_ORGANISATION}|=={#ID_ORGANISATION}|oui)checked="checked"]/>
     23                        <label for="org_#ID_ORGANISATION">#NOM</label><br />
    824                </BOUCLE_liste_organisations>
     25                <div class="deco">&nbsp;</div>
     26                <div id="correspondance_organisations">
     27                <p>
     28                <input class="checkbox" type="checkbox" name="corresp_tous_sel" id="corresp_tous_sel" style="width:1.5em;" value="oui"[(#ENV{corresp_tous_sel}|=={oui}|oui)checked="checked"]/>
     29                <:sel:correspondance_multiple_sel_organisation1:> <:sel:correspondance_multiple_sel_organisation2:>
     30                </p>
     31                <input type='text' class='text' name='sels_corresp0' id='sels_corresp0' maxlength='50' value="[(#ENV**{sels})]" />
     32                               
     33                <input type="button" class="button" value="<:sel:ajout_sel:>" id="ajout_selcorresp" />
     34                <input type="button" class="button" value="<:sel:suppr_sel:>" id="suppression_selcorresp" />
     35                </div><!--#correspondance_organisations-->
    936                </fieldset>
    1037</li>
  • _plugins_/sel/formulaires/inc-liste_sels.html

    r57906 r60767  
    44                <legend style="display:inline;"><:auteur:membre_auteur_sel:></legend>
    55                <BOUCLE_liste_sels(SELS)>
    6                         <input type="checkbox" name="sel_#ID_SEL" id="sel_#ID_SEL" value="oui"[(#ENV{sel_#ID_SEL}|=={oui}|oui)checked="checked"]/>
    7                         <label for="sel_#ID_SEL">#NOM</label>
     6                        <input class="checkbox" type="checkbox" name="sel_#ID_SEL" id="sel_#ID_SEL" value="oui"[(#ENV{sel_#ID_SEL}|=={oui}|oui)checked="checked"]/>
     7                        <label for="sel_#ID_SEL">#NOM</label><br />
    88                </BOUCLE_liste_sels>
    99                </fieldset>
  • _plugins_/sel/lang/auteur_fr.php

    r57906 r60767  
    3131
    3232                //M
    33                 'membre_auteur_sel' => "Membre du / des SEL(s) suivant(s) :"
     33                'membre_auteur_sel' => "Membre du / des SEL(s) suivant(s) :",
    3434     );
    3535?>
  • _plugins_/sel/paquet.xml

    r57906 r60767  
    1919<!--options>sel_options.php</options-->
    2020
    21 <pipeline nom="declarer_tables_interfaces" inclure="base/structure.php" />
    22 <pipeline nom="declarer_tables_objets_sql" inclure="base/structure.php" />
    23 <pipeline nom="declarer_tables_auxiliaires" inclure="base/structure.php" />
     21<pipeline nom="declarer_tables_interfaces" inclure="base/tables.php" />
     22<pipeline nom="declarer_tables_objets_sql" inclure="base/tables.php" />
     23<pipeline nom="declarer_tables_auxiliaires" inclure="base/tables.php" />
    2424<pipeline nom="autoriser" inclure="pipelines/sel_autorisations.php" />
    2525<pipeline nom="editer_contenu_objet" inclure="pipelines/complement_editer_auteur.php" />
     
    3131<menu nom="sels" titre="sel:titre_sel" parent="menu_edition" icone="images/sel-16.png" />
    3232<menu nom="sel_creer" titre="sel:icone_creer_sel" parent="outils_rapides" icone="images/sel-new-16.png" action="sel_edit" parametres="new=oui" />
    33 
     33<utilise nom="gravatar" />
     34<utilise nom="spipdf" />
    3435</paquet>
    3536
  • _plugins_/sel/pipelines/complement_editer_auteur.php

    r57906 r60767  
    33        $spip_branche_principale = substr($GLOBALS[spip_version_branche], 0, 1);
    44        if ($flux['args']['type']=='auteur') {
     5                // $flux['data'] = preg_replace("%(<form method='post')%is","<form method='post' onsubmit='codeAdresse()'",$flux['data']);
     6       
     7                $complement_auteur_identite = recuperer_fond('formulaires/inc-auteur-identite', $flux['args']['contexte']);
     8                if ($spip_branche_principale==3) $flux['data'] = preg_replace('%(<li class="editer editer_nom (.*?)</li>)%is',''."\n".$complement_auteur_identite, $flux['data']);
     9                if ($spip_branche_principale==2) $flux['data'] = preg_replace('%(<li class="editer_nom (.*?)</li>)%is',''."\n".$complement_auteur_identite, $flux['data']);
    510
    611                if ($spip_branche_principale==3) $flux['data'] = preg_replace('%(<li class="editer editer_bio(.*?)</li>)%is','',$flux['data']);
    712                if ($spip_branche_principale==2) $flux['data'] = preg_replace('%(<li class="editer_bio(.*?)</li>)%is','',$flux['data']);
    813
     14               
     15                if ($spip_branche_principale==3) $flux['data'] = preg_replace('%(<li class="editer editer_email(.*?)</li>)%is','',$flux['data']);
     16                if ($spip_branche_principale==2) $flux['data'] = preg_replace('%(<li class="editer_email(.*?)</li>)%is','',$flux['data']);
     17
    918                if ($spip_branche_principale==3) $flux['data'] = preg_replace('%(<li class="editer editer_pgp(.*?)</li>)%is','',$flux['data']);
    1019                if ($spip_branche_principale==2) $flux['data'] = preg_replace('%(<li class="editer_pgp(.*?)</li>)%is','',$flux['data']);
    1120               
    12                 // visiteur (6forum) : utilisateur non certifié --> pas d'accès aux statuts des utilisateurs
    13                 // rédacteur (1comite) : utilisateur certifié --> pas d'accès aux statuts des utilisateurs
    14                 // admistrateur : administrateur local du catalogue --> accès aux statuts des utilisateurs (menu normal), mais pas la case à cocher "webmestre"
    15                 // webmestre : administrateur global du catalogue --> accès à tout, menu + case à cocher.
     21                // utilisateur non certifié --> pas d'accès aux statuts des utilisateurs :
     22                // champ acces : '0nouveau' et statut : '6forum' (visiteur)
     23               
     24                // utilisateur certifié  --> pas d'accès aux statuts des utilisateurs
     25                // champ acces : 1utilisateur_ok et champ statut : 1comite (rédacteur)
     26               
     27                // utilisateur refusé  --> pas d'accès aux statuts des utilisateurs
     28                // champ acces : '2utilisateur_ko' et statut : '6forum' (visiteur)
     29               
     30                // administrateur local du catalogue --> accès aux statuts des utilisateurs (menu normal), mais pas la case à cocher "webmestre"
     31                // champ acces : 3admin_local et champ statut : '1comite' (rédacteur)
     32               
     33                // admistrateur général du catalogue --> --> accès à tout, menu + case à cocher.
     34                // champ acces : 4admin_general et champ statut : '0minirezo' (admin, éventuellement webmestre)
    1635                               
     36                if (!test_espace_prive()) {
     37                        if ($spip_branche_principale==3) $flux['data'] = preg_replace("%(<div class='notice'>(.*?)</div>)%is",'', $flux['data']);               
     38                        if ($spip_branche_principale==2) $flux['data'] = preg_replace("%(<em class='attention'>(.*?)</em>)%is",'', $flux['data']);
     39                }
     40                $flux['data'] = preg_replace("%(<label for='new_pass2'(.*?)</label>)%is",'$1'.'<br />'."\n", $flux['data']);
    1741               
    1842                if (in_array($GLOBALS[auteur_session][statut],array('','1comite','6forum')))
     
    3862                $flux['data'] = preg_replace("%(<li class='editer_liens_sites fieldset'>(.*?)</fieldset>(.*?)</li>)%is","",$flux['data']);
    3963
    40                 $complement_auteur = recuperer_fond('formulaires/inc-auteur', $flux['args']['contexte']);
    41                 $flux['data'] =    preg_replace('%(<fieldset>(.*?)</fieldset>)%isU', '$1'."\n".$complement_auteur, $flux['data']);
    42 
    43                 $complement_sels = recuperer_fond('formulaires/inc-liste_sels', $flux['args']['contexte']);
    44                 $flux['data'] =    preg_replace('%(<fieldset>(.*?)</fieldset>)%isU', '$1'."\n".$complement_sels, $flux['data']);
     64                $complement_auteur_contact = recuperer_fond('formulaires/inc-auteur-contact', $flux['args']['contexte']);
     65                $flux['data'] =    preg_replace('%(<fieldset>(.*?)</fieldset>)%isU', '$1'."\n".$complement_auteur_contact, $flux['data']);
     66
     67                // $complement_sels = recuperer_fond('formulaires/inc-liste_sels', $flux['args']['contexte']);
     68                // $flux['data'] =    preg_replace('%(<fieldset>(.*?)</fieldset>)%isU', '$1'."\n".$complement_sels, $flux['data']);
    4569
    4670                $complement_organisations = recuperer_fond('formulaires/inc-liste_organisations', $flux['args']['contexte']);
     
    5680
    5781function sel_formulaire_charger($flux){
    58 
    5982    if ($flux['args']['form'] == 'editer_auteur'){
    60                 if ($flux['data']['id_auteur']=='oui') $flux['data']['statut'] = '6forum';
     83                $valeurs = formulaires_editer_objet_charger('auteur', $id_auteur, '', '', $retour, '');         
     84                if ($flux['data']['id_auteur']=='oui') {
     85                        $flux['data']['statut'] = '6forum';
     86                        $flux['data']['acces'] = '0nouveau';
     87                        $flux['data']['sels0'] = '';
     88                        $flux['data']['corresp_tous_sel'] = '';
     89                        $flux['data']['org'] = array();
     90                        // pour une modif, faire requete sur spip_organisations et construire le tableau org[1,2,3...] = id_organisation
     91                        // (sauter le 0 du tableau car se base sur #COMPTEUR_BOUCLE)
     92                }
    6193        }
    62         return $flux;
     94        return $flux;   
    6395}
    6496
     
    6698function sel_formulaire_verifier($flux){
    6799    if ($flux['args']['form'] == 'editer_auteur'){
    68         if ($adresse1 = _request('adresse1')){
    69             if ($adresse1='') $flux['data']['adresse1'] = _T('auteur:form_erreur_information_obligatoire');
    70         }
     100                $oblig = array('nom','prenom','email', 'new_login', 'new_pass', 'adresse1','code_postal','ville','pays','tel1','sels0');
     101                foreach($oblig as $ch) if (_request($ch)=='') {
     102                        $erreurs[$ch] = _T('sel:formerr_oblig');
     103                        $flux['data'][$ch] = $erreurs[$ch];
     104                };
     105                if (!email_valide(_request('email'))) {
     106                        $erreurs['email'] = _T('sel:formerr_email_format');
     107                        $flux['data']['email'] = $erreurs['email'];                     
     108                };
     109                $mails = sql_select('email','spip_auteurs');
     110                while($r = sql_fetch($mails)){
     111                        if (_request('email') == $r['email']) {
     112                                $erreurs['email'] = _T('sel:formerr_email_existe');
     113                                $flux['data']['email'] = $erreurs['email'];                                     
     114                        }
     115                }
    71116    }
    72 
    73117    return $flux;
    74118}
     
    78122                $id_auteur = $flux['data']['id_auteur'];
    79123                $upd = sql_updateq('spip_auteurs', array(
     124                        'prenom'=> _request('prenom'),
     125                        'acces' => _request('acces'),
    80126                        'adresse1' => _request('adresse1'),
    81127                        'adresse2' => _request('adresse2'),
     
    85131                        'tel1' => _request('tel1'),
    86132                        'tel2' => _request('tel2'),
    87                         'commentaires' => _request('commentaires')
     133                        'lon' => _request('lon'),
     134                        'lat' => _request('lat'),
     135                        'commentaires' => _request('commentaires'),
     136                        'inscription'   => date('Y-m-d'),                       
    88137                ), 'id_auteur=' . intval($id_auteur));
    89138                if ($upd) $flux['data']['message_ok'] = "Bravo !";
    90139                if (!$upd) $flux['data']['message_erreur'] = "Raté.....";
    91                 spip_log($flux,'rrr');
     140               
     141                // On ajoute les liaisons sels et organisations + éventuelles liaisons
     142
     143                $i = 0;
     144                while (_request('sels'.$i) != '') {             
     145                        $var_sel = 'sels'.$i;           
     146                        $request_sel = _request($var_sel);             
     147                        preg_match("#<N°[0-9]{1,}>$#",$request_sel,$n_id);
     148                        $id_sel = substr($n_id[0],4);
     149                        $id_sel = substr($id_sel,0,-1);
     150                        $i++;
     151
     152                        // on récupère l'ensemble des case cochées org[xx]
     153                        $tab_org = _request('org');
     154
     155                       
     156                        if (_request('corresp_tous_sel')=='oui') {
     157                                if (is_array($tab_org)) {
     158                               
     159                                // on teste qu'on ait bien au moins 1 organisation
     160                                        foreach($tab_org as $id_org) {
     161                                                // si oui, on vérifie que les lignes ne soient pas déjà
     162                                                // dans la table et si ok, insertq dans spip_correspondances pour chaque organisation
     163                                                if (sql_countsel('spip_correspondances','id_auteur = '.sql_quote($id_auteur).'and id_sel = '.sql_quote($id_sel).'and id_organisation = '.sql_quote($id_org))==0) {
     164                                                        sql_insertq('spip_correspondances',array('id_auteur'=>$id_auteur,'id_sel'=>$id_sel,'id_organisation'=>$id_org));
     165                                                };
     166                                                // Ensuite, on regarde si on trouve dans spip_correspondances
     167                                                // des trios qui ne figurent pas dans le form.
     168                                                // cas 1 : on trouve pour un auteur et un sel qui ne change pas, une organisation différente
     169                                                // cas 2 : on trouve pour un auteur et une organisation qui ne changent pas, un sel différent
     170                                                // cas 3 : on trouve pour un auteur une organisation et un sel qui ont changés
     171                                                // if (sql_countsel('spip_correspondances','id_auteur = '.sql_quote($id_auteur).'and id_sel = '.sql_quote($id_sel).'or id_organisation != '.sql_quote($id_org))!=0) {
     172                                                //}
     173
     174                                        // Dans ce cas, ça signifie qu'on fait une mise à jour,
     175                                        // il faut supprimer ces lignes de la base.
     176                                        // : A FAIRE qd on fera la fiche en modif
     177                                        }
     178                                }
     179                        } else { // si la case corresp_tous_sel n'a pas été cochée : on regarde les SEL à l'unité
     180                                $j = 0;
     181                                // debug
     182
     183                                while (_request('sels_corresp'.$j) != '') {
     184                                        $var_sel = 'sels_corresp'.$j;           
     185                                        $request_sel = _request($var_sel);             
     186                                        preg_match("#<N°[0-9]{1,}>$#",$request_sel,$n_id);
     187                                        $id_selcorresp = substr($n_id[0],4);
     188                                        $id_selcorresp = substr($id_selcorresp,0,-1);
     189                                                                       
     190                                        // on regarde si le sel en cours ($id_sel) en fait partie
     191                                        // et on teste qu'il y ait bien au moins 1 organisation
     192                                        // si oui, insertq id_auteur ($id_auteur) $id (en cours) org[#ID_ORGANISATION] (de chaque organisation)
     193                                       
     194                                        if (($id_sel == $id_selcorresp) and (is_array($tab_org))) {
     195                                       
     196                                                foreach($tab_org as $id_org) {
     197
     198                                                        if (sql_countsel('spip_correspondances','id_auteur = '.sql_quote($id_auteur).'and id_sel = '.sql_quote($id_selcorresp).'and id_organisation = '.sql_quote($id_org))==0) {
     199                                                                sql_insertq('spip_correspondances',array('id_auteur'=>$id_auteur,'id_sel'=>$id_selcorresp,'id_organisation'=>$id_org));
     200                                                        }
     201                                                }                               
     202                                        }
     203                                        $j++;
     204                                }
     205                               
     206                                if ((!is_array($tab_org)) and $j<=1) {
     207                                        // S'il n'y a ni case corresp_tous_sel ni précision de SELS pour correspondances dans les input sels_corresp
     208                                        // on est dans le cas d'adhésions simples, donc des couples id_auteur / id_sel : insertq dans spip_correspondance
     209                                        if (sql_countsel('spip_correspondances','id_auteur = '.sql_quote($id_auteur).'and id_sel = '.sql_quote($id_sel).'and id_organisation = NULL')==0) {
     210                                                sql_insertq('spip_correspondances',array('id_auteur'=>$id_auteur,'id_sel'=>$id_sel,'id_organisation'=>NULL));
     211                                        }
     212
     213                                        // si les valeurs reçues du form ne sont pas dans la table, et suppression dans le cas contraire (rien dans le form mais présence dans la table).
     214                                        // A FAIRE quand on en sera à la fiche modif
     215                                                       
     216                                }
     217                        }
     218                       
     219                       
     220                } // Fin examen SELs autocompletion
     221               
     222                // Connecter le nouvel inscrit : include_spip('inc/auth');
     223                // -----------------------------------------------------------
     224                // cette fonction renvoie la ligne spip_auteur de cet auteur ss forme de tableau, mais ne fait pas de connexion
     225                // $flux['data']['auteur_auth'] = auth_identifier_login(_request('new_login'), _request('new_pass'));           
     226                $connect_auteur = auth_identifier_login(_request('new_login'), _request('new_pass'));
     227                if (is_array($connect_auteur)) auth_loger($auteur);
     228               
     229                include_spip('inc/autoriser');
     230                if (!autoriser('ecrire')){
     231                        $h = generer_url_action('logout','logout=prive&url='.urlencode(self()));
     232                }
     233               
     234               
     235                // $GLOBALS[visiteur_session] = auth_identifier_login(_request('new_login'), _request('new_pass'));
     236                // $GLOBALS[auteur_session] = auth_identifier_login(_request('new_login'), _request('new_pass'));
     237                // $GLOBALS[_REQUEST][var_login] = _request('new_login');
     238                // $GLOBALS[_REQUEST][password] = {6df83cca986b0bbd250660a40d24bf45b08137c05bed2890953036a9cd6b94ae;45b8428151faea0cccf65e6dac5e0d7e0d2709af26f9018c51617b9ed2d65ea8}
     239                // debug : spip_log($flux['data']['auteur_auth'],'nn');
     240                if (!test_espace_prive()) $flux['data']['redirect'] = 'spip.php?page=avatar&id_auteur='.$id_auteur;;
     241               
    92242    };
    93243       
  • _plugins_/sel/plugin.xml

    r57906 r60767  
    6060    <pipeline>
    6161                <nom>declarer_tables_interfaces</nom>
    62                 <inclure>base/structure.php</inclure>
     62                <inclure>base/tables.php</inclure>
    6363        </pipeline>
    6464
    6565        <pipeline>
    6666                <nom>declarer_tables_principales</nom>
    67                 <inclure>base/structure.php</inclure>
     67                <inclure>base/tables.php</inclure>
    6868        </pipeline>
    6969
    7070        <pipeline>
    7171                <nom>declarer_tables_auxiliaires</nom> 
    72                 <inclure>base/structure.php</inclure>
     72                <inclure>base/tables.php</inclure>
    7373        </pipeline>
    7474
     
    115115       <args></args>
    116116   </onglet>
     117   <utilise id="gravatar" />
     118   <utilise id="spipdf" />
    117119
    118120</plugin>
  • _plugins_/sel/sel_fonctions.php

    r57906 r60767  
    11<?php
     2
     3// balise #TOTAL_VISITES
     4function aff_total_visites() {
     5        $query = "SELECT SUM(visites) AS total_absolu FROM spip_visites";
     6        $result = spip_query($query);
     7        if ($row = spip_fetch_array($result))
     8                { return $row['total_absolu']; }
     9        else { return "0";}
     10}
     11
     12function balise_TOTAL_VISITES($p) {
     13        $p->code = "aff_total_visites()";
     14        $p->statut = 'php';
     15        return $p;
     16}
     17
     18
     19
     20
     21// balise #CITATION
     22function aff_citation_hasard() {
     23        $lignes = file ('./squelettes/citations.txt');
     24                $hasard = array_rand ($lignes,1);
     25                return $lignes[$hasard];
     26
     27}
     28
     29function balise_CITATION($c) {
     30        $c->code = "aff_citation_hasard()";
     31        $c->statut = 'php';
     32        return $c;
     33}
     34
     35
     36function filtre_arobase ($chaine) {
     37        $result = explode("@", $chaine);
     38        return $result[0];
     39}
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
    251
    352
  • _plugins_/sel/sel_options.php

    r60421 r60767  
    11<?php
    22
    3 $GLOBALS['dossier_squelettes'] = 'plugins/snb_v2/squelettes';
    4 
     3$GLOBALS['dossier_squelettes'] = 'plugins/sel/squelettes';
    54
    65// spip 2 $GLOBALS['meta'][version_installee] = 15828
     
    1211// NOTE : spip_version_branche n'est pas trouvé depuis ce fichier
    1312// défini dans /spip/ecrire/inc_version.php (ligne 412)
     13
    1414?>
Note: See TracChangeset for help on using the changeset viewer.