CVS edit link for mikegfx

My name is Michael Lander and I'm a Web Developer based out of Denver, Colorado. I've been doing Web Design and Development for over 10 years now, of which, 2 have been spent using Drupal. I attended my first DrupalCon in San Fran, and talked with many of the more notable contributors to the community. After talking with a few of the guys at Development Seed, they told me how they generally develop custom modules for client work, but often look to see how the work can be contributed back to the community in the process.

I brought this mentality to some of the recent modules I've wrote for my own employer. The first module that I would like to contribute is a smaller helper module for 'Contexts'. It is called 'Context Keywords', and allows developers to trigger contexts based on the keywords someone searched in a search engine upon visiting your site. There is a module called 'Google Keyhaviour' that aims for a similar purpose, however my module is different because it is focused solely around 'Contexts'. The referrer URL is stored in a session, and then the keywords can trigger context throughout the session so that it is not limited to the landing page. The module is %100 finished, though I'm sure there is always room for improvement.

The second module I will be contributing after this one is a module that returns the last url a user visited before filling out a 'webform'. This allows for much more precise tracking with google analytics and adwords campaigns as the analytics code is able to retrieve the last visited path. From this you can easily compare which pages are most effective at converting users. This module is also 100%, however I'll likely wait until the first project is up before I look to the second.

I appreciate your time.
- Michael Lander

Comments

michaellander’s picture

StatusFileSize
new8.15 KB

Attached module. *Sets to Drupal 7 critical*

michaellander’s picture

Status: Postponed (maintainer needs more info) » Needs review
avpaderno’s picture

Status: Needs review » Needs work

Hello, and thank you for applying for a CVS account.

Did you open a feature report for Contexts to add the features present in the proposed module in the existing project? Is there a reason the additional features should not be part of the existing module?

michaellander’s picture

Status: Needs review » Needs work

Hi!
I did not as there was already a feature request made by someone else about it.

The topic can be found here: http://drupal.org/node/885072

Context was created to be extremely pluggable. One if it's greatest assets is that users can pick and choose the context add-ons they need to achieve their goal. As more our built, it is desired that the user be able choose only the ones they need instead of just giving the users all of them as many they won't need. The other module that was recommended deals solely with reactions and to me seems out of scope. I don't think we should merge a module focused on user experience based on keyword conditions into another module that is used to set a http header reactions. There is no real overlap in the code even.

There are numerous modules out there that contribute very specific reactions or conditions to context, and again, I believe it's what makes context such a powerful tool.

Examples:
Context PHP
Context Menu Block
Context Reaction Theme
Context HTTP Headers
Context OG
Context Add Assets

michaellander’s picture

Status: Needs work » Needs review

Forgot. :/

brianV’s picture

Hello, and thank you for submitting a CVS application.

Before your module or theme is reviewed, I would like to present this checklist which covers 90% of the types of errors that reviewers are forced to reject an application for. Please make sure the items on the checklist are all taken care of prior to setting your application back to 'Needs review'.

  1. Please run your module through the Coder module code review. This will pick up a lot of coding standards, function misuse, security, and internationalization issues. See http://drupal.org/project/coder
  2. Please make sure all non-binary files have an @file documentation block as per http://drupal.org/node/1354#files
  3. Please make sure that your code commenting complies with the Drupal Doxygen guidelines as shown at http://drupal.org/node/1354 . This ensures that the API module and external sites like drupalcontrib.com can properly parse your code's documentation.
  4. Please make sure that the proper CVS $Id$ tags are added to all files as per http://drupal.org/handbook/cvs/faq. This requirement will be going away once we move from CVS to Git next year.
  5. Please make sure all your text strings are wrapped in t(). This makes them translateable. See http://api.drupal.org/api/drupal/includes--common.inc/function/t/6
  6. Remove any commented out code.
  7. Make sure your module or theme is ready to be released in it's submitted form. Modules that don't work, or aren't ready to be used are immediately rejected.
  8. Please don't include a 'version' line in your .info file. This is always added to the .info file by the Drupal.org CVS packaging script.
  9. Please remove all copyright statements from your code. Once you accept a patch from another user, your copyright statement is no longer valid anyways.
  10. Please remove any mention of code license - all code submitted to Drupal's CVS is automatically licensed under the GPLv2.
  11. Third party libraries are not allowed into CVS, except in certain conditions. Please see the 3rd party libraries policy at http://drupal.org/node/422996 .

Once you have double checked all the above items, please set your application status to 'needs review'. If you made any changes to the code, please make sure to upload the updated module as well.

michaellander’s picture

Status: Needs work » Needs review

All of these were done prior to submitting the CVS request as per instructions.

brianV’s picture

mikegfx:

I appreciate you quickly breezing over the list I posted, but on review, the following items need to be corrected in your code:

10. Please remove any mention of code license - all code submitted to Drupal's CVS is automatically licensed under the GPLv2.

8. Please don't include a 'version' line in your .info file. This is always added to the .info file by the Drupal.org CVS packaging script.

Also, please consider making the following line more readable:

return isset($matches[1]) && isset($query[$providers[$matches[1]]]) ? $query[$providers[$matches[1]]] : '';

This looks like it will be a very useful module!

brianV’s picture

Status: Needs review » Needs work
michaellander’s picture

Status: Needs work » Needs review
StatusFileSize
new2.57 KB

Thanks Brian!

10. Sorry about that, I could have swore I read elsewhere that it was supposed to be in there. I should have just asked. Fixed!

8. Fixed!

I split the ternary out into lines, hope that's what you were looking for.

- Mike

michaellander’s picture

StatusFileSize
new2.58 KB

Made one small fix on line:60 of context_condition_keywords.inc

brianV’s picture

Status: Needs review » Reviewed & tested by the community

Mike,

This looks great now with the exception that the $Id tag in context_condition_keywords.inc is slightly wrong - just make sure to use the same format as you did in the .module file.

However, that minor change could be made before your initial commit. As far as I am concerned, this module looks ready.

michaellander’s picture

Fixed it locally. Thanks for your help!

avpaderno’s picture

Status: Reviewed & tested by the community » Fixed

Thank you for your contribution! I am going to update your account.

These are some recommended readings to help with excellent maintainership:

You can find more contributors chatting on the IRC #drupal-contribute channel. So, come hang out and stay involved.
Thank you, 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.

I thank all the dedicated reviewers as well.

Status: Fixed » Closed (fixed)

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

avpaderno’s picture

Component: Miscellaneous » new project application
Assigned: Unassigned » avpaderno
Issue summary: View changes
Status: Closed (fixed) » Fixed

Status: Fixed » Closed (fixed)

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