[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / inc / presenter_enfants.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 include_spip('inc/autoriser');
16 include_spip('inc/presentation');
17
18 // http://doc.spip.org/@enfant_rub
19 function enfant_rub($collection){
20 global $spip_display, $spip_lang_left, $spip_lang_right, $spip_lang;
21
22 $voir_logo = ($spip_display != 1 AND $spip_display != 4 AND isset($GLOBALS['meta']['image_process']) AND $GLOBALS['meta']['image_process'] != "non");
23
24 if ($voir_logo) {
25 $voir_logo = "float: $spip_lang_right; margin-$spip_lang_right: 0px; margin-top: 0px;";
26 $chercher_logo = charger_fonction('chercher_logo', 'inc');
27 } else $logo ='';
28
29 $res = "";
30
31 $result = sql_select("id_rubrique, id_parent, titre, descriptif, lang ", "spip_rubriques", "id_parent=$collection",'', '0+titre,titre');
32
33 while($row=sql_fetch($result)){
34 $id_rubrique=$row['id_rubrique'];
35 $id_parent=$row['id_parent'];
36 $titre=$row['titre'];
37
38 if (autoriser('voir','rubrique',$id_rubrique)){
39
40 $les_sous_enfants = sous_enfant_rub($id_rubrique);
41
42 changer_typo($row['lang']);
43 $lang_dir = lang_dir($row['lang']);
44 $descriptif=propre($row['descriptif']);
45
46 if ($voir_logo) {
47 if ($logo = $chercher_logo($id_rubrique, 'id_rubrique', 'on')) {
48 list($fid, $dir, $nom, $format) = $logo;
49 include_spip('inc/filtres_images_mini');
50 $logo = image_reduire("<img src='$fid' alt='' />", 48, 36);
51 if ($logo)
52 $logo = "\n<div style='$voir_logo'>$logo</div>";
53 }
54 }
55
56 $lib_bouton = (!acces_restreint_rubrique($id_rubrique) ? "" :
57 http_img_pack("admin-12.gif", '', " width='12' height='12'", _T('image_administrer_rubrique'))) .
58 " <span dir='$lang_dir'><a href='" .
59 generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") .
60 "'>".
61 typo($titre) .
62 "</a></span>";
63
64 $titre = (is_string($logo) ? $logo : '') .
65 bouton_block_depliable($lib_bouton,$les_sous_enfants ?false:-1,"enfants$id_rubrique");
66
67 $les_enfants = "\n<div class='enfants'>" .
68 debut_cadre_sous_rub(($id_parent ? "rubrique-24.gif" : "secteur-24.gif"), true, "", $titre) .
69 (!$descriptif ? '' : "\n<div class='verdana1'>$descriptif</div>") .
70 (($spip_display == 4) ? '' : $les_sous_enfants) .
71 "\n<div style='clear:both;'></div>" .
72 fin_cadre_sous_rub(true) .
73 "</div>";
74
75 $res .= ($spip_display != 4)
76 ? $les_enfants
77 : "\n<li>$les_enfants</li>";
78 }
79 }
80
81 changer_typo($spip_lang); # remettre la typo de l'interface pour la suite
82 return (($spip_display == 4) ? "\n<ul>$res</ul>\n" : $res);
83
84 }
85
86 // http://doc.spip.org/@sous_enfant_rub
87 function sous_enfant_rub($collection2){
88 global $spip_lang_left;
89
90 $result3 = sql_select("id_rubrique, id_parent, titre, lang", "spip_rubriques", "id_parent=$collection2",'', '0+titre,titre');
91
92 $retour = '';
93 while($row=sql_fetch($result3)){
94 $id_rubrique2=$row['id_rubrique'];
95 $id_parent2=$row['id_parent'];
96 $titre2=$row['titre'];
97 changer_typo($row['lang']);
98 $lang_dir = lang_dir($row['lang']);
99 if (autoriser('voir','rubrique',$id_rubrique2))
100 $retour.="\n<li class='arial11 rubrique_12' dir='$lang_dir'><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique2") . "'>".typo($titre2)."</a></li>\n";
101 }
102
103 if (!$retour) return '';
104
105 return debut_block_depliable(false,"enfants$collection2")
106 ."\n<ul style='margin: 0px; padding: 0px; padding-top: 3px;'>\n"
107 . $retour
108 . "</ul>\n\n".fin_block()."\n\n";
109 }
110
111 // http://doc.spip.org/@afficher_enfant_rub
112 function afficher_enfant_rub($id_rubrique, $bouton=false, $return=false) {
113 global $spip_lang_left,$spip_lang_right, $spip_display;
114
115 $les_enfants = enfant_rub($id_rubrique);
116 $n = strlen(trim($les_enfants));
117
118 if (!$n && !$bouton) return "";
119
120 if (!($x = strpos($les_enfants,"\n<div class='enfants'>",round($n/2)))) {
121 $les_enfants2="";
122 }else{
123 $les_enfants2 = substr($les_enfants, $x);
124 $les_enfants = substr($les_enfants,0,$x);
125 if ($spip_display == 4) {
126 $les_enfants .= '</li></ul>';
127 $les_enfants2 = '<ul><li>' . $les_enfants2;
128 }
129 }
130
131 $res =
132 "<div class='gauche'>"
133 . $les_enfants
134 . "</div>"
135 . "<div class='droite'>"
136 . $les_enfants2
137 . "</div>"
138 . "&nbsp;"
139 . "<div style='float:"
140 . $spip_lang_right
141 . ";position:relative;'>"
142 . (!$bouton ? ''
143 : (!$id_rubrique
144 ? icone(_T('icone_creer_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav"), "secteur-24.gif", "creer.gif",$spip_lang_right, false)
145 : icone(_T('icone_creer_sous_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav&id_parent=$id_rubrique"), "rubrique-24.gif", "creer.gif",$spip_lang_right,false)))
146 . "</div>";
147
148 if ($return) return $res; else echo_log('afficher_enfant_rub',$res);
149 }
150
151 ?>