I tried (and I mean really tried) to use Hansel, but I simply don't understand the whole interface.
On your project page you state that understanding of how Hansel works is required in order to properly use it — I personally don't think this mentality fits Drupal. (Imagine what would've happened to Views with this mentality ...) And even if this module is just targeted at developers, it wouldn't do any harm to make it as easy to use as possible.
I've always been impressed by the simplicity of structuring a site in Radiant CMS. See http://radiantcms.org/ for a screenshot + demo install. Absolutely no thinking is required; just drag, create childs, drag, and drag some more. Basically like Drupal's menu system, I suppose.
A very raw and experimental mockup:
http://www.flickr.com/photos/mverbaar/4626553936/in/set-72157624105694890/
Breadcrumb settings: (nothing special here but just including it to show how the 'home' breadcrumb can be disabled in this UI fantasy)
http://www.flickr.com/photos/mverbaar/4625949297/in/set-72157624105694890/
I'd like to get some feedback on this, and I hope we can make this module easy enough so less-geeky users can use it. After all, it's not just developers who want more control over their breadcrumbs.
Comments
Comment #1
jix_ commentedComment #2
bertboerland commentedI really like the clean and easy to get mockup. but would like to know from mauritsl if we are missing something here.
Comment #3
bertboerland commentedI also think your sketch doenst do justice to the token integration? how could we do this?
Comment #4
jix_ commentedYeah I obviously missed a lot of features. Do we have a detailed list of everything that Hansel must be able to "do"? One that could help with making interaction scenarios.
Comment #5
mauritsl commentedMaking the configuration more friendly surely is a high priority for Hansel.
But Hansel rules is really not the same as your menu structure, and never will be. The concept of Hansel is that you can configure everything with the rules. So stick to the rules when designing a new interface :-)
My first thoughts on the screenshot:
When using Hansel myself, I think the following is confusing / difficult:
To answer your last question, the readme file describes all features currently available (it has a 100% coverage as far as I know). The roadmap has only new breadcrumb actions and switch types (see #803272).
Rests me to say that any input / sketches on how to make Hansel a joy is really appreciated :)
Comment #6
mauritsl commentedForgot to comment on the settings page...
A setting to enable / disable the "Home" crumb will not make in Hansel. It's more because you also must be able to have the domain name, or organic group name as first crumb. You can do this with the rules. Providing settings for this is duplication of functionality.
Any settings that _may_ be added in the future are cache settings and settings to trim the length of long titles.
Comment #7
jix_ commentedThe 'add child' and 'add frontpage child' links were confusing — I agree. As the notes on the photo page at flickr.com now say, I'll rename 'add frontpage child' to 'add breadcrumb link' and remove the 'add child' links. We'll stick with current Drupal UI patterns for now and let users choose a parent in a
<select>on the 'add breadcrumb link' page.About the 'list' mockup. That was me fantasizing how I'd wanted to arrange my breadcrumbs without thinking about implementation details at all.
The 'list' mockup is a tree structure of breadcrumb links. Not of rules or switches. The problem is that I have absolutely no idea what a 'rule' or 'switch' is. I want a breadcrumb.
So the first thing I'm thinking when I'm at the main screen of Hansel is 'how do I make the article content-type a child of the articles view?'
This is an interaction demo of adding a breadcrumb link for the 'Articles' view.
http://www.flickr.com/photos/mverbaar/4626785672/
After that I'd repeat the same interaction, only then I'd choose 'content type' and 'article', and make it a child if the 'Articles' view I added earlier.
I'd love to be able to control my breadcrumbs in a simple way like that. But if you want Hansel to stay with rules, switches and what not, it'd be a lot harder to make that easy to use. Unless there are ways to explain what rules and switches are to an end-user. But since I myself don't know what they are ... I'm going to need some assistance of someone who does.
Comment #8
jix_ commentedAnd at the same time my own mockups don't make any sense to me as in, 'why did I just add a breadcrumb link for a view'. It doesn't really do anything at that time, until after you added a child.
Comment #9
mauritsl commentedProblem is that, if you want to add breadcrumbs to views pages that way, is that I have to write an integration for views module. But you also want it for the blogs module, and for forums, for panels and a lot more modules. This is more the concept of the Custom breadcrumbs module.
Why I want to stick to the rules is cause of it's simplicity (technically speaking). It does not need an integration for views or panels to make it work.
There is no point in making Hansel work more like other breadcrumb modules. It will make Hansel less powerful and will require a full rewrite of Hansel.
I'm looking for a way to make the rules more understandable. Another way I thought of is visualizing the rules in a state diagram, where every rule is a separate state. That resembles the way how Hansel works now. Have a look at some state diagrams: http://www.google.nl/images?q=state+diagram and image every rule as a single state.
Comment #10
jix_ commentedTalking about the rules, switches and other technical parts with mauritsl face-to-face helped a lot with understanding how Hansel currently works. Assigning this issue to myself and I'll soon post some ideas of ways to translate all of this to an easy-to-understand UI.
Comment #11
bertboerland commentednot meant in a bad way (but these two are 20 feet apart from each other), so my tip of the day:
"you two.. get a room!" :-)
Comment #12
jix_ commentedWork on iteration 1 has started:
http://www.flickr.com/photos/mverbaar/sets/72157624141660328/
The mockups will hopefully speak for themselves, but if certain things aren't clear; please ask. Not everything is worked out yet, such as the "default" child rules of switches and different types of switch patterns. Not really sure yet how to deal with those.
Once I get the important details right, I'll try to make a short screencast to demonstrate the basic interactions.
The sooner I get feedback, the better, so do share your thoughts :)
Comment #13
mstef commentedThis seems powerful but I can't get a single thing to work nor do I have any idea what I'm doing - regardless of reading the help doc, looking at screenshots, etc..
'Go to' is confusing because there is no choice for destination - so you can add those..
I just want to specify breadcrumbs when I'm at certain URLs...why so hard?
Comment #14
mstef commentedHINT: Name = the path it hits on
Ahhhh
Comment #15
mauritsl commentedWe are still working on a way to make Hansel more easy. What stunned me in the past is that breadcrumbs are 'not easy'. Getting the breadcrumbs the way I want ended in custom modules most of the time. My first answer to the question "why so hard?" thus will be; breadcrumbs ain't easy..
Note that the rule name is only the path argument it hits on when using the url argument switch, as explained in section 2.2.3 of the readme file.
Comment #16
askibinski commentedI played around with Hansel for well over half an hour, but I'm really lost with this module. A better UI or at least one solid example would make life so much better. I've got the feeling this might be a pretty powerful breadcrumb module but I can't get it to work.
Maybe you should take a look at rules module for the UI?
Comment #17
mikeaja commentedI am not really sure what the point is of this approach? This does not really seem to be breadcrumbs. Breadcrumbs should just detect the page you are on, remember it, and build a list. The concept of breadcrumbs is easy. This module has a concept that is difficult.
I think if 20-40 rules are needed, it is unlikely this module will be popular. Even after reading this thread and spending 30 minutes with the module, I'm still not sure what it is supposed to do that is better than regular breadcrumbs (maybe I am stupid? :) ).
Still, perhaps I am completely missing something here. Clearly the way the module works, the UI and approach is very non-Drupal. Is that a good thing? Not sure, because I have to say, so far I just don't get it. I bet $1000 that most people that install this will uninstall it within 5 minutes. I don't think that's what a module developer wants.
Possibly a step by step tutorial may help. I also think you should find another way to explain the module - I don't think it is breadcrumbs.
Comment #18
bryancasler commentedI uninstalled it in 5 minutes
Comment #19
welly commentedNote that the rule name is only the path argument it hits on when using the url argument switch, as explained in section 2.2.3 of the readme file.
I think this is the confusing part. I was understanding the rule name as a descriptive term rather than a logical term.
Comment #20
welly commentedI've spent a bit more time with Hansel today and I think I've finally got my head around how it works. I think the interface is actually fine but what needs looking at is the terms and definition of words in the interface.
As I said above, "name" doesn't make it very clear it's actually node type or path - note that I have an node type named Event (machine name: event) which has a path of events/event-title. When I used "events" in the name, as I thought it would be looking for the path, it wouldn't work. However, changing the rule name to event works correctly.
In the configuration "action with breadcrumbs" and "action" is also very confusing. I understand what is meant by them but I think better names could be used. I'm not sure what at the moment but I'll think about it.
For those still trying to figure it out, think of "action with breadcrumbs" as what to do with the current breadcrumb. Do we do nothing with it or do we create a link? If we create a link, where do we link to.
And then think of "Action" as what to do next. We've done something with our breadcrumb, now what? Do we do nothing? (Leave) or do we call another rule (Goto rule). I haven't used or figured out Switch yet though.
This is actually a very powerful module and I think has potential but I think a good tutorial needs creating plus the language used needs revising or requires more explanation as it is rather confusing at the moment.
Comment #21
mstef commentedLast time I checked in (about a year ago), I thought the module was pretty awesome. Definitely needs some UI tweaking; like you said, most importantly, the terminology. And, we need some Features integration.