Ruby Forum Radiant CMS > Settings Extension for easy access to configuration

Posted by Alex Wayne (squeegy)
on 22.06.2008 09:06
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:
  http://github.com/Squeegy/radiant-settings/wikis

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?
Posted by Jim Gay (Guest)
on 04.07.2008 07:16
(Received via mailing list)
On Jul 2, 2008, at 10:27 PM, Tim Gossett 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
Posted by Ben Morrow (benmorrow)
on 04.07.2008 16:17
Alex Wayne 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.
Posted by Chris Parrish (cparrish)
on 04.07.2008 20:17
(Received via mailing list)
Alex Wayne 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
Posted by Alex Wayne (Guest)
on 21.07.2008 00:23
(Received via mailing list)
Jim Gay 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
http://beautifulpixel.com