Giter Site home page Giter Site logo

nz.co.fuzion.transactional's Introduction

Transactional Mail

This extension adds bounce handling and click tracking, and creates activities for CiviCRM's transactional emails (i.e event registrations, contribution receipts, invoices, scheduled reminders, and so on).

Out of the box, CiviCRM only does the things mentioned above when sending via CiviMail. This extension adds that functionality to all mail sent from CiviCRM.

Author

This extension was initially written by Dave Reedy on behalf of Fuzion and substantially extended by Jitendra Purohit.

Configuration

No special configuration is required for this extension. Just install it!

WARNING

Because of the way CiviCRM processes CC's and BCC's these get VERPIFIED also. Unfortunately these link back to the TO recipient not the BCC or CC. If any email that is used as a CC or a BCC starts bouncing you will end up with a lot of contacts put on hold for bounces not related to their address.

How it works

This extension creates a pseudo-CiviMail named "Transactional Emails" which transactional emails are attached to. This could be improved to track by email type with multiple pseudo-CiviMails.

VERP processing is applied to all outgoing transactional (non Civimail) emails, and CiviMail's existing bounce handling may be applied to bounces returned from those emails.

Bounce reporting, delivery, open and click tracking should work as per regular CiviMails.

Standard Activities are created for Receipts and Invoices

Notes:

  • CiviMail doesn't do click tracking for URLs that contain tokens. By time the extension gets the message token replacement has already occurred. It decides to track or not track a URL based on the presence of certain query vars in the URL. There is class variable to specify which query vars to not track, defaulting to cid and cs.
  • In the mailing summary report, the time listed for Intended Recipients uses the start time of the job. Since transactional mailings only have one job, all times will be listed the same regardless of when the message was actually sent. If you view the Successful Deliveries you will see the time the message was actually sent.
  • It uses a custom template for the mailing summary report. It's replaced using a hook instead of an override.
  • This extension should work for 4.6 CiviCRM.
  • Note it is not recommended to enable this extension without the CiviMail Component enabled.
  • Make sure you have open and click-through tracking enabled by default at CiviMail Component Settings => /civicrm/admin/setting/preferences/mailing?reset=1, else they'll not be tracked for transactional emails as well.

Sponsorship

Alongside funding from Fuzion and its clients, the development of this extension received financial support from Agileware to give back to the CiviCRM community and support Agileware's CiviCRM customers. Contact Agileware for CiviCRM support and development services in Australia.

Support

This extension is contributed by Fuzion.

We welcome contributions and bug reports via the nz.co.fuzion.transactional issue queue.

Community support is available via CiviCRM community channels:

Contact us - [email protected] - for professional support and development requests.

nz.co.fuzion.transactional's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nz.co.fuzion.transactional's Issues

Modification Request

Hi I would be interested in modifying your extension by adding an extra feature. I have sent email but haven’t received any reply. Please let me know how to go about it. Thanks

question about thank-you letters by email

Hi,
I have a question about this extension.
Does it allow to use the CiviMail component (and its configurations, like Mailer Batch Limit, Mailer Throttle Time) to send thank-you letters by email? Because now they are sent sent immediately.
Thanks

DB Error: When reinstalling

I have installed it once, then uninstalled. But when I tried re installing receiving a fatal error and cannot install at all now. Here is the log. I am on CiviCRM 5.11, Api v4. Flexmailer beta 2. How can I resolve the issue please?

$Fatal Error Details = array(3) { ["message"]=> string(24) "DB Error: already exists" ["code"]=> NULL ["exception"]=> object(CiviCRM_API3_Exception)#404 (8) { ["extraParams":"CiviCRM_API3_Exception":private]=> array(4) { ["error_code"]=> string(14) "already exists" ["tip"]=> string(62) "add debug=1 to your API call to have more info about the error" ["is_error"]=> int(1) ["error_message"]=> string(24) "DB Error: already exists" } ["message":protected]=> string(24) "DB Error: already exists" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(68) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/api/api.php" ["line":protected]=> int(45) ["trace":"Exception":private]=> array(16) { [0]=> array(4) { ["file"]=> string(86) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Admin/Form/Extensions.php" ["line"]=> int(190) ["function"]=> string(12) "civicrm_api3" ["args"]=> array(3) { [0]=> string(9) "Extension" [1]=> string(7) "install" [2]=> array(2) { ["keys"]=> string(26) "nz.co.fuzion.transactional" ["version"]=> int(3) } } } [1]=> array(6) { ["file"]=> string(74) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Form.php" ["line"]=> int(489) ["function"]=> string(11) "postProcess" ["class"]=> string(25) "CRM_Admin_Form_Extensions" ["type"]=> string(2) "->" ["args"]=> array(0) { } } [2]=> array(6) { ["file"]=> string(82) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/StateMachine.php" ["line"]=> int(160) ["function"]=> string(11) "mainProcess" ["class"]=> string(13) "CRM_Core_Form" ["type"]=> string(2) "->" ["args"]=> array(0) { } } [3]=> array(6) { ["file"]=> string(91) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Next.php" ["line"]=> int(61) ["function"]=> string(7) "perform" ["class"]=> string(21) "CRM_Core_StateMachine" ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> &object(CRM_Admin_Form_Extensions)#235 (47) { ["_id":protected]=> NULL ["_values":protected]=> array(0) { } ["_BAOName":protected]=> string(22) "CRM_Core_BAO_Extension" ["_state":protected]=> NULL ["_name":protected]=> string(10) "Extensions" ["_title":protected]=> NULL ["_defaults"]=> array(0) { } ["_options"]=> NULL ["_action"]=> int(1) ["_paymentProcessors":protected]=> NULL ["_paymentProcessorIDs"]=> NULL ["_paymentProcessorID":protected]=> NULL ["_is_pay_later_enabled":protected]=> NULL ["_renderer":protected]=> NULL ["_dateFields":protected]=> array(0) { } ["unsavedChangesWarn":protected]=> NULL ["ajaxResponse"]=> array(0) { } ["urlPath"]=> array(3) { [0]=> string(7) "civicrm" [1]=> string(5) "admin" [2]=> string(10) "extensions" } ["context":protected]=> NULL ["controller"]=> object(CRM_Core_Controller_Simple)#232 (17) { ["_title":protected]=> string(25) "CRM_Admin_Form_Extensions" ["_key"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" ["_scope":protected]=> string(63) "CRM_Admin_Form_Extensions_af49fd071bf5b6586e06cc40df704d14_7686" ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } ["_embedded":protected]=> bool(true) ["_skipRedirection":protected]=> bool(false) ["_print"]=> int(0) ["_generateQFKey"]=> bool(true) ["_QFResponseType"]=> string(4) "html" ["_parent":protected]=> NULL ["_destination"]=> NULL ["_entryURL"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" ["_pages"]=> array(1) { ["Extensions"]=> *RECURSION* } ["_actions"]=> array(12) { ["Extensions"]=> object(HTML_QuickForm_Action_Direct)#238 (0) { } ["display"]=> object(CRM_Core_QuickForm_Action_Display)#239 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["next"]=> object(CRM_Core_QuickForm_Action_Next)#240 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["back"]=> object(CRM_Core_QuickForm_Action_Back)#241 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["process"]=> object(CRM_Core_QuickForm_Action_Process)#242 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["cancel"]=> object(CRM_Core_QuickForm_Action_Cancel)#243 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["refresh"]=> object(CRM_Core_QuickForm_Action_Refresh)#244 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["reload"]=> object(CRM_Core_QuickForm_Action_Reload)#245 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["done"]=> object(CRM_Core_QuickForm_Action_Done)#246 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["jump"]=> object(CRM_Core_QuickForm_Action_Jump)#247 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["submit"]=> object(CRM_Core_QuickForm_Action_Submit)#248 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["upload"]=> object(CRM_Core_QuickForm_Action_Upload)#249 (3) { ["_uploadNames":protected]=> array(4) { [0]=> string(12) "attachFile_1" [1]=> string(12) "attachFile_2" [2]=> string(12) "attachFile_3" [3]=> string(10) "uploadFile" } ["_uploadDir":protected]=> string(66) "/home/webadmin/public_html/cmm/sites/default/files/civicrm/upload/" ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } } ["_name"]=> string(63) "CRM_Admin_Form_Extensions_af49fd071bf5b6586e06cc40df704d14_7686" ["_modal"]=> bool(true) ["_actionName"]=> array(2) { [0]=> string(10) "Extensions" [1]=> string(4) "next" } } ["_chainSelectFields":"CRM_Core_Form":private]=> array(0) { } ["_actions"]=> array(0) { } ["_formBuilt"]=> bool(true) ["_elements"]=> array(4) { [0]=> object(HTML_QuickForm_hidden)#250 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(5) "qfKey" ["type"]=> string(6) "hidden" ["value"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [1]=> object(HTML_QuickForm_hidden)#255 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(8) "entryURL" ["type"]=> string(6) "hidden" ["value"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [2]=> object(HTML_QuickForm_hidden)#376 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(11) "_qf_default" ["type"]=> string(6) "hidden" ["value"]=> string(15) "Extensions:next" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [3]=> object(HTML_QuickForm_group)#320 (14) { ["_name"]=> string(7) "buttons" ["_elements"]=> array(2) { [0]=> object(HTML_QuickForm_submit)#272 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "submit" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(5) { ["class"]=> string(32) "crm-form-submit default validate" ["crm-icon"]=> string(8) "fa-check" ["name"]=> string(19) "_qf_Extensions_next" ["value"]=> string(7) "Install" ["type"]=> string(6) "submit" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [1]=> object(HTML_QuickForm_submit)#377 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "submit" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(5) { ["class"]=> string(22) "crm-form-submit cancel" ["crm-icon"]=> string(8) "fa-times" ["name"]=> string(21) "_qf_Extensions_cancel" ["value"]=> string(6) "Cancel" ["type"]=> string(6) "submit" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } } ["_separator"]=> array(2) { [0]=> string(30) "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" [1]=> string(30) "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" } ["_required"]=> array(0) { } ["_appendName"]=> bool(false) ["_label"]=> string(0) "" ["_type"]=> string(5) "group" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> NULL ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } } ["_elementIndex"]=> array(4) { ["qfKey"]=> int(0) ["entryURL"]=> int(1) ["_qf_default"]=> int(2) ["buttons"]=> int(3) } ["_duplicateIndex"]=> array(0) { } ["_required"]=> array(0) { } ["_jsPrefix"]=> string(28) "Invalid information entered." ["_jsPostfix"]=> string(28) "Please correct these fields." ["_datasource"]=> NULL ["_defaultValues"]=> array(0) { } ["_constantValues"]=> array(0) { } ["_submitValues"]=> array(4) { ["qfKey"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" ["entryURL"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" ["_qf_default"]=> string(15) "Extensions:next" ["_qf_Extensions_next"]=> string(7) "Install" } ["_submitFiles"]=> array(0) { } ["_maxFileSize"]=> int(2097152) ["_freezeAll"]=> bool(false) ["_rules"]=> array(0) { } ["_formRules"]=> array(0) { } ["_errors"]=> array(0) { } ["_requiredNote"]=> string(111) "<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span>" ["_flagSubmitted"]=> bool(true) ["_attributes"]=> array(6) { ["action"]=> string(25) "/civicrm/admin/extensions" ["method"]=> string(4) "post" ["name"]=> string(10) "Extensions" ["id"]=> string(10) "Extensions" ["class"]=> string(25) "CRM_Admin_Form_Extensions" ["data-warn-changes"]=> string(4) "true" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" ["_key"]=> string(26) "nz.co.fuzion.transactional" } [1]=> string(4) "next" [2]=> string(4) "Next" } } [4]=> array(6) { ["file"]=> string(95) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php" ["line"]=> int(203) ["function"]=> string(7) "perform" ["class"]=> string(30) "CRM_Core_QuickForm_Action_Next" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> &object(CRM_Admin_Form_Extensions)#235 (47) { ["_id":protected]=> NULL ["_values":protected]=> array(0) { } ["_BAOName":protected]=> string(22) "CRM_Core_BAO_Extension" ["_state":protected]=> NULL ["_name":protected]=> string(10) "Extensions" ["_title":protected]=> NULL ["_defaults"]=> array(0) { } ["_options"]=> NULL ["_action"]=> int(1) ["_paymentProcessors":protected]=> NULL ["_paymentProcessorIDs"]=> NULL ["_paymentProcessorID":protected]=> NULL ["_is_pay_later_enabled":protected]=> NULL ["_renderer":protected]=> NULL ["_dateFields":protected]=> array(0) { } ["unsavedChangesWarn":protected]=> NULL ["ajaxResponse"]=> array(0) { } ["urlPath"]=> array(3) { [0]=> string(7) "civicrm" [1]=> string(5) "admin" [2]=> string(10) "extensions" } ["context":protected]=> NULL ["controller"]=> object(CRM_Core_Controller_Simple)#232 (17) { ["_title":protected]=> string(25) "CRM_Admin_Form_Extensions" ["_key"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" ["_scope":protected]=> string(63) "CRM_Admin_Form_Extensions_af49fd071bf5b6586e06cc40df704d14_7686" ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } ["_embedded":protected]=> bool(true) ["_skipRedirection":protected]=> bool(false) ["_print"]=> int(0) ["_generateQFKey"]=> bool(true) ["_QFResponseType"]=> string(4) "html" ["_parent":protected]=> NULL ["_destination"]=> NULL ["_entryURL"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" ["_pages"]=> array(1) { ["Extensions"]=> *RECURSION* } ["_actions"]=> array(12) { ["Extensions"]=> object(HTML_QuickForm_Action_Direct)#238 (0) { } ["display"]=> object(CRM_Core_QuickForm_Action_Display)#239 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["next"]=> object(CRM_Core_QuickForm_Action_Next)#240 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["back"]=> object(CRM_Core_QuickForm_Action_Back)#241 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["process"]=> object(CRM_Core_QuickForm_Action_Process)#242 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["cancel"]=> object(CRM_Core_QuickForm_Action_Cancel)#243 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["refresh"]=> object(CRM_Core_QuickForm_Action_Refresh)#244 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["reload"]=> object(CRM_Core_QuickForm_Action_Reload)#245 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["done"]=> object(CRM_Core_QuickForm_Action_Done)#246 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["jump"]=> object(CRM_Core_QuickForm_Action_Jump)#247 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["submit"]=> object(CRM_Core_QuickForm_Action_Submit)#248 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["upload"]=> object(CRM_Core_QuickForm_Action_Upload)#249 (3) { ["_uploadNames":protected]=> array(4) { [0]=> string(12) "attachFile_1" [1]=> string(12) "attachFile_2" [2]=> string(12) "attachFile_3" [3]=> string(10) "uploadFile" } ["_uploadDir":protected]=> string(66) "/home/webadmin/public_html/cmm/sites/default/files/civicrm/upload/" ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } } ["_name"]=> string(63) "CRM_Admin_Form_Extensions_af49fd071bf5b6586e06cc40df704d14_7686" ["_modal"]=> bool(true) ["_actionName"]=> array(2) { [0]=> string(10) "Extensions" [1]=> string(4) "next" } } ["_chainSelectFields":"CRM_Core_Form":private]=> array(0) { } ["_actions"]=> array(0) { } ["_formBuilt"]=> bool(true) ["_elements"]=> array(4) { [0]=> object(HTML_QuickForm_hidden)#250 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(5) "qfKey" ["type"]=> string(6) "hidden" ["value"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [1]=> object(HTML_QuickForm_hidden)#255 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(8) "entryURL" ["type"]=> string(6) "hidden" ["value"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [2]=> object(HTML_QuickForm_hidden)#376 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(11) "_qf_default" ["type"]=> string(6) "hidden" ["value"]=> string(15) "Extensions:next" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [3]=> object(HTML_QuickForm_group)#320 (14) { ["_name"]=> string(7) "buttons" ["_elements"]=> array(2) { [0]=> object(HTML_QuickForm_submit)#272 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "submit" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(5) { ["class"]=> string(32) "crm-form-submit default validate" ["crm-icon"]=> string(8) "fa-check" ["name"]=> string(19) "_qf_Extensions_next" ["value"]=> string(7) "Install" ["type"]=> string(6) "submit" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [1]=> object(HTML_QuickForm_submit)#377 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "submit" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(5) { ["class"]=> string(22) "crm-form-submit cancel" ["crm-icon"]=> string(8) "fa-times" ["name"]=> string(21) "_qf_Extensions_cancel" ["value"]=> string(6) "Cancel" ["type"]=> string(6) "submit" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } } ["_separator"]=> array(2) { [0]=> string(30) "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" [1]=> string(30) "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" } ["_required"]=> array(0) { } ["_appendName"]=> bool(false) ["_label"]=> string(0) "" ["_type"]=> string(5) "group" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> NULL ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } } ["_elementIndex"]=> array(4) { ["qfKey"]=> int(0) ["entryURL"]=> int(1) ["_qf_default"]=> int(2) ["buttons"]=> int(3) } ["_duplicateIndex"]=> array(0) { } ["_required"]=> array(0) { } ["_jsPrefix"]=> string(28) "Invalid information entered." ["_jsPostfix"]=> string(28) "Please correct these fields." ["_datasource"]=> NULL ["_defaultValues"]=> array(0) { } ["_constantValues"]=> array(0) { } ["_submitValues"]=> array(4) { ["qfKey"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" ["entryURL"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" ["_qf_default"]=> string(15) "Extensions:next" ["_qf_Extensions_next"]=> string(7) "Install" } ["_submitFiles"]=> array(0) { } ["_maxFileSize"]=> int(2097152) ["_freezeAll"]=> bool(false) ["_rules"]=> array(0) { } ["_formRules"]=> array(0) { } ["_errors"]=> array(0) { } ["_requiredNote"]=> string(111) "<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span>" ["_flagSubmitted"]=> bool(true) ["_attributes"]=> array(6) { ["action"]=> string(25) "/civicrm/admin/extensions" ["method"]=> string(4) "post" ["name"]=> string(10) "Extensions" ["id"]=> string(10) "Extensions" ["class"]=> string(25) "CRM_Admin_Form_Extensions" ["data-warn-changes"]=> string(4) "true" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" ["_key"]=> string(26) "nz.co.fuzion.transactional" } [1]=> string(4) "next" } } [5]=> array(6) { ["file"]=> string(89) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php" ["line"]=> int(103) ["function"]=> string(6) "handle" ["class"]=> string(25) "HTML_QuickForm_Controller" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> &object(CRM_Admin_Form_Extensions)#235 (47) { ["_id":protected]=> NULL ["_values":protected]=> array(0) { } ["_BAOName":protected]=> string(22) "CRM_Core_BAO_Extension" ["_state":protected]=> NULL ["_name":protected]=> string(10) "Extensions" ["_title":protected]=> NULL ["_defaults"]=> array(0) { } ["_options"]=> NULL ["_action"]=> int(1) ["_paymentProcessors":protected]=> NULL ["_paymentProcessorIDs"]=> NULL ["_paymentProcessorID":protected]=> NULL ["_is_pay_later_enabled":protected]=> NULL ["_renderer":protected]=> NULL ["_dateFields":protected]=> array(0) { } ["unsavedChangesWarn":protected]=> NULL ["ajaxResponse"]=> array(0) { } ["urlPath"]=> array(3) { [0]=> string(7) "civicrm" [1]=> string(5) "admin" [2]=> string(10) "extensions" } ["context":protected]=> NULL ["controller"]=> object(CRM_Core_Controller_Simple)#232 (17) { ["_title":protected]=> string(25) "CRM_Admin_Form_Extensions" ["_key"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" ["_scope":protected]=> string(63) "CRM_Admin_Form_Extensions_af49fd071bf5b6586e06cc40df704d14_7686" ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } ["_embedded":protected]=> bool(true) ["_skipRedirection":protected]=> bool(false) ["_print"]=> int(0) ["_generateQFKey"]=> bool(true) ["_QFResponseType"]=> string(4) "html" ["_parent":protected]=> NULL ["_destination"]=> NULL ["_entryURL"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" ["_pages"]=> array(1) { ["Extensions"]=> *RECURSION* } ["_actions"]=> array(12) { ["Extensions"]=> object(HTML_QuickForm_Action_Direct)#238 (0) { } ["display"]=> object(CRM_Core_QuickForm_Action_Display)#239 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["next"]=> object(CRM_Core_QuickForm_Action_Next)#240 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["back"]=> object(CRM_Core_QuickForm_Action_Back)#241 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["process"]=> object(CRM_Core_QuickForm_Action_Process)#242 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["cancel"]=> object(CRM_Core_QuickForm_Action_Cancel)#243 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["refresh"]=> object(CRM_Core_QuickForm_Action_Refresh)#244 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["reload"]=> object(CRM_Core_QuickForm_Action_Reload)#245 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["done"]=> object(CRM_Core_QuickForm_Action_Done)#246 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["jump"]=> object(CRM_Core_QuickForm_Action_Jump)#247 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["submit"]=> object(CRM_Core_QuickForm_Action_Submit)#248 (1) { ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } ["upload"]=> object(CRM_Core_QuickForm_Action_Upload)#249 (3) { ["_uploadNames":protected]=> array(4) { [0]=> string(12) "attachFile_1" [1]=> string(12) "attachFile_2" [2]=> string(12) "attachFile_3" [3]=> string(10) "uploadFile" } ["_uploadDir":protected]=> string(66) "/home/webadmin/public_html/cmm/sites/default/files/civicrm/upload/" ["_stateMachine":protected]=> &object(CRM_Core_StateMachine)#233 (6) { ["_controller":protected]=> *RECURSION* ["_states":protected]=> array(1) { ["Extensions"]=> object(CRM_Core_State)#234 (5) { ["_name":protected]=> string(10) "Extensions" ["_type":protected]=> int(3) ["_back":protected]=> NULL ["_next":protected]=> NULL ["_stateMachine":protected]=> *RECURSION* } } ["_pages":protected]=> array(1) { ["CRM_Admin_Form_Extensions"]=> NULL } ["_pageNames":protected]=> array(1) { [0]=> string(10) "Extensions" } ["_action":protected]=> int(0) ["_name":protected]=> NULL } } } ["_name"]=> string(63) "CRM_Admin_Form_Extensions_af49fd071bf5b6586e06cc40df704d14_7686" ["_modal"]=> bool(true) ["_actionName"]=> array(2) { [0]=> string(10) "Extensions" [1]=> string(4) "next" } } ["_chainSelectFields":"CRM_Core_Form":private]=> array(0) { } ["_actions"]=> array(0) { } ["_formBuilt"]=> bool(true) ["_elements"]=> array(4) { [0]=> object(HTML_QuickForm_hidden)#250 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(5) "qfKey" ["type"]=> string(6) "hidden" ["value"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [1]=> object(HTML_QuickForm_hidden)#255 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(8) "entryURL" ["type"]=> string(6) "hidden" ["value"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [2]=> object(HTML_QuickForm_hidden)#376 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "hidden" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(3) { ["name"]=> string(11) "_qf_default" ["type"]=> string(6) "hidden" ["value"]=> string(15) "Extensions:next" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [3]=> object(HTML_QuickForm_group)#320 (14) { ["_name"]=> string(7) "buttons" ["_elements"]=> array(2) { [0]=> object(HTML_QuickForm_submit)#272 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "submit" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(5) { ["class"]=> string(32) "crm-form-submit default validate" ["crm-icon"]=> string(8) "fa-check" ["name"]=> string(19) "_qf_Extensions_next" ["value"]=> string(7) "Install" ["type"]=> string(6) "submit" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } [1]=> object(HTML_QuickForm_submit)#377 (9) { ["_label"]=> string(0) "" ["_type"]=> string(6) "submit" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> array(5) { ["class"]=> string(22) "crm-form-submit cancel" ["crm-icon"]=> string(8) "fa-times" ["name"]=> string(21) "_qf_Extensions_cancel" ["value"]=> string(6) "Cancel" ["type"]=> string(6) "submit" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } } ["_separator"]=> array(2) { [0]=> string(30) "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" [1]=> string(30) "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" } ["_required"]=> array(0) { } ["_appendName"]=> bool(false) ["_label"]=> string(0) "" ["_type"]=> string(5) "group" ["_flagFrozen"]=> bool(false) ["_persistantFreeze"]=> bool(false) ["_attributes"]=> NULL ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" } } ["_elementIndex"]=> array(4) { ["qfKey"]=> int(0) ["entryURL"]=> int(1) ["_qf_default"]=> int(2) ["buttons"]=> int(3) } ["_duplicateIndex"]=> array(0) { } ["_required"]=> array(0) { } ["_jsPrefix"]=> string(28) "Invalid information entered." ["_jsPostfix"]=> string(28) "Please correct these fields." ["_datasource"]=> NULL ["_defaultValues"]=> array(0) { } ["_constantValues"]=> array(0) { } ["_submitValues"]=> array(4) { ["qfKey"]=> string(37) "af49fd071bf5b6586e06cc40df704d14_7686" ["entryURL"]=> string(56) "https://cmm.iskcon.london/civicrm/contact/search?reset=1" ["_qf_default"]=> string(15) "Extensions:next" ["_qf_Extensions_next"]=> string(7) "Install" } ["_submitFiles"]=> array(0) { } ["_maxFileSize"]=> int(2097152) ["_freezeAll"]=> bool(false) ["_rules"]=> array(0) { } ["_formRules"]=> array(0) { } ["_errors"]=> array(0) { } ["_requiredNote"]=> string(111) "<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span>" ["_flagSubmitted"]=> bool(true) ["_attributes"]=> array(6) { ["action"]=> string(25) "/civicrm/admin/extensions" ["method"]=> string(4) "post" ["name"]=> string(10) "Extensions" ["id"]=> string(10) "Extensions" ["class"]=> string(25) "CRM_Admin_Form_Extensions" ["data-warn-changes"]=> string(4) "true" } ["_tabOffset"]=> int(0) ["_tab"]=> string(1) " " ["_lineEnd"]=> string(1) " " ["_comment"]=> string(0) "" ["_key"]=> string(26) "nz.co.fuzion.transactional" } [1]=> string(4) "next" } } [6]=> array(6) { ["file"]=> string(80) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Controller.php" ["line"]=> int(351) ["function"]=> string(6) "handle" ["class"]=> string(19) "HTML_QuickForm_Page" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(4) "next" } } [7]=> array(6) { ["file"]=> string(80) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Page/Basic.php" ["line"]=> int(401) ["function"]=> string(3) "run" ["class"]=> string(19) "CRM_Core_Controller" ["type"]=> string(2) "->" ["args"]=> array(0) { } } [8]=> array(6) { ["file"]=> string(80) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Page/Basic.php" ["line"]=> int(156) ["function"]=> string(4) "edit" ["class"]=> string(19) "CRM_Core_Page_Basic" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> int(1) [1]=> NULL } } [9]=> array(6) { ["file"]=> string(86) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Admin/Page/Extensions.php" ["line"]=> int(121) ["function"]=> string(3) "run" ["class"]=> string(19) "CRM_Core_Page_Basic" ["type"]=> string(2) "->" ["args"]=> array(0) { } } [10]=> array(6) { ["file"]=> string(76) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Invoke.php" ["line"]=> int(309) ["function"]=> string(3) "run" ["class"]=> string(25) "CRM_Admin_Page_Extensions" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> array(3) { [0]=> string(7) "civicrm" [1]=> string(5) "admin" [2]=> string(10) "extensions" } [1]=> NULL } } [11]=> array(6) { ["file"]=> string(76) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Invoke.php" ["line"]=> int(84) ["function"]=> string(7) "runItem" ["class"]=> string(15) "CRM_Core_Invoke" ["type"]=> string(2) "::" ["args"]=> array(1) { [0]=> &array(16) { ["id"]=> string(2) "60" ["domain_id"]=> string(1) "1" ["path"]=> string(24) "civicrm/admin/extensions" ["title"]=> string(17) "Manage Extensions" ["access_callback"]=> array(2) { [0]=> string(19) "CRM_Core_Permission" [1]=> string(9) "checkMenu" } ["access_arguments"]=> array(2) { [0]=> array(1) { [0]=> string(18) "administer CiviCRM" } [1]=> string(3) "and" } ["page_callback"]=> string(25) "CRM_Admin_Page_Extensions" ["breadcrumb"]=> array(2) { [0]=> array(2) { ["title"]=> string(7) "CiviCRM" ["url"]=> string(16) "/civicrm?reset=1" } [1]=> array(2) { ["title"]=> string(18) "Administer CiviCRM" ["url"]=> string(22) "/civicrm/admin?reset=1" } } ["is_ssl"]=> string(1) "1" ["weight"]=> string(3) "120" ["type"]=> string(1) "1" ["page_type"]=> string(1) "0" ["desc"]=> string(0) "" ["adminGroup"]=> string(15) "System Settings" ["icon"]=> string(26) "admin/small/price_sets.png" ["page_arguments"]=> bool(false) } } } [12]=> array(6) { ["file"]=> string(76) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Core/Invoke.php" ["line"]=> int(52) ["function"]=> string(7) "_invoke" ["class"]=> string(15) "CRM_Core_Invoke" ["type"]=> string(2) "::" ["args"]=> array(1) { [0]=> array(3) { [0]=> string(7) "civicrm" [1]=> string(5) "admin" [2]=> string(10) "extensions" } } } [13]=> array(6) { ["file"]=> string(78) "/home/webadmin/public_html/cmm/sites/all/modules/civicrm/drupal/civicrm.module" ["line"]=> int(445) ["function"]=> string(6) "invoke" ["class"]=> string(15) "CRM_Core_Invoke" ["type"]=> string(2) "::" ["args"]=> array(1) { [0]=> array(3) { [0]=> string(7) "civicrm" [1]=> string(5) "admin" [2]=> string(10) "extensions" } } } [14]=> array(4) { ["file"]=> string(48) "/home/webadmin/public_html/cmm/includes/menu.inc" ["line"]=> int(527) ["function"]=> string(14) "civicrm_invoke" ["args"]=> array(2) { [0]=> string(5) "admin" [1]=> string(10) "extensions" } } [15]=> array(4) { ["file"]=> string(40) "/home/webadmin/public_html/cmm/index.php" ["line"]=> int(21) ["function"]=> string(27) "menu_execute_active_handler" ["args"]=> array(0) { } } } ["previous":"Exception":private]=> NULL } } --

Receipt activity from online memberships not missing details

On our site all the receipt activities coming from our online membership pages are:

  • without a subject,

  • without a "with " contact

  • have status "scheduled" although I know that they are being sent.

Receipts from other online contribution pages have subject, a "with" contact and activity status completed.

image

Fatal error: DB Constraint violation likely because of this extension

Getting a DB constraint violation fatal error when submitting an event which also sends out an email notification. Using version 1.0.1 of this extension with CiviCRM 5.37.2, PHP 7.3, MySQL 5.5.30 and getting this error:

INSERT INTO civicrm_mailing_event_delivered (time_stamp ) VALUES ( 20210811120358 ) [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (pantheon.civicrm_mailing_event_delivered, CONSTRAINT FK_civicrm_mailing_event_delivered_event_queue_id FOREIGN KEY (event_queue_id) REFERENCES civicrm_mailing_event_queue (id) ON D)]

When I disable the extension the event goes through fine.

I haven't tried this with a clean site yet.

Reciepts no longer being captured as Activities

We've enjoyed the features afforded by this extension for a while and it had been working quite well. A few months back, we upgraded our PHP version to PHP 7.3 from 7.2 and since that upgrade, the receipts are no longer being captures as activities. This may not be an issue per se, but any suggestions on debugging this situation would be helpful.

PHP warning

Keep receiving this PHP warning. Not sure if something to be concerned of.

Notice: Undefined index: groupName in CRM_Mailing_Transactional::getEntityId() (line 391 of /home/webadmin/public_html/cmm/sites/default/files/civicrm/ext/nz.co.fuzion.transactional/CRM/Mailing/Transactional.php).

Add settings metadata

This extension uses Setting.create, so it should have settings metadata

We were seeing odd errors (stemming from a recent type hint change in CRM-20837) that would throw a fatal error when the Setting API was used.

There was a followup fix from Seamus which attempted to handle this, but the error magically cleared itself up when I tried to reproduce. Which made it hard to confirm the fix!

Consider setting subject

A usability suggestion

For end users or those that aren't system administrators, the 'empty' subject line when viewing the 'Mailing' tab of a contact may cause queries/questions. We have on some of our systems, set the subject for mailings in the database, e.g.

UPDATE civicrm_mailing SET subject = 'Transactional Email' WHERE civicrm_mailing.id IN (x, y, z)

I think it would be beneficial to set a default as part of the extension, even if just setting the 'name' as the 'subject' by default.

Configure BCC recipient on Transactional Mail

I understand this would be a feature request, and I am also not entirely sure this is the right plugin to add this feature but I am wondering if the addition of a BCC could be added to transactional messages. Since CiviCRM doesn't allow that otherwise, it seems this plugin might be the place to suggest a feature like that. Would that be true? Or should this request land elsewhere.

Support for CiviCRM version 5.x

Would it be possible to clarify/confirm whether this extension supports CiviCRM 5.x versions? the readme currently indicates that it "should work with 4.6" and the info.xml file indicates that it supports 4.7.

WordPress, tracking URL for the iCAL download link for an Event Registration is in wrong format, as a result the redirected link does not work.

WordPress, tracking URL for the iCAL download link for an Event Registration is in wrong format, as a result the redirected link does not work.

The tracking iCAL download link is rendered like this in the email:
https://bubbleblowers.org.au/october-big-bubbles-festival-2021/?civiwp=CiviCRM&q=civicrm/mailing/url&u=511758&qid=2873207

But really should look like this in the email:
https://bubbleblowers.org.au/civicrm/mailing/url?u=511758&qid=2873207

I haven't tested other types of emails, it may affect more or all of them!

Tested on WordPress 5.8, CiviCRM 5.39.0

Agileware Ref: CIVICRM-1848

PS. Looks like a great fun festival!

Roll a new release?

Some bugfixes have been made in master branch, but there has been no release in a while.

Incompatible with PHP 8.0

Got error 'PHP message: PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in [...]/wp-content/uploads/civicrm/ext/uk.co.mountev.refundmanager/refundmanager.civix.php on line 246', referer: [...]/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fextensions&action=disable&id=nz.co.fuzion.transactional&key=nz.co.fuzion.transactional

Not capturing Contribution Pages' Thank you emails

I'm using 1.0.5 on CiviCRM 5.47.2 and having just done a test-mode membership sign up using a contribution page, I received an email (good) but there's no log of that on my contact record (bad).

Not sure if/when something changed, but I think this extension should be recording this as an activity, but it seems to have stopped doing so a while back?

Transactional Emails lumped together in one log event

On our system running CiviCRM 5.27.7 when a registration is completed, a subject-less CiviMail Report: Transactional Email (msg_tpl_workflow_event) is created. Additional event registrations do not create a new CiviMail Report: Transactional Email (msg_tpl_workflow_event), they just increment the number of recipients in the original CiviMail Report: Transactional Email (msg_tpl_workflow_event). Is there come way to remedy this? Thanks!

Error on install - foreign key constraint fails

I would love to use this extension but unfortunately cannot get it to work. Running latest Stable 5.43

When I install it fails and I get the following message in the error log

[db_error: message="DB Error: constraint violation" code=-3 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="INSERT INTO civicrm_mailing_event_queue (job_id,email_id,contact_id,hash ) VALUES ( 2033 , 2425 , 1820 , 'fc001a390f192936' ) [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (xyzdb_civi.civicrm_mailing_event_queue, CONSTRAINT FK_civicrm_mailing_event_queue_job_id FOREIGN KEY (job_id) REFERENCES civicrm_mailing_job (id) ON DELETE CASCADE)]"]

Does this ring a bell to something easily solvable?

Allow click and open tracking to be optional when sending mail from contact

Hello,

Thanks for a very useful extension. I use it to add activities when receipts and reminders are sent and find it very useful.

I've found that with this extension enabled it seems to put link and open tracking code into emails I send from from "Actions -> Send an Email" on the contact. Unfortunately this causes mails to be treated as Junk in Office 365, so I'd like to have the option to not have this tracking done, but keep the benefits of logging activities for the receipts and reminders.

Is it possible to "switch off" the tracking, but keep the activity logging?

(CiviCRM 5.24.x, WordPress 5.4.2, if that's relevant)

Best regards,
Andrew.

Possibly related: #46 and #40 ?

Same recipient multiple times in a mailing?

I'm not sure if this is right, but it appears that the CiviMail mailing reports will eventually come to contain the same contact many times, without providing much information about the actual email(s) that were sent to that person.

E.g., if I send 5 "one-off" emails to John Doe, he'll appear 5 times in the "recipients report" for the "Transactional Email (Activity Email Sender)" mailing, but all those rows will look the same; there's no way to see even the date of those emails.

Thus a bounce status or other metadata about the one-off email is not retrievable. Is this correct, and is it by design?

Notice: Undefined index: contact_id

Hi guys - getting a notice on a client site running 5.7.0, extension V1.0
Is this something you've seen before?

Notice: Undefined index: contact_id in CRM_Mailing_Transactional->getContactAndEmailIds() (line 156 of /var/www/gsvdrupal/sites/default/files/civicrm/ext/nz.co.fuzion.transactional-master/CRM/Mailing/Transactional.php).
Notice: Undefined index: contact_id in CRM_Mailing_Transactional->getContactAndEmailIds() (line 156 of /var/www/gsvdrupal/sites/default/files/civicrm/ext/nz.co.fuzion.transactional-master/CRM/Mailing/Transactional.php).
Notice: Undefined index: returnPath in CRM_Mailing_Transactional->delivered() (line 82 of /var/www/gsvdrupal/sites/default/files/civicrm/ext/nz.co.fuzion.transactional-master/CRM/Mailing/Transactional.php).
Notice: Undefined offset: 2 in CRM_Mailing_Transactional->delivered() (line 85 of /var/www/gsvdrupal/sites/default/files/civicrm/ext/nz.co.fuzion.transactional-master/CRM/Mailing/Transactional.php).

Thanks, Mick

When using 'send email' or 'new email' getting "Unknown column 'option_group_name'"

$Fatal Error Details = array:3 [ "message" => "DB Error: no such field" "code" => null "exception" => PEAR_Exception {#2183 #cause: DB_Error {#2219 +error_message_prefix: "" +mode: 16 +level: 1024 +code: -19 +message: "DB Error: no such field" +userinfo: """ INSERT INTO civicrm_transactional_mapping\n (entity_id, mailing_name, mailing_event_queue_id) VALUES\n (75156, 'Activity Email Sender', 1728795) [nativecode=1054 ** Unknown column 'option_group_name' in 'NEW'] """

include subject for reference

this is a feature request (potentially with funding) --

it would be helpful to be able to include the subject line from the mailing in reports that filter by these transactional emails. I realize that's not trivial, given the nature of how the mailing record is used as the container for the transactional emails. perhaps it could be done in the alterDisplay() step in the mailing detail report (alterReportVars hook).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.