1 | <?php |
---|
2 | |
---|
3 | /***************************************************************************\ |
---|
4 | * SPIP, Systeme de publication pour l'internet * |
---|
5 | * * |
---|
6 | * Copyright (c) 2001-2015 * |
---|
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 | include_spip('inc/lien'); |
---|
16 | |
---|
17 | // |
---|
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 |
---|
25 | // |
---|
26 | |
---|
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 |
---|
29 | |
---|
30 | // http://code.spip.net/@inc_formater_auteur_dist |
---|
31 | function inc_formater_auteur_dist($id_auteur, $row = null) { |
---|
32 | |
---|
33 | global $connect_id_auteur, $connect_statut; |
---|
34 | |
---|
35 | $id_auteur = intval($id_auteur); |
---|
36 | |
---|
37 | if ($row === null) |
---|
38 | $row = sql_fetsel("*, " . sql_date_proche('en_ligne', -15, 'DAY') . " AS ici", "spip_auteurs", "id_auteur=$id_auteur"); |
---|
39 | |
---|
40 | $vals = array(); |
---|
41 | $statut = $row['statut']; |
---|
42 | $href = generer_url_ecrire("auteurs", "statut=$statut"); |
---|
43 | $vals[] = "<a href='$href'>" . bonhomme_statut($row) . '</a>'; |
---|
44 | |
---|
45 | if (($id_auteur == $connect_id_auteur) or !$row['ici']) |
---|
46 | $vals[] = ' '; |
---|
47 | else $vals[] = formater_auteur_mail($row, $id_auteur); |
---|
48 | |
---|
49 | if (!$nom = typo($row['nom'])) |
---|
50 | $nom = "<span style='color: red'>" . _T('texte_vide') . '</span>'; |
---|
51 | |
---|
52 | |
---|
53 | $chercher_logo = ($spip_display != 1 |
---|
54 | and $spip_display != 4 |
---|
55 | and $GLOBALS['meta']['image_process'] != "non") |
---|
56 | ? charger_fonction('chercher_logo', 'inc') |
---|
57 | : false; |
---|
58 | |
---|
59 | if ($chercher_logo |
---|
60 | and $logo = $chercher_logo($id_auteur, 'id_auteur', 'on')) { |
---|
61 | list($fid) = $logo; |
---|
62 | include_spip('inc/filtres_images_mini'); |
---|
63 | $logo = image_reduire("<img src='$fid' alt='' style='float:right;' />", 26, 20); |
---|
64 | } |
---|
65 | else $logo = ''; |
---|
66 | |
---|
67 | $vals[] = "<a href='" |
---|
68 | . generer_url_ecrire('auteur', "id_auteur=$id_auteur") |
---|
69 | . "'" |
---|
70 | . (!$row['bio'] ? '' : (" title=\"" . attribut_html(couper(textebrut($row["bio"]), 200)) ."\"")) |
---|
71 | . ">$nom</a>" . $logo; |
---|
72 | |
---|
73 | $url = traiter_lien_explicite($row["url_site"]); |
---|
74 | |
---|
75 | $vals[] = !$url ? " " |
---|
76 | : "<a href='$url'>".couper(sinon(typo($row['nom_site']), $row["url_site"]), 30)."</a>"; |
---|
77 | |
---|
78 | $contributions = array(); |
---|
79 | if (autoriser('modifier', 'auteur', $id_auteur, $row)) { |
---|
80 | $in = sql_in('statut', |
---|
81 | ($connect_statut == "0minirezo" |
---|
82 | ? array('prepa', 'prop', 'publie', 'refuse') |
---|
83 | : array('prop', 'publie'))); |
---|
84 | if ($cpt = sql_countsel("spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (A.id_article=L.id_objet AND objet='article')", "L.id_auteur=$id_auteur AND $in")){ |
---|
85 | $contributions[] = ($cpt > 1?$cpt.' '._T('info_article_2'):_T('info_1_article')); |
---|
86 | } |
---|
87 | } |
---|
88 | |
---|
89 | $contributions = pipeline('compter_contributions_auteur', array('args' => array('id_auteur' => $id_auteur, 'row' => $row), 'data' => $contributions)); |
---|
90 | |
---|
91 | $vals[] = (is_array($contributions) and count($contributions))?implode('<br />', $contributions):" "; |
---|
92 | |
---|
93 | return $vals; |
---|
94 | } |
---|
95 | |
---|
96 | // http://code.spip.net/@formater_auteur_mail |
---|
97 | function formater_auteur_mail($row, $id_auteur) |
---|
98 | { |
---|
99 | if (!in_array($row['statut'], array('0minirezo', '1comite'))) |
---|
100 | return ''; |
---|
101 | |
---|
102 | if ($row['imessage'] != 'non' |
---|
103 | and $GLOBALS['meta']['messagerie_agenda'] != 'non') |
---|
104 | $href = generer_action_auteur("editer_message", "normal/$id_auteur"); |
---|
105 | elseif (strlen($row['email']) |
---|
106 | and autoriser('voir', 'auteur', $id_auteur)) |
---|
107 | $href = 'mailto:' . $row['email']; |
---|
108 | else return ''; |
---|
109 | |
---|
110 | return "<a href='$href' title=\"" |
---|
111 | . _T('info_envoyer_message_prive') |
---|
112 | . "\" class='message'> </a>"; |
---|
113 | } |
---|