[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / exec / brouteur.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/presentation');
16
17 // http://doc.spip.org/@exec_brouteur_dist
18 function exec_brouteur_dist()
19 {
20 global $spip_ecran, $spip_lang_left;
21
22 $id_rubrique = intval(_request('id_rubrique'));
23
24 if ($spip_ecran == "large") {
25 $largeur_table = 974;
26 $hauteur_table = 400;
27 $nb_col = 4;
28 } else {
29 $largeur_table = 750;
30 $hauteur_table = 300;
31 $nb_col = 3;
32 }
33 $largeur_col = floor($largeur_table/$nb_col);
34 $profile = ($GLOBALS['var_profile']) ? "&var_profile=1" : '';
35
36 $commencer_page = charger_fonction('commencer_page', 'inc');
37 echo $commencer_page(_T('titre_page_articles_tous'), "accueil", "tout-site", " hauteurFrame($nb_col);");
38
39 echo "\n<div>&nbsp;</div>";
40
41 echo debut_grand_cadre(true);
42 $dest = array();
43 if ($id_rubrique) {
44 $j = $nb_col;
45 while ($id_rubrique > 0) {
46 $row = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=$id_rubrique");
47 if ($row){
48 $j--;
49 $dest[$j] = $id_rubrique;
50 $id_rubrique =$row['id_parent'];
51 }
52 }
53 $dest[$j-1] = 0;
54
55 while (!$dest[1]) {
56 for ($i = 0; $i < $nb_col; $i++) {
57 $dest[$i] = $dest[$i+1];
58 }
59 }
60
61 if ($dest[0] > 0 AND $dest[$nb_col-2]) {
62
63 $la_rubrique = intval($dest[0]);
64
65 $row = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=$la_rubrique");
66 if ($row) $la_rubrique = $row['id_parent'];
67 $compteur = 0;
68 $ret = '';
69 while ($la_rubrique > 0) {
70 $row = sql_fetsel("titre, id_parent", "spip_rubriques", "id_rubrique ='$la_rubrique'");
71 if ($row) {
72 $compteur++;
73 $titre = typo($row['titre']);
74 $lien = $dest[$nb_col-$compteur-1];
75 if (!$la_rubrique=$row['id_parent'])
76 $class = "brouteur_icone_secteur";
77 else $class = "brouteur_icone_rubrique";
78 $ret = "\n<div class='$class'><a href='" . generer_url_ecrire("brouteur","id_rubrique=$lien$profile") . "'>$titre</a></div>\n<div style='margin-$spip_lang_left: 28px;'>$ret</div>";
79 }
80 }
81 $lien = $dest[$nb_col-$compteur-2];
82
83 // Afficher la hierarchie pour "remonter"
84 echo "<div style='text-align: $spip_lang_left;'>";
85
86 echo "<div id='brouteur_hierarchie'>"; // pour calculer hauteur de iframe
87 echo "<div class='brouteur_icone_racine'><a href='",
88 generer_url_ecrire("brouteur","id_rubrique=$lien$profile"),
89 "'>",
90 _T('info_racine_site'),
91 "</a></div>",
92 "\n<div style='margin-$spip_lang_left: 28px;'>$ret</div>",
93 "</div>";
94 echo "</div>";
95 }
96 } else {
97 $dest[0] = '0';
98 }
99
100 for ($i=0; $i < $nb_col; $i++) {
101 echo "<iframe width='{$largeur_col}px' style='float:$spip_lang_left' id='iframe$i' name='iframe$i'",
102 (" src='" . generer_url_ecrire('brouteur_frame',"frame=$i$profile&rubrique=".$dest[$i])),
103 "' class='iframe-brouteur' height='",
104 $hauteur_table,
105 "'></iframe>";
106 }
107 echo fin_grand_cadre(true);
108
109 // fixer la hauteur du brouteur de maniere a remplir l'ecran
110 // nota: code tire du plugin dimensions.js
111 echo http_script("jQuery('iframe.iframe-brouteur').height(
112 Math.max((window.innerHeight || jQuery.boxModel && document.documentElement.clientHeight || document.body.clientHeight || 0)-195,300)
113 );\n");
114 echo fin_page();
115 }
116 ?>