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

jix_’s picture

Status: Active » Needs review
bertboerland’s picture

I really like the clean and easy to get mockup. but would like to know from mauritsl if we are missing something here.

bertboerland’s picture

I also think your sketch doenst do justice to the token integration? how could we do this?

jix_’s picture

Yeah 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.

mauritsl’s picture

Status: Needs review » Needs work

Making 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:

  1. "Add frontpage child".. My first impression was; "what is a frontpage child?". Now I see that you have seemed to move the add rule form to another page. And that we can get there by this link, or any of the "Add child" links on the rules. That is really nice, it saves us from having to choose the parent in a confusing drop down list. But the naming "frontpage child" is incorrect. It is not just for the frontpage, and (technically speaking) not a child. The name "Add top-level rule" is better imo.
  2. The texts "view", "content type" and "node 2" seems to tell what kind of page this is. As I said before, rules are not pages. You have to tell there what the logic action is (switch, goto or leave) and what the rule dos with your breadcrumbs (add one link, add link to node etc.).

When using Hansel myself, I think the following is confusing / difficult:

  1. The list of rules become large when setting up a complete configuration. It not uncommon to have 20-40 rules. This makes it more difficult to see which rules are going to be executed for a path.
  2. The rule name is now used as value for switches. Because of that, you end up having a lot of rules with nodetypes, node id's or "" in the name. It's not always descriptive. But adding a description is imo not a great solution. I think it's better to have a different look for rules which are children from a switch rule.
  3. The switch configuration form is difficult to find. You can get there by clicking on the name of the switch in the overview (try adding an url argument switch and change it to case sensitive matching). It would be desired to integrate this in the add / edit rule form. But that does not help with the next point:
  4. The form to add / edit a rule is a form with 2 steps. When editing a rule, you always have to go to all the steps, even if you just want to change a single field.

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 :)

mauritsl’s picture

Forgot 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.

jix_’s picture

The '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.

jix_’s picture

And 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.

mauritsl’s picture

Problem 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.

jix_’s picture

Assigned: Unassigned » jix_

Talking 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.

bertboerland’s picture

not 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!" :-)

jix_’s picture

Status: Needs work » Needs review

Work 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 :)

mstef’s picture

This 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?

mstef’s picture

HINT: Name = the path it hits on

Ahhhh

mauritsl’s picture

We 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.

askibinski’s picture

I 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?

mikeaja’s picture

I 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.

bryancasler’s picture

I uninstalled it in 5 minutes

welly’s picture

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.

I think this is the confusing part. I was understanding the rule name as a descriptive term rather than a logical term.

welly’s picture

I'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.

mstef’s picture

Last 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.