CVS edit link for kcoworks

I have written a plugin module to integrate the existing EMF module (E-Mail Marketer Framework - http://drupal.org/project/emf) for Interspire. The code can be found here: http://mailing.coworks.net/emf_interspire.tar.gz

I have tested the module against the coder mod. The only remarks left is about using lower cases in HTML, but it's XML and it's requested that way by the (poor) XML API at http://idn.interspire.com/articles/27/1/Interspire-Email-Marketer-XML-AP...

We will use it for one of our clients, and it's requested here: http://drupal.org/node/657144

Comments

coworksbe’s picture

StatusFileSize
new3.44 KB
coworksbe’s picture

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

Status: Needs review » Needs work
Issue tags: +Module review

Hello, and thanks for applying for a CVS account. I am adding the review tags, and some volunteers will review your code, pointing out what needs to be changed.

As per http://drupal.org/cvs-application/requirements, the motivation message should be expanded to contain more details about the features of the proposed module, and it should include also a comparison with the existing solutions.

coworksbe’s picture

The module provided uses the EMF functions to sync subscriptions to availabele interspire lists between Drupal and the Interspire E-mail marketer.
When users subscribe through the Drupal block, on the next cron run (or set interval), they will be subscribed to the Interspire list.
When users unsubscribe, on the next cron run (or set interval), they will be unsubscribed from the Interspire list.
This works in both directions (unsubscribers on the Interspire list will also be deleted in Drupal).
The module also pulls in the available Interspire lists and set of custom fields defined in each Interspire list.
Every function currently available in the Interspire XML API has been added and tested against.

Interspire is an e-mailing tool much like MailChimp or CampaignMonitor, but it's a tool you can buy once and install for yourself.
The functionality is similar to http://drupal.org/project/interspire_em but this only exists for D5, not much action going on there and the EMF framework looks like a much better (and active) way to go for E-mail tool integration.

A link to a demo is hard, because you need an Interspire account. If you contact me by mail, I can give you details of our test environment (but not in public).

avpaderno’s picture

If there is already a module for the same integration, why did not you contact the author, or open a feature request for a Drupal 6 version of the project?

coworksbe’s picture

Because I read http://drupal.org/node/521262 and the conclusion was that people were more in favor of an integration with EMF (as am I)... Why? EMF supports dynamic fields, prefilled with profile values, php code, etc. the current interspire_em doesn't do that and has no intention to. The integrated EMF version does.

avpaderno’s picture

Status: Needs work » Needs review

Thanks for your reply.

coworksbe’s picture

So... What's up next? :)

bonked’s picture

subscribing

bonked’s picture

There was an error being generated due to this plugin invoke in emf with this module:

emf.sync.inc:193: $last_sync = emfplugin_invoke('unix_to_service_time', array(variable_get('emf_last_sync_subscriptions', 0)));

By adding this (without the open and closing php tags) to the end of emf_interspire.api.inc, the error is corrected:

function emf_interspire_api_unix_to_service_time($timestamp = 0) {
  if ($timestamp) {
    return date('Y-m-d H:i:s', $timestamp);
  }
  return 0;
}

Put in another vote for this having a project page and cvs access, it is a needed plugin and is modular and works at this point. Having an issue queue would allow more extension of this as well as assisting in keeping the issue queue clean for emf.

By the way, I'm open to assisting with being a co-maintainer if you desire to have one.

avpaderno’s picture

Status: Needs review » Needs work

I am changing the status as per previous comment.

bonked’s picture

Status: Needs work » Patch (to be ported)
StatusFileSize
new310 bytes
new3.85 KB

I am submitting two patches that correct the issues I saw working with it.

First, the hook_requirements in .install are looking for a value that doesn't exist:

 if (trim(variable_get('emf_interspire_api_key', '')) == '') {

I corrected this to look for the actual api items that are needed removing the error on the status page when configured correctly.

The second one refers to #10 up above.

avpaderno’s picture

Status: Patch (to be ported) » Needs work

Please upload the archive containing the corrected code.

bonked’s picture

StatusFileSize
new3.5 KB

Here ya go kiamlaluno.

avpaderno’s picture

Assigned: Unassigned » avpaderno
Status: Needs work » Needs review

Thank you.
I am sorry for bothering, but reviewing the code, and then reviewing two separate patches is not easy. :-)

I will review the code between 6 days. Feel free to update the code if you have other changes to make.

bonked’s picture

Will do - and no bother, I understand. It's especially tricky because of the requirement to have Interspire available for true testing - they only offer paid access to their software.

avpaderno’s picture

Status: Needs review » Fixed
  1. /**
     * Implementation of hook_install().
     */
    function emf_interspire_install() {
      $link = array('!link' => l(st('Administer > Site configuration > Interspire'), 'admin/settings/emf_interspire'));
      drupal_set_message(st("Interspire module settings are available under !link", $link));
    }
    
    /**
     * Implementation of hook_uninstall().
     */
    function emf_interspire_uninstall() {
      db_query("DELETE FROM {variable} WHERE name LIKE 'emf_interspire_%'");
      cache_clear_all('variables', 'cache');
    }
    

    t() is available to hook_install().
    The correct way to delete Drupal variables used by the module is to call .variable_del(), passing the name of the variables, which is well know when the code is complete. Selecting the variables to delete using just the module name can lead to delete variables of different modules (somebody could create a module named emf_interspire_extension.module, and the code would delete its variables too).

  2.     '#description' => t('Your Interspire XML Path.'),
    

    Strings used in the user interface should be in sentence case.

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.

bonked’s picture

#2 confuses me, your example is in sentence case.

bonked’s picture

StatusFileSize
new3.48 KB

I have made the recommended changes from #17 and here is a new tar.gz of the module.

avpaderno’s picture

Sentence case is the case used in a sentence, where only the first word is written with the first letter in upper case; the string I reported should be written as Your Interspire XML path.. Interspire is the name of a company, and XML is an acronym; therefore, they are fine as they are written. path is a common name, and it is written Path only when it is at the beginning of the sentence.

Anyway, I approved kcoworks's CVS account already. There is no need to attach the code here, even if I appreciated you reported the fixed code. :-)

[Edited by kiamlaluno]

bonked’s picture

I see the issue you mention, I'll be sure that is corrected as well, however I think there may be some confusion, I am not kcoworks, I just needed the functionality and stepped into help. I have sent a contact e-mail to kcoworks but not heard back from him regarding this module, I have no problem however, co-maintaining (or taking over if he is no longer interested) to help flesh the module out further and have it's own issue queue etc. On the EMF issue queue there are numerous other devs needing this functionality.

Thanks for clarifying for me either way.

avpaderno’s picture

or taking over if he is no longer interested

kcoworks's application has been approved less than 3 days ago; I don't think he is not longer interested. :-)

bonked’s picture

I didn't think so either, the thing about text as a communication form is tone of voice isn't maintained.

That said I have heard back from kcoworks and I am asking him to reply here, he is open to me as a co-maintainer.

coworksbe’s picture

Hereby I would like to thank you for the CVS access.
I would also like to confirm I'm happy to work with bonked as a co-maintainer.

avpaderno’s picture

If bonked doesn't apply for a CVS account, it's rather difficult to provide him one. :-)

bonked’s picture

Chicken and Egg ;-)

For co-maintaining existing projects:

  • Create an issue in the module's issue queue requesting co-maintainership. You should only apply for a CVS account once the current maintainer has already accepted you as co-maintainer.
  • Include a link to the issue requesting co-maintainership in the motivation message of your CVS application. Even if the current maintainer has asked you to become a co-maintainer, they still need to make a public record of this in the module's issue queue.

I'm assuming I need to wait until the project page exists at /project/emf_interspire. If not, could you point me in the correct location?

avpaderno’s picture

Until kcoworks doesn't create the project page, there is no way to add you as co-maintainer of the project he is creating. Anyway, that will be his task. :-)

Status: Fixed » Closed (fixed)
Issue tags: -Module review

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

avpaderno’s picture

Component: Miscellaneous » new project application
Issue summary: View changes