For the content region of my homepage (under Drupal 7) I have 3 columns in which I need to display 3 different content types:
- Regular article teasers (only image + summary as a link to full article)
- Daily quote/citation/message (article with a short citation)
- Advertising node (Advertising content type article)
Visually I have to respect the orderng of this layot (aren't designers wonderful):
===Column 1======Column 2=======Column 3=
=======Article=======Article=========Quote======= =======Article=======Article=========Article======= =======Advert=======Article=========Article======= =======Article=======Article=========Article======= =======Advert=======Article=========Article=======
I made a views block, which outputs a grid of a 3 columns and 5 rows filtering only articles "Promoted to the Frontpage". So far everything ok. Now following design decisions I'm trying to find a way to order the output of this view and particularily respect the positioning of the 2 Adverts elements, which will always be displayed in the 3rd and 5th row of the 1st Column. Same thing for the third column where the Quote element should always occupy the first postion on the 3rd column.
I'm a Views rookie so is there any Filter/Condition/etc that I'm missing and it would help me to achieve the required grid layout?
After some research I found two methods to accomplish this that I'll go briefly in details in case other users come across the same needs as me.
Using Node in Block module. In the Node in Block general Settings, I created 3 blocks and assigned the content types I want to list. The great thing about this module is that it gives the option to give friendly names to the blocks themselves but also to the Fieldset labels. Very user friendly for content editors who just want to click and select on labels that have a meaning and especially for languages other than English. In the render mode options there are a couple of options. For now, I chose the teaser but I have to check on how to further style or hack to accomplish the required look. I gave to content editor role, the permissions to manage the Node in Blocks queue and now they've got a nice list of the nodes assigned to the block(s) during the node creation. What I missed the first time I installed this module was that it exposes a Row Weight option. Now editors can nicely drag and drop the nodes in any order they see fit. For further positioning and styling I installed the BlockClass module and added a class to each block to individually style/position them.
Another way to deal with this is to use Nodequeue module, create a queue list and add contents to it during node creation/modifications. Order the queue items as desired, then expose the contents of the Nodequeue list by creating a Views block with a grid output. At the moment the advantage of going through this compared to Node in Blocks, is that with Views every field can be assigned a class or the html output can be overridden, which would allow me to match 100% the required look. Since I'm not completely familiar with views and the workflow implications this will have for the editors, I'll just keep this in case the first scenario doesn't give me full styling liberty.
As always there are several ways to achieve things with Drupal, and that's what makes it exciting.