This is a half thought-out idea. It is barely a proof-of-concept. More explanation and code to come later.

#11 menu-2083871-11.patch12.81 KBtim.plunkett
PASSED: [[SimpleTest]]: [MySQL] 59,248 pass(es).
[ View ]
#8 interdiff.txt10.6 KBtim.plunkett
#8 menu-2083871-8.patch12.78 KBtim.plunkett
PASSED: [[SimpleTest]]: [MySQL] 59,213 pass(es).
[ View ]
#8 Screen Shot 2013-09-10 at 2.59.31 PM.png29.14 KBtim.plunkett
#8 Screen Shot 2013-09-10 at 2.59.43 PM.png28.92 KBtim.plunkett
#5 menu-2083871-5.patch3.3 KBtim.plunkett
PASSED: [[SimpleTest]]: [MySQL] 58,656 pass(es).
[ View ]
#4 menu-2083871-4-do-not-test.patch3.3 KBtim.plunkett
#4 menu-2083871-4-combined.patch44.47 KBtim.plunkett
PASSED: [[SimpleTest]]: [MySQL] 58,635 pass(es).
[ View ]
#4 Screen Shot 2013-09-09 at 9.38.01 PM.png36 KBtim.plunkett
#1 menu-block-2083871-1.patch1.73 KBtim.plunkett
PASSED: [[SimpleTest]]: [MySQL] 58,917 pass(es).
[ View ]


new1.73 KB
PASSED: [[SimpleTest]]: [MySQL] 58,917 pass(es).
[ View ]

No point in testing yet.

+++ b/core/modules/menu/menu.module
@@ -121,6 +122,37 @@ function menu_menu() {
+    // @todo Do not force the default theme when the block form has a theme
+    //   selector.

#2083877: Add a theme selector to the place block form

Status:Active» Needs review
new36 KB
new44.47 KB
PASSED: [[SimpleTest]]: [MySQL] 58,635 pass(es).
[ View ]
new3.3 KB

Okay, here's an action link. It triggers the modal added in #2083877: Add a theme selector to the place block form and then keeps you on the menu page.
Screen Shot 2013-09-09 at 9.38.01 PM.png

Attached a patch with just this issue, and one combined.

new3.3 KB
PASSED: [[SimpleTest]]: [MySQL] 58,656 pass(es).
[ View ]

Okay, both blockers went in!

Nice! Patch code looks fine, but maybe the test should also confirm the block is actually placed in the expected region?

I tested manually and it seems to work as intended. Couple comments on the UX:

  1. (out of scope) Do we have an issue somewhere for the thing where overlay redirects, reloads the page, and eats your dsm? because that's seriously disorienting.
  2. Did we decide elsewhere that this should specifically be a local action instead of as a dropbutton operation on admin/structure/menu? I vaguely remember discussing this but not sure with who or what the decision might have been.
  3. Does it make sense for "+ Place block" to come before "+ Add link"?
  4. Are "+ Place block" and "+ Add link" the same kind of thing?
  5. Can we add descriptions to those buttons to explain what their purpose is? I'm not sure that the place block one is clear or if that's something we do for actions.
  6. (out of scope) We should add a tour that explains this page, including the new button.
  7. (partly in scope) admin/structure/menu/manage/admin needs hook_help(). That could give us a chance to explain about placing the block.
  8. The message after I place my block is:

    The block configuration has been saved.

    That doesn't give me any clue as to what I just did. It would be MUCH better to say something like "Block placed in Bartik Highlighted region" or something, possibly followed by <a href="admin/structure/block/whatever">Administer blocks for Bartik</a>.

confirm the block is actually placed in the expected region

We added explicit tests for that in #2083877: Add a theme selector to the place block form, which is the modal we're just repurposing.

1) Not that I know of. I don't really touch overlay...
2) I made this decision myself, because having the dropbutton operation trigger a modal seemed very odd to me
3) I have no idea if these support weights, but yes.
4) "+ Add link" is the menu_link add form. So, no.
5) Um, no idea how to add descriptions to local actions. Probably should be hook_help()
6) Would be cool!
7) Yep, sounds good.
8) That's exacerbated by this workflow, yes. Could be done separately, or here, doesn't matter to me.

Leaving at NR for usability input on 6.2, local action vs dropbutton

new28.92 KB
new29.14 KB
new12.78 KB
PASSED: [[SimpleTest]]: [MySQL] 59,213 pass(es).
[ View ]
new10.6 KB

Okay, this addresses 6.3, 6.7, and 6.8
Screen Shot 2013-09-10 at 2.59.31 PM.pngScreen Shot 2013-09-10 at 2.59.43 PM.png

I will review this later today. Sorry, for the backlog on this tag.

Cool, the specific status message helps a lot.

+++ b/core/modules/menu/menu.module
@@ -43,8 +43,14 @@ function menu_help($path, $arg) {
+      $output .= '<p>' . t('On this page you can rename the menu and reorder or edit existing menu links. In addition, links are provided to add a new menu link, or place a block for this menu in any theme.') . '</p>';

@Bojhan, helping polish this help text would help for sure. :)

new12.81 KB
PASSED: [[SimpleTest]]: [MySQL] 59,248 pass(es).
[ View ]


Assigned:tim.plunkett» Unassigned

Unassigning to help keep track of what is blocked on me.

+++ b/core/modules/menu/menu.module
@@ -121,6 +128,33 @@ function menu_menu() {
+    // @todo Move to a LocalAction plugin when

Issue link is updated to

So I am looking at it, but can I have a little bit more background - on the why?

Kevin would like to create soft-associations between placeable things (menus, aggregation entities, views) and layout. The idea is, AFAIU, if you create something, like a menu, you probably want to use it as well. So we provide a short-circuit path to put that new thing into active use.

This is a bit of a short review, I will do a longer one tomorrow - sadly I am running out of time today. I am surprised at how ugly our menu page edit screen has gotten with the merge of edit and list of links. So I am all for this concept, we have actually advocated for this several times in the past as usability testing showed this was needed. Its all about connecting the dots.

Onto the actual UI:

  • It is at the right place, this is where one would see the need to add a block. I'd honestly love this ability on block creation too.
  • Having more than one action button is a little suboptimal, its hard to move outside this paradigm (I have some ideas for this, but this needs a bit of design exploration).
  • There is no way, we can ever have two action buttons that are right next to each other spawn two different patterns (one a full page, the other a modal dialog).
  • I am missing some kind of overview, where can I learn in what theme and region this menu is placed as a block (I feel like we need a standardized design for this element, if we are to place it everywhere). This is an essential "connecting the dots" if you want to bring a UI like this to the menu page.

The text could indeed use some work, looking at it now - I wouldn't even bother with it. We don't need text, all its doing now is telling you to go to Blocks administration, thats not needed anymore - and we don't really need to explain the UI. If we need to explain the UI, we have a #Fail UI. In general I feel like this just needs a bit more design, probably not what you wanted to hear - but it will save us a lot of time in the long run when we transfer this to other concepts and user test this.

Actually can we not just have a theme + region selector? Or is that not possible because of all the instance stuff?

We cannot allow blocks to be placed without presenting the whole form, since we don't know what required fields might be needed by the block plugin, or a hook_form_alter

I wonder if it's useful to keep referring to a menu as a block. I.e. the action says 'Place block'. Would it be more clearer if this read 'Place menu'? Same with the messages: I'm working on a menu here, but it's being referred to as a block.

Agreed with Bojhan that the page help text can be removed alltogether.

Re. 17 & 18: when do those potentially required fields get checked? Maybe it could be a 2-step process where we do have only a theme + region selection, on submit it either is ok or we ask for more configuration as per any required field that needs it.

Where do I make suggestions for the 'place block' form itself? It's a bit messy :)

@yoroy, regarding the rename to 'Place menu': great idea, here's an issue (credits to you) for it so that it doesn't get lost: #2100643: Replace the 'Place block' page title with either 'Place menu' or 'Place menu block'.