Folder Menu is a flash dynamic menu module for your Drupal 6.x,7.x website, designed to meet your needs and preferences.

Main features:

Possibility to customize the product using various parameters.
All colors of all 3 flash menus are customizable.
Possibility to fix the position of the menu during the scrolling.
Nice Flash effects
Interface fully integrated with Drupal administration, which allows to use Folder Menu with new or existing menus of Drupal.
Folder Menu makes the Menu very convenient and easy-to-use.

Now you can organize your website pages more easily and present user-friendly websites to your customers and visitors.

Folder Menu has the following settings:
Menu Parent: Choose the menu parent.
Menu Position: Choose the position of Folder Menu.
Distance from top: Define the distance of Folder Menu from the top.
Menu Font: Choose the font of Folder Menu.
Menu Background Color: Choose the background color of Folder menu.
Menu Text Color: Choose the text color of Folder menu.
Menu Hover Color: Choose the hover color of Folder menu.
Submenu Hover Color: Choose the submenu hover color of Folder menu.

Link to project page: http://drupal.org/sandbox/webdorado/1768438
Git Repository for Drupal 7 version - http://git.drupal.org/sandbox/webdorado/1768438.git 7.x-1.x
Git Repository for Drupal 6 version - http://git.drupal.org/sandbox/webdorado/1768438.git 6.x-1.x
Link to the repository viewer: http://drupalcode.org/sandbox/webdorado/1768438.git

Reviews of other projects:
http://drupal.org/node/1714170#comment-6478006
http://drupal.org/node/1562530#comment-6478064
http://drupal.org/node/1447120#comment-6478096
http://drupal.org/node/1536544#comment-6478124

Added 3 more Reviews of other projects:
http://drupal.org/node/1222472#comment-6494864
http://drupal.org/node/1784144#comment-6494924
http://drupal.org/node/1603626#comment-6494960

Added 3 more Reviews of other projects:
http://drupal.org/node/1789676#comment-6499784
http://drupal.org/node/1758810#comment-6499800
http://drupal.org/node/1775004#comment-6499828

Added 3 more Reviews of other projects:
http://drupal.org/node/1758048#comment-6537282
http://drupal.org/node/1416752#comment-6537300
http://drupal.org/node/1706922#comment-6537316

Added 3 more Reviews of other projects:
http://drupal.org/node/1799148#comment-6552930
http://drupal.org/node/1797916#comment-6552958
http://drupal.org/node/1799766#comment-6552992

CommentFileSizeAuthor
#16 Capture - Copy.jpg69.59 KBmpdonadio
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

klausi’s picture

Issue tags: -PAreview: review bonus

Removing review bonus tag, you have not done any manual review, you just posted the output of an automated review tool. Make sure to do read through the source code of the other projects and follow http://drupal.org/node/1587704 . Single coding standard errors are surely no blockers.

webdorado’s picture

webdorado’s picture

Issue summary: View changes

Added Reviews of other projects

suhani.jain’s picture

Issue tags: -PAreview: review bonus

Mannual Review

In .module file

1)The menu path for the folder setting page should be like 'admin/settings/folder_menu' instead of 'admin/build/folder_menu' so that you can see the name in the site configuration
2)Use 'Implements hook_menu().' instead of 'Hook_menu.' and the same applies with all the hook function
3)Use drupal_add_js in hook_init
4)Variables used in the .module file must be uninstalled in .install file eg 'folder_menu_menu_parent'

In .info file

1)You have to change the path of configure

In your git repository link should be 'http://git.drupal.org/sandbox/webdorado/1768438.git'.The one you have mentioned is wrong

I have downloaded and installed your module but i am not able to view the effect as per settings in folder menu.Might be i am missing something,Please check at your end whether it is working

Thanks,
Suhani Jain

klausi’s picture

Status: Needs review » Needs work

Setting to "needs work" per #4. The review bonus tag was removed, you can add it again if you have done another 3 reviews of other projects.

klausi’s picture

Issue summary: View changes

Added 3 more Reviews of other projects

webdorado’s picture

Status: Needs work » Needs review

Dear Suhani Jain,

1)The menu path for the folder setting page should be like 'admin/settings/folder_menu' instead of 'admin/build/folder_menu' so that you can see the name in the site configuration

Done

2)Use 'Implements hook_menu().' instead of 'Hook_menu.' and the same applies with all the hook function

Done

3)Use drupal_add_js in hook_init

This javascript needs to be loaded only on the settings page. There is no need to load the javascript at first.

4)Variables used in the .module file must be uninstalled in .install file eg 'folder_menu_menu_parent'

Done

In .info file

1)You have to change the path of configure

Done

In your git repository link should be 'http://git.drupal.org/sandbox/webdorado/1768438.git'.The one you have mentioned is wrong

Done

I have downloaded and installed your module but i am not able to view the effect as per settings in folder menu.Might be i am missing something,Please check at your end whether it is working

After enabling you should select "Folder Menu" in "Blocks" menu and select a "Menu Parent" in Folder Menu settings. After that Folder Menu will appear on the left side of your drupal site.

We ask you to be so kind as to review our Folder Menu module again.

webdorado’s picture

Issue summary: View changes

Corrected the repository link

webdorado’s picture

klausi’s picture

Status: Needs review » Needs work
Issue tags: -PAreview: review bonus +PAreview: security

Thanks for your reviews, just make sure that you pick the oldest applications first.

Review of the 7.x-1.x branch:

  1. Your commit messages only contain numbers, please use some more meaningful in the future. See http://drupal.org//node/52287
  2. AC_RunActiveContent.js appears to be 3rd party code. 3rd party code is not generally allowed on Drupal.org and should be deleted. This policy is described in the getting involved handbook. It also appears in the terms and conditions you agreed to when you signed up for Git access, which you may want to re-read, to be sure you're not violating other terms. The Libraries API module is a recommended method for adding 3rd party dependencies without directly including the code on Drupal.org. Same for jscolor.
  3. menu.php: why is this file needed? Please improve your @file comment.
  4. "variable_get('menu_background_color'": all variables that your module defines have to be prefixed with your module's name to avoid name colissions.
  5. menu.php: this will only work if I place the module directly into sites/all/modules, but not if I place it sites/all/modules/contrib for example.
  6. README.txt: you have some leftovers from git merge conflicts in there.
  7. Advertising on admin screens is not allowed for Drupal projects, see http://drupal.org/node/439226
  8. menu.php: this is vulnerable to XSS exploits. If I enter something like "><scrip>alert('XSS');</script></menu><menu cap=" as menu title, then the flash plugin runs amok and slows down my browser. Not sure how this could be exploited in a better way, as I'm no a Flash expert. You need to sanitize user provided input before printing, see http://drupal.org/node/28984

Removing review bonus tag, you can add it again if you have done another 3 reviews of other projects.

klausi’s picture

webdorado’s picture

We have solved all the issues mentioned by klausi.

Just one comment about the point 8: The problem was with special symbols (",<,>, etc.), not the

. Flash does not understand javascript, so this is not a vulnerability. The problem is solved now, so you can write anything as menu title. Added 3 more Reviews of other projects: http://drupal.org/node/1758048#comment-6537282 http://drupal.org/node/1416752#comment-6537300 http://drupal.org/node/1706922#comment-6537316
webdorado’s picture

Status: Needs work » Needs review
klausi’s picture

Status: Needs review » Needs work
Issue tags: -PAreview: review bonus +PAreview: security

manual review of the 7.x branch:

  1. I still don't understand why this file is needed. You are doing a full Drupal bootstrap anyway, so you could just define a route in hook_menu() that returns the XML?
  2. folder_menu_uninstall(): all variables that your module defines have to be prefixed with your module's name to avoid name colissions.
  3. folder_menu_createFlashDiv(): You should put all your javascript into dedicated JS files. You should use Drupal.settings to pass variables from PHP down to javascript. See http://drupal.org/node/756722
  4. folder_menu_createFlashDiv(): this is vulnerable to XSS exploits. If I enter "><script>alert('XSS');</script> for "Distance from top" I get a nasty javascript popup. You have sanitize all user provided input properly before inserting it into HTML. See http://drupal.org/node/28984

The security issue is a blocker, so I have to put this back to "needs work". Removing review bonus tag, you can add it again if you have done another 3 reviews of other projects.

klausi’s picture

webdorado’s picture

webdorado’s picture

Status: Needs work » Needs review
mpdonadio’s picture

Long term, you should consider using swfobject instead of AC_FL_RunContent, as it has been a defacto standard for a while.

The comment on folder_menu_admin() is incorrect; it isn't a hook, it's the menu callback from the hook_menu page.

You may also want to consider adding a hook_requirements() to check for the JS libraries so users see errors in the Status Report.

Minor typo in error message "Distance from top must bu numeric."

May want to consider using the Javascript API instead of directly using onmouseover/onmouseout on the div with the menu, since you may have a race condition where the JS events for these will fire before the JS files have loaded (esp if a themer puts JS at the bottom of the page).

The menu entry for the XML shouldn't live under admin/. Some times secure all of these pages with Secure Pages, and this would end up mixing HTTP and HTTPS.

The menu entry for the XML is being served up as text/html instead of text/xml

webdorado’s picture

Dear @matthew.donadio,
Here are the replies to your comments

Long term, you should consider using swfobject instead of AC_FL_RunContent, as it has been a defacto standard for a while.
Thank you. We will consider using it in the future.

The comment on folder_menu_admin() is incorrect; it isn't a hook, it's the menu callback from the hook_menu page.
Corrected.

You may also want to consider adding a hook_requirements() to check for the JS libraries so users see errors in the Status Report.
On the settings page the users get the notification messages about the missing libraries.

Minor typo in error message "Distance from top must bu numeric."
Corrected.

May want to consider using the Javascript API instead of directly using onmouseover/onmouseout on the div with the menu, since you may have a race condition where the JS events for these will fire before the JS files have loaded (esp if a themer puts JS at the bottom of the page).
The flash object is loaded by javascript, so the events cannot fire before the loading of the JS files.

The menu entry for the XML shouldn't live under admin/. Some times secure all of these pages with Secure Pages, and this would end up mixing HTTP and HTTPS.
Corrected.

The menu entry for the XML is being served up as text/html instead of text/xml
Corrected.

mpdonadio’s picture

Status: Needs review » Needs work
FileSize
69.59 KB

.../folder_menu/menu_xml is still being served up as text/html and not text/xml. You need to set the Content-Type header.

JS. Even if you do ensure that your code doesn't have a race condition, eventually changing the code to use the Javascript API is a best practice, and will also help with namespace pollution. Upon closer examination, it does look like you have one function (initFlash_vertical), that isn't namespaced by your module.

While not necessary, using hook_requirements() let you do two things. One, you can display the error about the missing libraries when the module is enabled so the user can see the message immediately. Two, you can put the warning on the Status Report, which is a central place for checking for problems.

webdorado’s picture

Status: Needs work » Needs review

.../folder_menu/menu_xml is still being served up as text/html and not text/xml. You need to set the Content-Type header.
Fixed

Upon closer examination, it does look like you have one function (initFlash_vertical), that isn't namespaced by your module.
We have changed the name of the function initFlash_vertical to folder_menu_initFlash_vertical

Dear matthew.donadio, thank you for the reviews, but the other issues mentioned in the review are no blockers.

mpdonadio’s picture

Status: Needs review » Reviewed & tested by the community

I agree that the JS and hook_requirements aren't blockers.

The content type is coming up correctly, but brute forcing with header() isn't the best option. For example, If you look at the source for theme_aggregator_page_opml(), you will see that it does

drupal_add_http_header('Content-Type', 'text/xml; charset=utf-8');

You may want to address this.

klausi’s picture

Status: Reviewed & tested by the community » Fixed

Thanks for your contribution, webdorado!

I updated your account to let you promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and get involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture