Tim Rolands Your Host
 Professional Posts:97

 |
| 05/22/2007 1:07 PM |
Alert
|
Well, it's finally time to gear up for a new version of HouseMenu. Much has changed with DNN, and I would like to hear from users out there about what's important to them in a navigation solution for DNN.
I will definitely strive to keep HouseMenu as lightweight as possible, and it will be as javascript-free as I can make it. Beyond that, let's talk!
One of the questions I am really wrestling with has to do with architecture: Should HouseMenu be implemented again as a module/skinobject, or should it follow the new navigation provider model? I'd like to go with whatever is easier for the user, and I'm leaning toward the module/skinobject route. Please share your thoughts.
And feel free to comment on any existing or potential feature! |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|
L Sykes
 Novice Posts:5
 |
| 05/23/2007 4:05 AM |
Alert
|
Hi Tim,
I like the skin object route, it's simple to implement and get working in skins. - would the navigation provider model offer any benefits? |
|
|
|
|
Clay Ferrell
 Novice Posts:5
 |
| 05/27/2007 5:49 PM |
Alert
|
Hi Tim,
The route you are on is a good one and makes the menu usable in lots of different ways.
The main disappointment I see in all the menu "systems" for DNN is that not one of them currently supports the ability to place a different image or style to each menu item, or the ability to designate which items appear in which menu.
If House Menu had the ability as a module to read the Tabs table AND create it's own table to store a "showme" value which would also show or not show child tabs as selected it would be fantastic. One could then use the menu module anywhere in the page to implement some pretty unique navigation models.
If in addition it could handle "per item" styling such as Images for the three potential states and/ or other "style" formatting such as text color, etc., you would have the absolute best menu possible.
These are things I used to be able to do with classic .asp without even thinking about it and there were many menu systems that did much the same. .Net it seems is sadly lacking of this, and especially DNN. |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
| 05/29/2007 8:01 PM |
Alert
|
Lee, I am experimenting with the provider model approach right now, and I actually have it up and running. I guess the biggest advantage of this approach is that you don't have to make specific skins to work with different menu controls: you just set the default in web.config so all standard skins use the selected menu, or else you open a skin and change a setting in the navigation object's tag.
In the case of HouseMenu, this might not be so big of an advantage. Most of the settings for the core navigation object are ignored for HouseMenu, and the CSS has to be customized anyway.
Still, I am now leaning toward going that route since it is the "prescribed" approach now. Although I could certainly make it available both ways and let people choose their own approach. |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
| 05/29/2007 8:11 PM |
Alert
|
Clay,
Thank you for your feedback.
You can do the per-page image thing with the current version of HouseMenu, but it only supports one image. You have to set a page icon in the page settings and then tell HouseMenu to use this image (with or without the page name). This is clearly only part of what you were describing.
It would be straightforward to store selected pages and their various images in a database table, then use this to build a highly customized menu. Homwever, it would add some overhead, and I really want to keep HouseMenu very small. This would also almost require the module/skinobject approach in order to avoid a bit of a torturous installation.
But I kind of like this idea all the same, so I'll keep it in mind. |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|
Rick Toner
 Novice Posts:2

 |
| 05/30/2007 12:14 PM |
Alert
|
Hi Tim,
I am running into one thing I would love to see a feature of. I have some pages that are hidden and when a user clicks on that menu item hat is the parent I turn on the Show all nested and also turn on show hidden.
Is there any thoughts on making a check that says show nested to current page? I want to have the complete nested for a particular branch but not for the others I have not expanded on.
here is an example of what it looks like when you are not clicked on it and one when it is expanded.
If you are at the root level of the menu this is the correct menu you should see:
http://beta.nths.org/About.aspx
If you are at the "Types of Membership" page you should see the 3 children:
http://beta.nths.org/About/TypesofMembership.aspx
As you can see it expands all of the as there is no option to just expand the children of the current page.
Thanks
Rick |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
|
Brian Chabun
 Novice Posts:2
 |
| 06/13/2007 11:52 PM |
Alert
|
I'd suggest possible thinking about multi-language support.
Perhaps the 'multi-language' aspect of things should be elsewhere like during the page creation process but this would require some sort of core modification which is likely a ways down the road.
Hmmm. Well, if this is a wishlist that's something I would add. Erik (?) at Apollo Software has a menu replacement/modification that allows something like this but it's a modification of solpart I believe.
I wonder if implementing version 2 as a provider model would allow some sort of localization component (eg. one that tracks page names in multiple languages) to tap in and feed to the menu system the appropriate language?
Perhaps someone with more knowledge can kick in. |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
| 06/14/2007 8:05 AM |
Alert
|
Definitely a good idea, Brian. I actually corresponded with Erik about adding his multilingual solution to the earlier HouseMenu once upon a time. Should be pretty straightforward to adapt that earlier code to the new version. |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|
David K.
 Novice Posts:5
 |
| 07/16/2007 2:45 AM |
Alert
|
Hi,
is it possible for you to include the support for displaying the pages of the same level? Maybe it's already feasible and I just haven't figured it out yet, but I really need it at the moment and I'm afraid I have to switch back to the solpartmenu for a while (fortunately only with one of the two menus ^^)
cheers, david |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
| 07/16/2007 4:01 PM |
Alert
|
Thanks for the suggestion, David. Can you describe what you mean in a little more detail, please?
I think you mean the menu should show siblings of whatever the current page is, whether that's at the top level or two levels down. Right?
Tim |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|
David K.
 Novice Posts:5
 |
| 07/17/2007 1:30 AM |
Alert
|
that's right, it should show the siblings of the currently active page.
and maybe you can go one step ahead and also give the possibility to choose from which level the menu should start (in my case the submenu shouldn't display the root level)
cheers, david |
|
|
|
|
Clay Ferrell
 Novice Posts:5
 |
| 07/31/2007 3:55 AM |
Alert
|
Hi Tim,
I have an idea to add as perhaps a future enhancement to all this. In my previous post, I suggested using an additional table to allow the storage of images and item specific styling.
In thinking about this approach more, I am becoming more convinced of the value of adding that additional table for referencing. My thoughts on it are these.
With an additional table you would also be able to make the Skin Object "self aware" in the sense that the table could assign an "instance number" to each implementation of the object in the skin. This would allow you to assign specific root level pages to an instance (or perhaps second level pages from a hidden page or something like that) in this way, a person could create a standard type skin with several "instance" implementations of the skin object "out of the box" which would then make the object "dynamic" in that it could access that table in a "settings" area much like modules do. This would simply be awesome in my view.
We could then have multiple instances of HouseMenu in a skin, each "self aware" as to its own instance,,, something like " instance=1," "instance=2," etc. This would take the place of the dnnMenu and Solpart "starttabid=x" setting.
Does this make any sense to you? I hope it does. Allowing the use of an additional table that would store the "instance" to which root pages could be assigned would create a huge amount of flexibility in implementing the HouseMenu. IMHO.
So, do you think I have totally lost it, or does this all make sense?
Clay
[Edit]
By the way, it would also solve the sort of quandry posed by Jon Henning in his blog about making skins more flexible and more useable by skinners.
http://www.dotnetnuke.com/Community/Blogs/tabid/825/rssid/8/Default.aspx |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
| 07/31/2007 10:16 AM |
Alert
|
Clay,
Thanks for the additional suggestions. I think you might be onto something here, but I'll need to digest this all and give it some thought. Feel free to elaborate as you keep thinking about this, too.
Tim |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|
Clay Ferrell
 Novice Posts:5
 |
| 07/31/2007 7:02 PM |
Alert
|
Will do Tim. It always seemed to me that DNN was actually making things much too hard the way they were going about it with the menu systems that are in the core. I'm not a programmer (not really any way) but I do understand the concepts, have written some code, and usually there is an easier way to do things than the way most coders would think. The issue is that coders think code, not always process. With the concept of "self aware" or actually "instance aware" menuing, you would be taking advantage of the core's already existing concepts of making modules "aware" of their instance, page and portal location, while using only a single install of the module. It is then applied across the portal system and the DB registers which, portal, which page, etc. With a skin object it would be a bit different in that it already inherits some of that (which portal) from the core. Page is not relevant, unless the menu instance is set to "parent," or "children," or something like that, but haveing a new setting of "instance" would allow skinners and Admins both the flexibility of some amazing placement options within the skin and allow for dynamic assignment of menu items to specific "instances" in the skin. EACH instance would need to be able to access the "settings area" where a simple list of pages with perhaps a drop down with numbers representing the "instance" would allow dynamic assignment. This whole concept would require that an "instance" be set in the menu setup in the skin (instance=1, instance=2, instance=3 and so on) or the menu would draw all items to itself. Once "instantiated" the menu would only draw menu items with the corresponding "instance" reference from the db. We would still need "admin=true" to be available as those are hidden from the menuing list that would be retrievable by the menu. If all this were coupled with some Sort of of "level specific" indicator in for use in the css file and an "item specific" styling that would be stored in the db, then skinners could set differing child level css for each instance in the css by referencing the instance setting of each instance in the skin. Then if an Admin wanted or needed something a bit more complex for css, they could always set that in the db for the items involved. For example, they may have an item set to "instance=1" where the home menu shows and want it to be larger item than the others in the instance. The dimensions could then be set and retrieved from the db for that one item in the collection for instance 1. Jon Henning, god bless him for all his wonderful work, is trying to make things so generic that he is unintentionally making it all but impossible for flexibility in this area. Genericising (is that really a word) the menu the way it's done in DNN is fine, but when we begin to loose the ability to creatively and selectively skin a single item, it becomes more of a jail cell for both the skinner and the Admin when they want or need to be more creative. All of this of course could translate directly into the module also, but implementing menu modules have their own issues and I prefer using skin objects. Just have never seen a "self aware" object like this. I think it would open whole new doors to creativity and development in DNN. Could you imagine a self aware Login which could be styled this way. It would eliminate all of the questions I have seen on the boards about how to style the login and the search and the concept could be applied to loooots of things in DNN. Hope that helps. Clay |
|
|
|
|
Dan Alstrup
 Novice Posts:1
 |
| 08/13/2007 7:04 AM |
Alert
|
I would like the next version to be able to Localize the admin and host menu, when using an other locale.
If eg. I use Danish as default language on my portal, I set the default language of the admin/host to danish and login as admin/host - the admin/host menu is still in english.
it would be nice if this could be possible. |
|
|
|
|
Tom Lyczko
 Novice Posts:8
 |
| 01/20/2008 8:20 AM |
Alert
|
| Please enable the usage of the title attribute for the A tag. Thank you, Tom |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
|
Clay Ferrell
 Novice Posts:5
 |
| 01/24/2008 8:13 PM |
Alert
|
Hi Tim, welcome back. Nice to have you back at work on the menu.
I have been thinking a bit more on our last conversations re: "instance awareness" of the menu, and I think I have an easier way to do this. I believe that being able to set page names for each menu to be included or excluded from the menu instance, coupled with a way to indicate the path to the images folder to be used for menu backgrounds and/or icons would go a long way to solve this entire issue, if those were CSS stylable.
For example, if I could load an image, with the same name as the page, have the nemu load it to the image's background, and then be able to adjust that images positioning via CSS, we would have everything we have talked of. Using this scenario, to "assign" an image to a page would be as simple as naming it the same as the page name (or Title if you want to use that instead). The menu would then, by default load the background image for a menu item by looking in the indicated images folder for an image with the same name as the menu item. The CSS would allow me to use that image to create tabs the same way as Exploding boy menus, Tab Menus, etc. As long as there was some sort of indicator available for use in the CSS to change the position of that image based on mouse position, etc.
This could be then extended in lots of ways later to allow specific items to be addressed via CSS by implementing a "pagename" property such that for the home page the CSS would be
.home:Idle, { position: absolute; } .home:Hover, { position: +20px; } and so on. This would grant some pretty extreme flexibility to the menu. One could conceivably then use a single instance, but style EACH menu item by simply loading up an appropriate image, then setting it's position based on the various "state" possibilities of the cursor.
Using this method would make the menu infinitely stylable, infinitely portable by portal within a DNN Install, etc. It would lead to being able to create skins where each menu item could be styled IN THE CSS by simply using the menu item name in the CSS and indicating in the .ascx the menu items that are either included or excluded in that intstance.
Hope that line of thinking is all clear.
Clay |
|
|
|
|
Tim Rolands Your Host
 Professional Posts:97

 |
| 02/14/2008 6:46 PM |
Alert
|
I really want to make HouseMenu easy and flexible, which makes for a constant balancing act.
Here's what I'm thinking for customizing specific items in a menu, which is what I think you are after, Clay....
As HouseMenu renders each menu item, it will include the page name as an id. For example, the rendered markup for a single item might look like this:
<li id='site_page_name'><a>...a>li>
So to style specific menu items in the CSS, you would simply target the specific item within a specific menu:
#menuId li#style_page_name {...}
No need for a database table and full CSS for styling an item. Does this meet your needs for flexibility?
Tim |
|
avastonetechnologies.com writergear.com timrolands.com |
|
|