[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / exec / auteur_infos.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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 include_spip('inc/presentation');
15 include_spip('inc/acces');
16 include_spip('inc/autoriser');
17
18 // http://doc.spip.org/@exec_auteur_infos_dist
19 function exec_auteur_infos_dist() {
20
21 exec_auteur_infos_args(intval(_request('id_auteur')),
22 _request('nom'),
23 _request('new'),
24 _request('echec'),
25 _request('redirect'));
26 }
27
28 // http://doc.spip.org/@exec_auteur_infos_args
29 function exec_auteur_infos_args($id_auteur, $nom, $new, $echec='', $redirect='')
30 {
31 global $connect_id_auteur;
32 pipeline('exec_init',
33 array('args' => array(
34 'exec'=> 'auteur_infos',
35 'id_auteur'=>$id_auteur),
36 'data'=>''
37 )
38 );
39
40 if ($id_auteur) {
41 $auteur = sql_fetsel("*", "spip_auteurs", "id_auteur=$id_auteur");
42
43 } else {
44 $auteur = array();
45 if (strlen(_request('nom')))
46 $auteur['nom'] = $nom;
47 }
48
49 if (!$auteur AND !$new AND !$echec) {
50 include_spip('inc/minipres');
51 echo minipres(_T('public:aucun_auteur'));
52 } else {
53 $commencer_page = charger_fonction('commencer_page', 'inc');
54 if ($connect_id_auteur == $id_auteur) {
55 echo $commencer_page($auteur['nom'], "auteurs", "perso");
56 } else {
57 echo $commencer_page($auteur['nom'],"auteurs","redacteurs");
58 }
59 echo "<br /><br /><br />";
60 echo debut_gauche('', true);
61 auteur_infos_ok($auteur, $id_auteur, $echec, $new, $redirect);
62 if($id_auteur > 0)
63 echo auteurs_interventions($auteur);
64 echo fin_gauche(), fin_page();
65 }
66 }
67
68 // http://doc.spip.org/@auteur_infos_ok
69 function auteur_infos_ok($auteur, $id_auteur, $echec, $new, $redirect)
70 {
71 $auteur_infos = charger_fonction('auteur_infos', 'inc');
72 $fiche = $auteur_infos($auteur, $new, $echec, _request('edit'), intval(_request('lier_id_article')), $redirect, 'infos');
73 if ($fiche)
74 $form_auteur = $auteur_infos($auteur, $new, $echec, _request('edit'), intval(_request('lier_id_article')), $redirect, 'edit');
75 else $form_auteur = '';
76
77 echo cadre_auteur_infos($id_auteur, $auteur);
78
79 // Interface de logo
80 $iconifier = charger_fonction('iconifier', 'inc');
81
82 if ($id_auteur > 0)
83 echo $iconifier('id_auteur', $id_auteur, 'auteur_infos', false, autoriser('modifier', 'auteur', $id_auteur));
84 // nouvel auteur : le hack classique
85 else if ($fiche)
86 echo $iconifier('id_auteur',
87 0 - $GLOBALS['visiteur_session']['id_auteur'],
88 'auteur_infos');
89
90 echo pipeline('affiche_gauche',
91 array('args' => array (
92 'exec'=>'auteur_infos',
93 'id_auteur'=>$id_auteur),
94 'data'=>'')
95 );
96
97 echo creer_colonne_droite('', true);
98 echo pipeline('affiche_droite',
99 array('args' => array(
100 'exec'=>'auteur_infos',
101 'id_auteur'=>$id_auteur),
102 'data'=>'')
103 );
104 echo debut_droite('', true);
105
106 echo debut_cadre_relief("redacteurs-24.gif", true,'','','auteur-voir');
107
108 // $fiche est vide si on demande par exemple
109 // a creer un auteur alors que c'est interdit
110 if ($fiche) {
111 echo $fiche;
112 } else {
113 echo gros_titre(_T('info_acces_interdit'),'', false);
114 }
115 echo pipeline('affiche_milieu',
116 array('args' => array(
117 'exec'=>'auteur_infos',
118 'id_auteur'=>$id_auteur),
119 'data'=>''));
120
121 echo fin_cadre_relief(true);
122
123 // afficher le formulaire d'edition apres le cadre d'info
124 // pour pouvoir afficher soit les infos,
125 // soit ce formulaire (qui a deja son cadre)
126 echo $form_auteur;
127 }
128
129 // http://doc.spip.org/@cadre_auteur_infos
130 function cadre_auteur_infos($id_auteur, $auteur)
131 {
132 $boite = pipeline ('boite_infos', array('data' => '',
133 'args' => array(
134 'type'=>'auteur',
135 'id' => $id_auteur,
136 'row' => $auteur
137 )
138 ));
139
140 if ($boite)
141 return debut_boite_info(true) . $boite . fin_boite_info(true);
142 }
143
144
145 // http://doc.spip.org/@auteurs_interventions
146 function auteurs_interventions($auteur) {
147 $id_auteur = intval($auteur['id_auteur']);
148 $statut = $auteur['statut'];
149
150 global $connect_id_auteur;
151
152 include_spip('inc/message_select');
153
154 if (autoriser('voir', 'article')) $aff_art = array('prepa','prop','publie','refuse');
155 else if ($connect_id_auteur == $id_auteur) $aff_art = array('prepa','prop','publie');
156 else $aff_art = array('prop','publie');
157 $aff_art = sql_in('articles.statut', $aff_art);
158 echo afficher_objets('article',_T('info_articles_auteur'), array('FROM' => "spip_articles AS articles LEFT JOIN spip_auteurs_articles AS lien ON lien.id_article=articles.id_article ", "WHERE" => "lien.id_auteur=$id_auteur AND $aff_art", 'ORDER BY' => "articles.date DESC"));
159
160 // Messages de l'auteur et discussions en cours
161 if ($GLOBALS['meta']['messagerie_agenda'] != 'non'
162 AND $id_auteur != $connect_id_auteur
163 AND autoriser('ecrire', '', '', $auteur)
164 ) {
165 echo "<div class='nettoyeur'>&nbsp;</div>";
166 echo debut_cadre_couleur('', true);
167
168 $vus = array();
169
170 echo afficher_ses_messages('<b>' . _T('info_discussion_cours') . '</b>', ", spip_auteurs_messages AS lien, spip_auteurs_messages AS lien2", "lien.id_auteur=$connect_id_auteur AND lien2.id_auteur = $id_auteur AND statut='publie' AND type='normal' AND rv!='oui' AND lien.id_message=messages.id_message AND lien2.id_message=messages.id_message", $vus, false, false);
171
172 echo afficher_ses_messages('<b>' . _T('info_vos_rendez_vous') . '</b>', ", spip_auteurs_messages AS lien, spip_auteurs_messages AS lien2", "lien.id_auteur=$connect_id_auteur AND lien2.id_auteur = $id_auteur AND statut='publie' AND type='normal' AND rv='oui' AND date_fin > ".sql_quote(date('Y-m-d H:i:s'))." AND lien.id_message=messages.id_message AND lien2.id_message=messages.id_message", $vus, false, false);
173
174 echo icone_horizontale(_T('info_envoyer_message_prive'), generer_action_auteur("editer_message","normal/$id_auteur"),
175 "message.gif","", false);
176
177 echo fin_cadre_couleur(true);
178 }
179 }
180 ?>