Changeset 60767 in spip-zone
- Timestamp:
- Apr 30, 2012, 7:29:13 AM (9 years ago)
- 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> 1 17 <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;"]> 3 19 <fieldset> 4 <legend style="display:inline;"><:auteur:correspondant_auteur_organisations:></legend>20 <legend><:auteur:correspondant_auteur_organisations:></legend> 5 21 <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 /> 8 24 </BOUCLE_liste_organisations> 25 <div class="deco"> </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--> 9 36 </fieldset> 10 37 </li> -
_plugins_/sel/formulaires/inc-liste_sels.html
r57906 r60767 4 4 <legend style="display:inline;"><:auteur:membre_auteur_sel:></legend> 5 5 <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 /> 8 8 </BOUCLE_liste_sels> 9 9 </fieldset> -
_plugins_/sel/lang/auteur_fr.php
r57906 r60767 31 31 32 32 //M 33 'membre_auteur_sel' => "Membre du / des SEL(s) suivant(s) :" 33 'membre_auteur_sel' => "Membre du / des SEL(s) suivant(s) :", 34 34 ); 35 35 ?> -
_plugins_/sel/paquet.xml
r57906 r60767 19 19 <!--options>sel_options.php</options--> 20 20 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" /> 24 24 <pipeline nom="autoriser" inclure="pipelines/sel_autorisations.php" /> 25 25 <pipeline nom="editer_contenu_objet" inclure="pipelines/complement_editer_auteur.php" /> … … 31 31 <menu nom="sels" titre="sel:titre_sel" parent="menu_edition" icone="images/sel-16.png" /> 32 32 <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" /> 34 35 </paquet> 35 36 -
_plugins_/sel/pipelines/complement_editer_auteur.php
r57906 r60767 3 3 $spip_branche_principale = substr($GLOBALS[spip_version_branche], 0, 1); 4 4 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']); 5 10 6 11 if ($spip_branche_principale==3) $flux['data'] = preg_replace('%(<li class="editer editer_bio(.*?)</li>)%is','',$flux['data']); 7 12 if ($spip_branche_principale==2) $flux['data'] = preg_replace('%(<li class="editer_bio(.*?)</li>)%is','',$flux['data']); 8 13 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 9 18 if ($spip_branche_principale==3) $flux['data'] = preg_replace('%(<li class="editer editer_pgp(.*?)</li>)%is','',$flux['data']); 10 19 if ($spip_branche_principale==2) $flux['data'] = preg_replace('%(<li class="editer_pgp(.*?)</li>)%is','',$flux['data']); 11 20 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) 16 35 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']); 17 41 18 42 if (in_array($GLOBALS[auteur_session][statut],array('','1comite','6forum'))) … … 38 62 $flux['data'] = preg_replace("%(<li class='editer_liens_sites fieldset'>(.*?)</fieldset>(.*?)</li>)%is","",$flux['data']); 39 63 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']); 45 69 46 70 $complement_organisations = recuperer_fond('formulaires/inc-liste_organisations', $flux['args']['contexte']); … … 56 80 57 81 function sel_formulaire_charger($flux){ 58 59 82 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 } 61 93 } 62 return $flux; 94 return $flux; 63 95 } 64 96 … … 66 98 function sel_formulaire_verifier($flux){ 67 99 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 } 71 116 } 72 73 117 return $flux; 74 118 } … … 78 122 $id_auteur = $flux['data']['id_auteur']; 79 123 $upd = sql_updateq('spip_auteurs', array( 124 'prenom'=> _request('prenom'), 125 'acces' => _request('acces'), 80 126 'adresse1' => _request('adresse1'), 81 127 'adresse2' => _request('adresse2'), … … 85 131 'tel1' => _request('tel1'), 86 132 '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'), 88 137 ), 'id_auteur=' . intval($id_auteur)); 89 138 if ($upd) $flux['data']['message_ok'] = "Bravo !"; 90 139 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 92 242 }; 93 243 -
_plugins_/sel/plugin.xml
r57906 r60767 60 60 <pipeline> 61 61 <nom>declarer_tables_interfaces</nom> 62 <inclure>base/ structure.php</inclure>62 <inclure>base/tables.php</inclure> 63 63 </pipeline> 64 64 65 65 <pipeline> 66 66 <nom>declarer_tables_principales</nom> 67 <inclure>base/ structure.php</inclure>67 <inclure>base/tables.php</inclure> 68 68 </pipeline> 69 69 70 70 <pipeline> 71 71 <nom>declarer_tables_auxiliaires</nom> 72 <inclure>base/ structure.php</inclure>72 <inclure>base/tables.php</inclure> 73 73 </pipeline> 74 74 … … 115 115 <args></args> 116 116 </onglet> 117 <utilise id="gravatar" /> 118 <utilise id="spipdf" /> 117 119 118 120 </plugin> -
_plugins_/sel/sel_fonctions.php
r57906 r60767 1 1 <?php 2 3 // balise #TOTAL_VISITES 4 function 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 12 function 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 22 function aff_citation_hasard() { 23 $lignes = file ('./squelettes/citations.txt'); 24 $hasard = array_rand ($lignes,1); 25 return $lignes[$hasard]; 26 27 } 28 29 function balise_CITATION($c) { 30 $c->code = "aff_citation_hasard()"; 31 $c->statut = 'php'; 32 return $c; 33 } 34 35 36 function filtre_arobase ($chaine) { 37 $result = explode("@", $chaine); 38 return $result[0]; 39 } 40 41 42 43 44 45 46 47 48 49 50 2 51 3 52 -
_plugins_/sel/sel_options.php
r60421 r60767 1 1 <?php 2 2 3 $GLOBALS['dossier_squelettes'] = 'plugins/snb_v2/squelettes'; 4 3 $GLOBALS['dossier_squelettes'] = 'plugins/sel/squelettes'; 5 4 6 5 // spip 2 $GLOBALS['meta'][version_installee] = 15828 … … 12 11 // NOTE : spip_version_branche n'est pas trouvé depuis ce fichier 13 12 // défini dans /spip/ecrire/inc_version.php (ligne 412) 13 14 14 ?>
Note: See TracChangeset
for help on using the changeset viewer.