Closed (fixed)
Project:
Drupal.org security advisory coverage applications
Component:
module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
23 Nov 2010 at 12:44 UTC
Updated:
22 Nov 2023 at 11:51 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
open social commented1. Block test module
We can variate different blocks to users based on a previous set Google Analytics cookie with custom variables. Based on this test we can decide which block performs better and improve the usability/conversions on our websites!
See presentation: http://www.slideshare.net/taccie/drupal-block-test-module-diner-with-drupal
2. Cleeng
Great module to solve the content monetization issue, please see the presentation on:
http://www.slideshare.net/Cleeng/cleeng-private-beta-presentation
Comment #2
drupalshrek commentedHello,
Only one module is reviewed as part of the CVS application process. By the time you've got through, you're OK to go...
Therefore, please state which module of these two you would like to be reviewed.
Comment #3
open social commentedThe Cleeng module is the one most attention goes to right now.
Comment #4
drupalshrek commentedHi,
I had a little look.
A few things for now:
a) The code (I guess) is great, but when you are submitting to the community it is so that other people can use it, so it needs both great documentation for end users and for other coders. Please add:
i) a README.txt (full guidance for users of your module)
ii) documentation for every function (full guidance for programmers wanting to change your module)
b) Install and run Coder module against the code:
Coder found 1 projects, 6 files, 543 normal warnings
See you later!
Comment #5
open social commentedHi,
Hereby version two of our Cleeng module to apply for CVS access.
Looking forward to your reply.
Many thanks in advance!
Comment #6
avpadernoHello, and thank you to apply for a CVS account.
As per requirements, the motivation needs to include a list of module features (more than two sentences), and a comparison with the existing solutions.
Comment #7
open social commentedsee #9 + 10
Comment #8
open social commentedsee #9 + 10
Comment #9
open social commentedPlease check the latest version of Cleeng module and grant us CVS access.
Management Summary - Cleeng module
Watch this video of the Cleeng Drupal module at work: http://screencast.com/t/QacXjnQmn9fT (4:30 min)
Cleeng Introduction
Cleeng.com is a huge new opportunity for content monetization. Monetization describes the process of generating revenue from online content. Usually content owners and publishers (such as bloggers) focus on a single revenue stream - often advertising, download sales or paid subscriptions. With Cleeng, publishers can do so by monetizing per article. It will work on any connected devices and it is suitable for any content type (text, images, video etc.).
Cleeng Intro Video: http://vimeo.com/17094725 (2 min)
Drupal module installation
1) Install Drupal
2) Install jQuery UI module - http://drupal.org/project/jquery_ui
3) Install Cleeng module (attached zip)
4) Create content, log in to Cleeng and Cleeng it!
5) Save
6) Sit back, relax and get rich of all people buying your amazing content!
*optional*
7) Install WYSIWYG module - http://drupal.org/project/wysiwyg
8) Add Ckeditor files to sites/all/libraries
After installing and setting up the module we create a new node. In this node we select content a use the Cleeng widget to send the content to Cleeng. When publishing the node, the selected content is not directly viewable. A Cleeng message is displayed where we can buy content, login or create a new account. Once purchased the user can always see this content. It is even being saved in his Cleeng account.
The Drupal widget is straightforward: Select content, press Cleeng and save the node. The module currently supports the basic HTML editor, CKeditor, FCKeditor and TinyMCE.
CVS access
Cleeng.com is still in pre-launch beta phase, we would like to continue development using community feedback and CVS for structural development.
Many thanks in advance,
Taco
Comment #10
open social commentedHereby the latest build.
What else should we do to gain CVS access?
Many thanks in advance,
Taco
Comment #11
open social commentedDave / Kiam, could you please grant us CSV access?
Many thanks in advance,
Taco
Comment #12
open social commentedDave / Kiam, could you please grant us CVS access?
Many thanks in advance,
Taco
Comment #13
drupalshrek commentedAh, yes, it's slow in the queue here. I don't think there's anything particularly more to do. Just wait for one of the few people going through the queue to reach your issue in the list again (e.g. kiamlaluno). I don't think making the task "critical" is going to help; your application is, I think, no more urgent than all the others in this queue.
Comment #14
open social commentedWell, we need to take a good look at the current system. As a community we want people to get involved right? This is taking way too long. The Wordpress module already has 100 beta users, we have 0 since our module is not out there.
We are now talking to someone who already has CVS access (it was granted to him in the old days, when no review was required) so we can at least publish the module, but not under our name. We do not like this alternative, but we cannot afford (for our clients) getting stranded in bureaucracy..
Comment #15
avpadernoThose lines needs to be removed.
t().There is a Drupal function that should be used to load PHP code from a file.
Those lines are not actually defining constants, but dynamic values. Putting that code outside any functions could create problems, in some cases. It is probably better to put it inside
hook_init().Form field titles should be in sentence case.
The
t()-placeholder for URLs doesn't start with!.The code is outputting HTML without to use a theme function.
All the strings that are used in the user interface need to be passed to
t(); this includes also the string used for the title attribute.Instead of concatenating strings, it would be better to use a single string passed to
t(), and use the right placeholders.The
<a>tag is empty, though. I don't think the user is going to see anything in the page.Form fields should be generated through the form API. I am not sure it's safe to generate them as the code does.
What is wrong with that code (except that
$result === FALSEcould be probably be simplified)?SQL reserved words should be written in upper case.
Why isn't the code using
drupal_write_record()?In a Drupal module,
ob_start()andob_clean()are generally not directly invoked.The code seems to not correctly use a Drupal template. Why isn't it using a theme function?
PHP exceptions are handled only on PHP5, while Drupal is compatible with PHP4; if the module depends from PHP5, it should report this dependency.
There is a Drupal function to use instead of
header().The function
json_encode()is only present on PHP5, while Drupal 6 is still compatible with PHP4.print_r()is normally used as debugging function; I am not sure that outputting the value returned from a method through that function has any purpose, if not helping the debugging. As reported by the requirements, any debugging code should be removed from the code that is used in a CVS application.Before
exit(), the code should invokemodule_invoke_all('exit').Comment #16
open social commentedDear Kiam,
Thanks for your reply! We have updated the module. Please see the attachment and comments bellow:
#1. fixed
#3. fixed
#4. Could you let me which function can be used? (Actually, the functions I used are also widely used in other modules, such as apachesolr, http://drupal.org/project/apachesolr)
#5. fixed
#6. Sorry, I do not understand what you mean by "sentence case"
#7. I checked the function t() in common.inc, but I did not any rules about which token should be used for URL
#8. fixed with t()
#9. fixed the empty tag is used by Javascript in browser.
#10. The form is not a standard Drupal form, it can not be generated by Drupal form API
#11. I do not understand what's wrong with the code
#12. fixed
#13. there is no need to use the theme API
#14. added the PHP5 dependency
#15. added the PHP5 dependency
#16. fixed
#17. fixed
Comment #17
arianek commentedHi. Please read all the following and the links provided as this is very important information about your CVS Application:
Drupal.org has moved from CVS to Git! This is a very significant change for the Drupal community and for your application. Please read the following documentation on how this affects and benefits you and the application process:
Migrating from CVS Applications to (Git) Full Project Applications
Comment #18
open social commentedMoved to:
http://drupal.org/sandbox/goalgorilla/1089090
Comment #19
bertboerland commentedloom all good to me, could an admin give this thumbs up to get the module out of the sandbox and in to module repo?
Comment #20
jthorson commentedMissed a couple of steps as listed in Migrating from CVS Applications to (Git) Full Project Applications ...
- Moving the issue to the proper application queue
- Updating title
- Updating status to 'needs review' (Please note that, as outlined in the Application Workflow section of http://drupal.org/node/539608, the application should be set to 'needs review' after addressing any issues flagged by reviewers.)
Comment #21
klausi* README.txt contains new line errors with '\r'. Use unix line endings ('\n').
* Remove the old $Id CVS helpers
* missing doc block on hook_init()
* why is there a template in cleeng.form.inc?
Comment #22
open social commentedHey, We have updated the module, could someone please review?
It is an rewrite where we fixed some issues: using formapi and hook_theme
Comment #23
sreynen commentedSounds like this needs review. goalgorilla, in the future, make sure to change the status so issues don't get lost.
Comment #24
greggleshttp://drupalcode.org/sandbox/goalgorilla/1089090.git/blob/refs/heads/ma... doesn't seem like it can be distributed - can you read the policy and comment on where the file can be downloaded? The same seems to be true for a lot of the files in the js directory. Similarly it would be good to clarify the source of all images in http://drupalcode.org/sandbox/goalgorilla/1089090.git/tree/refs/heads/ma... to confirm they are licensed properly and can be included in drupal.org's git repository. Overall a lot of the code and images seem like they are 1) questionable license to be re-licensed as GPL v2+ 2) 3rd party code which is available from elsewhere and should not be committed to drupal.org's git.
Is there ever a need to configure these values:
<?
543 'clientId' => 'b200b11ba9de',
544 'clientSecret' => '9bb7b4e124549905585e',
?>
drupal_http_build_query should be wrapped in "if (function_exists('drupal_http_build_query')) {" to prevent collisions in case some other module has also declared that function.
You should remove the "version = "6.x-1.0"" from your .info file. That will get added by the packaging script.
I'm slightly concerned about potential for CSRF in cleeng_callback and cleeng_ajax_request since they both deal with $_GET/$_REQUEST parameters directly. It seems like this is the same code you use elsewhere and nothing Drupal specific so I'll trust that you've dealt with that issue, but it could be good to doublecheck.
Comment #25
open social commentedHey Greggles,
Thanks for reviewing the code!
Thanks again for reviewing, I will try to update the module as soon as possible.
Greetings Daniel, GoalGorilla
Comment #26
open social commentedThe included jQuery plugins are:
ZeroClipboard
- It is licensed under MIT, I will remove it from the package and give instructions in the install
fieldSelection
- I am waiting for a reply from the coder.
selectToUISlider
- Dual Licensed MIT and GPL V2 (filamentgroup.com/examples/gpl-license.txt)
charCount
- Also dual licensed MIT and GPL (The source mentions a license file but it is not there so I don't know the version) I am waiting for a reply from the coder
Comment #27
sreynen commentedHi goalgorilla,
Licenses on 3rd party files is only the first question. The policy outlines the rules, but in general, 3rd party libraries are not allowed to be hosted on Drupal.org if they can possibly be downloaded from a more original source. One reason for this is the high likelihood of conflicts between different modules directly including the same files. For example, if the Zero Clipboard module included those files, anyone trying to run both modules would have errors. The preferred solution to this is the Libraries API, which helps different modules check for the presence of any necessary 3rd party libraries in a central location.
In short, you should remove all of those files and instead include them via the Libraries API and/or download instructions.
Comment #28
open social commentedHey sreynen and greggles
I have updated the module.
I have removed the libs in the module. Added a readme with all the links to download them.
And I added libraries API support
I will make a drush command to download them, makes it a bit easier.
So I fixed the issues I think.
Please let me know if I still need to fix things.
Kind regards Daniel Beeke, GoalGorilla
Comment #29
gregglesUpdated status - be sure to set it back when you feel it needs review.
Comment #30
klausiComment #31
open social commentedHey klausi and all other reviewers,
Thanks for reviewing the module
I have removed the third party php file. Changed the readme so users can find the file.
I think I have fixed the new line encoding. But I am not sure. I have used http://my.opera.com/wpost/blog/dos2unix-bluefish. Do you have a tip how I can check it?
I have removed the hook_init and changed the comments.
About the hardcoded password:
Yes, those variables are used for tracking the use of the specific module version on the cleeng platform. So when we release a new version of the drupal module we will updates those as well.
Also I have made a git branch
I hope that this fixes the issues. Let me know if there is more to be changed.
Kind regards Daniel Beeke, GoalGorilla
Comment #32
klausiReview of the 6.x-1.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. Please report any bugs to klausi.
manual review:
Comment #33
open social commented@Klausi
I have updated the module. No errors anymore in coder.
When I git clone the module it comes in a folder cleeng_content_monetization, is it possible to rename that to cleeng.
I hope it is all good now
Kind regards Daniel Beeke, GoalGorilla
Comment #34
doitDave commentedHi goalgorilla,
here's the latest automated review with pareview:
Review of the 6.x-1.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. Go and review some other project applications, so we can get back to yours sooner.
Manual review:
$variables['message'] = t('Probably you have changed from sandbox to live. Please ' . l('relink your account', 'user/' . $user->uid . '/cleeng', array('attributes' => array('target' => '_blank'))) . '. Also Cleeng content from the sandbox can not be used on the live server so you have to delete the cleeng items and make them again.');should be
$variables['message'] = t('Probably you have changed from sandbox to live. Please <a href="@url">relink your account</a>. Also Cleeng (...)', array("@url" => url('user/' . $user->uid . '/cleeng')));as this avoids lots of negative side effects in subsequent translation processes . Also note that I did not omit the "target" attribute by accident as it is not compliant with XHTML strict. Re-consider how important standard compliance is for you, otherwise you would add your attributes array the same way as in l().
Ok, so much for now. Hope you find it helpful!
-dave
Comment #35
doitDave commented(status)
Comment #36
open social commentedHey Dave, thanks for reviewing.
Okay, I have checked with PAReview.sh
This automated report was generated with PAReview.sh, your friendly project application review script. Go and review some other project applications, so we can get back to yours sooner.
I have used my editor to convert the lines and I also used flip -u on each file. It should be good I think.
I have read the documentation (again). I have removed the master branch files as described in the link you gave, thanks!
Comment #37
doitDave commentedHi,
Automated review (Please keep in mind that this is primarily a high level check that does not replace but, after all, eases the review process. There is no guarantee that no other issues could show up in a more in-depth manual follow-up review.)
Review of the 6.x-1.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. Go and review some other project applications, so we can get back to yours sooner.
Additions/manual review:
OK, so much for the moment. HTH and if I can be of assistance, just let me know :)
Comment #38
open social commentedHey doitDave!
Thanks for the quick reply. I have run PAReview again. (Fixed some little issues in the tool. For drupal 6 the coder command is 'coder' and in a multisite the tool doesn't work.)
Review of the 6.x-1.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. Go and review some other project applications, so we can get back to yours sooner.
Okay, the automated review seems clean now. I have removed the clear cookie function. It is not needed anymore. I have fixed the message. I have read the document about translating and I understand why to include a little html markup in the string.
The sandbox is when you are testing cleeng. I fixed it so it shows only to the user 1.
I hope all is good now.
Kind regards, Daniel
Comment #39
open social commentedstatus
Comment #40
doitDave commentedHi, I have just installed the most recent versions of drupalcs and pareview. There is currently much evolving with those. I have attached the results.
Coder should always be run in the D7 version, as it is common sense that most recent coding standards should also apply to new D6 related projects (and yes, anyone knows that hardly any existing D6 stuff does ;)).
HTH for the moment, dave
Comment #41
doitDave commentedComment #42
open social commentedHey
I have reviewed using coder 7-x and drupalcs and corrected style errors.
There is one style error in coder.
But this is no problem. The variable is sanitized.
Please review.
Kind regards Daniel Beeke, GoalGorilla
Comment #43
doitDave commentedHi, I just tried to find this line 62 you refer to in the repo viewer, but couldn't - in which file is that so I can check?
Thx, dave
Comment #44
open social commentedit's about cleeng.account.inc
and then about $form['information']
Greetings Daniel
Comment #45
doitDave commentedThanks for clarifying! ("Line 62" irritated me, as it's now in line 25.)
Ok, will do another check asap.
Comment #46
open social commentedno, It is line 62. Coder gives the warning about the whole form. But if you change line 25 the error goes away.
Thanks!
Comment #47
doitDave commentedSounds really strange. Ok. Maybe someone else can check before I can; too busy atm.
Comment #48
open social commented@doitDave
The warning is about variables that are put into a form element which value is markup. If you have a form and put like
then $var needs to be cleaned. It seems coder doesn't scan very good for that. The input is clean is has never been user input. The '$var ' in the cleeng module can be two things. Or it has some links ($publisher and $login) these links are clean. Or it is a user image. The userimage comes from the cleeng platform.
I hope this clears the issue for you.
Kind regards Daniel Beeke, GoalGorilla.
Comment #49
open social commentedHey,
We have been working on this module for a very long time. (This thread was started at November 23, 2010 at 1:44pm)
If someone has the time to review, and wants to quickly contact me it can on skype username: danielbeeke or send an email to daniel<-AT->goalgorilla.com
Kind regards Daniel Beeke
Comment #50
jthorson commentedJust soliciting confirmation on a few items from previous reviews before marking this as ready ...
From Comment #15:
#5: Does not appear to have changed, but was marked as 'fixed'
#6: 'Sentence Case' refers to only capitalizing the first word of the phrase, not all the words. (Rather minor item, in my opinion.)
#8: You state you've added the t(), but have you considered adding a theme function so that themers can override the output?
#11: I have to admit ... the "If false, do x, else if not true, do y, else do z" logic confused me ... I'd suggest that an 'If true, else if false, else x' ordering of the logic might make it easier for people to follow. (Just a suggestion, not a requirement!)
From Comment #24:
Do you have an answer regarding the potential for CSRF attacks?
From Comment #33:
When you use the git clone command, you can specify the target directory as an argument following the 'git clone' command ... also, when a sandbox is promoted to a full project, you are given an opportunity to change/set the permanent shortname for the project at that time.
On a side note, I just wanted say thanks for your dedication, patience, and persistance with this application ... it's certainly earned my respect and appreciation!
Comment #51
open social commentedHey jthorson,
Thanks for reviewing.
From Comment #15:
#5: Does not appear to have changed, but was marked as 'fixed'
See http://drupal.org/node/979624#comment-5151574 Klausi told me to put it outside the functions.
#6: 'Sentence Case' refers to only capitalizing the first word of the phrase, not all the words. (Rather minor item, in my opinion.)
I fixed this issue, and searched for more
#8: You state you've added the t(), but have you considered adding a theme function so that themers can override the output?
Yes, the output of cleeng protection layer goes through a template via hook_theme.
#11: I have to admit ... the "If false, do x, else if not true, do y, else do z" logic confused me ... I'd suggest that an 'If true, else if false, else x' ordering of the logic might make it easier for people to follow. (Just a suggestion, not a requirement!)
I have checked this issue and it looks like it is because the variable the cleeng platform returns.
From Comment #24:
Do you have an answer regarding the potential for CSRF attacks?
Yes, this is checked. The worst potential attack, I think, would be that someone clicks on a link or something and buys a lot of items. But this can not be automated. The platform comes in between with a confirmation popup. It is not possible to inject javascript to click on a button again in that popup.
From Comment #33:
When you use the git clone command, you can specify the target directory as an argument following the 'git clone' command ... also, when a sandbox is promoted to a full project, you are given an opportunity to change/set the permanent shortname for the project at that time.
Okay that is good to hear.
Thanks again for reviewing. I would be really happy when it is finally a full project.
Kind regards Daniel, GoalGorilla.
Comment #52
open social commentedstatus
Comment #53
jthorson commentedOkay ... i still see a few minor coding standards violations (such as '}' not being on a seperate line inside your try/catch structures, and extraneous */ tags on the end of your inline comments), but nothing major.
I'm not thoroughly familiar with the code, but based on a quick review, and considering both the number of individuals who have viewed it and your assurances that the potential for CSRF is not a concern, let's set this one as ready and see what happens. :)
Comment #54
avpadernoComment #55
open social commentedA big thanks to all reviewers!
http://drupal.org/project/cleeng
Kind regards Daniel, GoalGorilla
Comment #56
bertboerland commentedcongrats! hard step to get first module in but then again, best quality
Comment #57.0
(not verified) commentedneeds sandbox, not cvs
Comment #59
avpaderno