Extensions are for...?


#1

Hi again. I checked out Mental from the repo, and I’m totally lost. I’m
interested in these extensions, but…

Someone called them a “vertical slice” (which means nothing to me, btw)
of a Rails app. I see that calling script/generate extension xxx gives
me an app directory inside vendors/extensions/xxx. I even see that
uncommenting a few lines in my xxx_extension.rb file creates a tab
inside the Radiant admin. (Clicking on that tab yields uninitialized
constant Admin::AssetController).

As interesting as all that is, what’s the point? Do extensions merely
change the administrative interface, or do they modify the way pages can
be handled? What kinds of actions would I put into a controller inside
this new app directory? Do I need to add routes? (My current app has a
heavily modified admin area that visually encompasses Radiant, and every
time I add an action I have to add another route – very annoying.)

I’d love to help, and I’d especially love to know what’s going on, but
there’s little documentation anywhere.

I guess my primary question is, do extensions extend the admin interface
only, or are they also a way to handle tags?


#2

On 2/2/07, Daniel W. removed_email_address@domain.invalid wrote:

As interesting as all that is, what’s the point? Do extensions merely
only, or are they also a way to handle tags?

Err… this was discussed previously on the list, also you should
check the wiki and the weblog of Radiant site:

http://radiantcms.org/blog/2007/01/23/how-to-getting-mental/


Luis L.
Multimedia systems

Leaders are made, they are not born. They are made by hard effort,
which is the price which all of us must pay to achieve any goal that
is worthwhile.
Vince Lombardi


#3

Luis L. wrote:

Err… this was discussed previously on the list, also you should
check the wiki and the weblog of Radiant site:

http://radiantcms.org/blog/2007/01/23/how-to-getting-mental/

I read that page, and while it’s true the four bullet points answer my
question, I don’t see those concerns being addressed when actually
trying to use extensions. I don’t see how a broken tab next Layouts
helps me administer the rest of my web site. I don’t see how having my
own set of models and views helps me clean up my tags any better.

What I do see is a disconnect between what’s being said about extensions
and the things I’m presented with when trying to utilize them.


#4

Luis L. wrote:

What I do see is a disconnect between what’s being said about extensions
and the things I’m presented with when trying to utilize them.

Could you rephrase? I’m not a native english speaker so couldn’t
understand it clearly.

What it boils down to is I’d like to see an example of an extension in
use that wasn’t ported over from a behavior. Ideally the extensions
makes full use of itself, including the controllers, models, views,
extra Radius tags, etc. As it stands now I have no idea how an extension
actually works or can be used.


#5

What it boils down to is I’d like to see an example of an extension in
use that wasn’t ported over from a behavior. Ideally the extensions
makes full use of itself, including the controllers, models, views,
extra Radius tags, etc. As it stands now I have no idea how an extension
actually works or can be used.

The LDAP extension was developed from scratch. It has its own
controllers, models, views, and even a quasi-model that integrates with
the ruby-ldap library. It creates global tags that are available on any
page.

Essentially an extension is, as we say, a “vertical slice”. In other
words, it’s a miniature Rails application that runs inside Radiant.
What this means is that pretty much anything you can do with Rails, you
can do with an extension, plus the facilities that Radiant provides like
Radius tags, admin tabs, etc. So, part of the reason it is vague is
that you can do whatever you want! The sky’s the limit.

Sean


#6

Daniel W. wrote:

What it boils down to is I’d like to see an example of an extension in
use that wasn’t ported over from a behavior. Ideally the extensions
makes full use of itself, including the controllers, models, views,
extra Radius tags, etc. As it stands now I have no idea how an extension
actually works or can be used.

Well, to just answer the question in your original subject:

Extensions are for developers of Radiant, to extend Radiant.
If you are not a developer wanting to extend Radiant, then
Extensions as an architecture are not for you.

They can be used by the deploying person to achieve, whatever that
particular extension
promises.

And for the end user of the site, they help to adress the specific
problem, that the extension was developed for.

So, if you dont want or cant extend Radiant, then extensions (as a
framwork) are not for you.

But if you find a specific extension, which adresses your need, then
that extension might be for you.

(Its like asking: what is Ruby on Rails for? If you are not a developer
of web applications, then it is not for you. )


#7

On 2/2/07, Daniel W. removed_email_address@domain.invalid wrote:

own set of models and views helps me clean up my tags any better.

The rest of your web site? Extension are a way to “extend” radiant
main functionality adding things that address your particular needs,
all using the same UI (so end-users, ala, your users will use).

Clean up your tags? that’s another story. A Extension could add tags,
global tags or anything, expose or not an administrative tab, all
depends on what your extensions need to do and most important, what
it is for.

What I do see is a disconnect between what’s being said about extensions
and the things I’m presented with when trying to utilize them.

Could you rephrase? I’m not a native english speaker so couldn’t
understand it clearly.


Luis L.
Multimedia systems

Leaders are made, they are not born. They are made by hard effort,
which is the price which all of us must pay to achieve any goal that
is worthwhile.
Vince Lombardi


#8

Benjamin,

Thank you for articulating what I could not!

Sean