3

I want to build a front page in which the site administrator has a lot of control (through the UI) over the layout. Panels is the only thing that comes close, but I still don't think it can do everything I need (and admittedly, I'm not a big fan of panels).

requirements

The front page will have a couple of sections; I'll call them "news", "products" and "store" in this example. The administrator must be able to control the order of the sections on the page.

Each section will contain a selection of news nodes for the news section and a selection of products for the products section. (The nodequeue module would be an obvious choice here.) The order of the nodes can be controlled by the administrator too. Also, the admin must be able to choose if a node is rendered full width, or if two are rendered half width, placing them side-by-side.

The "store" section must contain a maximum of 4 blocks (not nodes). The admin must be able to make a selection out of 6 or 7 blocks and gain control the order.

question

I'm sure I can make this work all by myself, but I'm curious: Which module (or combination of modules, if any) would you use to accomplish this? Needless to say, I would like this to be as easy and user friendly as possible, preferrably with as least different forms and interfaces as possible.

  • There is a new kid in town: Paragraphs – donquixote Aug 23 '14 at 4:28
  • Yes, I've heard of it, and it seems very promising! Thanks for mentioning it. – marcvangend Aug 23 '14 at 12:15
4

EDIT: I realize there is a more generic question here, so I copied my answer over there.

A combination of the following modules can get you quite far:

How?

  • Create a node type "frontpage".
  • Add a multiple-value block reference field with "Multiple Selects list" widget.
  • Set up some bean types to allow different kinds of fancy boxes that can be placed on the frontpage.
  • In addition you can have Views blocks to be used in the block reference.
  • One of the bean types could have a multiple-value entityreference to e.g. reference a bunch of products (and have them sortable). I generally prefer this over nodequeue.
  • Use Display suite to define how each bean and the frontpage itself should be displayed.
  • Use Display suite custom field templates to have decorated boxes around each bean/block in the blockreference, or each product, etc. Check hook_ds_field_theme_functions_info(). This stuff is powerful and awesome!
  • Tell the client / content editor to use the contextual links to edit individual beans.

This should give you some material to play with .. More detailed questions should be discussed in dedicated stackexchange questions, since this is quite broad.

|improve this answer|||||
3

Panels seems what you are looking for.

The Panels module allows a site administrator to create customized layouts for multiple uses. At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.

|improve this answer|||||
  • Panels has a huge amount of options, crammed into a single interface. Do you think it can be tuned to allow everything I need, while hiding/disabling all other options? If that's not possible, I'm afraid the interface will be too complex, and the admin can easily break the site. – marcvangend May 17 '13 at 9:16
  • Panels, like every general tool, will have options any given one user does not need. I'm sure you can hire freelancing developer to interview you and then hide elements you don't need by modifying admin theme. – Mołot May 17 '13 at 9:20
  • Thanks, I'm a developer myself. I know how to theme, form_alter, write custom modules and all the rest. However that doesn't mean Panels will let me implement all restrictions I need (well, without hacking the Panels module I mean). – marcvangend May 17 '13 at 9:34
  • As far as I remember most things except drag'n'drop was done using good old form api, and what you cannot change there, you can hide with CSS, it's id-ed and class-ed pretty well. Big question is WHY to do it? With Backup and Migrate you can restore your site with like 5 clicks, so just keep admin theme panels-free and you're good. – Mołot May 17 '13 at 9:38
  • 1
    I recommend Panels. Don't use panel nodes, use panel pages (enable the Page Manager module). This will allow you to Featurize the pages that you configure and keep them in your codebase. We don't allow admins/end users to see anything on the panels-admin side. They instead get the tools to manage the content that flows into panels regions. This gives us hassle free integration with Views, custom blocks, etc., while allowing us to still define our own template files. Making custom panels layouts is trivial which is a plus. – Charlie Schliesser Oct 30 '13 at 21:24
1

The module with which I can't live without for block layout is the Context module. You can easily define multiple "context" where you want each block to appear and their order.

You can set the side by side blocks with CSS by adding the class directly in the block settings with Block Class module.

|improve this answer|||||
  • 2
    Thanks for your answer. I know Context module, but I consider it mostly a developers tool. If you place Context module in the hands of this admin, I'm afraid it would be really easy to mess things up - wouldn't you agree? – marcvangend May 16 '13 at 19:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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