# Structured Content

**URL:** <https://www.ruby-forum.com/t/structured-content/123059>\
**Category:** Radiant CMS\
**Created:** [December 13, 2007, 6:47pm UTC](https://www.ruby-forum.com/t/structured-content/123059 "2007-12-13T18:47:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tristan\_Koch](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/53a042/32.png) [@Tristan\_Koch](https://www.ruby-forum.com/u/Tristan_Koch)\
**Post date:** [December 13, 2007, 6:47pm UTC](https://www.ruby-forum.com/t/structured-content/123059/1 "2007-12-13T18:47:21Z")

</div>

Hi,

I was wondering: what is the recommended way to model structured content  
in Radiant?

Say, I want to have a list of contact items:

* * *

## Department #1 Image of Department #1

## Name Adress E-Mail Picture

## Name Adress E-Mail Picture

## (â€¦)

* * *

## Department #2 Image of Department #2

## Name Adress E-Mail Picture

## Name Adress E-Mail Picture

## (â€¦)

I can think of two possible solutions:

#1 a page for each box with subpages, where each subpage has tabs with  
the fields (e.g. description, image).

#2 an extension that overrides the normal body and instead displays a  
form for each set, with the ability to add a new set by clicking on a +  
button. In this example, there would be two pages with a specific type  
(=contact). [somewhat similar to Typo3 XML based Flexible Content  
Elements, aka FCE]

Maybe I’m wrong, but to me #1 doesn’t appear very user-friendly,  
especially if there are many fields.

Is there an extension that offers features similiar to #2?

Thanks  
Tristan

---

<div class="post-metadata">

**Author:** ![Tristan\_Koch](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/53a042/32.png) [@Tristan\_Koch](https://www.ruby-forum.com/u/Tristan_Koch)\
**Post date:** [December 13, 2007, 7:32pm UTC](https://www.ruby-forum.com/t/structured-content/123059/2 "2007-12-13T19:32:31Z")

</div>

Tristan,

I would recommend something else entirely. If your data is very  
field-oriented (not lots of plain text), create an extension with a  
model or set of models that more properly map to the problem, create  
controllers to administer them, and then create Radius tags to output  
their information into a page.

While I have created an extension that does something similar to TYPO3’s  
FCE (although Radiant is not a “page builder”-style CMS like TYPO3),  
it’s not ready for public consumption yet. The extension essentially  
allows you to define a ‘template’ for any given page and use the  
template to constrain both the output and the structure of the UI that  
is presented to the content editor.

I hate to tease all of you with these vapor-ware extensions, but I  
promise I will release them in early January when I have a few days to  
clean them up.

Sean

---

<div class="post-metadata">

**Author:** ![Tristan\_Koch](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/53a042/32.png) [@Tristan\_Koch](https://www.ruby-forum.com/u/Tristan_Koch)\
**Post date:** [December 13, 2007, 11:47pm UTC](https://www.ruby-forum.com/t/structured-content/123059/3 "2007-12-13T23:47:10Z")

</div>

Hi Sean,

Creating an extension with a specific model seems to be a good option,  
although I’m very curious about your template extension!

Still, I’m not sure where to put the UI of the controller. It handles  
content, so I should be in the Page Tab. But then, I would need to  
replace the body from the Page editing UI. Does Shards support this? Or  
would you recommend to put the UI in a seperate Tab (like Gallery).

Tristan

Sean C. schrieb:

---

<div class="post-metadata">

**Author:** ![Tristan\_Koch](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/53a042/32.png) [@Tristan\_Koch](https://www.ruby-forum.com/u/Tristan_Koch)\
**Post date:** [December 14, 2007, 12:01am UTC](https://www.ruby-forum.com/t/structured-content/123059/4 "2007-12-14T00:01:17Z")

</div>

You can add tabs to the Radiant interface in your extension that point  
to the url of your custom controller that handles manages your  
structured data. Rather than replacing the interface, you would create  
Radius tags that expose the data to a regular page. All of this is  
explained extensively in the extensions tutorial on  
[wiki.radiantcms.org](http://wiki.radiantcms.org). Have a look!

Sean
