[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / inc / selectionner_auteur.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
15 include_spip('inc/editer_auteurs');
16 include_spip('inc/selectionner');
17
18 //
19 // Affiche un mini-navigateur ajax sur les auteurs
20 //
21
22 // http://doc.spip.org/@inc_selectionner_auteur_dist
23 function inc_selectionner_auteur_dist($id_article, $type='article')
24 {
25 $idom = "auteur_$type" . "_$id_article";
26 $new = $idom . '_new';
27 if (!$determiner_non_auteurs = charger_fonction('determiner_non_auteurs_'.$type,'inc',true))
28 $determiner_non_auteurs = 'determiner_non_auteurs';
29
30 $futurs = selectionner_auteur_boucle($determiner_non_auteurs($type, $id_article), $idom);
31
32 // url completee par la fonction JS onkeypress_rechercher
33 $url = generer_url_ecrire('rechercher_auteur', "idom=$idom&nom=");
34
35 return construire_selectionner_hierarchie($idom, $futurs, '', $url, $new);
36 }
37
38 // http://doc.spip.org/@selectionner_auteur_boucle
39 function selectionner_auteur_boucle($where, $idom)
40 {
41 $info = generer_url_ecrire('informer_auteur', "id=");
42 $idom3 = $idom . '_selection';
43 $idom2 = $idom . '_new';
44 $idom1 = $idom . '_div';
45 $args = "'$idom3', '$info', event";
46 $res = '';
47 $all = sql_allfetsel("nom, id_auteur", "spip_auteurs", $where, '', "nom, statut");
48 foreach ($all as $row) {
49
50 $id = $row["id_auteur"];
51 $nom = typo($row["nom"]);
52
53 // attention, les <a></a> doivent etre au premier niveau
54 // et se suivrent pour que changerhighligth fonctionne
55 // De plus, leur zone doit avoir une balise et une seule
56 // autour de la valeur pertinente pour que aff_selection
57 // fonctionne (faudrait concentrer tout ca).
58
59 $res .= "<a class='highlight off'"
60 . "\nonclick=\"changerhighlight(this);"
61 . "findObj_forcer('$idom2').value="
62 . $id
63 . "; aff_selection($id,$args); return false;"
64 . "\"\nondblclick=\""
65 // incomplet: le selecteur devient indisponible. A ameliorer
66 . "findObj_forcer('$idom').parentNode.innerHTML='"
67 . attribut_html($nom)
68 . "'; findObj_forcer('$idom2').value="
69 . $id
70 . "; return false"
71 . "\"><b>"
72 . $nom
73 . "</b></a>";
74 }
75
76 return $res;
77 }
78 ?>