[development] Best practices: Config settings

Daniel F. Kudwien news at unleashedmind.com
Wed Jan 2 13:43:52 UTC 2008


Slightly OT, but admin_menu module is using two approaches that could be
interesting for this discussion:

> -----Ursprüngliche Nachricht-----
> Von: development-bounces at drupal.org 
> [mailto:development-bounces at drupal.org] Im Auftrag von Greg Knaddison
> Gesendet: Mittwoch, 2. Januar 2008 12:13
> 
> On Jan 2, 2008 12:59 AM, Khalid Baheyeldin <kb at 2bits.com> wrote:
> > On Jan 1, 2008 6:49 PM, Gerhard Killesreiter 
> <gerhard at killesreiter.de> 
> >
> >  Also, admin/settings/MYMODULE is the most obvious place to find 
> > settings  for MYMODULE.
> 
> For this specific case I think you are right, but we also 
> have a real problem of "too many menu entries and pages" in 
> the admin/ area.
> People look at that jumble and (still) get overwhelmed.  
> Re-using existing forms reduces that problem.

Especially on full-blown Drupal community sites, the list of settings pages
becomes so big that it no longer fits on smaller screens. The proposed
solution (http://drupal.org/node/196772) is to group all settings pages
below admin/settings after the module 'package' information in .info files
and move all Drupal default system settings into a new sub-group 'System'.

AFAIK, the package info is currently used on the admin/build/modules page
only. While I'm not happy with the categorization there (often finding
myself searching through all collapsible fieldsets for a certain module to
enable/disable), it makes sense to re-use the same categorization for other
purposes like the admin/* and admin/settings screens.

Two benefits: Module settings are comprehensible categorized, and module
maintainers are encouraged to add meaningful package information to their
.info files (which is not always the case).

> For some more concrete evidence - I have never seen an issue 
> for a module that uses admin/settings/MODULE that said "I 
> just installed your module and can't find the settings page." 
>  I _have_ seen issues where core forms are form_altered that 
> say "I can't find the module settings - this module is 
> broken" (e.g. http://drupal.org/node/198015
> )
> 
> We are choosing between the lesser of two evils (busy admin 
> area, easy to find/control settings).

As of now, admin_menu does not provide regular module settings. However,
there are some variables for development to make the output of admin_menu
more verbose. Providing those variable settings on an own settings page
didn't make sense from a usability view of regular users. Thus, admin_menu
allows to configure these variables on the settings page of Devel module.

This adds another benefit (quoting from the corresponding Devel issue
http://drupal.org/node/126646):

"I my opinion, any development related settings should be kept together at a
central place. Just think of a Drupal site you are developing/releasing for
a client - I assume that you do not want to give your client the chance to
enable or alter any development settings. To circumvent this, a reasonable
solution is to provide all developer settings in the Devel module, because
access to devel can be permitted separately from access to any other module
- without introducing a new developer access permission for each and every
module.
In case of Administration Menu it's even more reasonable: It does not have a
settings page yet. And AFAIK, it is not the only one."

Regards,
Daniel



More information about the development mailing list