Closed (fixed)
Project:
Drupal.org security advisory coverage applications
Component:
module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
29 May 2012 at 10:52 UTC
Updated:
23 Jul 2013 at 09:12 UTC
Jump to comment: Most recent file
Comments
Comment #1
patrickd commentedwelcome,
As installation and usage instructions are quite important for us to review, please take a moment to make your project page follow the tips for a great project page. Also create a README.txt that follows the guidelines for in-project documentation.
while waiting for an in-depht review of your module you can start out fixing some coding style issues detected by automated tools:
http://ventral.org/pareview/httpgitdrupalorgsandboxfluffy1605508git
There are already some good modules providing frameworks for such functionality (eg. notifications, messaging...), maintenance would be much easier if you'd integrate with them. (then you don't have to write the whole subscription management and email sending thing, you just have to provide a new 'event').
We do really need more hands in the application queue and highly recommend to get a review bonus so we can come back to your application sooner.
regards
Comment #2
fluffy commentedWhat is wrong with the README.txt? so I can make the proper adjustments.
Comment #3
igoen commentedMaybe you can add some document, like summary, system requirements, how to install, how to configure, customization. For example sun's README.txt style.
And still there some errors when i do automated project review. http://www.ventral.org/pareview/httpgitdrupalorgsandboxfluffy1605508git
Comment #4
a_thakur commentedHi,
I am not able to checkout the project. Can you check it.
Comment #5
fluffy commentedFixed the git URL:
git clone --branch 7.x-1.x http://git.drupal.org/sandbox/fluffy/1605508.git content_reminder
Comment #6
fluffy commentedThe http://www.ventral.org/pareview/httpgitdrupalorgsandboxfluffy1605508git is now clean.
Concerning the README.txt, this is a very small module with only one specific function: to send notifications. I can't think of really much more to put in the readme than there already is. If there is confusion about what this module does (is there?) then yes the readme and project page needs to be better.
Comment #7
riho commentedI can confirm that the module works as described.
Comment #8
a_thakur commentedHi,
There are still some coding standards issues in the module, it would be better in case you can resolve that first.
In the file content_reminder.info:
In the content_reminder.module
Most of lines in the code are exceeding margin line of 80 characters: http://drupal.org/coding-standards#linelength.
Set your editor to show the magic print margin line of 80 characters. Keeping these short assists code readability among other things.
Will do a detailed review of the functionality and get back to you. It would be cool that for the time being you could resolve these coding standards issues.
Comment #9
patrickd commenteddon't switch to needs work on such minor issues
Comment #10
a_thakur commentedHi,
Some manual review of the code.
Instead use
Such redundant variable declarations are there on these lines too: #22, #85, #285.
In the function function content_reminder_menu() on the line #21.
It is best to avoid underscores in the menu items. So change to
Line # 300
Feel free to ignore this one if you think that you need it to follow the logic. db_select()->condition() defaults to IN if $value is an array, and = otherwise.
Similar occurrence is found on the Line #418
Many lines in the code are still exceeding 80 characters, would be great in case you could follow the standard there.
I got some MySQL error while I tried to run the module, will check it and get back to you.
Comment #11
rogical commentedWhat's the difference with these similar modules:
-----------------------------------------------------------------------
Node Reminder
The node reminder allow for you to recieve an email at a desinated time period of time.
Subscriptions
This module enables users to subscribe to be notified of changes to nodes or taxonomies, such as new comments in specific forums, or additions to some category of blog.
Comment #12
fluffy commentedNode Reminder (I did not found that one before) is very similar and this module lacks some good features that Node Reminder has:
Template for email Subject and Body with Tokens integration.
Actions Integration.
However this module allows to set notifications to other entities as well though the main use case is with nodes and the notifications can be sent to multiple users, difference is that you select users not e-mails. Also the reminder is set at a specific time not at an interval.
Subscriptions notifies about changes, this sends notifications at a set time. They are for different use cases.
Comment #13
a_thakur commentedSome more manual review of the code.
All the administrative configurations should go in a different file. In your it would be content_reminder.admin.inc and the function content_reminder_config_form() should be placed here and corresponding changes have to be made in the implementation of hook_menu(). So line #24 to #32 would change to
Line #10 to #16: Implementation of hook_permission(), please include the description, as it makes easy to understand what exactly the permission is for.
In the implementation of hook_form line #50 to #79, include the validation function to validate the user input in the form. Please refer here for more details.
Could you make the following changes and the changes, mentioned in previous comments, as I just executed 'git pull' and none of changes suggested in the reviews were incorporated. Trying to understand the detailed functionality. Will get back soon.
Comment #14
fluffy commentedI have now made the suggested changes.
Comment #15
Rajan M commentedHi fluffy,
Please delete the variables created by your module through hook_uninstall(), everything looks fine :)
Rajan
Comment #16
fluffy commentedAdded the uninstall hook.
Comment #17
a_thakur commentedLooks good, could you add a detailed description to "Presets" form element as right now it just says "Presets".
And you forgot to use t() function in the implementation of hook_permission(). Line #13.
I get this error
"FieldException: Attempt to create a field with a name longer than 32 characters: content_reminder_comment_node_page in field_create_field() (line 74 of /home/ashish/simpletest/modules/field/field.crud.inc)."
when I configure the settings of the module.
Comment #18
a_thakur commentedFind the attached screen-shot which might give you an idea that things that are causing problems(They have been marked in red).
Comment #19
a_thakur commentedHi,
I am not able to understand the use of menu item .module file.
Could you tell us what you are trying to do here.
As when I navigate to suppose: http://example.com/user/autocomplete/content-reminder, I get is a white screen with [] as the only content.
Thanks,
Ashish.
Comment #20
patrickd commentedread about autocomplete here
no reason to set needs work.
Comment #21
a_thakur commentedComment #18 and #17 are still unresolved which break the site when wrong value is selected. I think these have to be worked. @patrickd: please change the status accordingly so that the project application creator can resolve the issue, which I think should be "needs work".
Comment #22
patrickd commentedComment #23
klausiClosing due to lack of activity. Feel free to reopen if you are still working on this application.
Comment #24
fluffy commentedReopening.
Addressed the issues in #17:
- t() in hook_permissions descriptions.
- Presets is now explained.
- FieldException problem is solved by not allowing to add reminders when the field length would be over 32 characters. Disabled those entities and added proper warning messages.
Comment #25
d34dman commentedManual Review
Point 1:
Your autocomplete menu callback is defined to use access arguments as 'accss content' where you are using the menu to retrieve a list of users. See relevant code below.
It is common for an anonymous user to have 'access content' privileges on a site. Thus it is possible to retrieve list of all users registered on the site by crafting url
user/autocomplete/content-reminder/XXX. This might be an unintentional consequence from an admin's point of view. That so much as enabling the module exposes list of users to anonymous users.Please provide a separate permission to access auto-complete callback. You may also want to add a note on about how it would be different from "View user profiles" permission.
Point 2:
Your module give User A power to email ( automated notify ) User B and no way for User B to opt out from receiving ( un subscribe ). This is not a good practice. For pointers look at how Drupal's personal contact form have a check-box on user page to enable it or not. Something similar should be implemented, and i would suggest your menu_callback function should respect these user preferences, and not show user in the list at all. Also you may have to re-check permission before the emails are send too.
Comment #26
d34dman commentedPS: Personally I very much like your module, and am ready to help you. Just let me know how if I could be of any help.
Comment #27
fluffy commentedresponse to #25
Point 1: Added a new permission "Use content reminders", this governs the access to the field and the autocomplete results.
Point 2: I do not agree, the intent of this module to assign notification to people who should be responsible for whatever reason, I would leave it up to each organisation to handle the rules who and why by themselves. It also complicates things, when user decides not receive anymore notifications, there has to be re-assigning flow. I would like to keep it simpler and the addition of permission on who can set notifications also helps here, its not just any user, but user who has been assigned that privilege.
Comment #28
d34dman commentedSounds perfect.
Comment #29
fluffy commentedso can someone set the RTBC?
Comment #30
a_thakur commentedfluffy: will get back..code looks good.
Comment #31
seworthi commentedhttp://ventral.org/pareview/httpgitdrupalorgsandboxfluffy1605508git
I reviewed the code and used http://ventral.org "Project application checklist". Other that items noted above, the module looks ready for RTBC.
Comment #32
seworthi commentedComment #33
fluffy commentedThese were not false positives, fixed.
Added more information.
Removed.
Also today I'm celebrating the 1st anniversary of this thread! may there be many more :) (don't read into this, it's just my own brand of personal humor).
Comment #34
kscheirerIn content_reminder_field_schema(), does defining database-specific types like that actually work? I think you only need the base
'type' => 'datetime'but I'm not certain.Using LANGUAGE_NONE will make some of your text untranslatable - I guess that's not a problem since you'd likely just need 1 language to alert your admins.
On the project page
Each notofication can have it's own text.should beEach notification can have its own text.None of those are major issues though.
Thanks for your contribution, fluffy!
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.
----
Top Shelf Modules - Enterprise modules from the community for the community.
Comment #35
fluffy commentedThank you's for everyone who took the time to participate in this!
I have released this module now: http://drupal.org/project/content_reminder .
Comment #35.0
fluffy commentedthe git url was wrong