I have a site with more than 2000 users. Users can log in to the site, can see the content, make it as his favorite etc. My home page (Dashboard of user) has different blocks created of views.

How can I allow users to customize the position of these blocks?

They can show/hide blocks, change the position (region) of blocks, can select which content need to show from the view results, change the sort criteria.


It would be quite hard to provide an exact answer as I don't know how you can affect the view results in your setup. In terms of the rearranging the content and even to save the settings I would suggest that you create a new 'textarea' user field which will be hidden in the front end and use a jquery plugin like this: https://github.com/troolee/gridstack.js to update the value of the field using AXAX when the onchange event fires. That way when you load the homepage you can request that user field and arrange your blocks in the order they wanted. You could use a similar approach for which content is shown and then read it back on page load and pass it to the view as an argument.


Option 1: Homebox

The Homebox module might be a possible fit (only an RC1 release for D7 though, but about 4.500 reported installs). Here are some details about it, from its project page:

Homebox allows site administrators to create dashboards for their users, using blocks as widgets. Blocks in a Homebox page are resizeable, and reorderable by dragging.

Homebox is currently used on Drupal.org for the 'Your Dashboard' feature.

Summary of its features (also from its project page):

  • Create as many homebox pages as needed.
  • Each homebox pages as its own access permissions by role.
  • Block layout and status is saved per-user, so each user can reorder, resize, add and remove blocks to meet their specific needs.
  • Layout settings autosaved via AJAX.
  • Users can set color (manually or via Color Picker) for each block (available colors are defined per homebox pages).
  • Integrated with Views 2 and its exposed Ajax filters. Exposed filter settings are saved between sessions.
  • All Homebox pages are alias-able via the core Path module.
  • Uses the block system, so anything that can be exposed in a block can be made available to Homebox.
  • Comes with documentation through the excellent Advanced help module.
  • Homeboxes may be placed in code via hook_homebox().
  • Import/export homebox pages.
  • Optional block title overrides.
  • Option to have a Homebox appear on a user profile tab.
  • Easily create custom region layouts (easier than Panels).
  • User-added custom blocks.
  • Option to disable theme block regions so homebox can go full-width.

Option 2: Dashboardify

The relatively new Dashboardify module (which has an official D7 release, but only about 50 reported installs) is a possible alternative. Here are some details about it, from its project page:

Dashboardify is a module for creating complex dashboards.

Each user with proper permissions can add any block to dashboard and rearrange blocks order on his or her dashboard page. There is one dashboard with predefined regions available for each user. User can add unlimited instances of the same block which can be useful for views blocks with different contextual filters applied. Along with block information module stores data what contextual filters were used while adding block to dashboard. Block order is autosave via AJAX.

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.