I'm having a bit of an issue here and I'm hoping for some professional advice.
Here is my situation:

enter image description here

That's my homepage. In the upper part, there is an image slideshow (no issues there), but underneath are 3 textblocks. The text inside those blocks is quite static but the end-user has te be able to change the content. The tricky part is it can't be blocks or panels. So the one thing I can think of is make a content type for those blocks and use a view filter to show those 3 blocks. But even then, I'm not quite sure on how to do this...

Is there anyone here who can advice me about this issue? Or alternatives on how to tackle this?

  • Display suite...
    – Alex Gill
    Jan 8, 2013 at 15:40
  • Can you please explain the "can't be blocks or panels" part? Maybe blocks would be just fine when combined with a specific module. Jan 8, 2013 at 16:00
  • With "end-users" you mean editors or visitors?
    – Volker
    Jan 8, 2013 at 16:06
  • @marcvangend, blocks and panels are too hard for the end-users to use. It has to be as simple as possible, preferably with a simple 'edit' button like a node.
    – Michiel
    Jan 8, 2013 at 16:15
  • @Volker, with end-users I mean the people who will manage the website. But unfortunately, they can't deal with the complexity of blocks/panels backend lay-out...
    – Michiel
    Jan 8, 2013 at 16:16

4 Answers 4


I would still use blocks for this, because I always prefer to use the most appropriate and lightweight solution for the data storage, and then tweak the admin interface to enhance usability.

You could solve this with a special content type, combined with views or display suite. However, experience has taught me that if you're creating a content type for a small, fixed number of nodes, it usually means that there are better solutions out there.

You are right that the blocks page is too complex for many users. To solve that problem, I would:

  • Create the 3 blocks;
  • Enable the Contextual Links module (part of Drupal 7 core) to provide edit links on the blocks, right there in the front end;
  • Install and configure Block Access to make only those 3 blocks editable by the site maintainer;
  • Implement hook_form_alter to hide specific form fields from the site maintainer on the block edit form.
  • This sounds promising! I'll give it a try!
    – Michiel
    Jan 9, 2013 at 7:44
  • It seems I'm unable to configure the edit-button for those blocks... How can I do such thing?
    – Michiel
    Jan 9, 2013 at 9:28
  • 1
    Go to /admin/modules and check if the 'Contextual links' module is enabled. If you're not logged in as user #1, go to /admin/people/permissions#module-contextual and make sure that your role has the "Administer blocks" and "Use contextual links" permissions. Now you should see a cog wheel in the top right corner of a block when you hover over it. Click it and you should see the "Configure block" link. Jan 9, 2013 at 11:55

I do something similar with like where I have a slideshow and then like news and events below it and another 3rd bar (I've redacted some stuff from the image): enter image description here

But I'm talking about like News and Events.

I have this in template.php for my theme:

 * Override or insert variables for the page templates.
function MYTHEME_preprocess_page(&$vars) {
  $page =& $vars['page'];
  if ($vars['is_front']) {
    $page['content']['system_main']['views_slideshow-block']['#weight'] = 1;

    // Make the news/events view wrap via a custom div for fluid bg.
    // The .clearfix is needed so the div fills the space vertically.
    $page['content']['views_news-block_2']['#prefix'] = '<div class="fluid-bg clearfix">';
#    $page['content']['views_events-block_1']['#suffix'] = '</div>';
    $page['content']['block_2']['#suffix'] = '<div class="clearfix"></div></div>';
    $vars['title'] = '';
    if (isset($page['header']['mysite_core_menu_header_image'])) {

The blocks, views_news-block_2, views_events-block_1 are made using Views. block_2 is merely a block made from the block UI. They are placed via Context onto the frontpage in the order they should appear (top to bottom). CSS is merely adding container divs and inlining stuff.


just for clarification. The blocks are placed in order via context (or you could use the block ui) onto the given page as:

  • slideshow
  • news
  • events
  • other sidebar

#prefix and #suffix render array elements are used on sibling $page['content'] arrays to embed the css wrapper divs.


Create a content type specifically for the frontpage with three text field (Field Type: Text / Widget Text area (multiple rows) and put it in place either with Display Suite or with some CSS. Then your customer can click edit and edit the text in the text fields. Give him an text editor like CKEditor to make him/her completely happy. Show the node you created with that content type your frontpage and throw in the slideshow via a views block.


I would use the Display Suite module for your web content. With Display Suite you can choose the layout you prefer.

Create then a new content type with 3 text fields for your 3 blocks of text. Each textfield can be added to a specific place in your layout. With some css you can finetune the result on your page.

Your end-user/editor can easily make changes because your pages are simple nodes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.