3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 include_spip('inc/lien');
18 // Construit un tableau des 5 informations principales sur un auteur,
19 // avec des liens vers les scripts associes:
20 // 1. l'icone du statut, avec lien vers la page de tous ceux ayant ce statut
21 // 2. l'icone du mail avec un lien mailto ou a defaut la messagerie de Spip
22 // 3. le nom, avec lien vers la page complete des informations
23 // 4. le mot "site" avec le lien vers le site Web personnelle
24 // 5. le nombre d'objets publies
27 // Un auteur sans autorisation de modification de soi est un visiteur;
28 // il n'a pas de messagerie interne, et n'a publie que des messages de forum
30 // http://doc.spip.org/@inc_formater_auteur_dist
31 function inc_formater_auteur_dist($id_auteur, $row=NULL) {
33 global $connect_id_auteur, $connect_statut;
35 $id_auteur = intval($id_auteur);
38 $row = sql_fetsel("*, (en_ligne<DATE_SUB(NOW(),INTERVAL 15 DAY)) AS parti", "spip_auteurs", "id_auteur=$id_auteur");
41 $statut = $row['statut'];
42 $href = generer_url_ecrire("auteurs","statut=$statut");
43 $vals[] = "<a href='$href'>" . bonhomme_statut($row) . '</a>';
45 if (($id_auteur == $connect_id_auteur) OR $row['parti'])
47 else $vals[]= formater_auteur_mail($row, $id_auteur);
49 if (!$nom = typo($row['nom']))
50 $nom = "<span style='color: red'>" . _T('texte_vide') . '</span>';
53 . generer_url_ecrire('auteur_infos', "id_auteur=$id_auteur")
55 . (!$row['bio'] ?
'' : (" title=\"" . attribut_html(couper(textebrut($row["bio"]), 200)) ."\""))
58 $url = traiter_lien_explicite($row["url_site"]);
60 $vals[] = !$url ?
" "
61 : "<a href='$url'>".couper(sinon(typo($row['nom_site']), $row["url_site"]),30)."</a>";
63 $contributions = array();
64 if (autoriser('modifier', 'auteur', $id_auteur, $row)) {
65 $in = sql_in('statut',
66 ($connect_statut == "0minirezo"
67 ?
array('prepa', 'prop', 'publie', 'refuse')
68 : array('prop', 'publie')));
69 if ($cpt = sql_countsel("spip_auteurs_articles AS L LEFT JOIN spip_articles AS A ON A.id_article=L.id_article", "L.id_auteur=$id_auteur AND $in"))
70 $contributions[] = ($cpt>1?
$cpt.' '._T('info_article_2'):_T('info_1_article'));
72 if ($cpt = sql_countsel("spip_forum AS F", "F.id_auteur=$id_auteur"))
73 $contributions[] = ($cpt>1?
$cpt.' '._T('public:messages_forum'):('1 ' . _T('public:message')));
76 $contributions = pipeline('compter_contributions_auteur',array('args'=>array('id_auteur'=>$id_auteur,'row'=>$row),'data'=>$contributions));
78 $vals[] = count($contributions)?
implode('<br />',$contributions):" ";
83 // http://doc.spip.org/@formater_auteur_mail
84 function formater_auteur_mail($row, $id_auteur)
86 if (!in_array($row['statut'], array('0minirezo', '1comite')))
89 if ($row['imessage'] != 'non'
90 AND $GLOBALS['meta']['messagerie_agenda'] != 'non')
91 $href = generer_action_auteur("editer_message","normal/$id_auteur");
92 else if (strlen($row['email'])
93 AND autoriser('voir', 'auteur', $id_auteur))
94 $href = 'mailto:' . $row['email'];
97 return "<a href='$href' title=\""
98 . _T('info_envoyer_message_prive')
99 . "\" class='message'> </a>";