Administrator of the site can create a page, and select blocks which will show on that page. After that admin can drag drop of any block in the page to change the position of block and also change the width and height of each and every block. Administrator can set default width and height of every block.

Project page link: https://drupal.org/sandbox/singh-nitin/2095529

http://git.drupal.org/sandbox/singh-nitin/2095529.git

CommentFileSizeAuthor
#11 drag-drop-blocks.png144.43 KBdavidmac
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

PA robot’s picture

Status: Needs review » Needs work

There are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxsingh-nitin2095529git

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

nitinsingh’s picture

Status: Needs work » Needs review

I have fixed the issues and also checked with the automated tool mentioned above.

batdesign’s picture

Manual Review

This is a good module that worked on a fresh Drupal install. A few quick coding things.

  1. The project link should point to the sandbox project page on Drupal, not the test site.
  2. Change the package in the .info file to something that fits within Drupal's standard module categories. 'Custom' is not descriptive to someone who will use this module.
  3. In the .install file the hook_enable function is empty. It should be removed.
  4. function drag_drop_blocks_admin_overview_validate is empty. If no validation is needed, this should be removed.
  5. The function comments are fine, but the code could do with some inline comments to make it easier for other developers to read.
  6. The javascript file should be wrapped in an anonymous closure to ensure that it is compatible with other libraries, an example:
    function ($, Drupal, window, document, undefined) {
    $(document).ready(function(){
      //your js here
    });
    })(jQuery, Drupal, this, this.document);

Overall the module looks nice.

stockunlocks’s picture

Very nice and simple to put to use immediately.

Drupal 7.23:

I was able to configure a page containing 4 blocks, one of which required permissions for certain included links (Navigation). Everything showed up as expected and I was able to re-size the blocks without any problem.

I tested viewing the results of the re-sizing in another browser, not logged in with the permission to make changes, and the results were observable.

However, I'm just having a little problem with the "drag and dropping". How is this accomplished? I thought that by simply clicking on a block and dragging would do it, but the block "snaps back" to its original location.

Maybe additional information may be provided in the README.txt if the drag/drop requires key combinations, etc.

All the best

davidmac’s picture

Status: Needs review » Needs work

Hi,

This looks like an interesting module. I have some initial observations.

  1. What is the purpose of the project page link above? unless there is a compelling reason for it to be there you should really remove it. Your issue description should contain a link to your sandbox page and the git 'clone' command. See: Project application checklist
  2. Why have you chosen 'administer user' as your access argument in hook_menu()? Is 'administer blocks' not safer and more appropriate? In addition, you've exposed an access callback to your modules admin page, bypassing the permissions system. How can I give someone permission to administer this module without giving them permission to change the access callback? Also, testing against an authenticated user with minimal privileges, they still see the grey blocks even though they can't use your module.
  3. You have Chosen a full parent menu item for this module's config menu, it should fall within a releveant category such as 'User Interface' or 'admin/structure/blocks/' as a tab i.e. MENU_LOCAL_TASK. Also you could improve the menu arrangement by making 'add' or 'settings' tabs of each other, because at the moment there is no breadcrumb back from 'settings' to 'add' and vice-versa.
  4. pages.inc: Use 'Drupal.behaviors to wrap your js and use #attached (for example with hook_page_alter ) to add your CSS and Js files (if you can't add them using .info file). See: Drupal.behaviors
  5. I can't understand why you are forcing users of your module to include an external JS file of 435kb (the jQuery UI) via pages.inc when you could simply make your module dependent on the jquery_update module, thereby giving them the choice as to whether or not they wish to use a CDN. I have experienced slow page load times after installing your module, this was fine before. You should alway look at allowing an external library to be included via the Libraries API for example, rather than forcing delivery over the internet.
  6. I think the 'Page Title' field in the admin form causes confusion between the 'Page Title' in the context of meta data and SEO.
  7. The option to select existing blocks suggests that they will become 'moveable' when enabled, but it seems to duplicate them, with existing blocks remaining in situe. Also, there seems to be no way to press save and switch off the 'greyness' to see the final rendered design, even when logged out.
davidmac’s picture

Issue summary: View changes

Added project page link

nitinsingh’s picture

Status: Needs work » Needs review

Hi,

Please find my comments on each and every point

  1. I have changed the Page link
  2. I have created own administrator access, so admin can change the permission for this only.
  3. I have changed the menu
  4. I have added Drupal.behaviors
  5. Removed external Js and Css
  6. I have changed the field label
  7. You can changed the greyness using css, and all user will be able to see exactly same as admin can
davidmac’s picture

Status: Needs review » Needs work

Please review the best practice guidelines. You should explain here, why this module doesn't duplicate exisiting functionality provided by other modules, including Panels (in-place-editor), Blocks, and jquery_drag_drop, among others. For your project to proceed, it should not duplicate existing functionality provided by other modules. Please be explanatory in your comparisons.

The configure link in your .info file is incorrect.

Regarding my comment #5:

can you please respond to No. 2 as you have left the access callback option in. Why can't you use the permissions system for this?

Perhaps you haven't explained fully the purpose of this module, it suggests that you can create a page and drag and drop blocks in a tiled arrangement. However, it doesn't work very well, and although you say in #7 above that,

You can changed the greyness using css

this bypasses the theme system which already provides the styling and theming, which your module appears to override.

Please address all of the above in detail, thanks.

davidmac’s picture

Issue summary: View changes

Project page link changed to sandbox

nitinsingh’s picture

Issue summary: View changes
Status: Needs work » Needs review

This is not a duplicate module, as I mentioned in the description of module, by using this module admin can create multiple page and set the different blocks for this page, drag drop the inner content of the block and also admin can change the width and height of any block according to your page layout.

I have left access control - because if admin create a page and gives an url for that page so he/she can also manage the access of that page.

I have removed the background (grey) of block, I used this because admin will easily differentiate the blocks.

davidmac’s picture

I feel that you are reinventing existing functionality with the routing option, and if you were to objectively appraise the functionality of this module you might agree that it should not have been submitted in it's current form. Some of the problems are:

  • drag-drop is buggy
  • no drag handles visible with drag corners barely visible and in duplicate.
  • existing blocks are not unset before selecting them for these custom pages
  • blocks can be dropped on-top of one another
  • width settings buggy and outside of theme settings

Regrettably, I have to say that this is a generally poor quality module which lifts content and blocks out of the styling provided by the theme system and messes up the overall styling in a very buggy manner. It also appears as if you are ignoring some problems reported in comments #4, #5 and #7.

I wouldn't encourage you to continue its development as it stands given that this module duplicates functionality available with other modules as pointed out above.

davidmac’s picture

Status: Needs review » Needs work

see above

davidmac’s picture

FileSize
144.43 KB

See the attachment for an illustration of the problems mentioned (standard Drupal setup).

nitinsingh’s picture

Can you please check your admin settings for this? if height is not set as 'auto' only than this can happen.

davidmac’s picture

The height is set at auto and the problem remains. With respect, it is your job to do all of this testing as developer, I've pointed out the problem, you should replicate it and fix it.

Another issue is the title in these custom pages, it is lost after the initial save when going back into edit an existing page, but remains when set a second time, looks like a form submit issue.

The height overlapping of blocks is only one issue. You have many issues to address BUT FIRST, you need to decide if you want to continue presenting this module given that it rehashes/duplicates existing features available in Drupal(menus/routing/pages, block placement), and other contributed modules (Panels in place editor, layout manager, jquery_drag_drop etc).

One of the first tasks when writing a module is to research if similar modules already exist and the links provided above contain advice in this respect.

PA robot’s picture

Status: Needs work » Closed (duplicate)
Multiple Applications
It appears that there have been multiple project applications opened under your username:

Project 1: https://drupal.org/node/2181337

Project 2: https://drupal.org/node/2095707

As successful completion of the project application process results in the applicant being granted the 'Create Full Projects' permission, there is no need to take multiple applications through the process. Once the first application has been successfully approved, then the applicant can promote other projects without review. Because of this, posting multiple applications is not necessary, and results in additional workload for reviewers ... which in turn results in longer wait times for everyone in the queue. With this in mind, your secondary applications have been marked as 'closed(duplicate)', with only one application left open (chosen at random).

If you prefer that we proceed through this review process with a different application than the one which was left open, then feel free to close the 'open' application as a duplicate, and re-open one of the project applications which had been closed.

I'm a robot and this is an automated message from Project Applications Scraper.

apaderno’s picture