summaryrefslogtreecommitdiffstats
path: root/menu.rb
diff options
context:
space:
mode:
Diffstat (limited to 'menu.rb')
-rwxr-xr-xmenu.rb80
1 files changed, 80 insertions, 0 deletions
diff --git a/menu.rb b/menu.rb
new file mode 100755
index 0000000..6471254
--- /dev/null
+++ b/menu.rb
@@ -0,0 +1,80 @@
+# encoding: utf-8
+def menu_tpe(page_actuelle)
+
+ html = <<HTML_TPE
+ <nav id="menubar">
+ <menu id="menu" style="width: $width$em">
+HTML_TPE
+ dans_sous_menu = 0
+ dans_bon_sous_menu = 0
+ lien = ""
+ cur_page = ""
+ if page_actuelle.is_a?(Integer)
+ id = page_actuelle
+ else
+ id = 0
+ end
+ longueur_max = 0
+ $db.execute("SELECT id, entree, sous_menu FROM pages ORDER BY id").each { |entree|
+ entree["entree"].force_encoding('utf-8')
+ longueur = entree["entree"].length + entree["sous_menu"]*3
+
+ if longueur > longueur_max
+ longueur_max = longueur
+ end
+
+ if entree["sous_menu"] < dans_sous_menu
+ lien = lien.rpartition('/')[0]
+ html = html + " </ul>\n"*(dans_sous_menu-entree["sous_menu"])
+ end
+
+ if entree["sous_menu"] > dans_sous_menu
+ html = html + " <ul>\n"
+ else
+ lien = lien.rpartition('/')[0]
+ end
+
+ if lien != ""
+ lien = lien + "/" + entree["entree"]
+ else
+ lien = entree["entree"]
+ end
+
+ if page_actuelle.is_a?(Integer)
+ if entree["id"] == page_actuelle
+ cur_page = lien
+ html = html + " <li><a href=\"#{$RepBase}/#{lien}\" class=\"emphase\">#{entree["entree"]}</a></li>\n"
+ else
+ html = html + " <li><a href=\"#{$RepBase}/#{lien}\">#{entree["entree"]}</a></li>\n"
+ end
+ else
+
+ if entree["sous_menu"] < dans_bon_sous_menu
+ dans_bon_sous_menu = entree["sous_menu"]
+ end
+
+ if page_actuelle[entree["sous_menu"]] == entree["entree"] and entree["sous_menu"] == dans_bon_sous_menu
+ dans_bon_sous_menu = entree["sous_menu"]+1
+ id = entree["id"]
+ end
+
+ if entree["entree"] == page_actuelle[entree["sous_menu"]]
+ cur_page = lien
+ html = html + " <li><a href=\"#{$RepBase}/#{lien}\" class=\"emphase\">#{entree["entree"]}</a></li>\n"
+ else
+ html = html + " <li><a href=\"#{$RepBase}/#{lien}\">#{entree["entree"]}</a></li>\n"
+ end
+ end
+ dans_sous_menu = entree["sous_menu"]
+ }
+ until dans_sous_menu == 0
+ html = html + " </ul>\n"
+ dans_sous_menu -= 1
+ end
+
+ html = html + <<HTML_TPE
+ </menu>
+ </nav>
+HTML_TPE
+ return html, longueur_max, id, cur_page
+end