[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / inc / auteur_infos.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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 // Affiche la fiche de renseignements d'un auteur
16 // eventuellement editable
17 // $quoi introduit pour pouvoir demander simplement les infos ou la partie editable
18 // ""=>tout, "infos"=>infos simplement, "edit"=>formulaire d'edition simplement
19 // http://doc.spip.org/@inc_auteur_infos_dist
20 function inc_auteur_infos_dist($auteur, $new, $echec, $edit, $id_article, $redirect, $quoi="") {
21
22 if (!$new AND $quoi!="edit") {
23 $infos = legender_auteur_voir($auteur);
24 } else
25 $infos = '';
26
27 $id_auteur = intval($auteur['id_auteur']);
28
29 if (
30 (!$auth = autoriser('modifier', 'auteur', $id_auteur,null))
31 OR $quoi=='infos') {
32 if ($quoi!='edit' AND $auth){
33 // Formulaire de statut
34 // Calculer le bloc de statut (non modifiable)
35 // il n'est pas possible d'avoir 2 blocs de statut modifiables dans la meme page
36 // car le plonguer de rubrique repose sur son unicite -> a reecrire
37 $instituer_auteur = charger_fonction('instituer_auteur', 'inc');
38 $bloc_statut = $instituer_auteur($auteur, false);
39 $bloc_statut = $bloc_statut? "<div class='statut'>$bloc_statut</div>":$bloc_statut.' ';
40 } else {
41 $bloc_statut = "";
42 }
43 return $infos . $bloc_statut;
44 }
45
46
47 // Elaborer le formulaire
48 $corps = "<div id='auteur_infos_edit'>\n";
49
50 $editer = ($new=='oui');
51 if ($editer&$redirect) {
52 $retour = rawurldecode($redirect);
53 } elseif ($id_auteur){
54 $retour = generer_url_ecrire('auteur_infos','id_auteur='.$id_auteur, false, true);
55 } else {
56 $retour = "";
57 }
58
59 $contexte = array(
60 'icone_retour'=>($retour)?icone_inline(_T('icone_retour'),$retour,"auteur-24.gif","rien.gif",$GLOBALS['spip_lang_left'],false,($editer&$redirect)?"":" onclick=\"jQuery('#auteur_infos_edit').hide();jQuery('#auteur-voir').show();return false;\""):"",
61 'redirect'=>$redirect?rawurldecode($redirect):generer_url_ecrire('auteur_infos','id_auteur='.$id_auteur, '&',true),
62 'titre'=>($auteur['nom']?$auteur['nom']:_T('nouvel_auteur')),
63 'new'=>$new == "oui"?$new:$id_auteur,
64 'config_fonc'=>'auteurs_edit_config',
65 'lier_id_article' => $id_article,
66 'auteur' => $auteur
67 );
68
69 $corps .= recuperer_fond("prive/editer/auteur", $contexte);
70 $corps .= '</div>';
71
72 // ajouter les infos, si l'on ne demande pas simplement le formulaire d'edition
73 if ($quoi!="edit") {
74 $corps = $infos . $corps;
75 }
76
77 // Installer la fiche "auteur_infos_voir"
78 // et masquer le formulaire si on n'en a pas besoin
79
80 if (!$new AND !$echec AND !$edit) {
81 $corps .= http_script("if (jQuery('#auteur_infos_edit span.erreur_message,#auteur_infos_edit .reponse_formulaire_erreur').length){jQuery('#auteur-voir').hide();}else{jQuery('#auteur_infos_edit').hide();}");
82 } else {
83 $corps .= http_script("jQuery('#auteur-voir').hide();");
84 }
85
86 return $corps;
87 }
88
89 // http://doc.spip.org/@afficher_erreurs_auteur
90 function afficher_erreurs_auteur($echec) {
91 foreach (explode('@@@',$echec) as $e)
92 $corps .= '<p>' . _T($e) . "</p>\n";
93
94 $corps = debut_cadre_relief('', true)
95 . "<span style='color: red; left-margin: 5px'>"
96 . http_img_pack("warning.gif", _T('info_avertissement'), "style='width: 48px; height: 48px; float: left; margin: 5px;'")
97 . $corps
98 . _T('info_recommencer')
99 . "</span>\n"
100 . fin_cadre_relief(true);
101
102 return $corps;
103 }
104
105
106 // http://doc.spip.org/@legender_auteur_saisir
107 //
108 // Apparaitre dans la liste des redacteurs connectes
109 //
110
111 // http://doc.spip.org/@apparait_auteur_infos
112 function apparait_auteur_infos($id_auteur, $auteur) {
113
114 if ($auteur['imessage']=="non"){
115 $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on'>"
116 . " <label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label> "
117 . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' checked='checked' id='perso_activer_imessage_off'>"
118 . " <b><label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label></b> ";
119 } else {
120 $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on' checked='checked'>"
121 . " <b><label for='perso_activer_imessage_on'>"
122 . _T('bouton_radio_apparaitre_liste_redacteurs_connectes')
123 . "</label></b> "
124 . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' id='perso_activer_imessage_off'>"
125 . " <label for='perso_activer_imessage_off'>"
126 . _T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')
127 . "</label> ";
128 }
129
130 return
131 debut_cadre_enfonce("messagerie-24.gif", true, "", _T('info_liste_redacteurs_connectes'))
132 . "\n<div>"
133 . _T('texte_auteur_messagerie')
134 . "</div>"
135 . $res
136 . fin_cadre_enfonce(true)
137 . "<br />\n";
138 }
139
140
141 // http://doc.spip.org/@legender_auteur_voir
142 function legender_auteur_voir($auteur) {
143 global $spip_lang_right;
144 $res = "";
145
146 $id_auteur = $auteur['id_auteur'];
147
148 // Bouton "modifier" ?
149 if (autoriser('modifier', 'auteur', $id_auteur)) {
150 $res .= "<span id='bouton_modifier_auteur'>";
151
152 if (_request('edit') == 'oui') {
153 $clic = _T('icone_retour');
154 $retour = _T('admin_modifier_auteur');
155 } else {
156 $clic = _T('admin_modifier_auteur');
157 $retour = _T('icone_retour');
158 }
159
160 $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&edit=oui");
161 $h = "<a\nhref='$h'>$clic</a>";
162 $res .= icone_inline($clic, $h, "redacteurs-24.gif", "edit.gif", $spip_lang_right);
163
164 $res .= http_script("
165 var intitule_bouton = "._q($retour).";
166 jQuery('#bouton_modifier_auteur a')
167 .click(function() {
168 jQuery('#auteur_infos_edit')
169 .toggle();
170 jQuery('#auteur-voir')
171 .toggle();
172 return false;
173 });");
174 $res .= "</span>\n";
175 }
176
177 $res .= gros_titre(
178 sinon($auteur['nom'],_T('item_nouvel_auteur')),
179 '',false);
180
181 $res .= "<div class='nettoyeur'></div>";
182
183 $contenu_auteur = "";
184 if (strlen($auteur['email']))
185 $contenu_auteur .= "<div>"._T('email_2')
186 ." <b><a href='mailto:".htmlspecialchars($auteur['email'])."'>"
187 .$auteur['email']."</a></b></div>";
188 // message d'information d'envoi d'email pour modif et de confirmation
189 // on ne fait ici qu'informer, sans aucune action
190 if ($email = _request('email_confirm')){
191 $contenu_auteur .= "<p><strong>"._T('form_auteur_envoi_mail_confirmation',array('email'=>$email))."</strong></p>";
192 }
193 elseif (_request('email_modif')==='ok'){
194 $contenu_auteur .= "<p><strong>"._T('form_auteur_email_modifie')."</strong></p>";
195 }
196
197 if ($auteur['url_site']) {
198 if (!$auteur['nom_site'])
199 $auteur['nom_site'] = _T('info_site');
200 $contenu_auteur .= propre(_T('info_site_2')." [{{".$auteur['nom_site']."}}->".$auteur['url_site']."]");
201 }
202
203 if (strlen($auteur['bio'])) {
204 $contenu_auteur .= propre("<quote>".$auteur['bio']."</quote>");
205 }
206
207 if (strlen($auteur['pgp'])) {
208 $contenu_auteur .= propre("PGP: <cadre>".$auteur['pgp']."</cadre>");
209 }
210
211 $contexte = array('id'=>$id_auteur);
212 // permettre aux plugin de faire des modifs ou des ajouts
213 $contenu_auteur = pipeline('afficher_contenu_objet',
214 array(
215 'args'=>array(
216 'type'=>'auteur',
217 'id_objet'=>$id_auteur,
218 'contexte'=>$contexte
219 ),
220 'data'=> $contenu_auteur
221 )
222 );
223
224 $res .= "<div id='auteur_infos_voir'>$contenu_auteur</div>\n";
225
226 return $res;
227
228 }
229
230 ?>