# Settings Extension for easy access to configuration

**URL:** <https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120>\
**Category:** Radiant CMS\
**Created:** [June 22, 2008, 9:06am UTC](https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120 "2008-06-22T09:06:44Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![squeegy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/dec6dc/32.png) [@squeegy](https://www.ruby-forum.com/u/squeegy)\
**Post date:** [June 22, 2008, 9:06am UTC](https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120/1 "2008-06-22T09:06:44Z")

</div>

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](http://github.com/Squeegy/radiant-settings)

Screenshots on the Wiki:  
[GitHub: Let’s build from here · GitHub](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?

---

<div class="post-metadata">

**Author:** ![squeegy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/dec6dc/32.png) [@squeegy](https://www.ruby-forum.com/u/squeegy)\
**Post date:** [July 4, 2008, 4:17pm UTC](https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120/2 "2008-07-04T16:17:53Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![squeegy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/dec6dc/32.png) [@squeegy](https://www.ruby-forum.com/u/squeegy)\
**Post date:** [July 4, 2008, 7:16am UTC](https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120/3 "2008-07-04T07:16:32Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![squeegy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/dec6dc/32.png) [@squeegy](https://www.ruby-forum.com/u/squeegy)\
**Post date:** [July 4, 2008, 8:17pm UTC](https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120/4 "2008-07-04T20:17:27Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![squeegy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/dec6dc/32.png) [@squeegy](https://www.ruby-forum.com/u/squeegy)\
**Post date:** [July 21, 2008, 12:23am UTC](https://www.ruby-forum.com/t/settings-extension-for-easy-access-to-configuration/141120/5 "2008-07-21T00:23:31Z")

</div>

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

> **[Beautiful Pixel](https://beautifulpixel.com/)**
>
> A log of random code experiments and semi-useless thoughts from some software developer named Alex...
