mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-03-04 08:20 am

[dw-free] Redo menu items to be a separate file for site schemes to use

[commit: http://hg.dwscoalition.org/dw-free/rev/7b9b976225fd]

http://bugs.dwscoalition.org/show_bug.cgi?id=321

Move navigation/menu logic to dw-free.

Patch by [personal profile] sophie.

Files modified:
  • bin/upgrading/en.dat
  • cgi-bin/bml/scheme/global.look
--------------------------------------------------------------------------------
diff -r ae827840b675 -r 7b9b976225fd bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Wed Mar 04 08:15:41 2009 +0000
+++ b/bin/upgrading/en.dat	Wed Mar 04 08:20:01 2009 +0000
@@ -2143,6 +2143,58 @@ lynx.nav.siteopts=Browse Options
 
 lynx.nav.update=Update Journal
 
+menunav.create=Create
+
+menunav.create.createaccount=Create Account
+
+menunav.create.createcommunity=Create Community
+
+menunav.create.editjournal=Edit Entries
+
+menunav.create.editprofile=Edit Profile
+
+menunav.create.updatejournal=Update Journal
+
+menunav.create.uploaduserpics=Upload Icons ([[num]] of [[max]])
+
+menunav.explore=Explore
+
+menunav.explore.directorysearch=Directory Search
+
+menunav.explore.faq=FAQ
+
+menunav.organize=Organize
+
+menunav.organize.customizestyle=Customize Style
+
+menunav.organize.manageaccount=Manage Account
+
+menunav.organize.managecommunities=Manage Communities
+
+menunav.organize.managefilters=Manage Filters
+
+menunav.organize.managerelationships=Manage Circle
+
+menunav.organize.managetags=Manage Tags
+
+menunav.organize.selectstyle=Select Style
+
+menunav.read=Read
+
+menunav.read.inbox.nounread=Inbox
+
+menunav.read.inbox.unread=Inbox ([[num]])
+
+menunav.read.profile=Profile
+
+menunav.read.readinglist=Reading Page
+
+menunav.read.recentcomments=Recent Comments
+
+menunav.read.syndicatedfeeds=Syndicated Feeds
+
+menunav.read.tags=Tags
+
 notification_method.email.title=Email
 
 notification_method.im.title=IM
diff -r ae827840b675 -r 7b9b976225fd cgi-bin/bml/scheme/global.look
--- a/cgi-bin/bml/scheme/global.look	Wed Mar 04 08:15:41 2009 +0000
+++ b/cgi-bin/bml/scheme/global.look	Wed Mar 04 08:20:01 2009 +0000
@@ -26,6 +26,9 @@ REQUIREPOST=><?_ml bml.requirepost _ml?>
 
 LOAD_PAGE_INFO<=
 <?_code
+### PLEASE NOTE: This block is deprecated. To print the menu navigation in a scheme,
+###              use the <?menunav?> block.
+
 #line 3
 @sidebar = ({ 'name' => 'Home',
            'uri' => '/',
@@ -268,3 +271,38 @@ BREADCRUMBS<=
     return "<div id='ljbreadcrumbs'>" . join(" : ", @ret) . "</div>";
 _code?>
 <=BREADCRUMBS
+
+# Dreamwidth menu structure
+menunav<=
+<?_code
+{
+    use DW::Logic::MenuNav;
+
+    my $ret;
+
+    $ret .= "<ul>\n";
+
+    my $nav_links = DW::Logic::MenuNav->get_menu_navigation;   # defaults to remote
+
+    foreach my $cathash ( @{ $nav_links } ) {
+        my $cat = $cathash->{name};
+        my @submenu = @{ $cathash->{items} };
+        my @displayed = ();
+        foreach my $item ( @submenu ) {
+            push @displayed, "<li class='subnav'><a href='$item->{url}'>" . BML::ml( "$item->{text}", $item->{text_opts} ) . "</a></li>" if $item->{display};
+        }
+        if ( @displayed ) {   # only display a top-level menu if any of its items are displayed
+            $ret .= "<li id='${cat}_topnav' class='topnav'><a href='$LJ::SITEROOT/nav.bml?cat=$cat'>$ML{\"menunav.$cat\"}</a>\n";
+            $ret .= "<ul id='${cat}_subnav' class='subnav_container'>\n";
+            $ret .= join( "\n", @displayed ) . "\n";
+            $ret .= "</ul>\n";
+            $ret .= "</li>\n";
+        }
+    }
+
+    $ret .= "</ul>\n";
+
+    return $ret;
+}
+_code?>
+<=menunav
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org