This module allows Sailthru clients to integrate the service into their Drupal 7 installations seamlessly. It overrides all mail sent via Drupal to pass through Sailthru as well as allowing easy configuration of the Sailthru service by injecting the necessary Javascript files into the page.
It also provides blocks for Sailthru recomendations and quick and easy signup forms for capturing email newsletters.
Testing will require a Sailthru API key, which of course may provide some issues in testing. If it becomes a major road block in approval let me know and I'll figure something out
Developed for Drupal Version 7.x
Sandbox page: http://drupal.org/sandbox/nickgundry/1909942
Review bonus program:
http://drupal.org/node/1924776#comment-7165426
http://drupal.org/node/1956202#comment-7253010
http://drupal.org/node/1945952#comment-7253122
| Comment | File | Size | Author |
|---|---|---|---|
| #13 | coder-results.txt | 2.51 KB | klausi |
| #11 | issue-tags.png | 24.75 KB | klausi |
Comments
Comment #1
abhijeetkalsi commentedHi,
first of all there are quite a few issues to sort out such as indentation, whitespace.
You can find them all here:
http://ventral.org/pareview/httpgitdrupalorgsandboxnickgundry1909942git
Here you can check source code whether it meets drupal coding standards or not, and advise you what to change in your code. You can repeat review after your commits, and can fix those errors.
Comment #2
nickgundry commentedHi Abhijeet,
Thanks for the feedback. I've fixed the errors that are not in the files related to the Sailthru Client Library (in the lib directory). This library is a standard library distributed by Sailthru and so it may follow different coding standards.
I'm not sure on the best practice for third party libraries and Drupal coding standards, as this is my first module. Is there any guidance or can they be flagged as external libraries?
Thanks in advance.
Comment #3
abhijeetkalsi commentedHi nickgundry ,
Your are right, we can not alter 3rd party code/ libraries.
If Sailthru Client is external Library, Then do not put its code in your module. Library folder provided by drupal (eg: sites/all/libraries) is used to hold 3rd party libraries. Provide the option to user to download Sailthru library in sites/all/libraries.
Check the Sailthru library existence using Library API module which is used to handle 3rd party library and also check it in hook_requirements()
Comment #4
nickgundry commentedThanks for the tip.
Comment #5
klausiWe are currently quite busy with all the project applications and I can only review projects with a review bonus. Please help me reviewing and I'll take a look at your project right away :-)
Comment #6
ankitchauhan commentedyou can find coding style issue generated by automated review program. please fix them and as @klausi recommend to get a review bonus so we can come back to your application sooner.
Comment #7
nickgundry commentedCode standards fixed and made some changes to the code to handle Sailthru configuration. Will review some other projects as soon as I can and add them to my profile. Thanks @ankitchauhan
Comment #7.0
nickgundry commentedAdded review bonus link
Comment #8
nickgundry commentedPAReview: review bonus
Comment #9
klausiDon't forget to add the "PAReview: review bonus" tag as indicated in #1410826: [META] Review bonus, otherwise you won't show up on my high priority list.
Comment #10
nickgundry commentedI''ll be honest I'm a little confused by the tag. Where do I add this? It says in the review are
"PAReview: review bonus" (this can only be done via a comment).
Thanks
Comment #11
klausiuse the Tags fieldset in the comment form.
Comment #12
nickgundry commentedAha! Thanks. Added.
Comment #13
klausiReview of the 7.x-1.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.
manual review:
'#markup' => t('<p>Scout is a powerful recommendation engine that, when applie": HTML tags should be outside of t() where possible.Removing review bonus tag, you can add it again if you have done another 3 reviews of other projects.
Comment #14
nickgundry commentedHi @klausi,
I've made the changes you requested and updated the repo, thanks for the tips. There's a couple of warnings in the parreview tool regarding strings and using t() but I think it makes sense to leave it as is. Let me know what you think.
Thanks
Comment #15
PA robot commentedClosing due to lack of activity. Feel free to reopen if you are still working on this application.
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #16
hefox commentedMy uess is nickgundry should have set this back to needs review in comment 14?
Comment #17
hefox commentedmore standard:
I'm not reviewing, I just need something with sailthru... in drupal 6.. and was evaluating if backporting this would be useful (nope, doesn't do what I need)
Comment #18
kscheirerWhew! I know there's a lot of things in the list below, but this look like a great start to make sailthru integration easy, thanks! Most of the below is about using the Drupal API instead of creating your own functions or manual process. You're not required to fix everything below, but not using the Drupal API is a blocking issue. Also, thanks for re-opening this hefox.
if (function_exists('libraries_get_path')) {orfunction_exists('taxonomy_get_vocabularies')since Libraries and Taxonomy are already dependencies - you can count on them being enabled by the time your code executes.$stin sailthru_get_client()? Doesn't look like it's used anywhere.$_sailthru_loaded = FALSE;in 4 places. Or how aboutSimilarly with the if/else blocks at the end, you can use
No need to set true/false manually when you've already evaluated them.
user_subscribe_listin sailthru_block_info()? Did you mean sailthru_user_subscribe_list?$has_list != 0 || $has_list != ''you can use empty(), which will return false for both of those cases.if ($is_admin)statements that should be combined.switch ($concierge_enabled)- it's a boolean, so there's only 2 possibilities. Use an if/else instead?$form_state['values']to retrieve the entered data.----
Top Shelf Modules - Crafted, Curated, Contributed.
Comment #18.0
kscheirerAdded new reviews for the review bonus program
Comment #19
PA robot commentedClosing due to lack of activity. Feel free to reopen if you are still working on this application (see also the project application workflow).
I'm a robot and this is an automated message from Project Applications Scraper.