[ Index ] |
|
Code source de SPIP 1.9.2c |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2007 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 14 15 16 // Affiche la fiche de renseignements d'un auteur 17 // eventuellement editable 18 // http://doc.spip.org/@inc_auteur_infos_dist 19 function inc_auteur_infos_dist($auteur, $redirect) { 20 if (!$auteur['id_auteur']) { 21 if (_request('new') == 'oui') { 22 $new = true; 23 } else { 24 include_spip('inc/headers'); 25 redirige_par_entete(generer_url_ecrire('auteurs')); 26 } 27 } 28 29 if (!$new) { 30 $corps = legender_auteur_voir($auteur, $redirect); 31 } else 32 $corps = ''; 33 34 if (_request('echec')) 35 $corps .= afficher_erreurs_auteur(_request('echec')); 36 37 38 // Calculer le bloc de statut (modifiable ou non selon) 39 $instituer_auteur = charger_fonction('instituer_auteur', 'inc'); 40 $bloc_statut = $instituer_auteur($auteur); 41 42 // Calculer le formulaire general 43 if (autoriser('modifier', 'auteur', $auteur['id_auteur'])) { 44 $corps = legender_auteur_saisir($auteur, $corps, $bloc_statut, $redirect); 45 } else { 46 // Indiquer le bloc statut (cas non modifiable) ? 47 $corps .= $bloc_statut; 48 } 49 50 return $corps; 51 52 } 53 54 // http://doc.spip.org/@afficher_erreurs_auteur 55 function afficher_erreurs_auteur($echec) { 56 foreach (split('@@@',$echec) as $e) 57 $corps .= '<p>' . _T($e) . "</p>\n"; 58 59 $corps = debut_cadre_relief('', true) 60 . "<span style='color: red; left-margin: 5px'>" 61 . http_img_pack("warning.gif", _T('info_avertissement'), "style='width: 48px; height: 48px; float: left; margin: 5px;'") 62 . $corps 63 . _T('info_recommencer') 64 . "</span>\n" 65 . fin_cadre_relief(true); 66 67 return $corps; 68 } 69 70 71 // http://doc.spip.org/@legender_auteur_saisir 72 function legender_auteur_saisir($auteur, $auteur_infos_voir, $bloc_statut, $redirect) { 73 global $options, $connect_statut, $connect_id_auteur, $connect_toutes_rubriques; 74 75 $id_auteur = $auteur['id_auteur']; 76 77 78 79 $setmail = ($connect_statut == "0minirezo" 80 AND ($connect_toutes_rubriques OR $auteur['statut']<>'0minirezo')); 81 82 $setconnecte = ($connect_id_auteur == $id_auteur); 83 84 85 // Elaborer le formulaire 86 $corps = ''; 87 $corps .= _T('titre_cadre_signature_obligatoire') 88 . "(" 89 . _T('entree_nom_pseudo') 90 . ")<br />\n" 91 . "<input type='text' name='nom' class='formo' size='40' value=\"" 92 . entites_html(sinon($auteur['nom'], _T('ecrire:item_nouvel_auteur'))) 93 . "\" " 94 . (strlen($auteur['nom']) ? '' : ' onfocus="if(!antifocus){this.value=\'\';antifocus=true;}"') 95 . " />\n<br />" 96 . "<b>"._T('entree_adresse_email')."</b>"; 97 98 if ($setmail) { 99 $corps .= "<br /><input type='text' name='email' class='formo' size='40' value=\"" 100 . entites_html($auteur['email']) 101 . "\" />\n<br />\n"; 102 } else { 103 $corps .= " : <tt>".$auteur['email']."</tt>" 104 . "<br />("._T('info_reserve_admin').")\n" 105 . "\n<br />"; 106 } 107 108 $corps .= "<b>"._T('entree_infos_perso')."</b><br />\n" 109 . "("._T('entree_biographie') 110 . ")<br />\n" 111 . "<textarea name='bio' class='forml' rows='4' cols='40'>" 112 . entites_html($auteur['bio']) 113 . "</textarea><br />\n" 114 . debut_cadre_enfonce("site-24.gif", true, "", _T('info_site_web')) 115 . "<b>"._T('entree_nom_site')."</b><br />\n" 116 . "<input type='text' name='nom_site_auteur' class='forml' value=\"" 117 . entites_html($auteur['nom_site']) 118 . "\" size='40' /><br />\n" 119 . "<b>" 120 . _T('entree_url') 121 . "</b><br />\n" 122 . "<input type='text' name='url_site' class='forml' value=\"" 123 . entites_html($auteur['url_site']) 124 . "\" size='40' />\n" 125 . fin_cadre_enfonce(true) 126 . "\n<br />"; 127 128 if ($options == "avancees" 129 OR strlen($auteur['pgp'])) { 130 $corps .= debut_cadre_enfonce("cadenas-24.gif", true, "", _T('entree_cle_pgp')) 131 . "<textarea name='pgp' class='forml' rows='4' cols='40'>" 132 . entites_html($auteur['pgp']) 133 . "</textarea>\n" 134 . fin_cadre_enfonce(true); 135 } 136 137 $corps .= "\n<br />"; 138 139 if ($GLOBALS['champs_extra']) { 140 include_spip('inc/extra'); 141 $corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut']); 142 } 143 144 // 145 // Login et mot de passe : 146 // accessibles seulement aux admins non restreints et l'auteur lui-meme 147 // 148 149 if (($auteur['source'] != 'spip') AND $GLOBALS['ldap_present']) { 150 $edit_login = false; 151 $edit_pass = false; 152 } 153 else if (($connect_statut == "0minirezo") AND $connect_toutes_rubriques) { 154 $edit_login = true; 155 $edit_pass = true; 156 } 157 else if ($connect_id_auteur == $id_auteur) { 158 $edit_login = false; 159 $edit_pass = true; 160 } 161 else { 162 $edit_login = false; 163 $edit_pass = false; 164 } 165 166 $corps .= debut_cadre_relief("base-24.gif", true); 167 168 // Avertissement en cas de modifs de ses propres donnees 169 if (($edit_login OR $edit_pass) AND $connect_id_auteur == $id_auteur) { 170 $corps .= debut_cadre_enfonce('', true) 171 . http_img_pack("warning.gif", _T('info_avertissement'), 172 "style='width: 48px; height: 48px; float: right;margin: 5px;'") 173 . "<b>"._T('texte_login_precaution')."</b>\n" 174 . fin_cadre_enfonce(true) 175 . "\n<br />"; 176 } 177 178 // Un redacteur n'a pas le droit de modifier son login ! 179 if ($edit_login) { 180 $corps .= "<b>"._T('item_login')."</b> " 181 . "<span style='color: red'>("._T('texte_plus_trois_car').")</span> :<br />\n" 182 . "<input type='text' name='new_login' class='formo' value=\"".entites_html($auteur['login'])."\" size='40' /><br />\n"; 183 } else { 184 $corps .= "<fieldset style='padding:5'><legend><b>"._T('item_login')."</b><br />\n</legend><br /><b>".$auteur['login']."</b> " 185 . "<i> ("._T('info_non_modifiable').")</i>\n<br />"; 186 } 187 188 // On ne peut modifier le mot de passe en cas de source externe (par exemple LDAP) 189 if ($edit_pass) { 190 $res = "<b>"._T('entree_nouveau_passe')."</b> " 191 . "<span style='color: red'>("._T('info_plus_cinq_car').")</span> :<br />\n" 192 . "<input type='password' name='new_pass' class='formo' value=\"\" size='40' /><br />\n" 193 . _T('info_confirmer_passe')."<br />\n" 194 . "<input type='password' name='new_pass2' class='formo' value=\"\" size='40' /><br />\n"; 195 $corps .= $res; 196 } 197 198 $corps .= fin_cadre_relief(true); 199 200 201 202 // 203 // Retour 204 // 205 206 $corps = $auteur_infos_voir 207 . "<div id='auteur_infos_edit'>\n" 208 . '<div> </div>' 209 . "\n<div class='serif'>" 210 . debut_cadre_relief("fiche-perso-24.gif", 211 true, "", _T("icone_informations_personnelles")) 212 . $corps 213 . fin_cadre_relief(true) 214 . (!$setconnecte ? '' : apparait_auteur_infos($id_auteur, $auteur)) 215 . "</div>\n" # /serif 216 . "</div>\n"; # /auteur_infos_edit 217 218 // Installer la fiche "auteur_infos_voir" 219 // et masquer le formulaire si on n'en a pas besoin 220 $new = ($auteur_infos_voir == ''); 221 if (!$new 222 AND !_request('echec') 223 AND !_request('edit')) { 224 $corps .= "<script>jQuery('#auteur_infos_edit').hide()</script>\n"; 225 } else { 226 $corps .= "<script>jQuery('#auteur_infos_voir').hide()</script>\n"; 227 } 228 229 230 // Formulaire de statut 231 $corps .= $bloc_statut; 232 233 234 // Lier a un article (creation d'un auteur depuis un article) 235 if ($id_article = intval(_request('lier_id_article'))) 236 $corps .= "<input type='hidden' name='lier_id_article' value='$id_article' />\n"; 237 238 // Redirection apres enregistrement ? 239 if ($redirect) 240 $corps .= "<input type='hidden' name='redirect' value=\"".attribut_html($redirect)."\" />\n"; 241 242 $corps .= "<div align='right'><input type='submit' value='"._T('bouton_enregistrer')."' class='fondo' /></div>"; 243 244 245 $arg = intval($id_auteur); 246 $ret .= generer_action_auteur('editer_auteur', $arg, $redirect, $corps, ' method="POST"'); 247 248 $ret .= fin_cadre_relief(true) 249 . '</div>'; 250 251 252 return $ret; 253 } 254 255 // 256 // Apparaitre dans la liste des redacteurs connectes 257 // 258 259 // http://doc.spip.org/@apparait_auteur_infos 260 function apparait_auteur_infos($id_auteur, $auteur) { 261 262 if ($auteur['imessage']=="non"){ 263 $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on'>" 264 . " <label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label> " 265 . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' checked='checked' id='perso_activer_imessage_off'>" 266 . " <b><label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label></b> "; 267 } else { 268 $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on' checked='checked'>" 269 . " <b><label for='perso_activer_imessage_on'>" 270 . _T('bouton_radio_apparaitre_liste_redacteurs_connectes') 271 . "</label></b> " 272 . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' id='perso_activer_imessage_off'>" 273 . " <label for='perso_activer_imessage_off'>" 274 . _T('bouton_radio_non_apparaitre_liste_redacteurs_connectes') 275 . "</label> "; 276 } 277 278 return 279 debut_cadre_enfonce("messagerie-24.gif", true, "", _T('info_liste_redacteurs_connectes')) 280 . "\n<div>" 281 . _T('texte_auteur_messagerie') 282 . "</div>" 283 . $res 284 . fin_cadre_enfonce(true) 285 . "<br />\n"; 286 } 287 288 289 // http://doc.spip.org/@legender_auteur_voir 290 function legender_auteur_voir($auteur) { 291 global $connect_toutes_rubriques, $connect_statut, $connect_id_auteur, $champs_extra, $options, $spip_lang_right; 292 293 if (!$id_auteur = $auteur['id_auteur']) { 294 $new = true; 295 } 296 297 $res .= "<div id='auteur_infos_voir'>"; 298 299 $res = "<table width='100%' cellpadding='0' border='0' cellspacing='0'>" 300 . "<tr>" 301 . "<td style='width: 100%' valign='top'>" 302 . gros_titre( 303 sinon($auteur['nom'],_T('item_nouvel_auteur')), 304 '',false); 305 306 307 $res .= "<div> </div>"; 308 309 if (strlen($auteur['email'])) 310 $res .= "<div>"._T('email_2') 311 ." <b><a href='mailto:".htmlspecialchars($auteur['email'])."'>" 312 .$auteur['email']."</a></b></div>"; 313 314 if ($auteur['url_site']) { 315 if (!$auteur['nom_site']) 316 $auteur['nom_site'] = _T('info_site'); 317 $res .= propre(_T('info_site_2')." [{{".$auteur['nom_site']."}}->".$auteur['url_site']."]"); 318 } 319 320 // Bouton "modifier" ? 321 if (autoriser('modifier', 'auteur', $id_auteur)) { 322 $res .= "</td>\n<td id='bouton_modifier_auteur'>"; 323 $clic = _T("admin_modifier_auteur"); 324 $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&edit=oui"); 325 $h = "<a\nhref='$h'>$clic</a>"; 326 $res .= icone($clic, $h, "redacteurs-24.gif", "edit.gif", '', '',true); 327 328 $res .= "<script type='text/javascript'><!-- 329 var intitule_bouton = "._q(_T('icone_retour'))."; 330 jQuery('#bouton_modifier_auteur a') 331 .click(function() { 332 jQuery('#auteur_infos_edit') 333 .toggle(); 334 jQuery('#auteur_infos_voir') 335 .toggle(); 336 jQuery('#bouton_modifier_auteur a span') 337 .each(function(){ 338 var tmp = jQuery(this).html(); 339 jQuery(this).html(intitule_bouton); 340 intitule_bouton = tmp; 341 }); 342 return false; 343 }); 344 // --></script>\n"; 345 $res .= "</td><tr><td colspan='2'>\n"; 346 } 347 348 if (strlen($auteur['bio'])) { 349 $res .= propre("<quote>".$auteur['bio']."</quote>"); 350 } 351 352 if (strlen($auteur['pgp'])) { 353 $res .= propre("PGP: <cadre>".$auteur['pgp']."</cadre>"); 354 } 355 356 if ($GLOBALS['champs_extra'] AND $auteur['extra']) { 357 include_spip('inc/extra'); 358 $res .= extra_affichage($auteur['extra'], 'auteurs'); 359 } 360 361 $res .= "</td></tr></table>"; 362 363 $res .= "</div>\n"; 364 365 return $res; 366 367 } 368 369 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 10:20:27 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |