news.Resource

Archive:

News-Feeds:


RSS 2.0
RSS 0.91
RDF
ATOM 0.3
Sponsors
hosting by snowflake | PREMIUM OPEN SOURCE
26.01.11 11:18 Age: 1 yrs

TYPO3 4.5 LTS: The Grid View - a new concept for a backend that matches your layout

Category: Research & Development

By: Joey Hasenau

During our daily work with the TYPO3 backend we usually notice quickly that the page module lacks one major feature: It does not reflect the actual layout the page has got in the frontend. We just got a number of four default columns, which can be renamed, reduced or extended, but after all they are still just columns positioned side by side without any true layout.

Simple Grid View

Simple Grid View

People who work with TemplaVoila are used to the concept of the so called Flexible Content Elements (FCE) to get a kind of layout into their page module, but they have to buy a completely different templating concept with all it's pros and cons as well.

Default Columns

TYPO3 User eXperience Week

During the TYPO3 User eXperience Week in 2009 the idea came up to integrate something like a "layoutable backend" into the core, so people could easily get a backend layout without having to deal with different concepts.The structure should be based on a TypoScript like syntax, that could be edited both, manually and using a wizard, and there should be an optional thumbnail image to be shown as a selector icon for the editors later on.

A proof of concept was made with an extension called "modernbe" that was first presented in early 2010 and worked with the backend of TYPO3 4.3 only. It has been used in some live projects and people were excited about the new look and feel, which is why we decided to integrate it into the core.

Grid record

Grid Wizard

 

Now that we are releasing our Long Term Support version 4.5, we proudly present the final implementation of what we call the GRID VIEW.

You can easily create backend layout records all over the page tree or within some particular folders. To create the grid itself you can use the grid wizard, that will give you a smart point and click interface to setup even complex structures containing lots of spanned cells within just a few seconds. Assign a thumbnail to the record if you like.

Done!


While editing a page you can now select, which of the available grid records should be used for the page itself or the branch below this page. A layout inherited from any page up the rootline can be removed for a single page or the branch below it as well.

This way you can easily adapt your backend layout to match the layout of the frontend. There can be some frontend variants for the same backend layout, since we still got the original layout selector as well. You can even combine both, frontend and backend layout selection, using TypoScript, which will give you an amazing flexibility in your templates.

Gris selection

Of course the grid view can be used together with the well known TSconfig settings that are used to disable columns for a certain group of editors. And you can use layouts with dummy columns as a placeholder for hardcoded stuff like footers or meta navigations. The grid view will still show the same layout, but there will be blanked areas marked as "no edit access" or "not assigned" to make sure the editors won't see content elements they are not allowed or not able to edit.

Complex Grid

Since the grid view is working with the same database fields that always have been used to determine the column position and the sorting of a content element, it can easily be used together with the default TypoScript templates of CSS styled content. You just have to adapt styles.content.get for the number of columns you are going to use in your layout.

The grid view will improve the usability of the backend a lot and the credit for this improvement primarily goes to the teams of T3UXW09 and of course to the sponsors that made this new kind of code sprint possible.


comments

 
Sebastiaan de Jonge 26-01-11 11:48  
Very interesting feature! This is something I'm really happy about. Are the names for the colPos values also added as options to the content elements? Or do we need to add these still the old fashioned way?

Great work guys :-)

 
Joey Hasenau 26-01-11 11:55  
Still you can use TSconfig features like addItems or removeItems the same way as before.

But wthing the grid record you can now either manually add names in the setup field or use the grid wizard to give them any name you like.

 
Joey Hasenau 26-01-11 12:01  
Should have been "within the grid record" - and it didn't answer your question precisely. So: Yes, the names will be automatically handed over to the colPos option list in content elements.

 
Thomas Kieslich 26-01-11 12:07  
I like and use it. One hint is that the names of the columns can be translated ;-)
name = LLL:fileadmin/templates/labels/layoutLabels.xml:col_0

A good way is to use the same Labels in:
TCEFORM.tt_content.colPos.altLabels

Thanks for this feature, Thomas

 
Sven 26-01-11 12:10  
That is great, I'll use it soon!

 
Bas 26-01-11 12:15  
I intensely dislike TV's data model. This strikes a great balance!! Thanks guys!

 
Thomas Hempel 26-01-11 12:36  
Nice work!

I like it! ;-)

 
Kevin Clinton 26-01-11 13:03  
Very nicely done. Thanks for the ever increasing capabilities and the focus for things that really make a difference.

 
Michael Heigl 26-01-11 13:09  
Looks great! Thats a really usefull feature!!!

 
Fedir 26-01-11 13:22  
Awesome changes.

Is it possible to define via TypoScript a FE HTML template for each content subpart ?

 
Ingo 26-01-11 13:41  
I think this is the most awesome new feature in 4.5!

 
Joey Hasenau 26-01-11 13:46  
Of course you can define this via TypoScript, since the selected layout can be checked during the render process.

This is why we strictly separated the backend_layout and backend_layout_next_level behaviour. So you can easily use

data = levelfield:-2, backend_layout_next_level, slide

and override this with

override.field = backend_layout

And of course you can do it with conditions based on these fields as well.

Anything else can be done with the default styles.content.get stuff that can be adapted to the number of colPos values used in your backend layout record.

There will be a tutorial soon and I guess we will do a remake of this video http://www.youtube.com/watch?v=SsxfNd4TYbk as well to make sure it will include all current features.

 
Dan 26-01-11 14:00  
Very nice approach, will see how it works out in comparison to templavoila.

 
Fabrizio 26-01-11 15:32  
Interesting feature!

Is there a way to control the width of the cells in the backend? Would be useful to visualize a right sidebar by having the columns width 80%/20% instead of 50%/50%

 
Joey Hasenau 26-01-11 16:10  
You can use a grid based on more columns and rows than your actual layout cells and span the cells accordingly.

For your 80/20 approach it should be a grid based on 5 columns. Then you can span the left column over 4 of them and assign the last cell to the right column.

The last image of the article and the grid wizard example show something similar in the second row starting with "Top Left II 1x1".

 
Peter Niederlag 26-01-11 17:15  
Very cool... THX.. :->

 
Nietsch 26-01-11 17:51  
Congratulations, really cool feature, great to see that this was finally integrated.

Comparing it with FCEs, how can nested content elements and grids be implemented with that? E.g. Page has 1 column only and a Grid-CE provides a 80/20 split?

 
Joey Hasenau 26-01-11 21:49  
Actually this is not about nested content elements but about splitting up the content into different logical areas so that it can match the frontend layout in a way.

And the question is: What exactly would be the difference for the editor between having the 80/20 grid based on the page or the content element?

But since we already got a grid wizard, I guess it could be interesting to implement it for ocntent elements as well. Maybe this could be used to structure nested elements based on IRRE like the ICEbox.

Let's see what will be the outcome of the initial code sprint for 4.6 ...

 
Michael Bakonyi 27-01-11 09:25  
> And the question is: What exactly would be the difference for the editor between having the 80/20 grid based on the page or the content element?

E.g. you can add content elements with alternating 80/20- 60/40-layouts so you're not forced to the 80/20 grid.

Of course there are plugins available already for that.

Regarding the new be_layout: I'm really excited to see, how fast the development is going on the last years regarding the usability amongst a lot of other things of course. Great, thanks a lot for your work! :)

 
Joey Hasenau 27-01-11 10:13  
Actually you are not forced to 80/20 when the base is a 5 column grid. You can still go for

80/20
60/40
30/50
20/80

within the same page layout. Together with rowspans this will still give you enough flexibility for most of the use cases. You just have to get rid of the "main content" concept, we have been used to for a long time.

On the other hand I still would like to shift the grid view to the next level - be it "content elements" or just records of all kinds.

 
Henny 27-01-11 13:36  
Very nice feature!
Is it possible to define the beLayout with tsConfig? I mean take that code and put it into tsconfig :)

thanks

 
Joey Hasenau 27-01-11 13:44  
not yet - but it sounds like a good idea for 4.6

 
Heddi Heryadi 27-01-11 14:37  
Awesome ..!!
this is great feature!

thanks a lot for this great feature!

 
Hans Chr. Reinl 28-01-11 16:53  
Oh this looks really great.
It's a big improvement for everyone uses the backend is not a pro and does not use it day by day.

 
Rik Willems 30-01-11 12:41  
This feature is really sweet and works great. Now I need to think of a good and flexible way to implement this.

@Jo
Thanks for the snippet. This is a good way to implement it to the FE. How could you use it with conditions?

 
Joey Hasenau 30-01-11 18:57  
Maybe we should check the selected backend_layout as soon as there are backend_layout records available and put the resulting ID into the TSFE just like we already do it with other values. This way you could easily use a condition like

[globalVar = TSFE:selected_backend_layout=1]

What do you think?

 
ricardo 31-01-11 20:26  
Good work, but how can i test the extension?
Fine:
http://forge.typo3.org/projects/extension-modernbe/wiki/Grid_View
You are not authorized to access this page.

Thanks

 
Joey Hasenau 31-01-11 22:05  
It's not an extension anymore but a core feature. Just create some backend layout records as described in the article to make use of it.

 
Jacob Rasmussen 01-02-11 20:07  
It's great to have an alternative to Templavoila, although for some reason, i'm not able to drag and drop content in (reordering) and between columns. It seems that this functionality was included in the modernbe extension - have I missed something?

 
Joey Hasenau 02-02-11 10:00  
We didn't manage to include it before the deadline of 4.5

So expect this to be a new feature in 4.6

 
ricardo 02-02-11 10:43  
Hi, I search teh extension for a Typo3 4.3 version and I find nothing. This video tutorial http://www.youtube.com/watch?v=SsxfNd4TYbk talk about this, but the extnsion no exist in teh repositore. A have no table called tx_modernbe_layout and in my folder typo3/sysext the modernbe no exist. I will this extension test, but it is not posible. No good.
In appearance i don't see the same like this artikel. I think this core feature is available at Typo3 4.5 und for Typo3 4.3 has a extension.
I need somethink doing to use this? Why You are not authorized to access this page when a search under http://forge.typo3.org/?
Sorry, but I will test the feature.

 
tom 07-02-11 22:43  
We wrote a Tutorial how to use the new backend layout for building the TYPO3 Backend and the pages in the frondend (FE):

http://blog.undkonsorten.com/typo3-4-5-tutorial-backend-layout-nutzen

 
thomas swoboda 16-02-11 04:37  
This is a amazing feature, i use the new backend layout to layout without a extention a webpage ... its amazing ... thanks.

 
thomas swoboda 17-02-11 00:10  
i found no dokumentation//manuals//howtos to get the grid in the frontend output! ;(

http://forge.typo.org/wiki/hci/Grid_View

 
Myroslav 17-02-11 17:18  
It's very nice. But comparing to templavoila:
1) Drag&drop between zones is really missing
2) It is not replacement for FCE's, why people above have such thoughts? FCE's weren't developed to create more content columns, it was developed to create custom content element possible with repeatable elements inside. I know it's not high-used feature, but this is really cool.

 
Myroslav 17-02-11 17:20  

 
Finees Mendez 22-02-11 16:26  
I concur with Myroslav. TV provides flixibility that is still unmatched by this Grid feature. Yes it is nice, but no drag and drop is a real drag! FCE's can be adapted to ANY design, and not just a column-based model. Typo3 should integrate TV and make the mapping process simpler. The mapping process is what really keeps people away from TV IMHO. Still love this feature though, but will not replace TV!

 
Guido Palacios 23-02-11 10:42  
is it possible to implement extjs based drag&drop feature for content elements? this is really a missing feature and would detach the use of TV...

 
Kay S. 02-03-11 11:31  
is it possible to define the backendlayout directly via pagets?

i tried to copy the generated code into pagets.

Then the layout could be easily shipped with fe template extensions.

regards
Kay

 
chervach 22-03-11 10:44  
Yeah!! The best feature i've got last year!
Thank you very much.
It's very usable for all of TYPO3 users who not use Templavoila by any reason.

 
emmo 27-07-11 14:47  
I dig the way you came at it.

http://www.eLawsuit.com

 
Allan Hansen 24-08-11 10:50  
I can't seem to find the "Backend layout" selector in the "Page properties" - can anyone tell me if I'm doing something wrong, adn if so, what?

 
harry 11-10-11 18:05  
is it possible to set the width of columns in grid view or via typoscript?

 
Mika 10-01-12 02:44  
That is great. Nice work!


Many greetings from Germany

 
Graham Knight 08-02-12 10:05  
We have upgraded to 4.5 and I would like to use the grid-view back-end layout.

Our pages use 3 layouts selectable by individual editors. Under 4.5 editors currently see both front-end and back-end selector boxes. I would like to remove this duplication and just show the back-end selectors. I would then refer to the back-end selector when rendering the page.

My problem is that our existing pages do not have back-end layouts set. Is there a way I can set these by reference to the existing layout fields?

Add comment