Settings Extension for easy access to configuration

I whipped up a quick extension today that some might find useful. I
searched around a little and didn’t come with any solutions that I was
happy with, form a functional or aesthetic standpoint.

It adds a “Settings” tab that provides a nice looking interface to
configuration settings. You can easily rebrand your admin with a title
and subtitle, set default page parts and publishing status, all with the
settings that Radiant supports already.

If you’re an extension developer and you want to store some settings in
the Radiant::Config model, those settings will show up on this tab
automatically.

Furthermore, it adds a “description” field to each setting in the config
table. When you migrate the extension it will fill in some descriptive
text for all the default config entries. If your extension uses the
config table, you can add your own description to tell the user just
what this setting controls.

GitHub Project:
http://github.com/Squeegy/radiant-settings

Screenshots on the Wiki:
GitHub: Let’s build from here · GitHub

Let me know what you think.


This is a general solution for any configuration settings, but most
sites probably won’t need it, since many of this is set it and forget
it. However, one thing I would like to integrated in radiant core
somewhere is a more specific preference pane. A page designed to set
all the config options with a more specific and UI, rather than just a
list of variables.

Is that something you think belongs in Radiant core or not?

Alex W. wrote:

I whipped up a quick extension today that some might find useful. I
searched around a little and didn’t come with any solutions that I was
happy with, form a functional or aesthetic standpoint.

I was wondering if something like this was possible.

It looks great, Alex. I’ll definitely be using this.

On Jul 2, 2008, at 10:27 PM, Tim G. wrote:

I had a little problem with main branch by Squeegy.
(SettingsExtension.root
was returning nil). I found saturnflyer’s fork, released just a day
after
Squeegy’s latest, and it works just fine.

We don’t have plans to try to takeover this extension since Alex is
doing a great job with it.
Our fork provides the ability to add your own settings because we have
at least one server where ruby-inline is not installed so we can’t do
script/console and having the ability to add new settings was crucial
for setting up ‘dev.host’

I don’t recall any SettingsExtension.root problem, so it may just be a
fluke that it works in our fork.

For the most part, we only forked to help with improving it and
writing specs, so keep your eye on the Squeegy repository.

-Jim

Alex W. wrote:

I whipped up a quick extension today that some might find useful. I
searched around a little and didn’t come with any solutions that I was
happy with, form a functional or aesthetic standpoint.

Nice work.

It adds a “Settings” tab that provides a nice looking interface to
configuration settings. You can easily rebrand your admin with a title
and subtitle, set default page parts and publishing status, all with the
settings that Radiant supports already.

If you’re an extension developer and you want to store some settings in
the Radiant::Config model, those settings will show up on this tab
automatically.

One caution, here. The SnS extension does use Radiant::Config so this
should give you access to those settings. However, the extension has
it’s own interface: StylesNScripts::Config which also offers validations
(makes sure you don’t use invalid path names for your css files, say).
This won’t cause any problems if you’re careful about how you set things
but I could see an extension having even more going on (like needing to
spawn other methods when setting a value).

I guess my point here is to know what you’re setting and how that
application/extension will handle your twiddling.

This is a general solution for any configuration settings, but most
sites probably won’t need it, since many of this is set it and forget
it. However, one thing I would like to integrated in radiant core
somewhere is a more specific preference pane. A page designed to set
all the config options with a more specific and UI, rather than just a
list of variables.

Is that something you think belongs in Radiant core or not?

I’ve brought this point up as something I think core needs. And I think
it is something that I think John is planning to release in the near
term. So I’m with you 100%

Where I’d approach it differently is in two areas:

* I think Radiant needs a place to store settings (both for its own
  settings and for extension settings).  This way the content lives
  in one area of the admin panel and settings are located
  elsewhere.  For example, today, content goes in tabs and many of
  Radiant's settings have their own UI space (users, and extensions)

* Just like extensions let you add tabs, Radiant should let you plug
  into the settings area.  That way extension developers can write
  their own validations, create their ideal UI and also keep users
  away from the actual db storage.

But of course, that’s a much bigger task and really belongs as a core
thing.

-Chris

Jim G. wrote:

We don’t have plans to try to takeover this extension since Alex is
doing a great job with it.
Our fork provides the ability to add your own settings because we
have
at least one server where ruby-inline is not installed so we can’t do
script/console and having the ability to add new settings was crucial
for setting up ‘dev.host’

I don’t recall any SettingsExtension.root problem, so it may just
be a
fluke that it works in our fork.

For the most part, we only forked to help with improving it and
writing specs, so keep your eye on the Squeegy repository.

-Jim

Thanks for the contributions guys. After a busy few weeks I am back
on this stuff. All code has been rolled in and updated. Great work.
Being part of this small yet productive radiant communinty is a pretty
damn cool thing.

Thanks guys!

-Alex