The PersonalTube Video Widget lets you display the latest Internet videos that precisely match the topic and theme of your web site, and attract longer, more frequent visits from your audience.

When you sign up with PersonalTube, you get your own video feed widget that you can easily personalize, using a password-protected account on our site.

PersonalTube provides you with exceptional control over the video content, appearance and branding of your widget.
You can personalize the video widget to display the exact kind of videos you want for your web site, using keywords as well as topics.
Our world leading collection of over 300,000 video topics, organized in an intuitive, browsable hierarchy, is wide enough and deep enough to describe almost any concept or subject you select. For precise control, you can also specify the exact videos that should be displayed.

You can also control the colors and size of the video widget to blend in with your web site theme, and personalize the video playback display with your own branding and backlinks.

Once the widget is installed and configured, our servers continuously crawl the Internet, retrieve and rank the latest videos precisely matching your requirements, and automatically display them on your widget.

Engage your visitors, attract return visits and expand your audience and traffic, with a PersonalTube personalized video widget.

To learn more, visit our drupal page. To sign up for a PersonalTube Drupal widget, visit our signup page.

Comments

jthorson’s picture

Status: Needs review » Needs work

Please review the details on the Applying for permission to create full projects page. The application process requires that you provide a link to the code via a sandbox repository hosted here on Drupal.org ... we can not review code downloaded from a 3rd party website.

PersonalTube’s picture

Status: Needs work » Needs review

Hi Jthorson,
Thanks for the reply, Here is my project link http://drupal.org/sandbox/PersonalTube/1170810.

And git info,
PersonalTube@git.drupal.org:sandbox/PersonalTube/1170810.git

Also i am attaching a zip file http://drupal.org/files/PersonalTube.zip.

Regards,
PersonalTube

PersonalTube’s picture

Hi Jthorson,

I would like to get a clarification regarding this issue. As you asked to provide a project link, I have given my project link in my previous comment.

My doubt is, should I resubmit this by creating a new issue ?

Waiting for your reply.

Thanks!

jthorson’s picture

Nope, this issue will be sufficient.

Currently, the backlog in the project application queue is in the neighborhood of 6 weeks. We are diligently working to clear the queue, but it may take a few weeks before someone gets to your application.

In the meantime, I'd suggest visiting the new Tips to ensure a smooth review page, and performing a self-review to ensure that your module meets all of the expectations listed on that page. This will help ensure that, when someone does get around to reviewing your application, they won't flag any issues which will further delay the acceptance of your application.

Thanks in advance for your patience!

attiks’s picture

Status: Needs review » Needs work

I did a quick Coder review to check the Coding Standards, see below.

Severity minor, Drupal Commenting Standards, Internationalization, Drupal Security Checks, Drupal SQL Standards, Drupal Coding Standards

sites/all/modules/personaltube/personaltube.module:
 +2: [normal] Commits to the Git repository do not require the CVS $Id$ keyword in each file.
 +5: [minor] indent secondary line of comment one space 
 +6: [minor] indent secondary line of comment one space 
 +7: [minor] indent secondary line of comment one space 
 +8: [minor] indent secondary line of comment one space 
 +9: [minor] indent secondary line of comment one space 
 +10: [minor] indent secondary line of comment one space 
 +16: [normal] Use an indent of 2 spaces, with no tabs
 +17: [normal] Use an indent of 2 spaces, with no tabs
 +18: [normal] Use an indent of 2 spaces, with no tabs
 +19: [normal] Use an indent of 2 spaces, with no tabs
 +29: [normal] Use an indent of 2 spaces, with no tabs
 +30: [normal] Use an indent of 2 spaces, with no tabs
 +39: [normal] Use an indent of 2 spaces, with no tabs
 +40: [normal] Use an indent of 2 spaces, with no tabs
 +41: [normal] Use an indent of 2 spaces, with no tabs
 +42: [normal] Use an indent of 2 spaces, with no tabs
 +51: [normal] Use an indent of 2 spaces, with no tabs
 +53: [normal] Use an indent of 2 spaces, with no tabs
 +54: [normal] Menu item titles and descriptions should NOT be enclosed within t().
 +54: [normal] Use an indent of 2 spaces, with no tabs
 +56: [normal] Use an indent of 2 spaces, with no tabs
 +57: [normal] Use an indent of 2 spaces, with no tabs
 +58: [normal] Use an indent of 2 spaces, with no tabs
 +86: [normal] Use an indent of 2 spaces, with no tabs
 +87: [normal] Use an indent of 2 spaces, with no tabs
 +88: [normal] Use an indent of 2 spaces, with no tabs
 +88: [normal] Control statements should have one space between the control keyword and opening parenthesis
 +88: [normal] use a space between the closing parenthesis and the open bracket
 +89: [normal] Use an indent of 2 spaces, with no tabs
 +90: [normal] Use an indent of 2 spaces, with no tabs
 +91: [normal] Use an indent of 2 spaces, with no tabs
 +92: [normal] Use an indent of 2 spaces, with no tabs
 +93: [normal] Use an indent of 2 spaces, with no tabs
 +94: [normal] Use an indent of 2 spaces, with no tabs
 +95: [normal] Use an indent of 2 spaces, with no tabs
 +96: [normal] Use an indent of 2 spaces, with no tabs
 +97: [normal] Use an indent of 2 spaces, with no tabs
 +98: [normal] Use an indent of 2 spaces, with no tabs
 +99: [normal] Use an indent of 2 spaces, with no tabs
 +100: [normal] Use an indent of 2 spaces, with no tabs
 +101: [normal] Use an indent of 2 spaces, with no tabs
 +102: [normal] Use an indent of 2 spaces, with no tabs
 +103: [normal] Use an indent of 2 spaces, with no tabs
 +104: [normal] Use an indent of 2 spaces, with no tabs
 +105: [normal] Use an indent of 2 spaces, with no tabs
 +106: [normal] Use an indent of 2 spaces, with no tabs

Status Messages:
 Coder found 1 projects, 1 files, 41 normal warnings, 6 minor warnings, 0 warnings were flagged to be ignored

PersonalTube’s picture

Status: Needs work » Needs review

Hi attiks,

Fixed all the issues and warnings. Please review our code.

Thanks.

attiks’s picture

Status: Needs review » Needs work

There are some minor coder issues, but nothing seriously

Can you rename the variable 'configuration_string' it's a bit to generic, 'personaltube_configuration_string' would be better.

Can you also validate the input on the admin screen, and make sure $array_split = explode('#@#', $configString); returns enough elements

PersonalTube’s picture

Status: Needs work » Needs review

Hi attiks,

Thanks for your suggestions, and now I have made the necessary changes you mentioned, please check it again.

Thanks.

klausi’s picture

Status: Needs review » Needs work

Review of the 7.x branch:

  • ReadMe.txt should be README.txt
  • Remove all old CVS $Id tags from all files, not needed anymore
  • Remove "version" from your info file, this added by drupal.org packaging automatically
  • no need to include license references in the info file, a GPLv2 LICENSE.txt is added by drupal.org packaging automatically. Also in the other files.
  • "array( 'title' => 'Access PersonalTube', 'description' => 'Perform maintenance tasks for PersonalTube', ) );": All user facing text must run through t() for translation. There should be no space before ")".
  • personaltube_menu(): indentation errors, use 2 spaces per level. "array( 'title' => 'personaltube'," this array should be one indentation level deeper.
  • personaltube_block_view(): indentation errors, function bodies should be indented 2 spaces. Please re-visit the coding standards: http://drupal.org/node/318#functdecl
PersonalTube’s picture

Status: Needs work » Needs review

Hi klausi,

Thanks for the review. Fixed all the mentioned changes for both 6.x & 7.x branches.

klausi’s picture

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

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

  • Run coder to check your style, some issues were found (please check the Drupal coding standards):
    Severity minor, Drupal Commenting Standards, Internationalization, Drupal Security Checks, Drupal SQL Standards, Drupal Coding Standards
    
    sites/all/modules/pareview_temp/test_candidate/personaltube.module:
     +4: [minor] indent secondary line of comment one space 
     +5: [minor] indent secondary line of comment one space 
     +6: [minor] indent secondary line of comment one space 
     +7: [minor] indent secondary line of comment one space 
     +8: [minor] indent secondary line of comment one space 
     +9: [minor] indent secondary line of comment one space 
    
    Status Messages:
     Coder found 1 projects, 1 files, 6 minor warnings, 0 warnings were flagged to be ignored
    
  • Lines in README.txt should not exceed 80 characters, see the guidelines for in-project documentation.
  • @file doc block is missing in the module file, see http://drupal.org/node/1354#files .
  • There should be no space after the opening "(" of an array, see http://drupal.org/node/318#array
    personaltube.module:26:  return array('access personaltube' => array( 'title' => 't(Access PersonalTube)', 'description' => 't(Perform maintenance tasks for PersonalTube)', ) );
    personaltube.module:33:  $blocks['personaltube'] = array( 'info' => t('PersonalTube'), );
    personaltube.module:41:  return array( 'admin/config/personaltube' =>
    personaltube.module:42:    array( 'title' => 'personaltube',
    

This automated report was generated with PAReview.sh, your friendly project application review script. Please report any bugs to klausi.

manual review:

  • "return array('access personaltube' => array( 'title' => 't(Access PersonalTube)', 'description' => 't(Perform maintenance tasks for PersonalTube)', ) );": you need tu use t() as function outside of the string.
  • "access personaltube" that permission is not checked anywere, so it is without effect.
  • personaltube_block_view(): The markup in there is vulnerable to XSS attacks. Make sure that you sanitize the variable contents when embedding it. See http://drupalscout.com/knowledge-base/drupal-text-filtering-cheat-sheet-...
  • "'#description' => 'Enter the Drupal Configuration String from your PersonalTube account',": All user facing text must run through t() for translation. Please check all your strings in your module.
PersonalTube’s picture

Status: Needs work » Needs review

Hi klausi,

Thanks for the review.

  • Fixed the 'indent secondary line of comment one space' issue.
  • Made the lines in README.txt not to exceed 80 characters.
  • Included @file doc block in the module file.
  • Fixed spacing issue with an array after the opening "(".
  • Moved the t() outside of the string.
  • Removed "access personaltube" permission implementation.
  • Implemented personaltube_block_view() to avoid XSS attacks.
  • Checked all the strings in our module must run through t() for translation.

Thanks again, looking forward to your feedback.

klausi’s picture

Status: Needs review » Needs work

Review of the 7.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:

  • personaltube_perm(): this function is empty now?
  • "$block_content .= check_url('http://app.personaltube.com/script/personaltube.js');": you don't need to sanitize this, as this is not user provided input. Also elsewhere.
  • "$block['content'] = filter_xss($block_content, array('div', 'script'));": so the filter_xss() call here is useless because the script tag is allowed anyway?
  • "$block_content .= '

    ';": if you want to add javascript to a page you should use drupal_add_js(). Also in the other cases.

  • "$block_content .= 'var PersonalTube_Organization_Name = "' . $array_split[0] . '";';": $array_split is user provided input, so you need to do sanitization here. Please read http://drupal.org/node/28984
  • "'access arguments' => array('administer media personaltube'),": you need to define that permission in hook_perm().
  • "'#default_value' => check_plain(variable_get('personaltube_configuration_string', '')),": no need to use check_plain() here, the Form API sanitizes #default_value for you.
PersonalTube’s picture

Hi klausi,

Thanks for the suggestions,

  • Fixed the bad line endings issue in module file.
  • Removed unnecessary function calls like check_url(), filter_xss() and check_plain().
  • Implemented drupal_add_js() for adding external and inline javascripts.
  • Defined the permission in personaltube_perm() for "'access arguments' => array('administer personaltube')".

Thanks.

PersonalTube’s picture

Status: Needs work » Needs review
PersonalTube’s picture

doitDave’s picture

Status: Needs review » Needs work

Hi,

either you didn't properly check in the update or there was some misunderstanding regarding unix style line endings. When I download your latest snapshot, the module file is still in "Windows" line endings mode (automatted review shows the same result). Please check again and make sure you have configured your editor properly.

Additions:

  • Implementation of drupal_add_js() looks consistent.
  • I would recommend renaming $array_split into something more verbose, like $config_details. This is no must-do, but would ease readability for others and even yourself some day ;))

I think this is not far from "ready to go".

PersonalTube’s picture

Status: Needs work » Needs review

Hi doitDave,

Sorry for the "Windows" line endings issue, now I resolved that issue, made to unix style line endings.

Also renamed $array_split variable to $configString_details, thanks for the suggestion.

doitDave’s picture

Status: Needs review » Needs work

Hi,

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

  • Run coder to check your style, some issues were found (please check the Drupal coding standards):
    Severity minor, Drupal Commenting Standards, Internationalization, Drupal Security Checks, Drupal SQL Standards, Drupal Coding Standards
    
    sites/all/modules/pareview_temp/test_candidate/personaltube.module:
     +6: [minor] There should be no trailing spaces
     +59: [minor] There should be no trailing spaces
     +75: [minor] There should be no trailing spaces
    
    Status Messages:
     Coder found 1 projects, 1 files, 3 minor warnings, 0 warnings were flagged to be ignored
    
  • All text files should end in a single newline (\n). See http://drupal.org/node/318#indenting
    ./personaltube.module ./personaltube.info ./README.txt
    

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:

  • I consider the line endings as minor and non-blocking. You should nevertheless remove them for perfection's sake ;)
  • Linebreak at file ending is a false positive as I find them in the latest 7.x snapshot.
  • The comments section in the .info file is not needed. Also I doubt that the (c) notice complies with the GPL that your module will be released under. ;)
  • Same for the copyright notes in .module file.

BUT! Sorry to not have seen that before - some issues remain in the other branches:

Master branch: You should clean it up so there remains none but the readme file that instructs anyone to check with one of the major release branches.

Tags: AFAIK, the are not used unless you really create releases in a full project; IMO they should also be removed.

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 6.x-1.x:

  • Comment section in the info file and copyright notices: See 7.x branch remarks.
  • You should fix all issues mentioned for the 7.x branch (e.g. drupal_add_js) accordingly.

Sorry again for not looking at that sooner. But I think these are all minor things that you will have fixed soon so I personally do not see much left on the way :)

HTH, dave

klausi’s picture

No, the linebreaks at the end of a file (one single new line) are not a false positive. They are defined in the coding standards:

All text files should end in a single newline (\n). This avoids the verbose "\ No newline at end of file" patch warning and makes patches easier to read since it's clearer what is being changed when lines are added to the end of a file.

doitDave’s picture

Hi klausi, I did not mean that the requirement is wrong. I never would ;)

But there is *some* strange issue with that point. Just download a snapshot from the repo viewer in the cases where I've marked "false positive (IMO)". When I check control samples, there definitely *are* \n at the file's end. Strange enough, this is not always the case; sometimes the complaint is correct. Of course I cannot judge this for sure, neither the causes if there are any.

Perhaps we can get together aside from here to verify the reason? I installed the script exactly by your instruction page. Of course it may be that there remains some misconfig on my side. Whatever. Just drop me a line/pm? :) Cheers!

PersonalTube’s picture

Hi doitDave,

7.x-1.x branch:

  • Fixed issue with "trailing spaces".
  • Removed comments section in the .info file.
  • Converted all files to unix style line endings.

Cleaned up the Master branch and added only README.txt file.

6.x-1.x branch:

  • Fixed all issues mentioned for the 7.x branch.
  • Also completed the same tasks, mentioned in the above 7.x-1.x branch.

Thanks for your support and suggestions.

jthorson’s picture

Status: Needs work » Needs review

Remember to update your issue status after posting changes. :)

doitDave’s picture

Status: Needs review » Needs work

Hi,

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.

So still finding the CLRF issue in the 6.x-1.x branch, forgot to commit? Also IMO you should clean the existing tags in the repo.

HTH, dave

PersonalTube’s picture

Status: Needs work » Needs review

Hi Dave,

Sorry for inconvenience with repeated mistakes on unix style terminators, fixed it now. And also I used to provide a single newline (\n) at the end of all text files[as drupal coding standards], but last line had always been removed by my windows editor. Just noticed this issue and fixed it.

Removed the existing tags from the repo.

Thanks for your wonderful support.

doitDave’s picture

Status: Needs review » Needs work

Hi,

aside the line endings, no more issues found in the automated review. Except for the line endings issue that I consider inconsistent (also, newlines exist).

Looking manually:

Uninstall routine:
You set up Drupal variables, but do not clean them up on uninstall. That should be fixed in an install file.

Security:
At first I was uncertain whether the implementation of the config string would leave some backdoor for XSS, but I didn't find a way to bypass check_plain() as it is used here. So this looks ok.

Coding standards:
There are @author and @copyright infos in the @file docblocks. AFAIK, they should be removed, but I leave this up to someone else to clarify.

Other (just thinking out loud, please may also someone knowing better object to this):
The way you add JS. I am aware that D6, other than D7, has no "official" syntax for adding external scripts. You are aware as well, your code shows that. For D6, drupal_html_head() could be a better choice (see e.g. http://drupal.org/node/91250). But please take this just as a note from me, I really cannot judge it as a reviewer yet.

Edit: Found no other remains.

PersonalTube’s picture

Status: Needs work » Needs review

Hi Dave,

Implemented Drupal variables clean up on uninstall in install file.

Removed @author and @copyright infos in the @file docblocks.

As you said for adding JS in D6, drupal_html_head() is a better choice, but it has no option in order to specify JS loading as like drupal_add_js() in D7 has 'weight' attribute. So only I used inline option to write JS in drupal_add_js().

Thanks.

doitDave’s picture

Status: Needs review » Reviewed & tested by the community

Ok, looks good for me now.

  • Found no security issues
  • No coder issues except (IMO) false positives on missing newlines
  • Clean comment blocks.
  • No 3rd party code included.

Only remain, please may someone re-check this:

Copyright notice in all files - compatible with GPL? If not, please re-set to "needs work" and make a statement, I couldn't find documents on this.

klausi’s picture

Status: Reviewed & tested by the community » Needs work

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

  • Drupal Code Sniffer has found some code style issues (please check the Drupal coding standards):
    
    FILE: ...al-7/sites/all/modules/pareview_temp/test_candidate/personaltube.module
    --------------------------------------------------------------------------------
    FOUND 5 ERROR(S) AND 2 WARNING(S) AFFECTING 7 LINE(S)
    --------------------------------------------------------------------------------
      38 | WARNING | Last item of an inline array must not followed by a comma
      78 | ERROR   | Variable "configString" is camel caps format. do not use mixed
         |         | case (camelCase), use lower case and _
      79 | ERROR   | Variable "configString" is camel caps format. do not use mixed
         |         | case (camelCase), use lower case and _
      80 | ERROR   | Variable "configString" is camel caps format. do not use mixed
         |         | case (camelCase), use lower case and _
     104 | WARNING | Line exceeds 80 characters; contains 81 characters
     107 | ERROR   | Variable "configString" is camel caps format. do not use mixed
         |         | case (camelCase), use lower case and _
     108 | ERROR   | Variable "configString" is camel caps format. do not use mixed
         |         | case (camelCase), use lower case and _
    --------------------------------------------------------------------------------
    

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:

  • personaltube_perm() in 6.x-1.x: this hook has to return a simple array of permission strings only in Drupal 6.
  • remove the copyright information from the file headers, you can give credit in README.txt

Otherwise I also think this is nearly ready.

PersonalTube’s picture

Status: Needs work » Needs review

Hi klausi,

Thanks for review.

  • Fixed the warnings and camelCase issue with "configString" variable.
  • Modified the personaltube_perm() to return a simple array of permission stings.
  • Also removed copyright info from module file and updated in README.txt as credit.

Thanks again.

doitDave’s picture

Hi, did you just forget to remove the copyright notice in some files except readme or is there a deeper background?

Just to make sure, are you aware that everything you publish here will be explicitly subject to GPL?

PersonalTube’s picture

Hi Dave,

I have forgotten to remove the copyright info from the install file. Now I removed it.

Thanks.

doitDave’s picture

Status: Needs review » Needs work

Hi,

Coding standards
Now looks clean, no more warnings in drupalcs.
hook_perm() (D6 branch), ref. #29
You really only provide bare english strings, one per permission, all embedded in a flat array. Please do check again with the D6 api docs.

This should be all IMO.

PersonalTube’s picture

Hi Dave,

Thanks for the review on Coding standards, which does not have issues.

But I am not clear, what to do with hook_perm() (D6 branch). Can you please help me what and how to fix the permission issue.

Thanks again.

doitDave’s picture

Hi, this is really easy (see here): Just return array('funny permission identifier'); if you have only the "funny" permission.

hth,
dave

PersonalTube’s picture

Status: Needs work » Needs review

Hi Dave,

As your advice, resolved the issue with hook_perm() of returning array for D6.

Thanks.

doitDave’s picture

Status: Needs review » Reviewed & tested by the community

Found no more issues; drupalcs/coder are clean and anything else has already been discussed and solved.

klausi’s picture

Status: Reviewed & tested by the community » Fixed

Thanks for your contribution, PersonalTube! Welcome to the community of project contributors on drupal.org.

I've granted you the git vetted user role which will let you promote this to a full project and also create new projects as either sandbox or "full" projects depending on which you feel is best.

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.

As you continue to work on your module, keep in mind: Commit messages - providing history and credit and Release naming conventions.

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