I believe that the front page configuration options would better fit under the Structure section of the admin UI. Structure includes menus, blocks, content types, etc...all places to put content, and the front page is definitely a place to put content, versus a site configuration option (where options currently are). The Configuration section gives the impression that it would deal with advanced or backend options, not the simple task of controlling the front page. Even if users do find their way to Configuration, the front page is stuck under "Site information" which doesn't seem to fit.

Leisa Reichelt found that site builders want to get a basic site running quickly and see progress and add more to the site as they learn, otherwise they become frustrated. This was improved by adding the simple "Add content" link on the empty front page, but setting the front page to be a specific node is still too difficult to find.

What if the site builder wanted to have a mixture of both static content and the content feed? An experienced user would know to make a new block under the Content region above Main page content block and set its page visibility to <front>. However, a new user might not even know what a block is at this point. A solution could be adding an About section right on the Front Page config page. It could be toggled on or off and would allow static content above the default node feed. The other two options in the config page would be setting the front page entirely to a node or choosing the number of nodes to show in the feed (both are currently under Site information).

I can start working on a patch if others agree with the idea(s).

Comments

adam.hastings’s picture

Issue tags: -#d7ux, -D7UX usability +Usability, +D7UX

Adding tags...

adam.hastings’s picture

Status: Needs work » Active
StatusFileSize
new4.24 KB

Here is a quick patch that simply moves the settings to a new Front Page section under Structure. This seems to make more sense to me, as I said above, but there could definitely be problems with doing this, so let me know!

Here are a few things to think about hough:

  • The default_nodes_main variable is used for taxonomy listings also, I believe. Should another variable default_nodes_front be created to override the default setting? So the default_nodes_main setting would remain under Site information, and the default_nodes_front would be in Front Page and would state that it's "overriding default setting of [default here]."
  • The page would need more work to look and feel like a "Structure page." This could involve adding the settings for a section above the node listings. To go with the Drupal-way of things, it would probably just use a block in the Content region with visibility to <front>, except that it would simplify the process for new users and allow them to change its contents from Front Page.

Any thoughts?

adam.hastings’s picture

Status: Active » Needs work
adam.hastings’s picture

Status: Active » Needs work

Note that the cache must be cleared for the new menu item to appear.

adam.hastings’s picture

Assigned: Unassigned » adam.hastings
Status: Needs work » Needs review
StatusFileSize
new38.38 KB
new34.03 KB
new25.46 KB
new7.81 KB

Here is an updated patch with a few screenshots showing where it's at. Remember, clear cache after applying the patch!

This new patch changes link descriptions, adds help text, uses fieldsets on the config page (although they'll be rearranged), and creates a separation between the default default_nodes_main (number of posts on overview pages like taxonomy) and default_nodes_front (number of posts on front page, uses default_nodes_main as default).

I've decided that this patch, if accepted, will just involve moving the front page settings to Structure and increasing usability with the options that already exist. There are other things that could be added, like mentioned in the original issue, but those could be additional patches.

  • Screenshot 1 shows the new Front Page option under Structure, listed as the third item (alphabetical).
  • Screenshot 2 shows the actual Front Page config page as it is right now. There are a few usability issues that need to be fixed:
    • Needs to be clear that specifying a path and choosing the number of posts to display are separate choices and do not apply together.
    • Typing "node" in the path field means nothing to users. The help text had previously said, "If unsure, specify 'node'." which gave no clue as to what it did. I have already added a bit about "to use the default content feed" but they still have to type the unknown "node".
    • Possible solution:
      • Show content feed option first so the user can select number of posts, since this is the default. Below this, they'd be able to check a checkbox saying "Specify path" or something more user-friendly. When checked, the path option would be enabled, and the number of posts option would be disabled.
      • User would never have to enter "node" into the path field because switching between the two options is controlled with a checkbox.
  • Screenshot 3 shows that there still is a site-wide default_nodes_main that controls all types of overview pages, while the default_nodes_front option on the front page config is more specific.

Any new thoughts or ideas?

Status: Needs review » Needs work

The last submitted patch, front-page-config-2.patch, failed testing.

adam.hastings’s picture

I believe the reason that the test failed is because I moved where those settings are made. In system.test, there are the lines:

// Change the front page to an invalid path.
$edit = array('site_frontpage' => 'kittens');
$this->drupalPost('admin/config/system/site-information', $edit, t('Save configuration'));
$this->assertText(t("The path '@path' is either invalid or you do not have access to it.", array('@path' => $edit['site_frontpage'])));

But that field no longer exists on the Site information page.

What would I do about this? Would the patch also modify system.test? Or would I add a hidden field to Site information that maintains the same functionality on that page?

adam.hastings’s picture

Status: Needs work » Needs review
StatusFileSize
new9.03 KB

Well I opted to try changing system.test with the patch to see if it will pass. It doesn't really feel right, almost like changing test questions so that your answers are right. But the path that is used in the test was changed by the patch, so it would of course fail. Would it be better though to just use a hidden field on Site information instead?

Status: Needs review » Needs work

The last submitted patch, front-page-config-3.patch, failed testing.

adam.hastings’s picture

StatusFileSize
new8.44 KB

Well that didn't work anyway. Let me try this one. I added the hidden field and the validator...

adam.hastings’s picture

Status: Needs work » Needs review
dries’s picture

I'm struggling with this change, so I'd love to get the UX team's take.

adam.hastings’s picture

StatusFileSize
new39.03 KB
new5.69 KB

Here is a much less drastic patch because it doesn't move the options. I've added fieldsets to the Site information page (Site Information, Front Page, Error Pages, Cron). The front page path textfield isn't required anymore. Instead, leaving it blank now automatically defaults to "node". The other two path-input fields on that page (two error pages) have always said something like "Leave blank to display a generic 'page not found' page." so now the front page path follows the same pattern.

aspilicious’s picture

StatusFileSize
new53.39 KB

In overlay the string "site Information" gets duplicated.
I also added a better screenshot to see the difference.

adam.hastings’s picture

Oh, that's true. You mean that both the page and fieldset names are Site Information? What about naming the fieldset Site Details?

I do think that fieldsets are a good idea on this page, though, because the page deals with different categories of options. Even the Performance page, which deals with generally the same topic (cache), uses fieldsets, while this page deals with things from the site slogan to running cron.

Bojhan’s picture

Yup looks good, there are some minor details I am not sure about - mostly because I am not fully understanding all the diffrent things going on in the comments. Going from just aspilicious - putting some fieldsets in makes sense here.

adam.hastings’s picture

StatusFileSize
new5.69 KB

The fieldset "Site Information" is now "Site Details" in this patch.

dries’s picture

Looking at the screenshot in #14 make me realize that grouping these settings under "Site information" is rather broken. Clearly, "Cron" is not "Site information". Neither is "Error pages". We got it all wrong.

Personally, I think it would make sense to break these 4 fieldsets up in 4 pages. In my opinion, "Cron" should go under System, "Error pages" should go under "User interface", etc.

adam.hastings’s picture

The only thing about the Cron page is that there is only one option. In the field's description it mentions the status report page, which shows when cron was last run, gives an option to run it now, and gives a URL to run cron from outside the site. We could move these three things to the Cron page, but they could stay on the status report page as well. What do you think?

Also, if we split up the 4 fieldsets, that would mean that Front Page would have its own page, so where do you think that would fit? Under Structure like the original patch, or somewhere else?

Thanks!

adam.hastings’s picture

StatusFileSize
new11.4 KB

Here is a patch that makes some of the changes Dries explained.

The error pages settings were moved into Error Pages under User Interface. I also added a validator for these two paths because they had never previously been validated. Even if these settings get moved around again, the validator should stay with them.

The one cron setting was moved to Cron under System. I also added a "Run cron" button on this page to manually run cron, similar to the "Clear all caches" button on the Performance page. I'd like to add the time cron was last run and possibly the URL to run cron from outside of the site (both are on status report page) but those aren't there yet in this patch.

Not sure where to put Front Page, so I won't move it until others agree where it should go, or possibly stay.

Note: this patch probably will not pass testing because configuration settings were moved, and automatic testing will be looking for them in their old locations. Anyone know what to do about this?

Status: Needs review » Needs work

The last submitted patch, site-information-settings.patch, failed testing.

adam.hastings’s picture

Status: Needs work » Needs review

Failed because settings were moved...

dries’s picture

Thanks adam! I think you're on the right track, and I'd work towards making the tests pass at this point.

Let's leave 'Front page' where it is for now, and then we can discuss the location of 'Front page' once we agreed to break up the current page. We could make it a follow-up patch in this very issue.

My personal take is that it could fit under structure once the actual 'Front page' settings have been broken out into its own page (but I'd still like input from more people). Until we break up this settings page in multiple pages, we can't move it. It just doesn't make sense to move 'Cron' and 'Error pages' under 'Structure'.

So let's get these tests pass first ... :)

Bojhan’s picture

Wait, what happened here :) ? I thought we wanted to avoid having single page configuration. And I do not get all this talk about putting stuff in Structure neither. Can we have proper screenshots? Also we might got it all wrong, but please explain me clearly why moving all these settings around will make it more discoverable?

Also Error pages does not belong in User interface, its a system level setting not something that enhances or changes the interface.

adam.hastings’s picture

Well what Dries pointed out was that "Error Pages" and "Cron" were definitely not "Site information" so they shouldn't belong there anyways. Instead of making two new pages for these, maybe group them under another page under System? I don't really know what you could categorize both Error Pages and Cron as, besides System, but maybe something would work?

dries’s picture

Bojhan: I believe I clearly explained the problem. Have you read this issue carefully? Happy to answer specific questions ...

Bojhan’s picture

@Dries I understand relocating, I just don't see the advantage of breaking this up in 4 separate pages.

adam.hastings’s picture

StatusFileSize
new14.38 KB

This updated patch moves Error Pages under System like Bojhan suggested, because this does make sense. It also adds the time cron was last run to the Cron page.

Site information is still split into three pages (cron and error pages were pulled out), so should we try to find a category to put cron and error pages into, or is it fine the way it is?

I also tried to get the patch to pass testing. Since testing is trying to change these settings through the user interface at the old URLs, it will not find them there and will give an error. The only two options I see are to leave the options on the old page but as hidden fields (but this feels dirty) or to modify the test file (system.test).

I'm not sure if changes to system.test would even be taken into account, but I changed the old paths to new ones. For example:

     // Disable the cron threshold through the interface.
     $admin_user = $this->drupalCreateUser(array('administer site configuration'));
     $this->drupalLogin($admin_user);
-    $this->drupalPost('admin/config/system/site-information', array('cron_safe_threshold' => 0), t('Save configuration'));
+    $this->drupalPost('admin/config/system/cron', array('cron_safe_threshold' => 0), t('Save configuration'));
     $this->assertText(t('The configuration options have been saved.'));
     $this->drupalLogout();

We'll see...

Status: Needs review » Needs work

The last submitted patch, site-information-settings-2.patch, failed testing.

adam.hastings’s picture

Looks like there are no errors on cron, but more with the error messages... I'll look into it.

adam.hastings’s picture

StatusFileSize
new14.38 KB

Let's try this one.

adam.hastings’s picture

Status: Needs work » Needs review
adam.hastings’s picture

Title: Front Page Configuration » Site Information Improvements

Whoot! It passed!

For those who don't want to read the full issue (because the patch has only somewhat to do with the original issue), this patch includes:

  • Moves Error Pages out of Site information into its own page under Structure
    • Adds validator for error pages paths
  • Moves Cron out of Site information into its own page under Structure
    • Adds "Run cron" button, as well as time cron was last run, to Cron page
  • Creates fieldsets for Site Information page (Site Details and Front Page)
    • Front page path is no longer a required field, left blank defaults to "node" so that users never have to type / see the word
  • Updates menu descriptions and help text
  • Updates system.test to recognize new paths

Still discussing the location of some of the settings...

yoroy’s picture

Subscribe, will review soon.

adam.hastings’s picture

Any other thoughts / reviews on this?

Bojhan’s picture

@adam.hastings None of this belongs in Structure, then again I feel we are discussing the fundamentals of this patch after the fact.

Lets first review, why do we need to split these configurations up? Al right, error pages doesn't really belong under Site information and neither does cron. But do they deserve their own page? What would be the downside to this change, it will create more pages making the functionality more scatted and adding more clutter. To the advantage is that these links should be more discoverable, I am honestly questioning this late in the stage of development we should be making this kind of change - where the actual win will go completely untested and uncertain.

I agree with adding the fieldsets.

adam.hastings’s picture

Right, adding to Structure was left behind before. There are just 2 new pages under System. Even if we recombine these settings under Site information, the patch would be making 2 validation improvements and adding fieldsets, so I still think this is useful.

Would there be one new page that both Cron and Error Pages would fit under, though? This would be adding less clutter and possibly making it more usable / findable (depending on the new page's name).

Bojhan’s picture

Cron probally Development, and Error pages System? Yhea I am still wondering about error pages, there is few advantages to optimizing such a infrequently access functionality while increasing clutter which will impact all efficiency of the configuration listing./

adam.hastings’s picture

Or maybe Error Pages could be put into the Logging and Errors page under Development? I know that the errors here are more development errors relating to code problems, etc, but hey, 403 and 404 are still errors. It might even confuse users that there are two sections about errors and would make sense to combine them. Plus, 403 and 404 errors are "logged" seeing as how there's a report page on them ;)

If we move Error Pages out of the way, then I personally think that Cron could remain under System. There would only be 3 System pages, like many of the other categories.

amc’s picture

subscribe

cross’s picture

Issue tags: -Usability, -D7UX +#d7ux, +D7UX usability
StatusFileSize
new14.35 KB

Last patch looks good.
403 and 404 is errors, but its not development errors. Even if you write "most clean" code in the world you will have this errors.
I add little change to patch, added t() to descriptions and titles.

cross’s picture

Issue tags: -#d7ux, -D7UX usability +Usability, +D7UX

Something strange happened with tags. Roll back them.

dries’s picture

Status: Needs review » Needs work
+++ modules/system/system.admin.inc	25 May 2010 01:57:26 -0000
@@ -1500,40 +1500,83 @@ function system_ip_blocking_delete_submi
+    '#title' => t('Site Details'),

Should be 'Site details' with small 'd'.

+++ modules/system/system.admin.inc	25 May 2010 01:57:26 -0000
@@ -1500,40 +1500,83 @@ function system_ip_blocking_delete_submi
+    '#title' => t('Front Page'),

Should be 'Front page'.

+++ modules/system/system.admin.inc	25 May 2010 01:57:26 -0000
@@ -1500,40 +1500,83 @@ function system_ip_blocking_delete_submi
+    // Set to default "node"

Should end with a point.

+++ modules/system/system.admin.inc	25 May 2010 01:57:26 -0000
@@ -1550,33 +1593,84 @@ function system_site_information_setting
+    form_set_error('site_403', t("The path '@path' is either invalid or you do not have access to it.", array('@path' => $form_state['values']['site_403'])));

'@path' looks incorrect -- why not use %path?

+++ modules/system/system.admin.inc	25 May 2010 01:57:26 -0000
@@ -1550,33 +1593,84 @@ function system_site_information_setting
+    form_set_error('site_404', t("The path '@path' is either invalid or you do not have access to it.", array('@path' => $form_state['values']['site_404'])));

'@path' looks incorrect -- why not use %path?

+++ modules/system/system.module	25 May 2010 01:57:28 -0000
@@ -957,13 +959,31 @@ function system_menu() {
+    'title' => t('Error Pages'),

Should be 'Error pages'.

Powered by Dreditor.

yoroy’s picture

Is the summary in #33 still correct? This discussion is all over the place, a lot of it sounds like change for change's sake and I'm seeing very little reasoning behind the proposed changes. I can test the patch but have no idea what to look for.

cross’s picture

StatusFileSize
new72.69 KB
new44.44 KB
new48.79 KB
new112.15 KB
new14.34 KB

Summary:

  • Moves Error Pages out of Site information into its own page under Structure
    • Adds validator for error pages paths
  • Moves Cron out of Site information into its own page under Structure
    • Adds "Run cron" button, as well as time cron was last run, to Cron page
  • Creates fieldsets for Site Information page (Site Details and Front Page)
    • Front page path is no longer a required field, left blank defaults to "node" so that users never have to type / see the word
  • Updates menu descriptions and help text
  • Updates system.test to recognize new paths

Corrected all errors mentioned above + some more+remove empty whitespace.
I add screenshots of old and new version of configure page.

aspilicious’s picture

Can you put the @ingroup behind the @see.

+/**
+ * Validate the submitted site-information form.
+ */

==> Validates

Submit ...

==> submits

why? ==> http://drupal.org/node/1354

cross’s picture

StatusFileSize
new14.34 KB

fixed version.

cross’s picture

Status: Needs work » Needs review
dries’s picture

I think this is a nice improvement. More logical and things are easier to find now. @yoroy -- any thoughts?

yoroy’s picture

Status: Needs review » Needs work

Yes, if you put things directly on the configuration page they'll be easier to find. But we can't do that for all links, so we have to ask ourselves if *these* things really need to be easier to find? They are mostly one-time setup things and with this patch they get a very prominent spot on the configuration page, *always*. Especially the error pages one. There's no real problem with never filling these ones out since there's an ok default behavior. Currently they are shown together with the one for front page, no? People go hunting for that one far more often, which makes the ones for error pages quite discoverable, too. Same for cron, it has an ok default out of the box, though it's one you're likely to look for a bit more often. So, could see the case for cron but not really convinced we should do this.

notes on the screens:

Only local images are allowed.

Only local images are allowed.

cross’s picture

I agreed that all this options mainly the one time to set(may be cron not). But almost all fields from "Site information" page user fill when running install script first time. At this point user may not know what error page he should use on 403 and 404 errors, he simply not think about it(not developed it yet). The same applyed to cron. User may not know what is it.
So user must find this options when he already done some job about site and decide what he need.

Ok i need to set up custom error page. It is definitly configuration section. Then where it is? If i see the Site information section i personaly never think that error pages is about infomation of site. Especialy if i open page with site information i could imagine situation when user see first field and think that he already filled all parameters here at install time and close it. So we try simplify access to this options. Mainly this will be used by disigners who don't know deep structure of drupal. Besides cron options and error page not actually Site infomation.

Description of "Cron page". What about: Manage scheduled jobs, check for updates, index site content, etc. ?
Scheduled jobs wiil sound familiar for not linux users.

Status report page is mainly the result of cron job. So it may be good to have link to that page here. Any idea what best fit there?

Outer fieldset will be fixed.

amc’s picture

For cron, what about: "Manage automatic site maintenance tasks." It's maybe not 100% accurate, and there is some danger of confusion with maintenance mode, but it should be clear enough to get the point across. There probably should be a 1 or 2 sentence explanation at the beginning of the page of what cron does, to help users figure out what they should set the interval to.

yoroy’s picture

"Manage automatic site maintenance tasks" I like this.

cross’s picture

Status: Needs work » Needs review
StatusFileSize
new14.1 KB

Next version.
About fieldset for whole form. On similar pages like "Performance" and other with fieldset there is no fieldset for whole form. I think there shouldn't be too.

yoroy’s picture

Config page: http://skitch.com/yoroy/d8844/configuration-d7

Site information page: http://skitch.com/yoroy/d885g/site-information-d7

Cron page: http://skitch.com/yoroy/d885x/cron-d7

Error pages page: http://skitch.com/yoroy/d885u/error-pages-d7

Looking at this and clicking around a bit I really don't think this is going to improve things. Especially the error pages on a separate page is unnecessary. Why does this need its own page when even if you never change anything for these pages nothing gets broken? Move these back to their own fieldset on the Site information page.

I'm still undecided about the separate cron page, but in its current state the text still needs work:

Only local images are allowed.

yoroy’s picture

Status: Needs review » Needs work

needs work that is.

cross’s picture

Status: Needs work » Needs review
StatusFileSize
new63.1 KB
new43.1 KB
new11.91 KB

Good. This patch implements the @yoroy version as described at #55.

Status: Needs review » Needs work
Issue tags: -Usability, -D7UX

The last submitted patch, site-information-settings-7.patch, failed testing.

cross’s picture

Status: Needs work » Needs review
Issue tags: +Usability, +D7UX

#57: site-information-settings-7.patch queued for re-testing.

tstoeckler’s picture

I think yoroy's suggestion was to get rid of the first fieldset and leave the seconds, not to put them both in one.

I personally think that the first fieldset should stay and the second one should go, as that would be a bit more consistent with the 'Clear caches' button on the Development page, which is AFAICT the only other action button on a settings page in Drupal.

Either way, only half of the stuff should be in the fieldset.

amc’s picture

There's also the site re-indexing button on the search settings page.

tstoeckler’s picture

...which is also in a fieldset. I guess we have a pattern?!

cross’s picture

to #60 I tried this too. Pesonaly i don't like both version(use only bottom filedset or only upper one). If you use only one fieldset other part of information looks like fly somewere. It's ugly. Put whole page in one fieldset makes page feel more like in one entity.

yoroy’s picture

Status: Needs review » Needs work

Use only the bottom fieldset.

The guideline is:

No fieldset around the first part of a form if:
1. It is the main interaction on the whole page (80/20 rule): Do people come *mainly* to this page to perform the action in the first part?
2. Subsequent parts of the form are related to the first part ("advanced settings").

Both are the case here. See also Appearance page for example, where the main interaction of choosing a theme is not wrapped in a fieldset and the setting for administration does have a fieldset

(The 'empty cache' button on development page has a fieldset around it because nr. 2. from above doesn't apply. Even if it's the main interaction on the page, all subsequent settings below it are not directly related to it, so 'empty cache' gets a fieldset itself as well)

Only local images are allowed.

cross’s picture

Status: Needs work » Needs review
StatusFileSize
new13.57 KB

Thanks for review. Patch with latest fix #64.

ff1’s picture

#65: site-information-settings-8.patch queued for re-testing.

dries’s picture

Status: Needs review » Reviewed & tested by the community

Patch still applies and seems to work.

Bojhan’s picture

@Dries Guess you can commit then?

dries’s picture

Status: Reviewed & tested by the community » Fixed

Committed to CVS HEAD. Thanks.

Status: Fixed » Closed (fixed)
Issue tags: -Usability, -D7UX

Automatically closed -- issue fixed for 2 weeks with no activity.