Hello,
I'm working on developing a "simple mode" API for Drupal which will allow site builders to switch between simple and advance user interface or otherwise hide advance features.
The goal of this API is to make Drupal less scary for new site builders without sacrificing the robustness of Drupal for experienced site builders. It will allow new users to wrap their head around concepts like nodes, blocks, taxonomy... before they are confronted with more complex features such as Views arguments or Pathauto patterns.
See this video for a usage example:
http://www.youtube.com/watch?v=Xu5PwFV5caI
I hope this feature will end up in D8 (#914110) and I'm working on a module that will add the feature to D6 and D7.
I would like some input from you regarding how to best implement this. Please voice your input below or in the following issue:
#937750: Simple API: Initial Planning
Comments
937750 comes up as not found
937750 comes up as not found for me.
Also, could you explain how this will be different from other methods of simplifying Drupal?
E.g. http://drupal.org/project/admin_menu, http://drupal.org/project/admin, and http://drupal.org/project/visibility_api
Drupal evangelist.
www.CoderintheRye.com
Thanks for your input. The
Thanks for your input.
The issue link for #937750 had a relative path so it was trying to find the issue at groups.drupal.org rather than drupal.org. I fixed it.
Simple API would be completely different from Admin Menu and Admin. I'm not familiar with Visibility API, it could be similar but with a much more specific goal.
Simple API will not do anything by itself other than provide a configuration option for site builders to enable "Simple Mode". When "Simple Mode" is enabled, a variable, such as
$simple_mode, will be passed on to contrib modules asTRUE. This will allow contrib modules to either hide advance features, or switch between simple and advance UI.See this video for how I anticipate drupal developers to use this API:
http://www.youtube.com/watch?v=FVpWLzSc9kA
Ahh thanks for the
Ahh thanks for the clarification. That makes more sense. it's an interesting idea. Though I wonder if the onus should be on the API or the developer to make it more granular. E.g., I only want users of Role X to see "Simple mode".
Drupal evangelist.
www.CoderintheRye.com
I've been considering
I've been considering granularity. My goal is to make things easier for new Drupal site builders, so that means hiding everything the second Simple API is installed (or if in core, prompting users during the install process for Simple or Advance mode).
I do think unhiding advance features could be done individually though. I'm considering requiring API implementers to describe the advance feature they choosing to hide with Simple API so they can be listed on a configuration page generated by Simple API to allow site builders to enable them one-by-one.
That page would look something like this:
Enable - Views - Advance Settings - Description of Advance Settings
Enable - Views - Arguments - Description of Views Arguments
Enable - Pathauto - Patterns - Description of Pathauto Patterns
Pathauto Patterns are complex features?
We don't get many support requests of people that don't know how to use it. Plus we'd rather help make it easier to use within Pathauto itself, rather than users having to install another module just to enable a 'Simplified UI'.
Senior Drupal Developer for Lullabot | www.davereid.net | @davereid
agreed
I agree with Dave.
I think in general that your idea is a decent one, but the first step should be to work with the module maintainers to see if they are willing to simplify their UI. In the case of Pathauto, we're constantly working toward that so I think it doesn't make sense to provide an alternate UI.
knaddison blog | Morris Animal Foundation
I agree with both of you.
I agree with both of you. Simplifying the UI is best when possible.
The problem, as Dries pointed out in this section of the State of Drupal Keynote (8 min), is that developers are confronted with a choice between designing a product for enterprise or low-end use cases.
I'm hoping Simple API will provide a way for new site builders to ease into complicated features, making it easier for developers to make better assumptions about use cases. With Simple API, developers will be able to create two sets of UI: one designed for speed and efficiency for experienced site builders (Drupal shops and enterprise users) and another for inexperienced site builders that need more guidance (low-end users). Right now, there has to be compromises made, making it less than ideal for both use cases.
With Pathauto patterns, I use that as an example because I don't think it is something beginner site builders are comfortable with. I'm not suggesting it is a poorly made feature, it's just something that is beyond the scope of many low-end site builders. It's like the Command Line of operating systems; it's extremely useful, but not something you want widely accessible for inexperienced users.
I consider a "complicated feature" as a feature...
Obviously, installing a module like Simple API is not ideal for this type of functionality. It would be best if it were a part of core. But until then, the Simple API module will allow the Drupal community to iron out these issues before (or if) the functionality make it into D8.
source of complexity, solutions
I don't think enterprise is the source of the complexity. Especially having added many of the confusing features to the UI, they often came from "low-end" uses of the module.
Modules themselves can often do this directly. That's the path we're on with Pathauto is progressive disclosure.
I encourage your effort, but I think your current direction is not going to be fruitful. Dave and I have responded to literally hundreds of issues and I don't remember the patterns being complicated. Nobody has asked for documentation of this feature and we have written relatively little documentation about it (maybe none!). It's just not a the most confusing part of that page.
Also, maybe call these folks "less technical" or better "first time users" instead of "low-end." Nobody wants to be called low-end.
knaddison blog | Morris Animal Foundation
Permissions
Would using permissions be the best approach for something like this? Perhaps it would make the most sense to "tag" permissions as "Advance" and then when in "Simple Mode" disable all those "Advance" permissions. Then the user can enable them with granularity as mentioned earlier.
doesn't work for uid 1
That wouldn't help for someone running their site as UID 1, which is how I think most new users do it (most advanced, as well, but I know they are not your target).
Have you looked at the Views + Simpleviews solution?
knaddison blog | Morris Animal Foundation