Version Notes
fixed bug and new minors features
Download this release
Release Info
Developer | ContactLab |
Extension | Contactlab_Modules |
Version | 2.4.1 |
Comparing to | |
See all releases |
Code changes from version 2.2.3 to 2.4.1
- app/code/community/Contactlab/Commons/Block/Adminhtml/ConfigurationCheck.php +25 -5
- app/code/community/Contactlab/Commons/Block/Adminhtml/Events.php +1 -1
- app/code/community/Contactlab/Commons/Block/Adminhtml/Events/Grid.php +2 -2
- app/code/community/Contactlab/Commons/Block/Adminhtml/Events/Renderer/Status.php +5 -2
- app/code/community/Contactlab/Commons/Block/Adminhtml/Logs/Grid.php +2 -2
- app/code/community/Contactlab/Commons/Block/Adminhtml/ReleaseNotes.php +1 -1
- app/code/community/Contactlab/Commons/Block/Adminhtml/Tasks.php +1 -1
- app/code/community/Contactlab/Commons/Block/Adminhtml/Tasks/Grid.php +7 -4
- app/code/community/Contactlab/Commons/Block/Adminhtml/Tasks/Renderer/Store.php +3 -0
- app/code/community/Contactlab/Commons/Block/Adminhtml/Version.php +1 -1
- app/code/community/Contactlab/Commons/Helper/Data.php +106 -13
- app/code/community/Contactlab/Commons/Helper/Tasks.php +11 -1
- app/code/community/Contactlab/Commons/Model/Deleted.php +6 -0
- app/code/community/Contactlab/Commons/Model/Exporter/Abstract.php +11 -2
- app/code/community/Contactlab/Commons/Model/Log.php +11 -0
- app/code/community/Contactlab/Commons/Model/Resource/Deleted.php +1 -1
- app/code/community/Contactlab/Commons/Model/Task.php +44 -12
- app/code/community/Contactlab/Commons/Test/Helper/Data.php +181 -0
- app/code/community/Contactlab/Commons/Test/resources/composer.json +26 -0
- app/code/community/Contactlab/Commons/Test/resources/contactlab_db.sql.gz +0 -0
- app/code/community/Contactlab/Commons/Test/resources/local.xml +66 -0
- app/code/community/Contactlab/Commons/controllers/Adminhtml/ConfigurationCheckController.php +0 -16
- app/code/community/Contactlab/Commons/controllers/Adminhtml/Contactlab/Commons/ConfigurationCheckController.php +25 -0
- app/code/community/Contactlab/Commons/controllers/Adminhtml/{EventsController.php → Contactlab/Commons/EventsController.php} +9 -1
- app/code/community/Contactlab/Commons/controllers/Adminhtml/{LogsController.php → Contactlab/Commons/LogsController.php} +9 -1
- app/code/community/Contactlab/Commons/controllers/Adminhtml/Contactlab/Commons/ReleaseNotesController.php +25 -0
- app/code/community/Contactlab/Commons/controllers/Adminhtml/{TasksController.php → Contactlab/Commons/TasksController.php} +11 -5
- app/code/community/Contactlab/Commons/controllers/Adminhtml/{TestController.php → Contactlab/Commons/TestController.php} +2 -2
- app/code/community/Contactlab/Commons/controllers/Adminhtml/ReleaseNotesController.php +0 -16
- app/code/community/Contactlab/Commons/docs/ContactlabMagento.docx +0 -0
- app/code/community/Contactlab/Commons/docs/Quick Install Guide.docx +0 -0
- app/code/community/Contactlab/Commons/docs/example-config/contactlab.xml +1 -1
- app/code/community/Contactlab/Commons/docs/release-notes/0.8.13.html +2 -2
- app/code/community/Contactlab/Commons/docs/release-notes/0.8.16.html +2 -0
- app/code/community/Contactlab/Commons/docs/release-notes/0.8.17.html +3 -0
- app/code/community/Contactlab/Commons/docs/release-notes/0.9.0.html +4 -0
- app/code/community/Contactlab/Commons/docs/release-notes/1.0.0.html +3 -0
- app/code/community/Contactlab/Commons/etc/adminhtml.xml +68 -68
- app/code/community/Contactlab/Commons/etc/config.xml +22 -11
- app/code/community/Contactlab/Commons/etc/system.xml +33 -22
- app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/mysql4-install-0.8.0.php +15 -12
- app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/upgrade-1.0.0-1.0.1.php +10 -0
- app/code/community/Contactlab/Subscribers/Block/Newsletter/Subscribers/Modify.php +56 -0
- app/code/community/Contactlab/Subscribers/Block/Newsletter/Subscribers/Subscribe.php +143 -0
- app/code/community/Contactlab/Subscribers/Block/Newsletter/Subscribers/Update.php +125 -0
- app/code/community/Contactlab/Subscribers/Helper/Checks.php +106 -0
- app/code/community/Contactlab/Subscribers/Helper/Data.php +98 -13
- app/code/community/Contactlab/Subscribers/Helper/Exporter.php +145 -19
- app/code/community/Contactlab/Subscribers/Helper/Uk.php +106 -36
- app/code/community/Contactlab/Subscribers/Model/Checks/AbstractCheck.php +157 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/CheckInterface.php +67 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/ContactlabAuthApiKeyCheck.php +65 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/FindDuplicatedCustomersCheck.php +71 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/FindInvalidCustomersCheck.php +99 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/RewritesCheck.php +228 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/WsdlCheck.php +72 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers.php +637 -222
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Abstract.php +22 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Customer.php +12 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Deleted.php +12 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Subscriber.php +12 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/MapTransporter/Abstract.php +22 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/MapTransporter/Address.php +4 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/MapTransporter/Attribute.php +4 -0
- app/code/community/Contactlab/Subscribers/Model/Fields.php +80 -0
- app/code/community/Contactlab/Subscribers/Model/Importer/Subscribers.php +5 -1
- app/code/community/Contactlab/Subscribers/Model/Newsletter/Subscriber.php +22 -0
- app/code/community/Contactlab/Subscribers/Model/Newsletter/Subscribers/Observer.php +201 -0
- app/code/community/Contactlab/Subscribers/Model/Observer.php +27 -7
- app/code/community/Contactlab/Subscribers/Model/Observer/Fields.php +212 -0
- app/code/community/Contactlab/Subscribers/Model/Observer/Uk.php +16 -2
- app/code/community/Contactlab/Subscribers/Model/Resource/Fields.php +15 -0
- app/code/community/Contactlab/Subscribers/Model/Resource/Fields/Collection.php +15 -0
- app/code/community/Contactlab/Subscribers/Model/Resource/Newsletter/Subscriber.php +133 -0
- app/code/community/Contactlab/Subscribers/Model/Resource/Uk.php +223 -64
- app/code/community/Contactlab/Subscribers/Model/Soap/SetSubscriptionStatus.php +4 -0
- app/code/community/Contactlab/Subscribers/Model/Stats.php +31 -4
- app/code/community/Contactlab/Subscribers/Model/System/Config/Source/Export/CheckUkPolicy.php +33 -0
- app/code/community/Contactlab/Subscribers/Model/Task/ExportSubscribersRunner.php +31 -2
- app/code/community/Contactlab/Subscribers/Model/Uk.php +33 -6
- app/code/community/Contactlab/Subscribers/Test/Helper/Checks.php +83 -0
- app/code/community/Contactlab/Subscribers/Test/Model/Checks/ContactlabAuthApiKeyCheck.php +17 -0
- app/code/community/Contactlab/Subscribers/Test/Model/Checks/FindDuplicatedCustomersCheck.php +17 -0
- app/code/community/Contactlab/Subscribers/Test/Model/Checks/FindInvalidCustomersCheck.php +17 -0
- app/code/community/Contactlab/Subscribers/Test/Model/Checks/RewritesCheck.php +17 -0
- app/code/community/Contactlab/Subscribers/Test/Model/Checks/WsdlCheck.php +17 -0
- app/code/community/Contactlab/Subscribers/Test/Model/Uk.php +436 -0
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/Contactlab/Subscribers/ExportController.php +23 -0
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/Contactlab/Subscribers/ImportController.php +23 -0
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/Contactlab/Subscribers/StatsController.php +33 -0
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/{UkController.php → Contactlab/Subscribers/UkController.php} +15 -4
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/ExportSubscribersController.php +0 -14
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/ImportSubscribersController.php +0 -14
- app/code/community/Contactlab/Subscribers/controllers/Adminhtml/StatsController.php +0 -23
- app/code/community/Contactlab/Subscribers/controllers/EditController.php +50 -0
- app/code/community/Contactlab/Subscribers/controllers/ModifyController.php +62 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.16.html +1 -1
- app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.18.html +4 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.20.html +4 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.21.html +4 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/0.9.0.html +6 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/0.9.1.html +3 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/1.0.0.html +4 -0
- app/code/community/Contactlab/Subscribers/docs/release-notes/1.0.1.html +3 -0
- app/code/community/Contactlab/Subscribers/etc/config.xml +118 -13
- app/code/community/Contactlab/Subscribers/etc/system.xml +104 -26
- app/code/community/Contactlab/Subscribers/shell/make-csv.php +0 -78
- app/code/community/Contactlab/Subscribers/sql/contactlab_subscribers_setup/upgrade-0.8.21-0.8.22.php +91 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Edit/Form.php +69 -45
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Grid.php +11 -2
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Grid/Renderer/XmlDeliveryStatus.php +80 -22
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Detail.php +30 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Detail/Grid.php +87 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/List.php +26 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/List/Grid.php +114 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Renderer/Customer.php +25 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Renderer/QueueStatus.php +86 -0
- app/code/community/Contactlab/Template/Block/Adminhtml/Type.php +1 -1
- app/code/community/Contactlab/Template/Block/Adminhtml/Type/Edit/Form.php +6 -6
- app/code/community/Contactlab/Template/Block/Adminhtml/Type/Grid.php +4 -4
- app/code/community/Contactlab/Template/Helper/Data.php +15 -7
- app/code/community/Contactlab/Template/Helper/SampleData.php +147 -0
- app/code/community/Contactlab/Template/Model/Cron.php +7 -4
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Abstract.php +46 -14
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Cart.php +2 -2
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Abstract.php +13 -8
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Cart/Products.php +1 -1
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/TestMode.php +2 -3
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Wishlist/DistinctByType.php +1 -1
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Wishlist/Products.php +2 -1
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Generic.php +2 -2
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Interface.php +2 -2
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Wishlist.php +2 -2
- app/code/community/Contactlab/Template/Model/Newsletter/Queue.php +15 -1
- app/code/community/Contactlab/Template/Model/Newsletter/Queue/Link.php +11 -0
- app/code/community/Contactlab/Template/Model/Newsletter/Template.php +85 -4
- app/code/community/Contactlab/Template/Model/Newsletter/XmlDelivery.php +4 -1
- app/code/community/Contactlab/Template/Model/Newsletter/XmlDelivery/Check.php +14 -2
- app/code/community/Contactlab/Template/Model/Resource/Newsletter/Queue/Collection.php +38 -6
- app/code/community/Contactlab/Template/Model/Resource/Newsletter/Queue/Link.php +11 -0
- app/code/community/Contactlab/Template/Model/Resource/Newsletter/Queue/Link/Collection.php +27 -0
- app/code/community/Contactlab/Template/Model/Resource/Newsletter/Template/Collection.php +13 -4
- app/code/community/Contactlab/Template/Model/Task/Observer.php +4 -3
- app/code/community/Contactlab/Template/Model/Type.php +19 -0
- app/code/community/Contactlab/Template/controllers/Adminhtml/Contactlab/Template/TasksController.php +57 -0
- app/code/community/Contactlab/Template/controllers/Adminhtml/{TypesController.php → Contactlab/Template/TypesController.php} +2 -2
- app/code/community/Contactlab/Template/controllers/Adminhtml/{TemplateController.php → Contactlab/TemplateController.php} +12 -3
- app/code/community/Contactlab/Template/controllers/Adminhtml/Newsletter/QueueController.php +1 -1
- app/code/community/Contactlab/Template/controllers/SampleDataController.php +11 -0
- app/code/community/Contactlab/Template/data/contactlab_template_setup/data-upgrade-0.8.20-0.8.21.php +5 -0
- app/code/community/Contactlab/Template/docs/example-templates/subject_ac.json +1 -0
- app/code/community/Contactlab/Template/docs/example-templates/subject_wl.json +1 -0
- app/code/community/Contactlab/Template/docs/release-notes/0.8.18.html +1 -1
- app/code/community/Contactlab/Template/docs/release-notes/0.8.20.html +1 -1
- app/code/community/Contactlab/Template/docs/release-notes/0.8.21.html +3 -0
- app/code/community/Contactlab/Template/docs/release-notes/0.8.22.html +4 -0
- app/code/community/Contactlab/Template/docs/release-notes/0.8.23.html +6 -0
- app/code/community/Contactlab/Template/docs/release-notes/0.8.24.html +5 -0
- app/code/community/Contactlab/Template/docs/release-notes/0.9.0.html +3 -0
- app/code/community/Contactlab/Template/etc/adminhtml.xml +8 -4
- app/code/community/Contactlab/Template/etc/config.xml +16 -12
- app/code/community/Contactlab/Template/etc/system.xml +24 -24
- app/code/community/Contactlab/Template/sql/contactlab_template_setup/old/mysql4-install-0.8.0.php +0 -26
- app/code/community/Contactlab/Template/sql/contactlab_template_setup/upgrade-0.8.22-0.8.23.php +24 -0
- app/code/community/Contactlab/Template/sql/contactlab_template_setup/upgrade-0.8.23-0.8.24.php +28 -0
- app/code/community/Contactlab/Template/sql/contactlab_template_setup/upgrade-0.9.0-0.9.1.php +24 -0
- app/code/community/Contactlab/Transactional/Model/Email/Queue.php +89 -0
- app/code/community/Contactlab/Transactional/Model/Email/Template.php +18 -20
- app/code/community/Contactlab/Transactional/Model/Zend/Mail.php +101 -104
- app/code/community/Contactlab/Transactional/docs/release-notes/0.8.2.html +2 -2
- app/code/community/Contactlab/Transactional/docs/release-notes/0.8.3.html +3 -0
- app/code/community/Contactlab/Transactional/docs/release-notes/0.8.31.html +3 -0
- app/code/community/Contactlab/Transactional/docs/release-notes/0.9.0.html +3 -0
- app/code/community/Contactlab/Transactional/etc/config.xml +6 -5
- app/code/community/Contactlab/Transactional/etc/system.xml +12 -2
- app/design/adminhtml/default/default/layout/contactlab/commons.xml +56 -56
- app/design/adminhtml/default/default/layout/contactlab/subscribers.xml +81 -86
- app/design/adminhtml/default/default/layout/contactlab/template.xml +64 -50
- app/design/adminhtml/default/default/template/contactlab/commons/configurationcheck.phtml +33 -14
- app/design/adminhtml/default/default/template/contactlab/commons/releasenotes.phtml +33 -33
- app/design/adminhtml/default/default/template/contactlab/commons/send_mail.phtml +33 -33
- app/design/adminhtml/default/default/template/contactlab/commons/tasks/js.phtml +4 -4
- app/design/adminhtml/default/default/template/contactlab/commons/tasks/status.phtml +3 -3
- app/design/adminhtml/default/default/template/contactlab/commons/test.phtml +5 -5
- app/design/adminhtml/default/default/template/contactlab/commons/version.phtml +26 -26
- app/design/adminhtml/default/default/template/contactlab/subscribers/export.phtml +5 -5
- app/design/adminhtml/default/default/template/contactlab/subscribers/subscribers.phtml +28 -25
- app/design/adminhtml/default/default/template/contactlab/subscribers/uk.phtml +27 -27
- app/design/adminhtml/default/default/template/contactlab/template/edit/js.phtml +178 -172
- app/design/adminhtml/default/default/template/contactlab/template/edit/validation.phtml +45 -45
- app/design/adminhtml/default/default/template/contactlab/template/tasks/buttons.phtml +16 -13
- app/design/adminhtml/default/default/template/contactlab/template/tasks/debugemail.phtml +3 -3
- app/design/adminhtml/default/default/template/contactlab/template/type/edit.phtml +69 -69
- app/design/frontend/base/default/layout/contactlab/layout.xml +10 -0
- app/design/frontend/base/default/layout/contactlab/subscribers.xml +32 -0
- app/design/frontend/base/default/template/contactlab/subscribers/newsletter/subscribers/modify.phtml +23 -0
- app/design/frontend/base/default/template/contactlab/subscribers/newsletter/subscribers/subscribe.phtml +158 -0
- app/design/frontend/base/default/template/contactlab/subscribers/newsletter/subscribers/update.phtml +148 -0
- app/etc/modules/Contactlab_Commons.xml +12 -26
- app/etc/modules/Contactlab_Subscribers.xml +12 -29
- app/etc/modules/Contactlab_Template.xml +12 -12
- app/etc/modules/Contactlab_Transactional.xml +12 -12
- app/locale/en_US/contactlab/Contactlab_Commons.csv +6 -6
- app/locale/en_US/template/email/contactlab_commons/send_mail.html +0 -2
- app/locale/it_IT/contactlab/Contactlab_Commons.csv +136 -129
- app/locale/it_IT/contactlab/Contactlab_Subscribers.csv +91 -88
- app/locale/it_IT/contactlab/Contactlab_Template.csv +120 -115
- app/locale/it_IT/contactlab/Contactlab_Transactional.csv +7 -7
- js/contactlab_commons/adminhtml/tasks.js +82 -82
- lib/contactlab/Attachment.php +41 -41
- lib/contactlab/AuthToken.php +13 -13
- lib/contactlab/BounceDetail.php +27 -27
- lib/contactlab/Campaign.php +90 -90
- lib/contactlab/CampaignFeedback.php +174 -174
- lib/contactlab/CampaignLookupPreferences.php +15 -15
- lib/contactlab/CampaignNote.php +27 -27
- lib/contactlab/CampaignNotes.php +15 -15
- lib/contactlab/Campaigns.php +15 -15
- lib/contactlab/ClabService.php +1128 -1128
- lib/contactlab/CommunicationCategory.php +41 -41
- lib/contactlab/EmailMessage.php +36 -36
- lib/contactlab/FaxMessage.php +36 -36
- lib/contactlab/LookupPreferences.php +27 -27
- lib/contactlab/Message.php +62 -62
- lib/contactlab/MessageModels.php +15 -15
- lib/contactlab/Recipients.php +20 -20
- lib/contactlab/Sender.php +34 -34
- lib/contactlab/SlicedDataSet.php +20 -20
- lib/contactlab/Subscriber.php +20 -20
- lib/contactlab/SubscriberAttribute.php +20 -20
- lib/contactlab/SubscriberSource.php +62 -62
- lib/contactlab/SubscriberSourceField.php +41 -41
- lib/contactlab/SubscriberSourceFilter.php +48 -48
- lib/contactlab/SubscriberSourceFilters.php +15 -15
- lib/contactlab/SubscriberSources.php +15 -15
- lib/contactlab/Subscribers.php +15 -15
- lib/contactlab/TextMessage.php +15 -15
- lib/contactlab/TrackedLink.php +41 -41
- lib/contactlab/TrackedLinks.php +15 -15
- lib/contactlab/XMLDeliveryInfos.php +15 -15
- lib/contactlab/addAttachment.php +27 -27
- lib/contactlab/addAttachmentResponse.php +13 -13
- lib/contactlab/addCampaignNote.php +27 -27
- lib/contactlab/addCampaignNoteResponse.php +13 -13
- lib/contactlab/addSubscriber.php +27 -27
- lib/contactlab/addSubscriberResponse.php +13 -13
- lib/contactlab/addSubscriberSource.php +20 -20
- lib/contactlab/addSubscriberSourceFilter.php +20 -20
- lib/contactlab/addSubscriberSourceFilterResponse.php +13 -13
- lib/contactlab/addSubscriberSourceResponse.php +13 -13
- lib/contactlab/addSubscribers.php +27 -27
- lib/contactlab/addSubscribersResponse.php +13 -13
- lib/contactlab/archiveSubscriberSourceFilter.php +20 -20
- lib/contactlab/archiveSubscriberSourceFilterResponse.php +6 -6
- lib/contactlab/borrowToken.php +20 -20
- lib/contactlab/borrowTokenResponse.php +13 -13
- lib/contactlab/cancelCampaign.php +20 -20
- lib/contactlab/cancelCampaignResponse.php +6 -6
- lib/contactlab/cloneAndSendCampaign.php +27 -27
- lib/contactlab/cloneAndSendCampaignResponse.php +13 -13
- lib/contactlab/countSubscribers.php +20 -20
- lib/contactlab/countSubscribersIncludedInFilter.php +27 -27
- lib/contactlab/countSubscribersIncludedInFilterResponse.php +13 -13
- lib/contactlab/countSubscribersResponse.php +13 -13
- lib/contactlab/createCampaign.php +20 -20
- lib/contactlab/createCampaignResponse.php +13 -13
- lib/contactlab/createMessageModel.php +20 -20
- lib/contactlab/createMessageModelResponse.php +13 -13
- lib/contactlab/findArchivedFiltersBySubscriberSource.php +27 -27
- lib/contactlab/findArchivedFiltersBySubscriberSourceResponse.php +13 -13
- lib/contactlab/findCampaigns.php +27 -27
- lib/contactlab/findCampaignsByModel.php +34 -34
- lib/contactlab/findCampaignsByModelResponse.php +13 -13
- lib/contactlab/findCampaignsByNameOrSubject.php +34 -34
- lib/contactlab/findCampaignsByNameOrSubjectResponse.php +13 -13
- lib/contactlab/findCampaignsByNote.php +34 -34
- lib/contactlab/findCampaignsByNoteResponse.php +13 -13
- lib/contactlab/findCampaignsByStatus.php +34 -34
- lib/contactlab/findCampaignsByStatusResponse.php +13 -13
- lib/contactlab/findCampaignsResponse.php +13 -13
- lib/contactlab/findCampaignsSentBetween.php +41 -41
- lib/contactlab/findCampaignsSentBetweenResponse.php +13 -13
- lib/contactlab/findFiltersBySubscriberSource.php +27 -27
- lib/contactlab/findFiltersBySubscriberSourceResponse.php +13 -13
- lib/contactlab/findMessageModels.php +27 -27
- lib/contactlab/findMessageModelsBySubscriberSource.php +27 -27
- lib/contactlab/findMessageModelsBySubscriberSourceResponse.php +13 -13
- lib/contactlab/findMessageModelsResponse.php +13 -13
- lib/contactlab/findNotesByCampaign.php +20 -20
- lib/contactlab/findNotesByCampaignResponse.php +13 -13
- lib/contactlab/findPeriodicCampaigns.php +27 -27
- lib/contactlab/findPeriodicCampaignsResponse.php +13 -13
- lib/contactlab/findSubscriberSources.php +20 -20
- lib/contactlab/findSubscriberSourcesResponse.php +13 -13
- lib/contactlab/findSubscribers.php +34 -34
- lib/contactlab/findSubscribersIncludedInFilter.php +34 -34
- lib/contactlab/findSubscribersIncludedInFilterResponse.php +13 -13
- lib/contactlab/findSubscribersResponse.php +13 -13
- lib/contactlab/findTriggerableCampaigns.php +27 -27
- lib/contactlab/findTriggerableCampaignsResponse.php +13 -13
- lib/contactlab/getArchivedSubscriberSourceFilter.php +20 -20
- lib/contactlab/getArchivedSubscriberSourceFilterResponse.php +13 -13
- lib/contactlab/getAttachmentByCampaignId.php +20 -20
- lib/contactlab/getAttachmentByCampaignIdResponse.php +13 -13
- lib/contactlab/getAvailableCommunicationCategories.php +13 -13
- lib/contactlab/getAvailableCommunicationCategoriesResponse.php +13 -13
- lib/contactlab/getCampaign.php +20 -20
- lib/contactlab/getCampaignDeliveryStatus.php +20 -20
- lib/contactlab/getCampaignDeliveryStatusResponse.php +13 -13
- lib/contactlab/getCampaignFeedback.php +20 -20
- lib/contactlab/getCampaignFeedbackResponse.php +13 -13
- lib/contactlab/getCampaignResponse.php +13 -13
- lib/contactlab/getCryptoKey.php +20 -20
- lib/contactlab/getCryptoKeyResponse.php +13 -13
- lib/contactlab/getMessageModelById.php +20 -20
- lib/contactlab/getMessageModelByIdResponse.php +13 -13
- lib/contactlab/getRequestStatus.php +20 -20
- lib/contactlab/getRequestStatusResponse.php +13 -13
- lib/contactlab/getSubscriber.php +27 -27
- lib/contactlab/getSubscriberDataExchangeStatus.php +20 -20
- lib/contactlab/getSubscriberDataExchangeStatusResponse.php +13 -13
- lib/contactlab/getSubscriberResponse.php +13 -13
- lib/contactlab/getSubscriberSource.php +20 -20
- lib/contactlab/getSubscriberSourceFilter.php +20 -20
- lib/contactlab/getSubscriberSourceFilterResponse.php +13 -13
- lib/contactlab/getSubscriberSourceResponse.php +13 -13
- lib/contactlab/getTrackedLinks.php +27 -27
- lib/contactlab/getTrackedLinksResponse.php +13 -13
- lib/contactlab/getXMLDeliveries.php +27 -27
- lib/contactlab/getXMLDeliveriesResponse.php +13 -13
- lib/contactlab/getXMLDeliveryTransitions.php +20 -20
- lib/contactlab/getXMLDeliveryTransitionsResponse.php +13 -13
- lib/contactlab/invalidateToken.php +13 -13
- lib/contactlab/invalidateTokenResponse.php +13 -13
- lib/contactlab/keepaliveToken.php +13 -13
- lib/contactlab/keepaliveTokenResponse.php +13 -13
- lib/contactlab/modifySubscriberSubscriptionStatus.php +34 -34
- lib/contactlab/modifySubscriberSubscriptionStatusByMailqId.php +41 -41
- lib/contactlab/modifySubscriberSubscriptionStatusByMailqIdResponse.php +6 -6
- lib/contactlab/modifySubscriberSubscriptionStatusResponse.php +6 -6
- lib/contactlab/publishOnWeb.php +48 -48
- lib/contactlab/publishOnWebResponse.php +13 -13
- lib/contactlab/removeSubscriber.php +27 -27
- lib/contactlab/removeSubscriberResponse.php +13 -13
- lib/contactlab/requestCampaignFeedbackReport.php +20 -20
- lib/contactlab/requestCampaignFeedbackReportResponse.php +6 -6
- lib/contactlab/reuseSubscriberSourceFilter.php +20 -20
- lib/contactlab/reuseSubscriberSourceFilterResponse.php +6 -6
- lib/contactlab/sendCampaign.php +20 -20
- lib/contactlab/sendCampaignResponse.php +13 -13
- lib/contactlab/sendImmediateMessage.php +34 -34
- lib/contactlab/sendImmediateMessageResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSDataCData.php +34 -34
- lib/contactlab/sendImmediateMessageSDataCDataCA.php +48 -48
- lib/contactlab/sendImmediateMessageSDataCDataCAResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSDataCDataResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSDataCIdCA.php +48 -48
- lib/contactlab/sendImmediateMessageSDataCIdCAResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSIdCData.php +41 -41
- lib/contactlab/sendImmediateMessageSIdCDataCA.php +55 -55
- lib/contactlab/sendImmediateMessageSIdCDataCAResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSIdCDataResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSdataCAl.php +34 -34
- lib/contactlab/sendImmediateMessageSdataCAlCA.php +48 -48
- lib/contactlab/sendImmediateMessageSdataCAlCAResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSdataCAlResponse.php +13 -13
- lib/contactlab/sendImmediateMessageSidCAl.php +41 -41
app/code/community/Contactlab/Commons/Block/Adminhtml/ConfigurationCheck.php
CHANGED
@@ -9,7 +9,7 @@ class Contactlab_Commons_Block_Adminhtml_ConfigurationCheck extends Mage_Adminht
|
|
9 |
*/
|
10 |
protected function _construct()
|
11 |
{
|
12 |
-
|
13 |
parent::_construct();
|
14 |
}
|
15 |
|
@@ -20,17 +20,16 @@ class Contactlab_Commons_Block_Adminhtml_ConfigurationCheck extends Mage_Adminht
|
|
20 |
public function getCronConfiguration() {
|
21 |
$rv = new Varien_Data_Collection();
|
22 |
$config = Mage::getConfig()->getNode('crontab/jobs')->children();
|
23 |
-
$e = "";
|
24 |
foreach ($config as $cronItem) {
|
25 |
if (preg_match('|^contactl|', $cronItem->getName())) {
|
26 |
$item = new Varien_Object();
|
27 |
$item->setModule($this->normalizeModule($cronItem->getName()));
|
28 |
$item->setName($this->normalizeName($cronItem->getName()));
|
29 |
if ($cronItem->description) {
|
30 |
-
$item->setDescription((string)
|
31 |
}
|
32 |
if ($cronItem->schedule) {
|
33 |
-
$item->setSchedule((string)
|
34 |
} else {
|
35 |
$item->setSchedule(false);
|
36 |
}
|
@@ -40,13 +39,34 @@ class Contactlab_Commons_Block_Adminhtml_ConfigurationCheck extends Mage_Adminht
|
|
40 |
return $rv;
|
41 |
}
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
public function normalizeModule($name)
|
44 |
{
|
45 |
return ucwords(str_replace('_', ' ', preg_replace('|^([^_]*_[^_]*).*|', '$1', $name)));
|
46 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
public function normalizeName($name)
|
48 |
{
|
49 |
return ucwords(str_replace('_', ' ', preg_replace('|^[^_]*_[^_]*(.*)|', '$1', $name)));
|
50 |
}
|
51 |
-
|
52 |
}
|
9 |
*/
|
10 |
protected function _construct()
|
11 |
{
|
12 |
+
$this->_headerText = "Configuration Check";
|
13 |
parent::_construct();
|
14 |
}
|
15 |
|
20 |
public function getCronConfiguration() {
|
21 |
$rv = new Varien_Data_Collection();
|
22 |
$config = Mage::getConfig()->getNode('crontab/jobs')->children();
|
|
|
23 |
foreach ($config as $cronItem) {
|
24 |
if (preg_match('|^contactl|', $cronItem->getName())) {
|
25 |
$item = new Varien_Object();
|
26 |
$item->setModule($this->normalizeModule($cronItem->getName()));
|
27 |
$item->setName($this->normalizeName($cronItem->getName()));
|
28 |
if ($cronItem->description) {
|
29 |
+
$item->setDescription((string)$cronItem->description);
|
30 |
}
|
31 |
if ($cronItem->schedule) {
|
32 |
+
$item->setSchedule((string)$cronItem->schedule->cron_expr);
|
33 |
} else {
|
34 |
$item->setSchedule(false);
|
35 |
}
|
39 |
return $rv;
|
40 |
}
|
41 |
|
42 |
+
/**
|
43 |
+
* Subscriber checks.
|
44 |
+
*/
|
45 |
+
public function getSubscribersChecks() {
|
46 |
+
if (!Mage::helper('contactlab_commons')->isModuleEnabled('Contactlab_Subscribers')) {
|
47 |
+
return array();
|
48 |
+
}
|
49 |
+
$helper = Mage::helper('contactlab_subscribers/checks');
|
50 |
+
return $helper->runAvailableChecks();
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Normalize module.
|
55 |
+
* @param string $name
|
56 |
+
* @return string
|
57 |
+
*/
|
58 |
public function normalizeModule($name)
|
59 |
{
|
60 |
return ucwords(str_replace('_', ' ', preg_replace('|^([^_]*_[^_]*).*|', '$1', $name)));
|
61 |
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Normalize module name.
|
65 |
+
* @param string $name
|
66 |
+
* @return string
|
67 |
+
*/
|
68 |
public function normalizeName($name)
|
69 |
{
|
70 |
return ucwords(str_replace('_', ' ', preg_replace('|^[^_]*_[^_]*(.*)|', '$1', $name)));
|
71 |
}
|
|
|
72 |
}
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Events.php
CHANGED
@@ -20,6 +20,6 @@ class Contactlab_Commons_Block_Adminhtml_Events extends Mage_Adminhtml_Block_Wid
|
|
20 |
|
21 |
/** To task index. */
|
22 |
public function getBackUrl() {
|
23 |
-
return $this->getUrl('*/
|
24 |
}
|
25 |
}
|
20 |
|
21 |
/** To task index. */
|
22 |
public function getBackUrl() {
|
23 |
+
return $this->getUrl('*/contactlab_commons_tasks');
|
24 |
}
|
25 |
}
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Events/Grid.php
CHANGED
@@ -48,7 +48,7 @@ class Contactlab_Commons_Block_Adminhtml_Events_Grid extends Mage_Adminhtml_Bloc
|
|
48 |
*/
|
49 |
protected function _prepareColumns() {
|
50 |
$this->addColumn('task_event_id', array(
|
51 |
-
'header' => $this->__('
|
52 |
'align' => 'left',
|
53 |
'index' => 'task_event_id',
|
54 |
'width' => 1,
|
@@ -62,7 +62,7 @@ class Contactlab_Commons_Block_Adminhtml_Events_Grid extends Mage_Adminhtml_Bloc
|
|
62 |
'width' => 300
|
63 |
));
|
64 |
$this->addColumn('created_at', array(
|
65 |
-
'header' => $this->__('Created
|
66 |
'align' => 'left',
|
67 |
'index' => 'created_at',
|
68 |
'width' => 1
|
48 |
*/
|
49 |
protected function _prepareColumns() {
|
50 |
$this->addColumn('task_event_id', array(
|
51 |
+
'header' => $this->__('ID'),
|
52 |
'align' => 'left',
|
53 |
'index' => 'task_event_id',
|
54 |
'width' => 1,
|
62 |
'width' => 300
|
63 |
));
|
64 |
$this->addColumn('created_at', array(
|
65 |
+
'header' => $this->__('Created'),
|
66 |
'align' => 'left',
|
67 |
'index' => 'created_at',
|
68 |
'width' => 1
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Events/Renderer/Status.php
CHANGED
@@ -26,9 +26,12 @@ class Contactlab_Commons_Block_Adminhtml_Events_Renderer_Status extends Mage_Adm
|
|
26 |
$open = "<span class=\"task-status-" . $row->getStatus() . "\" id=\"task-status-" . $row->getTaskId() . "\">";
|
27 |
$close = "</span>";
|
28 |
$status = $row->getStatus();
|
29 |
-
$
|
|
|
|
|
|
|
30 |
return sprintf($open . "<span title=\"%s\" style=\"color: %s; %s\">%s</span>" . $close,
|
31 |
-
$h->__($
|
32 |
$h->__($status));
|
33 |
}
|
34 |
|
26 |
$open = "<span class=\"task-status-" . $row->getStatus() . "\" id=\"task-status-" . $row->getTaskId() . "\">";
|
27 |
$close = "</span>";
|
28 |
$status = $row->getStatus();
|
29 |
+
$statusDef = Contactlab_Commons_Model_Task::$statuses[$status];
|
30 |
+
if ($status === 'hidden') {
|
31 |
+
$status = 'hidden/close';
|
32 |
+
}
|
33 |
return sprintf($open . "<span title=\"%s\" style=\"color: %s; %s\">%s</span>" . $close,
|
34 |
+
$h->__($statusDef['description']), $statusDef['color'], $statusDef['style'],
|
35 |
$h->__($status));
|
36 |
}
|
37 |
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Logs/Grid.php
CHANGED
@@ -35,7 +35,7 @@ class Contactlab_Commons_Block_Adminhtml_Logs_Grid extends Mage_Adminhtml_Block_
|
|
35 |
*/
|
36 |
protected function _prepareColumns() {
|
37 |
$this->addColumn('log_id', array(
|
38 |
-
'header' => $this->__('
|
39 |
'align' => 'left',
|
40 |
'index' => 'log_id',
|
41 |
'width' => 1,
|
@@ -43,7 +43,7 @@ class Contactlab_Commons_Block_Adminhtml_Logs_Grid extends Mage_Adminhtml_Block_
|
|
43 |
'renderer' => 'contactlab_commons/adminhtml_logs_renderer_default'
|
44 |
));
|
45 |
$this->addColumn('created_at', array(
|
46 |
-
'header' => $this->__('Created
|
47 |
'align' => 'left',
|
48 |
'index' => 'created_at',
|
49 |
'width' => 1,
|
35 |
*/
|
36 |
protected function _prepareColumns() {
|
37 |
$this->addColumn('log_id', array(
|
38 |
+
'header' => $this->__('ID'),
|
39 |
'align' => 'left',
|
40 |
'index' => 'log_id',
|
41 |
'width' => 1,
|
43 |
'renderer' => 'contactlab_commons/adminhtml_logs_renderer_default'
|
44 |
));
|
45 |
$this->addColumn('created_at', array(
|
46 |
+
'header' => $this->__('Created'),
|
47 |
'align' => 'left',
|
48 |
'index' => 'created_at',
|
49 |
'width' => 1,
|
app/code/community/Contactlab/Commons/Block/Adminhtml/ReleaseNotes.php
CHANGED
@@ -9,7 +9,7 @@ class Contactlab_Commons_Block_Adminhtml_ReleaseNotes extends Mage_Adminhtml_Blo
|
|
9 |
*/
|
10 |
protected function _construct()
|
11 |
{
|
12 |
-
$this->_headerText = "
|
13 |
parent::_construct();
|
14 |
}
|
15 |
|
9 |
*/
|
10 |
protected function _construct()
|
11 |
{
|
12 |
+
$this->_headerText = "ContactLab Release Notes";
|
13 |
parent::_construct();
|
14 |
}
|
15 |
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Tasks.php
CHANGED
@@ -17,7 +17,7 @@ class Contactlab_Commons_Block_Adminhtml_Tasks extends Mage_Adminhtml_Block_Widg
|
|
17 |
$this->removeButton("add");
|
18 |
$this->addCommandButton("tasks", "clear", 'contactlab_commons', "Clear old tasks", 'Are you sure you want to do this?', '*/*/clear');
|
19 |
if (Mage::helper('contactlab_commons')->isDebug()) {
|
20 |
-
$this->addCommandButton("tasks", "consume", 'contactlab_commons', "
|
21 |
null, '*/*/consume');
|
22 |
}
|
23 |
}
|
17 |
$this->removeButton("add");
|
18 |
$this->addCommandButton("tasks", "clear", 'contactlab_commons', "Clear old tasks", 'Are you sure you want to do this?', '*/*/clear');
|
19 |
if (Mage::helper('contactlab_commons')->isDebug()) {
|
20 |
+
$this->addCommandButton("tasks", "consume", 'contactlab_commons', "Run tasks",
|
21 |
null, '*/*/consume');
|
22 |
}
|
23 |
}
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Tasks/Grid.php
CHANGED
@@ -7,6 +7,7 @@ class Contactlab_Commons_Block_Adminhtml_Tasks_Grid extends Mage_Adminhtml_Block
|
|
7 |
|
8 |
/**
|
9 |
* Construct the block.
|
|
|
10 |
*/
|
11 |
public function __construct($attributes = array()) {
|
12 |
parent::__construct($attributes);
|
@@ -38,7 +39,7 @@ class Contactlab_Commons_Block_Adminhtml_Tasks_Grid extends Mage_Adminhtml_Block
|
|
38 |
*/
|
39 |
protected function _prepareColumns() {
|
40 |
$this->addColumn('task_id', array(
|
41 |
-
'header' => $this->__('
|
42 |
'align' => 'left',
|
43 |
'index' => 'task_id',
|
44 |
'width' => 1
|
@@ -50,14 +51,14 @@ class Contactlab_Commons_Block_Adminhtml_Tasks_Grid extends Mage_Adminhtml_Block
|
|
50 |
'width' => 1
|
51 |
));
|
52 |
$this->addColumn('created_at', array(
|
53 |
-
'header' => $this->__('Created
|
54 |
'align' => 'left',
|
55 |
'index' => 'created_at',
|
56 |
'width' => 1,
|
57 |
'type' => 'datetime'
|
58 |
));
|
59 |
$this->addColumn('planned_at', array(
|
60 |
-
'header' => $this->__('Planned
|
61 |
'align' => 'left',
|
62 |
'index' => 'planned_at',
|
63 |
'width' => 1,
|
@@ -208,9 +209,11 @@ class Contactlab_Commons_Block_Adminhtml_Tasks_Grid extends Mage_Adminhtml_Block
|
|
208 |
|
209 |
/**
|
210 |
* Row url.
|
|
|
|
|
211 |
*/
|
212 |
public function getRowUrl($item) {
|
213 |
-
return $this->getUrl('*/
|
214 |
'id' => $item->getId()
|
215 |
));
|
216 |
}
|
7 |
|
8 |
/**
|
9 |
* Construct the block.
|
10 |
+
* @param array $attributes
|
11 |
*/
|
12 |
public function __construct($attributes = array()) {
|
13 |
parent::__construct($attributes);
|
39 |
*/
|
40 |
protected function _prepareColumns() {
|
41 |
$this->addColumn('task_id', array(
|
42 |
+
'header' => $this->__('ID'),
|
43 |
'align' => 'left',
|
44 |
'index' => 'task_id',
|
45 |
'width' => 1
|
51 |
'width' => 1
|
52 |
));
|
53 |
$this->addColumn('created_at', array(
|
54 |
+
'header' => $this->__('Created'),
|
55 |
'align' => 'left',
|
56 |
'index' => 'created_at',
|
57 |
'width' => 1,
|
58 |
'type' => 'datetime'
|
59 |
));
|
60 |
$this->addColumn('planned_at', array(
|
61 |
+
'header' => $this->__('Planned'),
|
62 |
'align' => 'left',
|
63 |
'index' => 'planned_at',
|
64 |
'width' => 1,
|
209 |
|
210 |
/**
|
211 |
* Row url.
|
212 |
+
* @param $item
|
213 |
+
* @return string
|
214 |
*/
|
215 |
public function getRowUrl($item) {
|
216 |
+
return $this->getUrl('*/contactlab_commons_events/', array(
|
217 |
'id' => $item->getId()
|
218 |
));
|
219 |
}
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Tasks/Renderer/Store.php
CHANGED
@@ -13,6 +13,9 @@ class Contactlab_Commons_Block_Adminhtml_Tasks_Renderer_Store
|
|
13 |
* @return string
|
14 |
*/
|
15 |
public function render(Varien_Object $row) {
|
|
|
|
|
|
|
16 |
return Mage::app()->getStore($row->getStoreId())->getName();
|
17 |
}
|
18 |
}
|
13 |
* @return string
|
14 |
*/
|
15 |
public function render(Varien_Object $row) {
|
16 |
+
if ($row->getStoreId() === null) {
|
17 |
+
return '';
|
18 |
+
}
|
19 |
return Mage::app()->getStore($row->getStoreId())->getName();
|
20 |
}
|
21 |
}
|
app/code/community/Contactlab/Commons/Block/Adminhtml/Version.php
CHANGED
@@ -18,7 +18,7 @@ class Contactlab_Commons_Block_Adminhtml_Version extends Mage_Adminhtml_Block_Ab
|
|
18 |
* @return string
|
19 |
*/
|
20 |
public function getTitle() {
|
21 |
-
return $this->__("Plugin
|
22 |
}
|
23 |
|
24 |
/**
|
18 |
* @return string
|
19 |
*/
|
20 |
public function getTitle() {
|
21 |
+
return $this->__("Plugin version");
|
22 |
}
|
23 |
|
24 |
/**
|
app/code/community/Contactlab/Commons/Helper/Data.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
* Helper data for logging
|
5 |
*/
|
6 |
class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
7 |
|
@@ -38,6 +38,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
38 |
|
39 |
/**
|
40 |
* Emergency: system is unusable
|
|
|
41 |
*/
|
42 |
public function logEmerg($value) {
|
43 |
$this->_log($value, Zend_Log::EMERG);
|
@@ -45,6 +46,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
45 |
|
46 |
/**
|
47 |
* Alert: action must be taken immediately
|
|
|
48 |
*/
|
49 |
public function logAlert($value) {
|
50 |
$this->_log($value, Zend_Log::ALERT);
|
@@ -52,6 +54,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
52 |
|
53 |
/**
|
54 |
* Critical: critical conditions
|
|
|
55 |
*/
|
56 |
public function logCrit($value) {
|
57 |
$this->_log($value, Zend_Log::CRIT);
|
@@ -59,6 +62,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
59 |
|
60 |
/**
|
61 |
* Error: error conditions
|
|
|
62 |
*/
|
63 |
public function logErr($value) {
|
64 |
$this->_log($value, Zend_Log::ERR);
|
@@ -66,6 +70,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
66 |
|
67 |
/**
|
68 |
* Warning: warning conditions
|
|
|
69 |
*/
|
70 |
public function logWarn($value) {
|
71 |
$this->_log($value, Zend_Log::WARN);
|
@@ -73,6 +78,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
73 |
|
74 |
/**
|
75 |
* Notice: normal but significant condition
|
|
|
76 |
*/
|
77 |
public function logNotice($value) {
|
78 |
$this->_log($value, Zend_Log::NOTICE);
|
@@ -80,6 +86,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
80 |
|
81 |
/**
|
82 |
* Informational: informational messages
|
|
|
83 |
*/
|
84 |
public function logInfo($value) {
|
85 |
$this->_log($value, Zend_Log::INFO);
|
@@ -87,6 +94,7 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
87 |
|
88 |
/**
|
89 |
* Debug: debug messages
|
|
|
90 |
*/
|
91 |
public function logDebug($value) {
|
92 |
$this->_log($value, Zend_Log::DEBUG);
|
@@ -94,6 +102,8 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
94 |
|
95 |
/**
|
96 |
* Private log function.
|
|
|
|
|
97 |
*/
|
98 |
private function _log($value, $level) {
|
99 |
Mage::log(sprintf("%-10s %-6s - %s", "Global",
|
@@ -102,31 +112,40 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
102 |
->setDescription($value)->setLogLevel($level)->save();
|
103 |
}
|
104 |
|
105 |
-
/**
|
|
|
|
|
106 |
public function isDebug() {
|
107 |
return Mage::getStoreConfigFlag("contactlab_commons/global/debug");
|
108 |
}
|
109 |
|
110 |
-
/**
|
|
|
|
|
111 |
public function enableDbProfiler() {
|
112 |
if (!$this->isDebug()) {
|
113 |
return;
|
114 |
}
|
115 |
-
|
|
|
|
|
116 |
Varien_Profiler::enable();
|
117 |
}
|
118 |
|
119 |
-
/**
|
|
|
|
|
120 |
public function flushDbProfiler() {
|
121 |
if (!$this->isDebug()) {
|
122 |
return;
|
123 |
}
|
124 |
-
$
|
125 |
-
|
126 |
-
|
127 |
|
128 |
$csvArray = array();
|
129 |
foreach ($profiler->getQueryProfiles() as $q) {
|
|
|
130 |
$csvArray[] = array($q->getElapsedSecs(), $q->getQuery());
|
131 |
}
|
132 |
$logDir = Mage::getBaseDir('var') . DS . 'log';
|
@@ -137,13 +156,27 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
137 |
fclose($fp);
|
138 |
}
|
139 |
|
140 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
141 |
public function isAllowed($section, $action) {
|
|
|
|
|
|
|
142 |
return Mage::getSingleton('admin/session')
|
143 |
->isAllowed("admin/newsletter/contactlab/$section/actions/$action");
|
144 |
}
|
145 |
|
146 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
public function isMageSameOrNewerOf($major, $minor, $revision = 0) {
|
148 |
if ($this->_mageMajor < $major) {
|
149 |
return false;
|
@@ -156,9 +189,13 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
156 |
}
|
157 |
|
158 |
/**
|
159 |
-
* For backward compatibility
|
|
|
|
|
|
|
|
|
160 |
*/
|
161 |
-
public function deleteFromSelect($adapter, $select, $table) {
|
162 |
$select = clone $select;
|
163 |
$select->reset(Zend_Db_Select::DISTINCT);
|
164 |
$select->reset(Zend_Db_Select::COLUMNS);
|
@@ -175,6 +212,9 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
175 |
$count = 0;
|
176 |
foreach (Mage::getConfig()->getNode('modules')->children() as $moduleName => $moduleConfig) {
|
177 |
if (preg_match('/^Contactlab_.*/', $moduleName)) {
|
|
|
|
|
|
|
178 |
$item = new Varien_Object();
|
179 |
$item->setName(preg_replace('/^Contactlab_/', '', $moduleName))
|
180 |
->setVersion((string) $moduleConfig->version)
|
@@ -193,13 +233,28 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
193 |
/**
|
194 |
* Log function call.
|
195 |
* @param String $functionName
|
196 |
-
* @param String $storeId
|
197 |
*/
|
198 |
public function logCronCall($functionName, $storeId = false)
|
199 |
{
|
200 |
$pid = getmypid();
|
201 |
$uid = getmyuid();
|
202 |
$sapi = php_sapi_name();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
if ($storeId !== false) {
|
204 |
$this->logInfo(sprintf(
|
205 |
"Function %s called. pid: %s, uid: %s, sapi: %s, store: %s.",
|
@@ -210,4 +265,42 @@ class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
210 |
$functionName, $pid, $uid, $sapi));
|
211 |
}
|
212 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
}
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* Helper data for logging purpose.
|
5 |
*/
|
6 |
class Contactlab_Commons_Helper_Data extends Mage_Core_Helper_Abstract {
|
7 |
|
38 |
|
39 |
/**
|
40 |
* Emergency: system is unusable
|
41 |
+
* @param string $value
|
42 |
*/
|
43 |
public function logEmerg($value) {
|
44 |
$this->_log($value, Zend_Log::EMERG);
|
46 |
|
47 |
/**
|
48 |
* Alert: action must be taken immediately
|
49 |
+
* @param string $value
|
50 |
*/
|
51 |
public function logAlert($value) {
|
52 |
$this->_log($value, Zend_Log::ALERT);
|
54 |
|
55 |
/**
|
56 |
* Critical: critical conditions
|
57 |
+
* @param string $value
|
58 |
*/
|
59 |
public function logCrit($value) {
|
60 |
$this->_log($value, Zend_Log::CRIT);
|
62 |
|
63 |
/**
|
64 |
* Error: error conditions
|
65 |
+
* @param string $value
|
66 |
*/
|
67 |
public function logErr($value) {
|
68 |
$this->_log($value, Zend_Log::ERR);
|
70 |
|
71 |
/**
|
72 |
* Warning: warning conditions
|
73 |
+
* @param string $value
|
74 |
*/
|
75 |
public function logWarn($value) {
|
76 |
$this->_log($value, Zend_Log::WARN);
|
78 |
|
79 |
/**
|
80 |
* Notice: normal but significant condition
|
81 |
+
* @param string $value
|
82 |
*/
|
83 |
public function logNotice($value) {
|
84 |
$this->_log($value, Zend_Log::NOTICE);
|
86 |
|
87 |
/**
|
88 |
* Informational: informational messages
|
89 |
+
* @param string $value
|
90 |
*/
|
91 |
public function logInfo($value) {
|
92 |
$this->_log($value, Zend_Log::INFO);
|
94 |
|
95 |
/**
|
96 |
* Debug: debug messages
|
97 |
+
* @param string $value
|
98 |
*/
|
99 |
public function logDebug($value) {
|
100 |
$this->_log($value, Zend_Log::DEBUG);
|
102 |
|
103 |
/**
|
104 |
* Private log function.
|
105 |
+
* @param string $value
|
106 |
+
* @param int $level
|
107 |
*/
|
108 |
private function _log($value, $level) {
|
109 |
Mage::log(sprintf("%-10s %-6s - %s", "Global",
|
112 |
->setDescription($value)->setLogLevel($level)->save();
|
113 |
}
|
114 |
|
115 |
+
/**
|
116 |
+
* Check if debug is enabled.
|
117 |
+
*/
|
118 |
public function isDebug() {
|
119 |
return Mage::getStoreConfigFlag("contactlab_commons/global/debug");
|
120 |
}
|
121 |
|
122 |
+
/**
|
123 |
+
* Enable Zend DB Profiler.
|
124 |
+
*/
|
125 |
public function enableDbProfiler() {
|
126 |
if (!$this->isDebug()) {
|
127 |
return;
|
128 |
}
|
129 |
+
/** @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
130 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
131 |
+
$connection->getProfiler()->setEnabled(true);
|
132 |
Varien_Profiler::enable();
|
133 |
}
|
134 |
|
135 |
+
/**
|
136 |
+
* Flush Zend DB Profiler.
|
137 |
+
*/
|
138 |
public function flushDbProfiler() {
|
139 |
if (!$this->isDebug()) {
|
140 |
return;
|
141 |
}
|
142 |
+
/** @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
143 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
144 |
+
$profiler = $connection->getProfiler();
|
145 |
|
146 |
$csvArray = array();
|
147 |
foreach ($profiler->getQueryProfiles() as $q) {
|
148 |
+
/** @var $q Zend_Db_Profiler_Query */
|
149 |
$csvArray[] = array($q->getElapsedSecs(), $q->getQuery());
|
150 |
}
|
151 |
$logDir = Mage::getBaseDir('var') . DS . 'log';
|
156 |
fclose($fp);
|
157 |
}
|
158 |
|
159 |
+
/**
|
160 |
+
* Is the action $action allowed?
|
161 |
+
* @param string $section
|
162 |
+
* @param string $action
|
163 |
+
* @return bool
|
164 |
+
*/
|
165 |
public function isAllowed($section, $action) {
|
166 |
+
if (php_sapi_name() === 'cli') {
|
167 |
+
return false;
|
168 |
+
}
|
169 |
return Mage::getSingleton('admin/session')
|
170 |
->isAllowed("admin/newsletter/contactlab/$section/actions/$action");
|
171 |
}
|
172 |
|
173 |
+
/**
|
174 |
+
* Mage same or newer of (for backward compatibility).
|
175 |
+
* @param int $major
|
176 |
+
* @param int $minor
|
177 |
+
* @param int $revision
|
178 |
+
* @return bool
|
179 |
+
*/
|
180 |
public function isMageSameOrNewerOf($major, $minor, $revision = 0) {
|
181 |
if ($this->_mageMajor < $major) {
|
182 |
return false;
|
189 |
}
|
190 |
|
191 |
/**
|
192 |
+
* For backward compatibility.
|
193 |
+
* @param Varien_Db_Adapter_Pdo_Mysql $adapter
|
194 |
+
* @param Zend_Db_Select $select
|
195 |
+
* @param $table
|
196 |
+
* @return string
|
197 |
*/
|
198 |
+
public function deleteFromSelect(Varien_Db_Adapter_Pdo_Mysql $adapter, Zend_Db_Select $select, $table) {
|
199 |
$select = clone $select;
|
200 |
$select->reset(Zend_Db_Select::DISTINCT);
|
201 |
$select->reset(Zend_Db_Select::COLUMNS);
|
212 |
$count = 0;
|
213 |
foreach (Mage::getConfig()->getNode('modules')->children() as $moduleName => $moduleConfig) {
|
214 |
if (preg_match('/^Contactlab_.*/', $moduleName)) {
|
215 |
+
if (((string) $moduleConfig->active) === 'false') {
|
216 |
+
continue;
|
217 |
+
}
|
218 |
$item = new Varien_Object();
|
219 |
$item->setName(preg_replace('/^Contactlab_/', '', $moduleName))
|
220 |
->setVersion((string) $moduleConfig->version)
|
233 |
/**
|
234 |
* Log function call.
|
235 |
* @param String $functionName
|
236 |
+
* @param bool|String $storeId
|
237 |
*/
|
238 |
public function logCronCall($functionName, $storeId = false)
|
239 |
{
|
240 |
$pid = getmypid();
|
241 |
$uid = getmyuid();
|
242 |
$sapi = php_sapi_name();
|
243 |
+
if (!is_string($functionName)) {
|
244 |
+
try {
|
245 |
+
$functionName = strval($functionName);
|
246 |
+
} catch (\Exception $e) {
|
247 |
+
$functionName = is_object($functionName)?get_class($functionName):gettype($functionName);
|
248 |
+
}
|
249 |
+
}
|
250 |
+
if ($storeId !== false && !is_string($storeId)) {
|
251 |
+
try {
|
252 |
+
$storeId = strval($storeId);
|
253 |
+
} catch (\Exception $e) {
|
254 |
+
$storeId = is_object($storeId)?get_class($storeId):gettype($storeId);
|
255 |
+
}
|
256 |
+
}
|
257 |
+
|
258 |
if ($storeId !== false) {
|
259 |
$this->logInfo(sprintf(
|
260 |
"Function %s called. pid: %s, uid: %s, sapi: %s, store: %s.",
|
265 |
$functionName, $pid, $uid, $sapi));
|
266 |
}
|
267 |
}
|
268 |
+
|
269 |
+
/**
|
270 |
+
* Add critical message.
|
271 |
+
* @param string$value
|
272 |
+
*/
|
273 |
+
public function addCriticalMessage($value) {
|
274 |
+
if ($this->_useCoreAddCritical()) {
|
275 |
+
Mage::getModel('adminnotification/inbox')->addCritical($value, "Contactlab");
|
276 |
+
} else {
|
277 |
+
$this->_addCritical($value, "Contactlab");
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
/** For Mage 1.7 or newer. */
|
282 |
+
private function _useCoreAddCritical() {
|
283 |
+
return Mage::helper("contactlab_commons")->isMageSameOrNewerOf(1, 7);
|
284 |
+
}
|
285 |
+
|
286 |
+
/**
|
287 |
+
* Add new message (Back porting)
|
288 |
+
*
|
289 |
+
* @param string $title
|
290 |
+
* @param string $description
|
291 |
+
* @return $this
|
292 |
+
*/
|
293 |
+
private function _addCritical($title, $description) {
|
294 |
+
$t = Mage::getModel('adminnotification/inbox');
|
295 |
+
$date = date('Y-m-d H:i:s');
|
296 |
+
$t->parse(array(array(
|
297 |
+
'severity' => Mage::helper('adminnotification')->__('critical'),
|
298 |
+
'date_added' => $date,
|
299 |
+
'title' => $title,
|
300 |
+
'description' => $description,
|
301 |
+
'url' => "",
|
302 |
+
'internal' => true
|
303 |
+
)));
|
304 |
+
return $this;
|
305 |
+
}
|
306 |
}
|
app/code/community/Contactlab/Commons/Helper/Tasks.php
CHANGED
@@ -128,6 +128,8 @@ class Contactlab_Commons_Helper_Tasks extends Mage_Core_Helper_Abstract {
|
|
128 |
|
129 |
/** Get events with alert flg. */
|
130 |
private function loadErrorTasks() {
|
|
|
|
|
131 |
$tasks = Mage::getModel('contactlab_commons/task')->getCollection();
|
132 |
$tasks->addFieldToSelect('task_code')
|
133 |
->addFieldToSelect('created_at')
|
@@ -139,7 +141,7 @@ class Contactlab_Commons_Helper_Tasks extends Mage_Core_Helper_Abstract {
|
|
139 |
->addFieldToSelect('retries_interval')
|
140 |
->addFieldToSelect('status')
|
141 |
->getSelect()
|
142 |
-
->join(array('task_event' => Mage::getSingleton('core/resource')->getTableName('contactlab_commons_task_event_entity')),
|
143 |
'main_table.task_id = task_event.task_id AND task_event.email_sent = 0 AND task_event.send_alert = 1',
|
144 |
array('task_event_id' => 'task_event.task_event_id',
|
145 |
'created_at_' => 'task_event.created_at',
|
@@ -148,4 +150,12 @@ class Contactlab_Commons_Helper_Tasks extends Mage_Core_Helper_Abstract {
|
|
148 |
|
149 |
return $tasks;
|
150 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
}
|
128 |
|
129 |
/** Get events with alert flg. */
|
130 |
private function loadErrorTasks() {
|
131 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
132 |
+
|
133 |
$tasks = Mage::getModel('contactlab_commons/task')->getCollection();
|
134 |
$tasks->addFieldToSelect('task_code')
|
135 |
->addFieldToSelect('created_at')
|
141 |
->addFieldToSelect('retries_interval')
|
142 |
->addFieldToSelect('status')
|
143 |
->getSelect()
|
144 |
+
->join(array('task_event' => Mage::getSingleton('core/resource')->getTableName($tablePrefix.'contactlab_commons_task_event_entity')),
|
145 |
'main_table.task_id = task_event.task_id AND task_event.email_sent = 0 AND task_event.send_alert = 1',
|
146 |
array('task_event_id' => 'task_event.task_event_id',
|
147 |
'created_at_' => 'task_event.created_at',
|
150 |
|
151 |
return $tasks;
|
152 |
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Add critical message.
|
156 |
+
* @param string$value
|
157 |
+
*/
|
158 |
+
public function addCriticalMessage($value) {
|
159 |
+
Mage::helper('contactlab_commons')->addCriticalMessage($value);
|
160 |
+
}
|
161 |
}
|
app/code/community/Contactlab/Commons/Model/Deleted.php
CHANGED
@@ -1,5 +1,11 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
class Contactlab_Commons_Model_Deleted extends Mage_Core_Model_Abstract {
|
4 |
|
5 |
public function _construct() {
|
1 |
<?php
|
2 |
|
3 |
+
/**
|
4 |
+
* Class Contactlab_Commons_Model_Deleted.
|
5 |
+
* @method bool getIsCustomer
|
6 |
+
* @method string getEmail
|
7 |
+
* @method Contactlab_Commons_Model_Deleted setTaskId($value)
|
8 |
+
*/
|
9 |
class Contactlab_Commons_Model_Deleted extends Mage_Core_Model_Abstract {
|
10 |
|
11 |
public function _construct() {
|
app/code/community/Contactlab/Commons/Model/Exporter/Abstract.php
CHANGED
@@ -1,8 +1,17 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
4 |
abstract class Contactlab_Commons_Model_Exporter_Abstract extends Contactlab_Commons_Model_AbstractImportExport {
|
5 |
-
/** Export the xml file.
|
|
|
|
|
|
|
|
|
6 |
public final function export(Contactlab_Commons_Model_Task_Interface $task) {
|
7 |
if (!$this->isEnabled()) {
|
8 |
Mage::helper("contactlab_commons")->logWarn("Module export is disabled");
|
1 |
<?php
|
2 |
|
3 |
+
/**
|
4 |
+
* Abstract Exporter Model.
|
5 |
+
* @property resource gz
|
6 |
+
*
|
7 |
+
* @method Contactlab_Commons_Model_Task getTask
|
8 |
+
*/
|
9 |
abstract class Contactlab_Commons_Model_Exporter_Abstract extends Contactlab_Commons_Model_AbstractImportExport {
|
10 |
+
/** Export the xml file.
|
11 |
+
* @param Contactlab_Commons_Model_Task_Interface $task
|
12 |
+
* @return string
|
13 |
+
* @throws Zend_Exception
|
14 |
+
*/
|
15 |
public final function export(Contactlab_Commons_Model_Task_Interface $task) {
|
16 |
if (!$this->isEnabled()) {
|
17 |
Mage::helper("contactlab_commons")->logWarn("Module export is disabled");
|
app/code/community/Contactlab/Commons/Model/Log.php
CHANGED
@@ -3,6 +3,17 @@
|
|
3 |
/**
|
4 |
* Log model.
|
5 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
class Contactlab_Commons_Model_Log extends Mage_Core_Model_Abstract {
|
7 |
|
8 |
/**
|
3 |
/**
|
4 |
* Log model.
|
5 |
*/
|
6 |
+
|
7 |
+
/**
|
8 |
+
* @method int getLogId()
|
9 |
+
* @method Contactlab_Commons_Model_Log setLogId(int $value)
|
10 |
+
* @method string getCreatedAt()
|
11 |
+
* @method Contactlab_Commons_Model_Log setCreatedAt(string $value)
|
12 |
+
* @method int getLogLevel()
|
13 |
+
* @method Contactlab_Commons_Model_Log setLogLevel(int $value)
|
14 |
+
* @method string getDescription()
|
15 |
+
* @method Contactlab_Commons_Model_Log setDescription(string $value)
|
16 |
+
*/
|
17 |
class Contactlab_Commons_Model_Log extends Mage_Core_Model_Abstract {
|
18 |
|
19 |
/**
|
app/code/community/Contactlab/Commons/Model/Resource/Deleted.php
CHANGED
@@ -2,6 +2,6 @@
|
|
2 |
|
3 |
class Contactlab_Commons_Model_Resource_Deleted extends Mage_Core_Model_Mysql4_Abstract {
|
4 |
public function _construct() {
|
5 |
-
$this->_init
|
6 |
}
|
7 |
}
|
2 |
|
3 |
class Contactlab_Commons_Model_Resource_Deleted extends Mage_Core_Model_Mysql4_Abstract {
|
4 |
public function _construct() {
|
5 |
+
$this->_init('contactlab_commons/deleted', 'deleted_entity_id');
|
6 |
}
|
7 |
}
|
app/code/community/Contactlab/Commons/Model/Task.php
CHANGED
@@ -2,6 +2,24 @@
|
|
2 |
|
3 |
/**
|
4 |
* Task model.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
7 |
|
@@ -80,7 +98,7 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
80 |
"style" => "font-weight: bold"
|
81 |
),
|
82 |
self::STATUS_HIDDEN => array(
|
83 |
-
"description" => "Hidden",
|
84 |
"color" => "lightgrey",
|
85 |
"style" => "font-weight: normal"
|
86 |
)
|
@@ -127,12 +145,8 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
127 |
$event->setSendAlert(1);
|
128 |
if (!$this->getSuppressNotification()) {
|
129 |
// Changed for backward compatibility to 1.6
|
130 |
-
|
131 |
-
|
132 |
-
->addCritical(sprintf("[Task %s]: %s", $this->getTaskId(), $description), "Contactlab");
|
133 |
-
} else {
|
134 |
-
$this->_addCritical(sprintf("[Task %s]: %s", $this->getTaskId(), $description), "Contactlab");
|
135 |
-
}
|
136 |
} else {
|
137 |
$this->setSuppressNotification(false);
|
138 |
}
|
@@ -161,6 +175,7 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
161 |
*
|
162 |
* @param string $title
|
163 |
* @param string $description
|
|
|
164 |
*/
|
165 |
private function _addCritical($title, $description) {
|
166 |
$t = Mage::getModel('adminnotification/inbox');
|
@@ -177,7 +192,11 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
177 |
}
|
178 |
|
179 |
|
180 |
-
|
|
|
|
|
|
|
|
|
181 |
public function setModelName($model) {
|
182 |
$rv = parent::setModelName($model);
|
183 |
$this->_resetIntervalAndMaxRetries();
|
@@ -254,7 +273,7 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
254 |
* View task events url.
|
255 |
*/
|
256 |
public function getEventsUrl() {
|
257 |
-
return Mage::helper('adminhtml')->getUrl('
|
258 |
'id' => $this->getTaskId()
|
259 |
));
|
260 |
}
|
@@ -549,7 +568,12 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
549 |
return $rv;
|
550 |
}
|
551 |
|
552 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
553 |
public function setMaxValue($value) {
|
554 |
$rv = parent::setMaxValue($value);
|
555 |
parent::setProgressValue(0);
|
@@ -562,12 +586,20 @@ class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
|
562 |
return $this->getConfigFlag("contactlab_commons/global/enabled");
|
563 |
}
|
564 |
|
565 |
-
/**
|
|
|
|
|
|
|
|
|
566 |
public function getConfig($path) {
|
567 |
return Mage::getStoreConfig($path, $this->getStoreId());
|
568 |
}
|
569 |
|
570 |
-
/**
|
|
|
|
|
|
|
|
|
571 |
public function getConfigFlag($path) {
|
572 |
return Mage::getStoreConfigFlag($path, $this->getStoreId());
|
573 |
}
|
2 |
|
3 |
/**
|
4 |
* Task model.
|
5 |
+
*
|
6 |
+
* @method int getTaskId()
|
7 |
+
* @method int getStoreId()
|
8 |
+
* @method Contactlab_Commons_Model_Task setStoreId($value)
|
9 |
+
* @method Contactlab_Commons_Model_Task setTaskCode($value)
|
10 |
+
* @method int getMaxRetries()
|
11 |
+
* @method int getNumberOfRetries()
|
12 |
+
* @method getTaskData()
|
13 |
+
* @method setAutoDelete(bool $value)
|
14 |
+
* @method setSuppressNotification(bool $value)
|
15 |
+
*
|
16 |
+
* @method Contactlab_Commons_Model_Task setTaskData($value)
|
17 |
+
*
|
18 |
+
* @method Contactlab_Commons_Model_Task setDescription($value)
|
19 |
+
* @method Contactlab_Commons_Model_Task setPlannedAt($value)
|
20 |
+
*
|
21 |
+
* @method bool getPreventDelete()
|
22 |
+
* @method string getStatus()
|
23 |
*/
|
24 |
class Contactlab_Commons_Model_Task extends Mage_Core_Model_Abstract {
|
25 |
|
98 |
"style" => "font-weight: bold"
|
99 |
),
|
100 |
self::STATUS_HIDDEN => array(
|
101 |
+
"description" => "Closed / Hidden",
|
102 |
"color" => "lightgrey",
|
103 |
"style" => "font-weight: normal"
|
104 |
)
|
145 |
$event->setSendAlert(1);
|
146 |
if (!$this->getSuppressNotification()) {
|
147 |
// Changed for backward compatibility to 1.6
|
148 |
+
Mage::helper('contactlab_commons/tasks')
|
149 |
+
->addCriticalMessage(sprintf("[Task %s]: %s", $this->getTaskId(), $description));
|
|
|
|
|
|
|
|
|
150 |
} else {
|
151 |
$this->setSuppressNotification(false);
|
152 |
}
|
175 |
*
|
176 |
* @param string $title
|
177 |
* @param string $description
|
178 |
+
* @return $this
|
179 |
*/
|
180 |
private function _addCritical($title, $description) {
|
181 |
$t = Mage::getModel('adminnotification/inbox');
|
192 |
}
|
193 |
|
194 |
|
195 |
+
/**
|
196 |
+
* On set model name, reset interval and retries.
|
197 |
+
* @param $model
|
198 |
+
* @return Contactlab_Commons_Model_Task
|
199 |
+
*/
|
200 |
public function setModelName($model) {
|
201 |
$rv = parent::setModelName($model);
|
202 |
$this->_resetIntervalAndMaxRetries();
|
273 |
* View task events url.
|
274 |
*/
|
275 |
public function getEventsUrl() {
|
276 |
+
return Mage::helper('adminhtml')->getUrl('adminhtml/contactlab_commons_events/', array(
|
277 |
'id' => $this->getTaskId()
|
278 |
));
|
279 |
}
|
568 |
return $rv;
|
569 |
}
|
570 |
|
571 |
+
/**
|
572 |
+
* Set max value.
|
573 |
+
* @param string $value
|
574 |
+
* @return Contactlab_Commons_Model_Task
|
575 |
+
* @throws Exception
|
576 |
+
*/
|
577 |
public function setMaxValue($value) {
|
578 |
$rv = parent::setMaxValue($value);
|
579 |
parent::setProgressValue(0);
|
586 |
return $this->getConfigFlag("contactlab_commons/global/enabled");
|
587 |
}
|
588 |
|
589 |
+
/**
|
590 |
+
* Get config for store id.
|
591 |
+
* @param string $path
|
592 |
+
* @return mixed
|
593 |
+
*/
|
594 |
public function getConfig($path) {
|
595 |
return Mage::getStoreConfig($path, $this->getStoreId());
|
596 |
}
|
597 |
|
598 |
+
/**
|
599 |
+
* Get config for store id.
|
600 |
+
* @param string $path
|
601 |
+
* @return bool
|
602 |
+
*/
|
603 |
public function getConfigFlag($path) {
|
604 |
return Mage::getStoreConfigFlag($path, $this->getStoreId());
|
605 |
}
|
app/code/community/Contactlab/Commons/Test/Helper/Data.php
ADDED
@@ -0,0 +1,181 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Commons_Test_Helper_Data extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* @var Contactlab_Commons_Helper_Data
|
7 |
+
*/
|
8 |
+
private $helper;
|
9 |
+
|
10 |
+
protected function setUp()
|
11 |
+
{
|
12 |
+
$this->helper = Mage::helper("contactlab_commons");
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @test
|
17 |
+
*/
|
18 |
+
public function isDebug() {
|
19 |
+
$isDebug = $this->helper->isDebug();
|
20 |
+
|
21 |
+
$this->assertFalse($isDebug, "Debug mode should be disabled by default");
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @test
|
26 |
+
*/
|
27 |
+
public function getPlatformVersion() {
|
28 |
+
$version = $this->helper->getPlatformVersion();
|
29 |
+
$this->assertRegExp('|\d+\.\d+(\.\d+)?|', $version, "Platform version should be x.x(.x)?");
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @test
|
34 |
+
*/
|
35 |
+
public function logEmerg() {
|
36 |
+
$this->checkLog("Emerg");
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @test
|
41 |
+
*/
|
42 |
+
public function logAlert() {
|
43 |
+
$this->checkLog("Alert");
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @test
|
48 |
+
*/
|
49 |
+
public function logCrit() {
|
50 |
+
$this->checkLog("Crit");
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @test
|
55 |
+
*/
|
56 |
+
public function logErr() {
|
57 |
+
$this->checkLog("Err");
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* @test
|
62 |
+
*/
|
63 |
+
public function logWarn() {
|
64 |
+
$this->checkLog("Warn");
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @test
|
69 |
+
*/
|
70 |
+
public function logNotice() {
|
71 |
+
$this->checkLog("Notice");
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @test
|
76 |
+
*/
|
77 |
+
public function logDebug() {
|
78 |
+
$this->checkLog("Debug");
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @test
|
83 |
+
*/
|
84 |
+
public function enableDbProfiler()
|
85 |
+
{
|
86 |
+
$this->helper->enableDbProfiler();
|
87 |
+
/** @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
88 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
89 |
+
$profiler = $connection->getProfiler();
|
90 |
+
$profiler->setEnabled(true);
|
91 |
+
$this->assertTrue($profiler->getEnabled());
|
92 |
+
$tasks = Mage::getModel('contactlab_commons/task')->getCollection();
|
93 |
+
$tasks->count();
|
94 |
+
$found = false;
|
95 |
+
|
96 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
97 |
+
foreach ($profiler->getQueryProfiles() as $q) {
|
98 |
+
/** @var $q Zend_Db_Profiler_Query */
|
99 |
+
if (strpos($q->getQuery(), $tablePrefix.'contactlab_commons_task_entity')) {
|
100 |
+
$found = true;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
$this->assertTrue($found, "Query not profiled");
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* @test
|
108 |
+
* @depends enableDbProfiler
|
109 |
+
*/
|
110 |
+
public function flushDbProfiler() {
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* @test
|
115 |
+
*/
|
116 |
+
public function isAllowed() {
|
117 |
+
$this->assertFalse($this->helper->isAllowed('commons', 'tasks'));
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* @test
|
122 |
+
*/
|
123 |
+
public function isMageSameOrNewerOf() {
|
124 |
+
$this->assertTrue($this->helper->isMageSameOrNewerOf(1, 7));
|
125 |
+
$this->assertFalse($this->helper->isMageSameOrNewerOf(1, 11));
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* @test
|
130 |
+
*/
|
131 |
+
public function deleteFromSelect() {
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* @test
|
136 |
+
*/
|
137 |
+
public function getModulesVersion() {
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* @test
|
142 |
+
*/
|
143 |
+
public function logCronCall()
|
144 |
+
{
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* @test
|
149 |
+
*/
|
150 |
+
public function logInfo() {
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* @param $level
|
155 |
+
*/
|
156 |
+
private function checkLog($level)
|
157 |
+
{
|
158 |
+
$random = $this->generateRandomString(64);
|
159 |
+
$f = "log${level}";;
|
160 |
+
$this->helper->$f($random);
|
161 |
+
$logFile = Mage::getBaseDir('log') . DS . 'contactlab.log';
|
162 |
+
$this->assertTrue($this->findLogEntry($logFile, $random, $level), "Could not log with level $level");
|
163 |
+
}
|
164 |
+
|
165 |
+
private function generateRandomString($length)
|
166 |
+
{
|
167 |
+
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
168 |
+
$charactersLength = strlen($characters);
|
169 |
+
$randomString = '';
|
170 |
+
for ($i = 0; $i < $length; $i++) {
|
171 |
+
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
172 |
+
}
|
173 |
+
return $randomString;
|
174 |
+
}
|
175 |
+
|
176 |
+
private function findLogEntry($logFile, $random, $level)
|
177 |
+
{
|
178 |
+
$log = exec("grep $random $logFile");
|
179 |
+
return strpos($log, $level) !== false;
|
180 |
+
}
|
181 |
+
}
|
app/code/community/Contactlab/Commons/Test/resources/composer.json
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "contactlab/magento",
|
3 |
+
"description": "Magento build for ContactlabTest",
|
4 |
+
"require-dev": {
|
5 |
+
"phpunit/phpunit": "~4.4"
|
6 |
+
},
|
7 |
+
"require": {
|
8 |
+
"aydin-hassan/magento-core-composer-installer" : "~1.0",
|
9 |
+
"magento/magento" : "1.9.1.0"
|
10 |
+
},
|
11 |
+
"authors": [
|
12 |
+
{
|
13 |
+
"name": "Andrea Gaspardo",
|
14 |
+
"email": "andrea.gaspardo@webformat.com"
|
15 |
+
}
|
16 |
+
],
|
17 |
+
"repositories": [
|
18 |
+
{
|
19 |
+
"type": "vcs",
|
20 |
+
"url": "git@github.com:AydinHassan/magento-community.git"
|
21 |
+
}
|
22 |
+
],
|
23 |
+
"extra": {
|
24 |
+
"magento-root-dir": "."
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Contactlab/Commons/Test/resources/contactlab_db.sql.gz
ADDED
Binary file
|
app/code/community/Contactlab/Commons/Test/resources/local.xml
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category Mage
|
23 |
+
* @package Mage_Core
|
24 |
+
* @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<config>
|
29 |
+
<global>
|
30 |
+
<install>
|
31 |
+
<date>Wed, 28 Aug 2013 09:51:02 +0000</date>
|
32 |
+
</install>
|
33 |
+
<crypt>
|
34 |
+
<key>17f5448de5bba6da56bd013c43d73df6</key>
|
35 |
+
</crypt>
|
36 |
+
<disable_local_modules>false</disable_local_modules>
|
37 |
+
<resources>
|
38 |
+
<db>
|
39 |
+
<table_prefix></table_prefix>
|
40 |
+
</db>
|
41 |
+
<default_setup>
|
42 |
+
<connection>
|
43 |
+
<host>localhost</host>
|
44 |
+
<username>travis</username>
|
45 |
+
<password></password>
|
46 |
+
<dbname>contactlab_db</dbname>
|
47 |
+
<initStatements>SET NAMES utf8</initStatements>
|
48 |
+
<model>mysql4</model>
|
49 |
+
<type>pdo_mysql</type>
|
50 |
+
<pdoType></pdoType>
|
51 |
+
<active>1</active>
|
52 |
+
</connection>
|
53 |
+
</default_setup>
|
54 |
+
</resources>
|
55 |
+
<session_save>files</session_save>
|
56 |
+
</global>
|
57 |
+
<admin>
|
58 |
+
<routers>
|
59 |
+
<adminhtml>
|
60 |
+
<args>
|
61 |
+
<frontName>admin</frontName>
|
62 |
+
</args>
|
63 |
+
</adminhtml>
|
64 |
+
</routers>
|
65 |
+
</admin>
|
66 |
+
</config>
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/ConfigurationCheckController.php
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Test controller.
|
5 |
-
*/
|
6 |
-
class Contactlab_Commons_Adminhtml_ConfigurationCheckController extends Mage_Adminhtml_Controller_Action {
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Index of release notes.
|
10 |
-
*/
|
11 |
-
public function indexAction() {
|
12 |
-
$this->_title($this->__('Cron configuration check'));
|
13 |
-
$this->loadLayout()->_setActiveMenu('newsletter/contactlab');
|
14 |
-
return $this->renderLayout();
|
15 |
-
}
|
16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/Contactlab/Commons/ConfigurationCheckController.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Test controller.
|
5 |
+
*/
|
6 |
+
class Contactlab_Commons_Adminhtml_Contactlab_Commons_ConfigurationCheckController extends Mage_Adminhtml_Controller_Action {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Index of release notes.
|
10 |
+
*/
|
11 |
+
public function indexAction() {
|
12 |
+
$this->_title($this->__('Configuration Check'));
|
13 |
+
$this->loadLayout()->_setActiveMenu('newsletter/contactlab');
|
14 |
+
return $this->renderLayout();
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Is this controller allowed?
|
19 |
+
* @return bool
|
20 |
+
*/
|
21 |
+
protected function _isAllowed()
|
22 |
+
{
|
23 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/configuration_check');
|
24 |
+
}
|
25 |
+
}
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/{EventsController.php → Contactlab/Commons/EventsController.php}
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Events controller.
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
/**
|
9 |
* Index.
|
@@ -21,4 +21,12 @@ class Contactlab_Commons_Adminhtml_EventsController extends Mage_Adminhtml_Contr
|
|
21 |
return $this->loadLayout(false)->renderLayout();
|
22 |
}
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
}
|
3 |
/**
|
4 |
* Events controller.
|
5 |
*/
|
6 |
+
class Contactlab_Commons_Adminhtml_Contactlab_Commons_EventsController extends Mage_Adminhtml_Controller_Action {
|
7 |
|
8 |
/**
|
9 |
* Index.
|
21 |
return $this->loadLayout(false)->renderLayout();
|
22 |
}
|
23 |
|
24 |
+
/**
|
25 |
+
* Is this controller allowed?
|
26 |
+
* @return bool
|
27 |
+
*/
|
28 |
+
protected function _isAllowed()
|
29 |
+
{
|
30 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/tasks');
|
31 |
+
}
|
32 |
}
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/{LogsController.php → Contactlab/Commons/LogsController.php}
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Logs controller.
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
/**
|
9 |
* Index.
|
@@ -29,4 +29,12 @@ class Contactlab_Commons_Adminhtml_LogsController extends Mage_Adminhtml_Control
|
|
29 |
$this->_redirect('*/*');
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
3 |
/**
|
4 |
* Logs controller.
|
5 |
*/
|
6 |
+
class Contactlab_Commons_Adminhtml_Contactlab_Commons_LogsController extends Mage_Adminhtml_Controller_Action {
|
7 |
|
8 |
/**
|
9 |
* Index.
|
29 |
$this->_redirect('*/*');
|
30 |
}
|
31 |
|
32 |
+
/**
|
33 |
+
* Is this controller allowed?
|
34 |
+
* @return bool
|
35 |
+
*/
|
36 |
+
protected function _isAllowed()
|
37 |
+
{
|
38 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/logs');
|
39 |
+
}
|
40 |
}
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/Contactlab/Commons/ReleaseNotesController.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Test controller.
|
5 |
+
*/
|
6 |
+
class Contactlab_Commons_Adminhtml_Contactlab_Commons_ReleaseNotesController extends Mage_Adminhtml_Controller_Action {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Index of release notes.
|
10 |
+
*/
|
11 |
+
public function indexAction() {
|
12 |
+
$this->_title($this->__('ContactLab release notes'));
|
13 |
+
$this->loadLayout()->_setActiveMenu('newsletter/contactlab');
|
14 |
+
return $this->renderLayout();
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Is this controller allowed?
|
19 |
+
* @return bool
|
20 |
+
*/
|
21 |
+
protected function _isAllowed()
|
22 |
+
{
|
23 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/release_notes');
|
24 |
+
}
|
25 |
+
}
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/{TasksController.php → Contactlab/Commons/TasksController.php}
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Tasks controller.
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
/**
|
9 |
* Index.
|
@@ -205,9 +205,7 @@ class Contactlab_Commons_Adminhtml_TasksController extends Mage_Adminhtml_Contro
|
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
-
*
|
209 |
-
* @params:
|
210 |
-
* @return: void
|
211 |
*/
|
212 |
public function setStatusAction() {
|
213 |
$session = Mage::getSingleton('adminhtml/session');
|
@@ -272,7 +270,7 @@ class Contactlab_Commons_Adminhtml_TasksController extends Mage_Adminhtml_Contro
|
|
272 |
}
|
273 |
|
274 |
/**
|
275 |
-
*
|
276 |
*/
|
277 |
public function massDeleteAction() {
|
278 |
$session = Mage::getSingleton('adminhtml/session');
|
@@ -294,4 +292,12 @@ class Contactlab_Commons_Adminhtml_TasksController extends Mage_Adminhtml_Contro
|
|
294 |
$this->_redirect('*/*');
|
295 |
}
|
296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
}
|
3 |
/**
|
4 |
* Tasks controller.
|
5 |
*/
|
6 |
+
class Contactlab_Commons_Adminhtml_Contactlab_Commons_TasksController extends Mage_Adminhtml_Controller_Action {
|
7 |
|
8 |
/**
|
9 |
* Index.
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
+
* Set task status mass action
|
|
|
|
|
209 |
*/
|
210 |
public function setStatusAction() {
|
211 |
$session = Mage::getSingleton('adminhtml/session');
|
270 |
}
|
271 |
|
272 |
/**
|
273 |
+
* Mass delete.
|
274 |
*/
|
275 |
public function massDeleteAction() {
|
276 |
$session = Mage::getSingleton('adminhtml/session');
|
292 |
$this->_redirect('*/*');
|
293 |
}
|
294 |
|
295 |
+
/**
|
296 |
+
* Is this controller allowed?
|
297 |
+
* @return bool
|
298 |
+
*/
|
299 |
+
protected function _isAllowed()
|
300 |
+
{
|
301 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/tasks');
|
302 |
+
}
|
303 |
}
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/{TestController.php → Contactlab/Commons/TestController.php}
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Test controller.
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
/**
|
9 |
* Index.
|
@@ -19,7 +19,7 @@ class Contactlab_Commons_Adminhtml_TestController extends Mage_Adminhtml_Control
|
|
19 |
*/
|
20 |
public function queueAction() {
|
21 |
Mage::getModel("contactlab_commons/cron")->addTestQueue();
|
22 |
-
return $this->_redirect('*/
|
23 |
}
|
24 |
|
25 |
}
|
3 |
/**
|
4 |
* Test controller.
|
5 |
*/
|
6 |
+
class Contactlab_Commons_Adminhtml_Contactlab_Commons_TestController extends Mage_Adminhtml_Controller_Action {
|
7 |
|
8 |
/**
|
9 |
* Index.
|
19 |
*/
|
20 |
public function queueAction() {
|
21 |
Mage::getModel("contactlab_commons/cron")->addTestQueue();
|
22 |
+
return $this->_redirect('*/contactlab_commons_tasks');
|
23 |
}
|
24 |
|
25 |
}
|
app/code/community/Contactlab/Commons/controllers/Adminhtml/ReleaseNotesController.php
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Test controller.
|
5 |
-
*/
|
6 |
-
class Contactlab_Commons_Adminhtml_ReleaseNotesController extends Mage_Adminhtml_Controller_Action {
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Index of release notes.
|
10 |
-
*/
|
11 |
-
public function indexAction() {
|
12 |
-
$this->_title($this->__('ContactLab release notes'));
|
13 |
-
$this->loadLayout()->_setActiveMenu('newsletter/contactlab');
|
14 |
-
return $this->renderLayout();
|
15 |
-
}
|
16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Commons/docs/ContactlabMagento.docx
DELETED
Binary file
|
app/code/community/Contactlab/Commons/docs/Quick Install Guide.docx
DELETED
Binary file
|
app/code/community/Contactlab/Commons/docs/example-config/contactlab.xml
CHANGED
@@ -50,7 +50,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
50 |
<soap_call_set_subscribed></soap_call_set_subscribed><!-- 0/1 default 0 -->
|
51 |
</global>
|
52 |
<subscriber_to_customer>
|
53 |
-
<email_on_unsubscribe></email_on_unsubscribe><!-- 0/1, default 0. Unsubscribe the customer
|
54 |
<unsubscribe_if_not_confirm></unsubscribe_if_not_confirm><!-- 0/1, default 0 -->
|
55 |
</subscriber_to_customer>
|
56 |
</contactlab_subscribers>
|
50 |
<soap_call_set_subscribed></soap_call_set_subscribed><!-- 0/1 default 0 -->
|
51 |
</global>
|
52 |
<subscriber_to_customer>
|
53 |
+
<email_on_unsubscribe></email_on_unsubscribe><!-- 0/1, default 0. Unsubscribe the customer from the Newsletter if they do not select the subscription checkbox. -->
|
54 |
<unsubscribe_if_not_confirm></unsubscribe_if_not_confirm><!-- 0/1, default 0 -->
|
55 |
</subscriber_to_customer>
|
56 |
</contactlab_subscribers>
|
app/code/community/Contactlab/Commons/docs/release-notes/0.8.13.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<ul>
|
2 |
-
<li><del>
|
3 |
-
<li><del>
|
4 |
</ul>
|
1 |
<ul>
|
2 |
+
<li><del>Between</del> <strong>label</strong> fixed to <q>Between</q></li>
|
3 |
+
<li><del>Attempts</del> <strong>label</strong> fixed to <q>Attempts</q></li>
|
4 |
</ul>
|
app/code/community/Contactlab/Commons/docs/release-notes/0.8.16.html
CHANGED
@@ -2,4 +2,6 @@
|
|
2 |
<li>Modified xml template docs.</li>
|
3 |
<li>Trimmed mail recipients of error notification mail.</li>
|
4 |
<li><strong>Feature</strong>: Configuration Check Page</li>
|
|
|
|
|
5 |
</ul>
|
2 |
<li>Modified xml template docs.</li>
|
3 |
<li>Trimmed mail recipients of error notification mail.</li>
|
4 |
<li><strong>Feature</strong>: Configuration Check Page</li>
|
5 |
+
<li><strong>FIXED</strong>: Wrong <q>Sep<del>e</del><em>a</em>rare</q> translation</li>
|
6 |
+
<li><strong>FIXED</strong>: Wrong <code>contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries</code> tag in system.xml</li>
|
7 |
</ul>
|
app/code/community/Contactlab/Commons/docs/release-notes/0.8.17.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Removed default values from <code>config.xml</code>.</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Commons/docs/release-notes/0.9.0.html
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Modified adminhtml controllers due to SUPEE-6788 Magento patch.</li>
|
3 |
+
<li><strong>Feature</strong> new checks available into the <q>Configuration checks</q> page.</li>
|
4 |
+
</ul>
|
app/code/community/Contactlab/Commons/docs/release-notes/1.0.0.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Improvement</strong> custom table prefix is now fully supported.</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Commons/etc/adminhtml.xml
CHANGED
@@ -10,22 +10,22 @@
|
|
10 |
<tasks translate="title" module="contactlab_commons">
|
11 |
<title>Tasks</title>
|
12 |
<sort_order>10</sort_order>
|
13 |
-
<action>
|
14 |
</tasks>
|
15 |
<logs translate="title" module="contactlab_commons">
|
16 |
<title>Logs</title>
|
17 |
<sort_order>30</sort_order>
|
18 |
-
<action>
|
19 |
</logs>
|
20 |
<release_notes translate="title" module="contactlab_commons">
|
21 |
<title>Release notes</title>
|
22 |
<sort_order>1030</sort_order>
|
23 |
-
<action>
|
24 |
</release_notes>
|
25 |
<configuration_check translate="title" module="contactlab_commons">
|
26 |
-
<title>
|
27 |
<sort_order>1040</sort_order>
|
28 |
-
<action>
|
29 |
</configuration_check>
|
30 |
</children>
|
31 |
</contactlab>
|
@@ -35,74 +35,74 @@
|
|
35 |
<acl>
|
36 |
<resources>
|
37 |
<admin>
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
<system>
|
101 |
<children>
|
102 |
<config>
|
103 |
<children>
|
104 |
<contactlab_commons translate="title" module="contactlab_commons">
|
105 |
-
<title>
|
106 |
<sort_order>10</sort_order>
|
107 |
</contactlab_commons>
|
108 |
</children>
|
10 |
<tasks translate="title" module="contactlab_commons">
|
11 |
<title>Tasks</title>
|
12 |
<sort_order>10</sort_order>
|
13 |
+
<action>adminhtml/contactlab_commons_tasks</action>
|
14 |
</tasks>
|
15 |
<logs translate="title" module="contactlab_commons">
|
16 |
<title>Logs</title>
|
17 |
<sort_order>30</sort_order>
|
18 |
+
<action>adminhtml/contactlab_commons_logs</action>
|
19 |
</logs>
|
20 |
<release_notes translate="title" module="contactlab_commons">
|
21 |
<title>Release notes</title>
|
22 |
<sort_order>1030</sort_order>
|
23 |
+
<action>adminhtml/contactlab_commons_releaseNotes</action>
|
24 |
</release_notes>
|
25 |
<configuration_check translate="title" module="contactlab_commons">
|
26 |
+
<title>Configuration Check</title>
|
27 |
<sort_order>1040</sort_order>
|
28 |
+
<action>adminhtml/contactlab_commons_configurationCheck</action>
|
29 |
</configuration_check>
|
30 |
</children>
|
31 |
</contactlab>
|
35 |
<acl>
|
36 |
<resources>
|
37 |
<admin>
|
38 |
+
<children>
|
39 |
+
<newsletter>
|
40 |
+
<children>
|
41 |
+
<contactlab translate="title" module="contactlab_commons">
|
42 |
+
<title>ContactLab</title>
|
43 |
+
<sort_order>1000</sort_order>
|
44 |
+
<children>
|
45 |
+
<tasks translate="title">
|
46 |
+
<title>Tasks</title>
|
47 |
+
<sort_order>10</sort_order>
|
48 |
+
<children>
|
49 |
+
<actions>
|
50 |
+
<title>Actions</title>
|
51 |
+
<children>
|
52 |
+
<suspend translate="title" module="contactlab_commons">
|
53 |
+
<title>Suspend tasks</title>
|
54 |
+
<sort_order>10</sort_order>
|
55 |
+
</suspend>
|
56 |
+
<unsuspend translate="title" module="contactlab_commons">
|
57 |
+
<title>Unsuspend tasks</title>
|
58 |
+
<sort_order>20</sort_order>
|
59 |
+
</unsuspend>
|
60 |
+
<retry translate="title" module="contactlab_commons">
|
61 |
+
<title>Retry tasks</title>
|
62 |
+
<sort_order>30</sort_order>
|
63 |
+
</retry>
|
64 |
+
<run translate="title" module="contactlab_commons">
|
65 |
+
<title>Run tasks</title>
|
66 |
+
<sort_order>40</sort_order>
|
67 |
+
</run>
|
68 |
+
<cancel translate="title" module="contactlab_commons">
|
69 |
+
<title>Cancel tasks</title>
|
70 |
+
<sort_order>50</sort_order>
|
71 |
+
</cancel>
|
72 |
+
<delete translate="title" module="contactlab_commons">
|
73 |
+
<title>Delete tasks</title>
|
74 |
+
<sort_order>50</sort_order>
|
75 |
+
</delete>
|
76 |
+
<clear translate="title" module="contactlab_commons">
|
77 |
+
<title>Clear queue</title>
|
78 |
+
<sort_order>60</sort_order>
|
79 |
+
</clear>
|
80 |
+
</children>
|
81 |
+
</actions>
|
82 |
+
</children>
|
83 |
+
</tasks>
|
84 |
+
<logs translate="title">
|
85 |
+
<title>Logs</title>
|
86 |
+
<sort_order>30</sort_order>
|
87 |
+
</logs>
|
88 |
+
<release_notes>
|
89 |
+
<title>Release notes</title>
|
90 |
+
<sort_order>1030</sort_order>
|
91 |
+
</release_notes>
|
92 |
+
<configuration_check>
|
93 |
+
<title>Configuration Check</title>
|
94 |
+
<sort_order>1040</sort_order>
|
95 |
+
</configuration_check>
|
96 |
+
</children>
|
97 |
+
</contactlab>
|
98 |
+
</children>
|
99 |
+
</newsletter>
|
100 |
<system>
|
101 |
<children>
|
102 |
<config>
|
103 |
<children>
|
104 |
<contactlab_commons translate="title" module="contactlab_commons">
|
105 |
+
<title>ContactLab</title>
|
106 |
<sort_order>10</sort_order>
|
107 |
</contactlab_commons>
|
108 |
</children>
|
app/code/community/Contactlab/Commons/etc/config.xml
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Commons>
|
5 |
-
<version>0.
|
6 |
-
<description>Magento/ContactLab Common functions
|
7 |
</Contactlab_Commons>
|
8 |
</modules>
|
9 |
<global>
|
@@ -79,6 +79,13 @@
|
|
79 |
<frontName>contactlab_commons</frontName>
|
80 |
</args>
|
81 |
</contactlab_commons>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
</routers>
|
83 |
</admin>
|
84 |
<adminhtml>
|
@@ -135,24 +142,28 @@
|
|
135 |
<default>
|
136 |
<contactlab_commons>
|
137 |
<global>
|
138 |
-
|
139 |
-
<debug>0</debug
|
140 |
-
<platform_version>2.
|
141 |
</global>
|
142 |
<connection>
|
143 |
-
|
144 |
<import_local_path>/tmp</import_local_path>
|
145 |
<export_local_path>/tmp</export_local_path>
|
146 |
<remote_server>sftp-clab.housing.tomato.it</remote_server>
|
147 |
<import_remote_path>incoming/exporter</import_remote_path>
|
148 |
-
<export_remote_path>incoming/updater</export_remote_path
|
149 |
-
<!-- TODO Remove in prod -->
|
150 |
-
<sftp_username>magento-test</sftp_username>
|
151 |
-
<sftp_password></sftp_password>
|
152 |
</connection>
|
153 |
<soap>
|
154 |
-
|
155 |
</soap>
|
156 |
</contactlab_commons>
|
157 |
</default>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
</config>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Commons>
|
5 |
+
<version>1.0.1</version>
|
6 |
+
<description>Magento/ContactLab Common functions.</description>
|
7 |
</Contactlab_Commons>
|
8 |
</modules>
|
9 |
<global>
|
79 |
<frontName>contactlab_commons</frontName>
|
80 |
</args>
|
81 |
</contactlab_commons>
|
82 |
+
<adminhtml>
|
83 |
+
<args>
|
84 |
+
<modules>
|
85 |
+
<contactlab_commons before="Mage_Adminhtml">Contactlab_Commons_Adminhtml</contactlab_commons>
|
86 |
+
</modules>
|
87 |
+
</args>
|
88 |
+
</adminhtml>
|
89 |
</routers>
|
90 |
</admin>
|
91 |
<adminhtml>
|
142 |
<default>
|
143 |
<contactlab_commons>
|
144 |
<global>
|
145 |
+
<!--days_of_old_tasks>3</days_of_old_tasks>
|
146 |
+
<debug>0</debug-->
|
147 |
+
<platform_version>2.4.1</platform_version>
|
148 |
</global>
|
149 |
<connection>
|
150 |
+
<!--type>1</type>
|
151 |
<import_local_path>/tmp</import_local_path>
|
152 |
<export_local_path>/tmp</export_local_path>
|
153 |
<remote_server>sftp-clab.housing.tomato.it</remote_server>
|
154 |
<import_remote_path>incoming/exporter</import_remote_path>
|
155 |
+
<export_remote_path>incoming/updater</export_remote_path-->
|
|
|
|
|
|
|
156 |
</connection>
|
157 |
<soap>
|
158 |
+
<!--wsdl_url><![CDATA[https://soap.contactlab.it/soap/services?wsdl]]></wsdl_url-->
|
159 |
</soap>
|
160 |
</contactlab_commons>
|
161 |
</default>
|
162 |
+
<phpunit>
|
163 |
+
<suite>
|
164 |
+
<modules>
|
165 |
+
<Contactlab_Commons/>
|
166 |
+
</modules>
|
167 |
+
</suite>
|
168 |
+
</phpunit>
|
169 |
</config>
|
app/code/community/Contactlab/Commons/etc/system.xml
CHANGED
@@ -24,17 +24,17 @@
|
|
24 |
<show_in_website>0</show_in_website>
|
25 |
<show_in_store>0</show_in_store>
|
26 |
<!--comment><![CDATA[<h3>Example configuration</h3>
|
27 |
-
<p>This
|
28 |
<pre><crontab>
|
29 |
<jobs>
|
30 |
-
<
|
31 |
<schedule>
|
32 |
<cron_expr>35 10 * * *</cron_expr>
|
33 |
</schedule>
|
34 |
<run>
|
35 |
<model>contactlab_commons/cron::clearQueue</model>
|
36 |
</run>
|
37 |
-
</
|
38 |
</jobs>
|
39 |
</crontab></pre>]]></comment-->
|
40 |
<fields>
|
@@ -46,10 +46,10 @@
|
|
46 |
<show_in_default>1</show_in_default>
|
47 |
<show_in_website>1</show_in_website>
|
48 |
<show_in_store>1</show_in_store>
|
49 |
-
<comment>Enable or disable
|
50 |
</enabled>
|
51 |
<days_of_old_tasks translate="label">
|
52 |
-
<label>
|
53 |
<frontend_type>text</frontend_type>
|
54 |
<sort_order>20</sort_order>
|
55 |
<show_in_default>1</show_in_default>
|
@@ -68,7 +68,7 @@
|
|
68 |
</fields>
|
69 |
</global>
|
70 |
<connection translate="label">
|
71 |
-
<label>File Transfer
|
72 |
<frontend_type>text</frontend_type>
|
73 |
<sort_order>20</sort_order>
|
74 |
<show_in_default>1</show_in_default>
|
@@ -162,7 +162,7 @@
|
|
162 |
<show_in_store>1</show_in_store>
|
163 |
</enable>
|
164 |
<wsdl_url translate="label">
|
165 |
-
<label>WSDL
|
166 |
<frontend_type>text</frontend_type>
|
167 |
<sort_order>20</sort_order>
|
168 |
<show_in_default>1</show_in_default>
|
@@ -173,7 +173,7 @@
|
|
173 |
</depends>
|
174 |
</wsdl_url>
|
175 |
<uid translate="label">
|
176 |
-
<label>
|
177 |
<frontend_type>password</frontend_type>
|
178 |
<sort_order>30</sort_order>
|
179 |
<show_in_default>1</show_in_default>
|
@@ -184,7 +184,7 @@
|
|
184 |
</depends>
|
185 |
</uid>
|
186 |
<apikey translate="label">
|
187 |
-
<label>
|
188 |
<frontend_type>password</frontend_type>
|
189 |
<sort_order>40</sort_order>
|
190 |
<show_in_default>1</show_in_default>
|
@@ -209,7 +209,7 @@
|
|
209 |
<expanded>0</expanded>
|
210 |
<fields>
|
211 |
<soap_call_is_subscribed translate="label">
|
212 |
-
<label>
|
213 |
<frontend_type>select</frontend_type>
|
214 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
215 |
<sort_order>100</sort_order>
|
@@ -219,7 +219,7 @@
|
|
219 |
<config_path>contactlab_subscribers/global/soap_call_is_subscribed</config_path>
|
220 |
</soap_call_is_subscribed>
|
221 |
<soap_call_set_subscribed translate="label">
|
222 |
-
<label>
|
223 |
<frontend_type>select</frontend_type>
|
224 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
225 |
<sort_order>110</sort_order>
|
@@ -230,16 +230,16 @@
|
|
230 |
</soap_call_set_subscribed>
|
231 |
|
232 |
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>
|
233 |
-
<label>Interval between
|
234 |
<frontend_type>text</frontend_type>
|
235 |
<sort_order>510</sort_order>
|
236 |
<show_in_default>1</show_in_default>
|
237 |
<show_in_website>1</show_in_website>
|
238 |
<show_in_store>1</show_in_store>
|
239 |
-
<config_path>contactlab_subscribers/queue/
|
240 |
</contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>
|
241 |
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries>
|
242 |
-
<label>Total number of
|
243 |
<frontend_type>text</frontend_type>
|
244 |
<sort_order>520</sort_order>
|
245 |
<show_in_default>1</show_in_default>
|
@@ -261,18 +261,18 @@
|
|
261 |
<expanded>0</expanded>
|
262 |
<fields>
|
263 |
<unsubscribe_if_not_confirm translate="label">
|
264 |
-
<label>Delete
|
265 |
<frontend_type>select</frontend_type>
|
266 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
267 |
<sort_order>100</sort_order>
|
268 |
<show_in_default>1</show_in_default>
|
269 |
<show_in_website>1</show_in_website>
|
270 |
<show_in_store>1</show_in_store>
|
271 |
-
<comment>Unsubscribe the customer
|
272 |
<config_path>contactlab_subscribers/subscriber_to_customer/unsubscribe_if_not_confirm</config_path>
|
273 |
</unsubscribe_if_not_confirm>
|
274 |
<email_on_unsubscribe translate="label">
|
275 |
-
<label>Send
|
276 |
<frontend_type>select</frontend_type>
|
277 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
278 |
<sort_order>110</sort_order>
|
@@ -284,12 +284,23 @@
|
|
284 |
</depends>
|
285 |
<config_path>contactlab_subscribers/subscriber_to_customer/email_on_unsubscribe</config_path>
|
286 |
</email_on_unsubscribe>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
</fields>
|
288 |
</behavior>
|
289 |
|
290 |
|
291 |
<error_email translate="label">
|
292 |
-
<label>Error
|
293 |
<frontend_type>text</frontend_type>
|
294 |
<sort_order>60</sort_order>
|
295 |
<show_in_default>1</show_in_default>
|
@@ -312,7 +323,7 @@
|
|
312 |
</crontab></pre>]]></old_comment>
|
313 |
<fields>
|
314 |
<enable translate="label">
|
315 |
-
<label>Enable error
|
316 |
<frontend_type>select</frontend_type>
|
317 |
<sort_order>10</sort_order>
|
318 |
<show_in_default>1</show_in_default>
|
@@ -343,13 +354,13 @@
|
|
343 |
</depends>
|
344 |
</email_sender_name>
|
345 |
<recipients translate="label">
|
346 |
-
<label>
|
347 |
<frontend_type>text</frontend_type>
|
348 |
<sort_order>40</sort_order>
|
349 |
<show_in_default>1</show_in_default>
|
350 |
<show_in_website>0</show_in_website>
|
351 |
<show_in_store>0</show_in_store>
|
352 |
-
<comment>Use ; delimiter
|
353 |
<depends>
|
354 |
<enable>1</enable>
|
355 |
</depends>
|
@@ -376,7 +387,7 @@
|
|
376 |
<show_in_website>0</show_in_website>
|
377 |
<show_in_store>0</show_in_store>
|
378 |
<comment><![CDATA[<h3>Example configuration</h3>
|
379 |
-
<p>This
|
380 |
<pre><crontab>
|
381 |
<jobs>
|
382 |
<contactlab_subscribers_clear_queue>
|
24 |
<show_in_website>0</show_in_website>
|
25 |
<show_in_store>0</show_in_store>
|
26 |
<!--comment><![CDATA[<h3>Example configuration</h3>
|
27 |
+
<p>This configuration example clears old tasks from the queue every day at 10:35 AM.</p>
|
28 |
<pre><crontab>
|
29 |
<jobs>
|
30 |
+
<contactlab_commons_clear_queue>
|
31 |
<schedule>
|
32 |
<cron_expr>35 10 * * *</cron_expr>
|
33 |
</schedule>
|
34 |
<run>
|
35 |
<model>contactlab_commons/cron::clearQueue</model>
|
36 |
</run>
|
37 |
+
</contactlab_commons_clear_queue>
|
38 |
</jobs>
|
39 |
</crontab></pre>]]></comment-->
|
40 |
<fields>
|
46 |
<show_in_default>1</show_in_default>
|
47 |
<show_in_website>1</show_in_website>
|
48 |
<show_in_store>1</show_in_store>
|
49 |
+
<comment>Enable or disable ContactLab module</comment>
|
50 |
</enabled>
|
51 |
<days_of_old_tasks translate="label">
|
52 |
+
<label>Days before a task is regarded as obsolete</label>
|
53 |
<frontend_type>text</frontend_type>
|
54 |
<sort_order>20</sort_order>
|
55 |
<show_in_default>1</show_in_default>
|
68 |
</fields>
|
69 |
</global>
|
70 |
<connection translate="label">
|
71 |
+
<label>File Transfer configuration</label>
|
72 |
<frontend_type>text</frontend_type>
|
73 |
<sort_order>20</sort_order>
|
74 |
<show_in_default>1</show_in_default>
|
162 |
<show_in_store>1</show_in_store>
|
163 |
</enable>
|
164 |
<wsdl_url translate="label">
|
165 |
+
<label>WSDL URL</label>
|
166 |
<frontend_type>text</frontend_type>
|
167 |
<sort_order>20</sort_order>
|
168 |
<show_in_default>1</show_in_default>
|
173 |
</depends>
|
174 |
</wsdl_url>
|
175 |
<uid translate="label">
|
176 |
+
<label>UID</label>
|
177 |
<frontend_type>password</frontend_type>
|
178 |
<sort_order>30</sort_order>
|
179 |
<show_in_default>1</show_in_default>
|
184 |
</depends>
|
185 |
</uid>
|
186 |
<apikey translate="label">
|
187 |
+
<label>API key</label>
|
188 |
<frontend_type>password</frontend_type>
|
189 |
<sort_order>40</sort_order>
|
190 |
<show_in_default>1</show_in_default>
|
209 |
<expanded>0</expanded>
|
210 |
<fields>
|
211 |
<soap_call_is_subscribed translate="label">
|
212 |
+
<label>Receive subscription states using SOAP calls</label>
|
213 |
<frontend_type>select</frontend_type>
|
214 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
215 |
<sort_order>100</sort_order>
|
219 |
<config_path>contactlab_subscribers/global/soap_call_is_subscribed</config_path>
|
220 |
</soap_call_is_subscribed>
|
221 |
<soap_call_set_subscribed translate="label">
|
222 |
+
<label>Set subscription states using SOAP calls</label>
|
223 |
<frontend_type>select</frontend_type>
|
224 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
225 |
<sort_order>110</sort_order>
|
230 |
</soap_call_set_subscribed>
|
231 |
|
232 |
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>
|
233 |
+
<label>Interval between synchronous subscription state update attempts</label>
|
234 |
<frontend_type>text</frontend_type>
|
235 |
<sort_order>510</sort_order>
|
236 |
<show_in_default>1</show_in_default>
|
237 |
<show_in_website>1</show_in_website>
|
238 |
<show_in_store>1</show_in_store>
|
239 |
+
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval</config_path>
|
240 |
</contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>
|
241 |
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries>
|
242 |
+
<label>Total number of synchronous subscription state update attempts</label>
|
243 |
<frontend_type>text</frontend_type>
|
244 |
<sort_order>520</sort_order>
|
245 |
<show_in_default>1</show_in_default>
|
261 |
<expanded>0</expanded>
|
262 |
<fields>
|
263 |
<unsubscribe_if_not_confirm translate="label">
|
264 |
+
<label>Delete subscription if user does not confirm</label>
|
265 |
<frontend_type>select</frontend_type>
|
266 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
267 |
<sort_order>100</sort_order>
|
268 |
<show_in_default>1</show_in_default>
|
269 |
<show_in_website>1</show_in_website>
|
270 |
<show_in_store>1</show_in_store>
|
271 |
+
<comment>Unsubscribe the customer from the Newsletter if they do not select the subscription checkbox.</comment>
|
272 |
<config_path>contactlab_subscribers/subscriber_to_customer/unsubscribe_if_not_confirm</config_path>
|
273 |
</unsubscribe_if_not_confirm>
|
274 |
<email_on_unsubscribe translate="label">
|
275 |
+
<label>Send unsubscribed notification email</label>
|
276 |
<frontend_type>select</frontend_type>
|
277 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
278 |
<sort_order>110</sort_order>
|
284 |
</depends>
|
285 |
<config_path>contactlab_subscribers/subscriber_to_customer/email_on_unsubscribe</config_path>
|
286 |
</email_on_unsubscribe>
|
287 |
+
<enable_multiwebsite_subscription translate="label comment">
|
288 |
+
<label>Enable multi-website subscription</label>
|
289 |
+
<frontend_type>select</frontend_type>
|
290 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
291 |
+
<comment>Enable multi-website newsletter subscription</comment>
|
292 |
+
<show_in_default>1</show_in_default>
|
293 |
+
<show_in_website>0</show_in_website>
|
294 |
+
<show_in_store>0</show_in_store>
|
295 |
+
<sort_order>1000</sort_order>
|
296 |
+
<config_path>contactlab_subscribers/global/enable_multiwebsite_subscription</config_path>
|
297 |
+
</enable_multiwebsite_subscription>
|
298 |
</fields>
|
299 |
</behavior>
|
300 |
|
301 |
|
302 |
<error_email translate="label">
|
303 |
+
<label>Error notification email</label>
|
304 |
<frontend_type>text</frontend_type>
|
305 |
<sort_order>60</sort_order>
|
306 |
<show_in_default>1</show_in_default>
|
323 |
</crontab></pre>]]></old_comment>
|
324 |
<fields>
|
325 |
<enable translate="label">
|
326 |
+
<label>Enable error notification email</label>
|
327 |
<frontend_type>select</frontend_type>
|
328 |
<sort_order>10</sort_order>
|
329 |
<show_in_default>1</show_in_default>
|
354 |
</depends>
|
355 |
</email_sender_name>
|
356 |
<recipients translate="label">
|
357 |
+
<label>Recipient email</label>
|
358 |
<frontend_type>text</frontend_type>
|
359 |
<sort_order>40</sort_order>
|
360 |
<show_in_default>1</show_in_default>
|
361 |
<show_in_website>0</show_in_website>
|
362 |
<show_in_store>0</show_in_store>
|
363 |
+
<comment>Use ; as the delimiter to separate recipients.</comment>
|
364 |
<depends>
|
365 |
<enable>1</enable>
|
366 |
</depends>
|
387 |
<show_in_website>0</show_in_website>
|
388 |
<show_in_store>0</show_in_store>
|
389 |
<comment><![CDATA[<h3>Example configuration</h3>
|
390 |
+
<p>This configuration example clears old tasks from the queue every day at 10:35 AM.</p>
|
391 |
<pre><crontab>
|
392 |
<jobs>
|
393 |
<contactlab_subscribers_clear_queue>
|
app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/mysql4-install-0.8.0.php
CHANGED
@@ -1,17 +1,20 @@
|
|
1 |
<?php
|
2 |
|
|
|
3 |
$installer = $this;
|
4 |
$installer->startSetup();
|
5 |
|
6 |
$installer->run("drop table if exists {$installer->getTable("contactlab_commons/task")};");
|
7 |
|
|
|
|
|
8 |
$installer->run(<<<EOT
|
9 |
-
DROP TABLE IF EXISTS `contactlab_commons_task_entity`;
|
10 |
EOT
|
11 |
);
|
12 |
|
13 |
$installer->run(<<<EOT
|
14 |
-
CREATE TABLE `contactlab_commons_task_entity` (
|
15 |
`task_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Task Id',
|
16 |
`task_code` varchar(255) NOT NULL COMMENT 'Task Code',
|
17 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
@@ -29,19 +32,19 @@ CREATE TABLE `contactlab_commons_task_entity` (
|
|
29 |
PRIMARY KEY (`task_id`),
|
30 |
KEY `IDX_CONTACTLAB_COMMONS_TASK_ENTITY_STATUS` (`status`),
|
31 |
KEY `FK_CONTACTLAB_COMMONS_TASK_ENTITY_STORE_ID_CORE_STORE_STORE_ID` (`store_id`),
|
32 |
-
CONSTRAINT `FK_CONTACTLAB_COMMONS_TASK_ENTITY_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
33 |
) COMMENT='Tasks';
|
34 |
EOT
|
35 |
);
|
36 |
|
37 |
|
38 |
$installer->run(<<<EOT
|
39 |
-
DROP TABLE IF EXISTS `contactlab_commons_task_event_entity`;
|
40 |
EOT
|
41 |
);
|
42 |
|
43 |
$installer->run(<<<EOT
|
44 |
-
CREATE TABLE `contactlab_commons_task_event_entity` (
|
45 |
`task_event_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Task Event Id',
|
46 |
`task_id` int(10) unsigned NOT NULL COMMENT 'Task Id',
|
47 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
@@ -53,19 +56,19 @@ CREATE TABLE `contactlab_commons_task_event_entity` (
|
|
53 |
PRIMARY KEY (`task_event_id`),
|
54 |
KEY `FK_C3903EA306F9FB462C57D0501D1B13E8` (`task_id`),
|
55 |
KEY `FK_CONTACTLAB_COMMONS_TASK_EVENT_ENTT_USR_ID_ADM_USR_USR_ID` (`user_id`),
|
56 |
-
CONSTRAINT `FK_C3903EA306F9FB462C57D0501D1B13E8` FOREIGN KEY (`task_id`) REFERENCES `contactlab_commons_task_entity` (`task_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
57 |
-
CONSTRAINT `FK_CONTACTLAB_COMMONS_TASK_EVENT_ENTT_USR_ID_ADM_USR_USR_ID` FOREIGN KEY (`user_id`) REFERENCES `admin_user` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE
|
58 |
) COMMENT='Task events';
|
59 |
EOT
|
60 |
);
|
61 |
|
62 |
|
63 |
$installer->run(<<<EOT
|
64 |
-
DROP TABLE IF EXISTS `contactlab_commons_deleted_entity`;
|
65 |
EOT
|
66 |
);
|
67 |
$installer->run(<<<EOT
|
68 |
-
CREATE TABLE `contactlab_commons_deleted_entity` (
|
69 |
`deleted_entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Deleted Entity Id',
|
70 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
71 |
`model` varchar(255) NOT NULL COMMENT 'Model',
|
@@ -75,7 +78,7 @@ CREATE TABLE `contactlab_commons_deleted_entity` (
|
|
75 |
`entity_id` int(10) unsigned DEFAULT NULL COMMENT 'Entity id',
|
76 |
PRIMARY KEY (`deleted_entity_id`),
|
77 |
KEY `FK_AB8E6FEC8986ED3EF2FA1B7DADE8FF28` (`task_id`),
|
78 |
-
CONSTRAINT `FK_AB8E6FEC8986ED3EF2FA1B7DADE8FF28` FOREIGN KEY (`task_id`) REFERENCES `contactlab_commons_task_entity` (`task_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
79 |
) COMMENT='Deleted customers and subscribers email log';
|
80 |
EOT
|
81 |
);
|
@@ -83,11 +86,11 @@ EOT
|
|
83 |
|
84 |
|
85 |
$installer->run(<<<EOT
|
86 |
-
DROP TABLE IF EXISTS `contactlab_commons_log_entity`;
|
87 |
EOT
|
88 |
);
|
89 |
$installer->run(<<<EOT
|
90 |
-
CREATE TABLE `contactlab_commons_log_entity` (
|
91 |
`log_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Task Id',
|
92 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
93 |
`log_level` smallint(6) NOT NULL COMMENT 'Log level',
|
1 |
<?php
|
2 |
|
3 |
+
|
4 |
$installer = $this;
|
5 |
$installer->startSetup();
|
6 |
|
7 |
$installer->run("drop table if exists {$installer->getTable("contactlab_commons/task")};");
|
8 |
|
9 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
10 |
+
|
11 |
$installer->run(<<<EOT
|
12 |
+
DROP TABLE IF EXISTS `{$tablePrefix}contactlab_commons_task_entity`;
|
13 |
EOT
|
14 |
);
|
15 |
|
16 |
$installer->run(<<<EOT
|
17 |
+
CREATE TABLE `{$tablePrefix}contactlab_commons_task_entity` (
|
18 |
`task_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Task Id',
|
19 |
`task_code` varchar(255) NOT NULL COMMENT 'Task Code',
|
20 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
32 |
PRIMARY KEY (`task_id`),
|
33 |
KEY `IDX_CONTACTLAB_COMMONS_TASK_ENTITY_STATUS` (`status`),
|
34 |
KEY `FK_CONTACTLAB_COMMONS_TASK_ENTITY_STORE_ID_CORE_STORE_STORE_ID` (`store_id`),
|
35 |
+
CONSTRAINT `FK_CONTACTLAB_COMMONS_TASK_ENTITY_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `{$tablePrefix}core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
36 |
) COMMENT='Tasks';
|
37 |
EOT
|
38 |
);
|
39 |
|
40 |
|
41 |
$installer->run(<<<EOT
|
42 |
+
DROP TABLE IF EXISTS `{$tablePrefix}contactlab_commons_task_event_entity`;
|
43 |
EOT
|
44 |
);
|
45 |
|
46 |
$installer->run(<<<EOT
|
47 |
+
CREATE TABLE `{$tablePrefix}contactlab_commons_task_event_entity` (
|
48 |
`task_event_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Task Event Id',
|
49 |
`task_id` int(10) unsigned NOT NULL COMMENT 'Task Id',
|
50 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
56 |
PRIMARY KEY (`task_event_id`),
|
57 |
KEY `FK_C3903EA306F9FB462C57D0501D1B13E8` (`task_id`),
|
58 |
KEY `FK_CONTACTLAB_COMMONS_TASK_EVENT_ENTT_USR_ID_ADM_USR_USR_ID` (`user_id`),
|
59 |
+
CONSTRAINT `FK_C3903EA306F9FB462C57D0501D1B13E8` FOREIGN KEY (`task_id`) REFERENCES `{$tablePrefix}contactlab_commons_task_entity` (`task_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
60 |
+
CONSTRAINT `FK_CONTACTLAB_COMMONS_TASK_EVENT_ENTT_USR_ID_ADM_USR_USR_ID` FOREIGN KEY (`user_id`) REFERENCES `{$tablePrefix}admin_user` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE
|
61 |
) COMMENT='Task events';
|
62 |
EOT
|
63 |
);
|
64 |
|
65 |
|
66 |
$installer->run(<<<EOT
|
67 |
+
DROP TABLE IF EXISTS `{$tablePrefix}contactlab_commons_deleted_entity`;
|
68 |
EOT
|
69 |
);
|
70 |
$installer->run(<<<EOT
|
71 |
+
CREATE TABLE `{$tablePrefix}contactlab_commons_deleted_entity` (
|
72 |
`deleted_entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Deleted Entity Id',
|
73 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
74 |
`model` varchar(255) NOT NULL COMMENT 'Model',
|
78 |
`entity_id` int(10) unsigned DEFAULT NULL COMMENT 'Entity id',
|
79 |
PRIMARY KEY (`deleted_entity_id`),
|
80 |
KEY `FK_AB8E6FEC8986ED3EF2FA1B7DADE8FF28` (`task_id`),
|
81 |
+
CONSTRAINT `FK_AB8E6FEC8986ED3EF2FA1B7DADE8FF28` FOREIGN KEY (`task_id`) REFERENCES `{$tablePrefix}contactlab_commons_task_entity` (`task_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
82 |
) COMMENT='Deleted customers and subscribers email log';
|
83 |
EOT
|
84 |
);
|
86 |
|
87 |
|
88 |
$installer->run(<<<EOT
|
89 |
+
DROP TABLE IF EXISTS `{$tablePrefix}contactlab_commons_log_entity`;
|
90 |
EOT
|
91 |
);
|
92 |
$installer->run(<<<EOT
|
93 |
+
CREATE TABLE `{$tablePrefix}contactlab_commons_log_entity` (
|
94 |
`log_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Task Id',
|
95 |
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Created At',
|
96 |
`log_level` smallint(6) NOT NULL COMMENT 'Log level',
|
app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/upgrade-1.0.0-1.0.1.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$installer->run("
|
6 |
+
ALTER TABLE {$installer->getTable("contactlab_commons/task")}
|
7 |
+
CHANGE `task_data` `task_data` blob comment 'Task internal data';
|
8 |
+
");
|
9 |
+
|
10 |
+
$installer->endSetup();
|
app/code/community/Contactlab/Subscribers/Block/Newsletter/Subscribers/Modify.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Newsletter modify block.
|
6 |
+
*
|
7 |
+
* @method setInputType($value)
|
8 |
+
* @method setCustomerEmail($value)
|
9 |
+
* @method String getInputType()
|
10 |
+
* @method String getCustomerEmail()
|
11 |
+
*
|
12 |
+
* @category Contactlab
|
13 |
+
* @package Contactlab_Newsletter
|
14 |
+
* @author
|
15 |
+
*/
|
16 |
+
class Contactlab_Subscribers_Block_Newsletter_Subscribers_Modify extends Mage_Newsletter_Block_Subscribe
|
17 |
+
{
|
18 |
+
|
19 |
+
protected function _toHtml()
|
20 |
+
{
|
21 |
+
if(Mage::getStoreConfig('contactlab_subscribers/newsletter/enable'))
|
22 |
+
{
|
23 |
+
return parent::_toHtml();
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Preparing global layout
|
29 |
+
*
|
30 |
+
* You can redefine this method in child classes for changing layout
|
31 |
+
*
|
32 |
+
* @return Mage_Core_Block_Abstract
|
33 |
+
*/
|
34 |
+
protected function _prepareLayout()
|
35 |
+
{
|
36 |
+
$session = Mage::getSingleton('customer/session');
|
37 |
+
if ($session->isLoggedIn()) {
|
38 |
+
$this->setInputType('hidden');
|
39 |
+
// The customer is logged: we don't need to show the corresponding input field
|
40 |
+
// just store it in the block already so it is available as an hidden field to the template
|
41 |
+
$customerId = $session->getCustomerId();
|
42 |
+
$this->setCustomerEmail(Mage::getModel("customer/customer")->load($customerId)->getEmail());
|
43 |
+
} else {
|
44 |
+
$this->setInputType('text');
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Get form action url.
|
50 |
+
* @return string
|
51 |
+
*/
|
52 |
+
public function getFormActionUrl()
|
53 |
+
{
|
54 |
+
return $this->getUrl('contactlab_subscribers/modify', array('_secure' => true));
|
55 |
+
}
|
56 |
+
}
|
app/code/community/Contactlab/Subscribers/Block/Newsletter/Subscribers/Subscribe.php
ADDED
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Newsletter subscribe block
|
6 |
+
*
|
7 |
+
* @category Contactlab
|
8 |
+
* @package Contactlab_Newsletter
|
9 |
+
* @author
|
10 |
+
*/
|
11 |
+
class Contactlab_Subscribers_Block_Newsletter_Subscribers_Subscribe extends Mage_Newsletter_Block_Subscribe
|
12 |
+
{
|
13 |
+
|
14 |
+
protected function _toHtml()
|
15 |
+
{
|
16 |
+
if(Mage::getStoreConfig('contactlab_subscribers/newsletter/enable'))
|
17 |
+
{
|
18 |
+
return parent::_toHtml();
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Fields.
|
24 |
+
* @var array
|
25 |
+
*/
|
26 |
+
protected $fields = array(
|
27 |
+
'email' => array('label' => "Your email", 'type' => 'text', 'title' => 'Sign up for our newsletter'),
|
28 |
+
'fname' => array('label' => "First name", 'type' => 'text', 'title' => 'Your first name'),
|
29 |
+
'lname' => array('label' => "Last name", 'type' => 'text', 'title' => 'Your last name'),
|
30 |
+
'company' => array('label' => "Your company", 'type' => 'text', 'title' => 'Your company'),
|
31 |
+
'gender' => array('label' => "Sex", 'type' => 'radio', 'choices' => array('Male', 'Female')),
|
32 |
+
'dob' => array('label' => "Date of birth", 'type' => 'text'),
|
33 |
+
'privacy' => array('label' => "Privacy terms agreement", 'type' => 'checkbox'),
|
34 |
+
'custom1' => array('label' => "No label assigned", 'type' => 'text'),
|
35 |
+
'custom2' => array('label' => "No label assigned", 'type' => 'text'),
|
36 |
+
'country' => array('label' => "Your country", 'type' => 'text'),
|
37 |
+
'city' => array('label' => "Your city", 'type' => 'text'),
|
38 |
+
'address' => array('label' => "Your address", 'type' => 'text'),
|
39 |
+
'zipcode' => array('label' => "Your ZIP code", 'type' => 'text'),
|
40 |
+
'landphone' => array('label' => "Your landline phone number", 'type' => 'text'),
|
41 |
+
'mobilephone' => array('label' => "Your mobile phone number", 'type' => 'text'),
|
42 |
+
'notes' => array('label' => "Additional notes", 'type' => 'text')
|
43 |
+
);
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Is enabled field.
|
47 |
+
* @param $fieldName
|
48 |
+
* @return bool
|
49 |
+
*/
|
50 |
+
public function isEnabledField($fieldName)
|
51 |
+
{
|
52 |
+
return array_key_exists($fieldName, $this->fields) ?
|
53 |
+
array_key_exists('enabled', $this->fields[$fieldName]) ?
|
54 |
+
$this->fields[$fieldName]['enabled']
|
55 |
+
: true
|
56 |
+
: false;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Field label.
|
61 |
+
* @param $fieldName
|
62 |
+
* @return null|string
|
63 |
+
*/
|
64 |
+
public function fieldLabel($fieldName)
|
65 |
+
{
|
66 |
+
return array_key_exists($fieldName, $this->fields) ? $this->__($this->fields[$fieldName]['label']) : NULL;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Field input type.
|
71 |
+
* @param $fieldName
|
72 |
+
* @return string
|
73 |
+
*/
|
74 |
+
public function fieldInputType($fieldName)
|
75 |
+
{
|
76 |
+
return array_key_exists($fieldName, $this->fields) ? $this->fields[$fieldName]['type'] : 'text';
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Field choices.
|
81 |
+
* @param $fieldName
|
82 |
+
* @return int
|
83 |
+
*/
|
84 |
+
public function fieldChoices($fieldName)
|
85 |
+
{
|
86 |
+
if (array_key_exists($fieldName, $this->fields))
|
87 |
+
return $this->fields[$fieldName]['type'] === 'radio' ?
|
88 |
+
count($this->fields[$fieldName]['choices'])
|
89 |
+
: 0;
|
90 |
+
else return 0;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Field choice.
|
95 |
+
* @param $fieldName
|
96 |
+
* @param $choiceNum
|
97 |
+
* @return null|string
|
98 |
+
*/
|
99 |
+
public function fieldChoice($fieldName, $choiceNum)
|
100 |
+
{
|
101 |
+
if (array_key_exists($fieldName, $this->fields)) {
|
102 |
+
return $this->fields[$fieldName]['type'] === 'radio' ?
|
103 |
+
$this->__($this->fields[$fieldName]['choices'][$choiceNum - 1])
|
104 |
+
: null;
|
105 |
+
} else {
|
106 |
+
return null;
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Field value.
|
112 |
+
* @param $fieldName
|
113 |
+
* @param $choiceNum
|
114 |
+
* @return mixed
|
115 |
+
*/
|
116 |
+
public function fieldValue($fieldName, $choiceNum)
|
117 |
+
{
|
118 |
+
return $choiceNum;
|
119 |
+
/*if (array_key_exists($fieldname, $this->fields)) {
|
120 |
+
return $this->fields[$fieldname]['type'] === 'radio' ?
|
121 |
+
$this->fields[$fieldname]['choices'][$choicenum - 1]
|
122 |
+
: null;
|
123 |
+
} else {
|
124 |
+
return null;
|
125 |
+
}*/
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Field title.
|
130 |
+
* @param $fieldName
|
131 |
+
* @return null|string
|
132 |
+
*/
|
133 |
+
public function fieldTitle($fieldName)
|
134 |
+
{
|
135 |
+
if (array_key_exists($fieldName, $this->fields)) {
|
136 |
+
return array_key_exists('title', $this->fields[$fieldName]) ?
|
137 |
+
$this->__($this->fields[$fieldName]['title'])
|
138 |
+
: null;
|
139 |
+
} else {
|
140 |
+
return null;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
}
|
app/code/community/Contactlab/Subscribers/Block/Newsletter/Subscribers/Update.php
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Newsletter update block
|
5 |
+
*
|
6 |
+
* @category Contactlab
|
7 |
+
* @package Contactlab_Newsletter
|
8 |
+
* @author
|
9 |
+
*/
|
10 |
+
class Contactlab_Subscribers_Block_Newsletter_Subscribers_Update extends Contactlab_Subscribers_Block_Newsletter_Subscribers_Subscribe
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @var $_fieldValues Contactlab_Subscribers_Model_Fields
|
14 |
+
*/
|
15 |
+
private $_fieldValues;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Construct.
|
19 |
+
* @throws Mage_Core_Exception
|
20 |
+
*/
|
21 |
+
public function _construct()
|
22 |
+
{
|
23 |
+
parent::_construct();
|
24 |
+
//get registered fields value
|
25 |
+
$this->_fieldValues = Mage::registry('contactlab/fields');
|
26 |
+
if (is_null($this->_fieldValues)) {
|
27 |
+
Mage::throwException($this->__('Update block instantiated out of context'));
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Depending on type of field, builds value or checked attribute for
|
33 |
+
* the field, getting its value from registered fields
|
34 |
+
*
|
35 |
+
* @param string $fieldName
|
36 |
+
* @param int $choiceNum
|
37 |
+
* @return string
|
38 |
+
*/
|
39 |
+
public function fieldActualValue($fieldName, $choiceNum = 0)
|
40 |
+
{
|
41 |
+
if ($fieldName == 'notes') {
|
42 |
+
return $this->_fieldValues->getNotes();
|
43 |
+
}
|
44 |
+
|
45 |
+
if ($fieldName == 'fname') {
|
46 |
+
return ' value="' . $this->_fieldValues->getFirstName() . '"';
|
47 |
+
}
|
48 |
+
if ($fieldName == 'lname') {
|
49 |
+
return ' value="' . $this->_fieldValues->getLastName() . '"';
|
50 |
+
}
|
51 |
+
if ($fieldName == 'custom1') {
|
52 |
+
return ' value="' . $this->_fieldValues->getCustom1() . '"';
|
53 |
+
}
|
54 |
+
if ($fieldName == 'custom2') {
|
55 |
+
return ' value="' . $this->_fieldValues->getCustom2() . '"';
|
56 |
+
}
|
57 |
+
if ($fieldName == 'zipcode') {
|
58 |
+
return ' value="' . $this->_fieldValues->getZipCode() . '"';
|
59 |
+
}
|
60 |
+
if ($fieldName == 'landphone') {
|
61 |
+
return ' value="' . $this->_fieldValues->getPhone() . '"';
|
62 |
+
}
|
63 |
+
if ($fieldName == 'mobilephone') {
|
64 |
+
return ' value="' . $this->_fieldValues->getCellPhone() . '"';
|
65 |
+
}
|
66 |
+
|
67 |
+
if ($fieldName == 'dob') {
|
68 |
+
$dateFormat = Mage::app()->getLocale()->getDateStrFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
|
69 |
+
$ts = date_timestamp_get(date_create($this->_fieldValues->getDob()));
|
70 |
+
$dob = strftime($dateFormat, $ts);
|
71 |
+
return ' value="' . $dob . '"';
|
72 |
+
}
|
73 |
+
|
74 |
+
if ($this->fieldInputType($fieldName) == 'text') {
|
75 |
+
return ' value="' . $this->_fieldValues->getData($fieldName) . '" ';
|
76 |
+
}
|
77 |
+
|
78 |
+
if (($fieldName == 'privacy') && ($this->_fieldValues->getPrivacyAccepted())) {
|
79 |
+
return ' checked="yes" ';
|
80 |
+
}
|
81 |
+
|
82 |
+
if (($fieldName == 'gender') && ($this->_fieldValues->getGender() == $choiceNum)) {
|
83 |
+
return ' checked="yes" ';
|
84 |
+
}
|
85 |
+
|
86 |
+
return '';
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Get subs email.
|
91 |
+
* @return mixed
|
92 |
+
*/
|
93 |
+
public function getSubsEmail()
|
94 |
+
{
|
95 |
+
return $this->_fieldValues->getSubscriberEmail();
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Get subs id.
|
100 |
+
* @return mixed
|
101 |
+
*/
|
102 |
+
public function getSubsId()
|
103 |
+
{
|
104 |
+
return $this->_fieldValues->getSubscriberId();
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Get subs hash.
|
109 |
+
* @return mixed
|
110 |
+
*/
|
111 |
+
public function getSubsHash()
|
112 |
+
{
|
113 |
+
return $this->_fieldValues->getSubscriberConfirmCode();
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Modify form action url.
|
118 |
+
* @return string
|
119 |
+
*/
|
120 |
+
public function getModifyFormActionUrl()
|
121 |
+
{
|
122 |
+
return $this->getUrl('contactlab_subscribers/modify/personal', array('_secure' => true));
|
123 |
+
}
|
124 |
+
|
125 |
+
}
|
app/code/community/Contactlab/Subscribers/Helper/Checks.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Helper_Checks extends Mage_Core_Helper_Abstract
|
4 |
+
{
|
5 |
+
private $_lastChecks = array();
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Get available checks.
|
9 |
+
* @param bool $onlyEssentials
|
10 |
+
* @return array
|
11 |
+
*/
|
12 |
+
public function getAvailableChecks($onlyEssentials = false)
|
13 |
+
{
|
14 |
+
$checkDir = __DIR__ . '/../Model/Checks';
|
15 |
+
$rv = array();
|
16 |
+
foreach (scandir($checkDir) as $file) {
|
17 |
+
if (!preg_match('|\.php$|', $file)) {
|
18 |
+
continue;
|
19 |
+
}
|
20 |
+
$className = preg_replace('|\.php$|', '', $file);
|
21 |
+
if ($className === 'AbstractCheck' || $className === 'CheckInterface') {
|
22 |
+
continue;
|
23 |
+
}
|
24 |
+
$modelName = 'contactlab_subscribers/checks_'
|
25 |
+
. strtolower(substr($className, 0, 1))
|
26 |
+
. substr($className, 1);
|
27 |
+
/* @var $instance Contactlab_Subscribers_Model_Checks_CheckInterface */
|
28 |
+
$instance = Mage::getModel($modelName);
|
29 |
+
if ($onlyEssentials && !$instance->isEssential()) {
|
30 |
+
continue;
|
31 |
+
}
|
32 |
+
$rv[] = $instance;
|
33 |
+
}
|
34 |
+
usort($rv, function ($a, $b) {
|
35 |
+
/* @var $a Contactlab_Subscribers_Model_Checks_CheckInterface */
|
36 |
+
/* @var $b Contactlab_Subscribers_Model_Checks_CheckInterface */
|
37 |
+
$a = $a->getPosition();
|
38 |
+
$b = $b->getPosition();
|
39 |
+
if ($a == $b) {
|
40 |
+
return 0;
|
41 |
+
}
|
42 |
+
return ($a < $b) ? -1 : 1;
|
43 |
+
});
|
44 |
+
return $rv;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Run all available checks.
|
49 |
+
* @param bool $onlyEssentials
|
50 |
+
* @return array
|
51 |
+
*/
|
52 |
+
public function runAvailableChecks($onlyEssentials = false)
|
53 |
+
{
|
54 |
+
$this->_lastChecks = array();
|
55 |
+
$checks = $this->getAvailableChecks($onlyEssentials);
|
56 |
+
/* @var $check Contactlab_Subscribers_Model_Checks_CheckInterface */
|
57 |
+
foreach ($checks as $check) {
|
58 |
+
$this->_lastChecks[] = $check;
|
59 |
+
$check->check();
|
60 |
+
}
|
61 |
+
return $this->_lastChecks;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Get last checks exit code.
|
66 |
+
* @return string
|
67 |
+
*/
|
68 |
+
public function getLastExitCode()
|
69 |
+
{
|
70 |
+
/* @var $check Contactlab_Subscribers_Model_Checks_CheckInterface */
|
71 |
+
foreach ($this->_lastChecks as $check) {
|
72 |
+
if ($check->getExitCode() === Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR) {
|
73 |
+
return $check->getExitCode();
|
74 |
+
}
|
75 |
+
}
|
76 |
+
return Contactlab_Subscribers_Model_Checks_CheckInterface::SUCCESS;
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Run available essential checks and return last status.
|
81 |
+
* @return bool
|
82 |
+
*/
|
83 |
+
public function checkAvailableEssentialChecks() {
|
84 |
+
$this->runAvailableChecks(true);
|
85 |
+
return $this->getLastExitCode() === Contactlab_Subscribers_Model_Checks_CheckInterface::SUCCESS;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Throw Last Check Exception.
|
90 |
+
* @param Contactlab_Commons_Model_Task $task
|
91 |
+
* @return Exception
|
92 |
+
*/
|
93 |
+
public function getLastCheckException(Contactlab_Commons_Model_Task $task) {
|
94 |
+
$msg = array();
|
95 |
+
/* @var $check Contactlab_Subscribers_Model_Checks_CheckInterface */
|
96 |
+
foreach ($this->_lastChecks as $check) {
|
97 |
+
if ($check->getExitCode() === Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR) {
|
98 |
+
foreach ($check->getErrors() as $error) {
|
99 |
+
$task->addEvent($error, true);
|
100 |
+
$msg[] = $error;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
+
return new Exception(implode('<br>', $msg));
|
105 |
+
}
|
106 |
+
}
|
app/code/community/Contactlab/Subscribers/Helper/Data.php
CHANGED
@@ -47,6 +47,11 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
47 |
}
|
48 |
}
|
49 |
|
|
|
|
|
|
|
|
|
|
|
50 |
public function doUpdateCustomerStats(Mage_Customer_Model_Customer $customer) {
|
51 |
$stats = Mage::getModel('contactlab_subscribers/stats')
|
52 |
->getCollection()
|
@@ -65,7 +70,10 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
65 |
return $rv;
|
66 |
}
|
67 |
|
68 |
-
/**
|
|
|
|
|
|
|
69 |
public function addClearStatsQueue() {
|
70 |
return Mage::getModel("contactlab_commons/task")
|
71 |
->setTaskCode("ClearStatisticsTask")
|
@@ -124,13 +132,23 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
124 |
Mage::helper("contactlab_commons")->flushDbProfiler();
|
125 |
}
|
126 |
|
127 |
-
/** Unsubscribe email.
|
128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
if (!empty($uk)) {
|
130 |
// $uk, int value of xml string content, not empty if it's a number > 0
|
|
|
131 |
$ukModel = Mage::getModel('contactlab_subscribers/uk')->load($uk);
|
132 |
if ($ukModel->hasEntityId() && $ukModel->hasSubscriberId()) {
|
133 |
-
$model
|
|
|
|
|
134 |
}
|
135 |
}
|
136 |
// 03/02/2015 - Disabled match by email address
|
@@ -144,12 +162,11 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
144 |
if (!$this->_checkCanUnsubscribe($task, $model, $datetime)) {
|
145 |
return false;
|
146 |
}
|
147 |
-
$model
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
Mage::helper('contactlab_commons')->logTrace("$email has been unsubscribed");
|
153 |
}
|
154 |
return true;
|
155 |
} else {
|
@@ -160,9 +177,13 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
160 |
|
161 |
/**
|
162 |
* If the subscriber has subscribed after ContactlLab subscription, wont do it!
|
|
|
|
|
|
|
|
|
163 |
*/
|
164 |
private function _checkCanUnsubscribe(Contactlab_Commons_Model_Task $task,
|
165 |
-
|
166 |
$datetime) {
|
167 |
if (!$subscriber->isSubscribed()) {
|
168 |
$task->addEvent(sprintf("\"%s\" is already unsubscribed", $subscriber->getEmail()));
|
@@ -198,10 +219,17 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
198 |
return $dtz->getOffset(new DateTime("now", $dtz));
|
199 |
}
|
200 |
|
201 |
-
/** Update subscriber status via SOAP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
public function updateSubscriberStatus($email, $id, $isSubscribed, $storeId, $queue = true) {
|
203 |
if ($this->_skipUnsubscribeSoapCall) {
|
204 |
-
return;
|
205 |
}
|
206 |
if (!Mage::getStoreConfigFlag("contactlab_subscribers/global/soap_call_set_subscribed", $storeId)) {
|
207 |
return $this;
|
@@ -209,6 +237,7 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
209 |
|
210 |
try {
|
211 |
Mage::helper("contactlab_commons")->logNotice("updateSubscriberStatus($email, $id, $isSubscribed, $storeId, $queue)");
|
|
|
212 |
$call = Mage::getModel('contactlab_subscribers/soap_setSubscriptionStatus');
|
213 |
$call->setStoreId($storeId);
|
214 |
$call->setEntityId($id);
|
@@ -227,6 +256,14 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
227 |
return $this;
|
228 |
}
|
229 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
private function _doQueueUpdateSubscriberStatus($email, $id, $isSubscribed, $storeId) {
|
231 |
$data = new stdClass();
|
232 |
$data->email = $email;
|
@@ -270,4 +307,52 @@ class Contactlab_Subscribers_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
270 |
$this->_skipUnsubscribeSoapCall = true;
|
271 |
}
|
272 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
}
|
47 |
}
|
48 |
}
|
49 |
|
50 |
+
/**
|
51 |
+
* @param Mage_Customer_Model_Customer $customer
|
52 |
+
* @return Mage_Core_Model_Abstract|null
|
53 |
+
* @throws Exception
|
54 |
+
*/
|
55 |
public function doUpdateCustomerStats(Mage_Customer_Model_Customer $customer) {
|
56 |
$stats = Mage::getModel('contactlab_subscribers/stats')
|
57 |
->getCollection()
|
70 |
return $rv;
|
71 |
}
|
72 |
|
73 |
+
/**
|
74 |
+
* Add clear statistics task to queue.
|
75 |
+
* @return Contactlab_Commons_Model_Task
|
76 |
+
*/
|
77 |
public function addClearStatsQueue() {
|
78 |
return Mage::getModel("contactlab_commons/task")
|
79 |
->setTaskCode("ClearStatisticsTask")
|
132 |
Mage::helper("contactlab_commons")->flushDbProfiler();
|
133 |
}
|
134 |
|
135 |
+
/** Unsubscribe email.
|
136 |
+
* @param Contactlab_Commons_Model_Task $task
|
137 |
+
* @param $email
|
138 |
+
* @param $uk
|
139 |
+
* @param $datetime
|
140 |
+
* @param bool $logIt
|
141 |
+
* @return bool
|
142 |
+
*/
|
143 |
+
public function unsubscribe(Contactlab_Commons_Model_Task $task, $email, $uk, $datetime, $logIt = false) {
|
144 |
if (!empty($uk)) {
|
145 |
// $uk, int value of xml string content, not empty if it's a number > 0
|
146 |
+
/** @var $ukModel Contactlab_Subscribers_Model_Uk */
|
147 |
$ukModel = Mage::getModel('contactlab_subscribers/uk')->load($uk);
|
148 |
if ($ukModel->hasEntityId() && $ukModel->hasSubscriberId()) {
|
149 |
+
/** @var $model Contactlab_Subscribers_Model_Newsletter_Subscriber */
|
150 |
+
$model = Mage::getModel("newsletter/subscriber")
|
151 |
+
->load($ukModel->getSubscriberId());
|
152 |
}
|
153 |
}
|
154 |
// 03/02/2015 - Disabled match by email address
|
162 |
if (!$this->_checkCanUnsubscribe($task, $model, $datetime)) {
|
163 |
return false;
|
164 |
}
|
165 |
+
$model->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
|
166 |
+
$model->setLastSubscribedAt(NULL);
|
167 |
+
$model->save();
|
168 |
+
if ($logIt) {
|
169 |
+
Mage::helper('contactlab_commons')->logNotice("$email has been unsubscribed");
|
|
|
170 |
}
|
171 |
return true;
|
172 |
} else {
|
177 |
|
178 |
/**
|
179 |
* If the subscriber has subscribed after ContactlLab subscription, wont do it!
|
180 |
+
* @param Contactlab_Commons_Model_Task $task
|
181 |
+
* @param Contactlab_Subscribers_Model_Newsletter_Subscriber $subscriber
|
182 |
+
* @param $datetime
|
183 |
+
* @return bool
|
184 |
*/
|
185 |
private function _checkCanUnsubscribe(Contactlab_Commons_Model_Task $task,
|
186 |
+
Contactlab_Subscribers_Model_Newsletter_Subscriber $subscriber,
|
187 |
$datetime) {
|
188 |
if (!$subscriber->isSubscribed()) {
|
189 |
$task->addEvent(sprintf("\"%s\" is already unsubscribed", $subscriber->getEmail()));
|
219 |
return $dtz->getOffset(new DateTime("now", $dtz));
|
220 |
}
|
221 |
|
222 |
+
/** Update subscriber status via SOAP.
|
223 |
+
* @param $email
|
224 |
+
* @param $id
|
225 |
+
* @param $isSubscribed
|
226 |
+
* @param $storeId
|
227 |
+
* @param bool $queue
|
228 |
+
* @return $this
|
229 |
+
*/
|
230 |
public function updateSubscriberStatus($email, $id, $isSubscribed, $storeId, $queue = true) {
|
231 |
if ($this->_skipUnsubscribeSoapCall) {
|
232 |
+
return $this;
|
233 |
}
|
234 |
if (!Mage::getStoreConfigFlag("contactlab_subscribers/global/soap_call_set_subscribed", $storeId)) {
|
235 |
return $this;
|
237 |
|
238 |
try {
|
239 |
Mage::helper("contactlab_commons")->logNotice("updateSubscriberStatus($email, $id, $isSubscribed, $storeId, $queue)");
|
240 |
+
/** @var $call Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus */
|
241 |
$call = Mage::getModel('contactlab_subscribers/soap_setSubscriptionStatus');
|
242 |
$call->setStoreId($storeId);
|
243 |
$call->setEntityId($id);
|
256 |
return $this;
|
257 |
}
|
258 |
|
259 |
+
/**
|
260 |
+
* Queue update subscriber status.
|
261 |
+
* @param $email String
|
262 |
+
* @param $id int
|
263 |
+
* @param $isSubscribed bool
|
264 |
+
* @param $storeId int
|
265 |
+
* @throws Exception
|
266 |
+
*/
|
267 |
private function _doQueueUpdateSubscriberStatus($email, $id, $isSubscribed, $storeId) {
|
268 |
$data = new stdClass();
|
269 |
$data->email = $email;
|
307 |
$this->_skipUnsubscribeSoapCall = true;
|
308 |
}
|
309 |
|
310 |
+
/**
|
311 |
+
* Send notification email.
|
312 |
+
* @param $recipient
|
313 |
+
* @return $this
|
314 |
+
* @throws Exception
|
315 |
+
* @throws Mage_Core_Exception
|
316 |
+
*/
|
317 |
+
public function sendSubscriberEditEmail($recipient)
|
318 |
+
{
|
319 |
+
if (!Mage::getStoreConfigFlag('contactlab_subscribers/modify_email/enable')) {
|
320 |
+
return $this;
|
321 |
+
}
|
322 |
+
$translate = Mage::getSingleton('core/translate');
|
323 |
+
|
324 |
+
$translate->setTranslateInline(false);
|
325 |
+
$mailTemplate = Mage::getModel('core/email_template');
|
326 |
+
|
327 |
+
$templateId = Mage::getStoreConfig('contactlab_subscribers/modify_email/send_email_template',
|
328 |
+
Mage::app()->getStore()->getId());
|
329 |
+
$senderEmail = Mage::getStoreConfig('contactlab_subscribers/modify_email/email_sender');
|
330 |
+
$senderName = Mage::getStoreConfig('contactlab_subscribers/modify_email/email_sender_name');
|
331 |
+
|
332 |
+
/** @var $subscriber Contactlab_Subscribers_Model_Newsletter_Subscriber */
|
333 |
+
$subscriber = Mage::getModel('newsletter/subscriber')->load($recipient, 'subscriber_email');
|
334 |
+
if (!$subscriber->hasSubscriberConfirmCode()) {
|
335 |
+
$subscriber->setSubscriberConfirmCode($subscriber->randomSequence())->save();
|
336 |
+
}
|
337 |
+
$params = array('id' => $subscriber->getSubscriberId(), 'hash' => $subscriber->getSubscriberConfirmCode());
|
338 |
+
|
339 |
+
//get the store associated with the subscriber and append it to final URL
|
340 |
+
if ($subscriber->hasStoreId()) {
|
341 |
+
$store = '?__store=' . Mage::getModel('core/store')->load($subscriber->getStoreId())->getCode();
|
342 |
+
} else {
|
343 |
+
$store = '';
|
344 |
+
}
|
345 |
+
|
346 |
+
$mailTemplate->sendTransactional(
|
347 |
+
$templateId,
|
348 |
+
array('name' => $senderName, 'email' => $senderEmail),
|
349 |
+
trim($recipient),
|
350 |
+
Mage::helper('contactlab_commons')->__('Modify your data'),
|
351 |
+
array('url' => Mage::getUrl('contactlab_subscribers/edit', $params) . $store),
|
352 |
+
Mage::app()->getStore()->getId()
|
353 |
+
);
|
354 |
+
$translate->setTranslateInline(true);
|
355 |
+
|
356 |
+
return $this;
|
357 |
+
}
|
358 |
}
|
app/code/community/Contactlab/Subscribers/Helper/Exporter.php
CHANGED
@@ -6,15 +6,24 @@
|
|
6 |
class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
7 |
private $attributeSource = array();
|
8 |
private $noSourceAttributes = array();
|
|
|
|
|
9 |
|
10 |
-
/** Decode id attributes.
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
$ak = $name . '_' . $attributeName;
|
13 |
if (array_key_exists($ak, $this->noSourceAttributes)) {
|
14 |
return $value;
|
15 |
}
|
|
|
16 |
if (!array_key_exists($ak, $this->attributeSource)) {
|
17 |
-
$attribute = $
|
18 |
if ($attribute->getSourceModel()) {
|
19 |
$this->attributeSource[$ak] = $attribute->getSource();
|
20 |
} else {
|
@@ -28,9 +37,19 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
28 |
return $this->attributeSource[$ak]->getOptionText($value);
|
29 |
}
|
30 |
|
31 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
32 |
public function getAttributesMap(Contactlab_Commons_Model_Task $task) {
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
34 |
'prefix' => 'prefix',
|
35 |
'firstname' => 'firstname',
|
36 |
'middlename' => 'middlename',
|
@@ -39,14 +58,49 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
39 |
'dob' => 'dob',
|
40 |
'gender' => 'gender',
|
41 |
'email' => 'email',
|
42 |
-
'created_at' => 'created_at'
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
-
|
|
|
|
|
|
|
|
|
47 |
public function getAddressesAttributesMap() {
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
49 |
'country_id' => 'country_id',
|
|
|
50 |
'region_id' => 'region_id',
|
51 |
'region' => 'region',
|
52 |
'postcode' => 'postcode',
|
@@ -56,14 +110,35 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
56 |
'fax' => 'fax',
|
57 |
'company' => 'company',
|
58 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
|
61 |
-
/**
|
|
|
|
|
|
|
|
|
62 |
private function _getCustomAttributesMap(Contactlab_Commons_Model_Task $task) {
|
63 |
$rv = array();
|
64 |
foreach (range(1, 7) as $i) {
|
65 |
if ($task->getConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $i)) {
|
66 |
-
$rv['cstm_' . $i] = $task->getConfig("contactlab_subscribers/custom_fields/field_" . $i);
|
|
|
|
|
67 |
}
|
68 |
}
|
69 |
return $rv;
|
@@ -89,8 +164,35 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
89 |
);
|
90 |
}
|
91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
public function getEntityTypeId($name) {
|
95 |
$types = Mage::getModel("eav/entity_type")->getCollection();
|
96 |
foreach ($types as $type) {
|
@@ -101,7 +203,11 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
101 |
return null;
|
102 |
}
|
103 |
|
104 |
-
|
|
|
|
|
|
|
|
|
105 |
$types = array();
|
106 |
foreach ($attributes as $row) {
|
107 |
$backendType = $row->getData('backend_type');
|
@@ -111,9 +217,14 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
111 |
$types[$backendType][] = $row->getAttributeId();
|
112 |
}
|
113 |
return $types;
|
114 |
-
}
|
115 |
|
116 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
117 |
public function getAttributesForEntityType($entityType, array $attributes) {
|
118 |
return Mage::getModel('eav/entity_attribute')
|
119 |
->getCollection()
|
@@ -122,7 +233,11 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
122 |
->addFieldToFilter('entity_type_id', $this->getEntityTypeId($entityType));
|
123 |
}
|
124 |
|
125 |
-
/**
|
|
|
|
|
|
|
|
|
126 |
public function getAttributesCodesForEntityType($entityType) {
|
127 |
$rv = array();
|
128 |
foreach (Mage::getModel('eav/entity_attribute')
|
@@ -133,7 +248,12 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
133 |
return $rv;
|
134 |
}
|
135 |
|
136 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
137 |
public function getAttributeId($entityType, $attributeCode) {
|
138 |
foreach (Mage::getModel('eav/entity_attribute')
|
139 |
->getCollection()
|
@@ -144,7 +264,10 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
144 |
return false;
|
145 |
}
|
146 |
|
147 |
-
/**
|
|
|
|
|
|
|
148 |
public function saveLastExportDatetime(Contactlab_Commons_Model_Task $task) {
|
149 |
// FIXME diff by store?
|
150 |
$lastExport = Mage::getModel("core/date")->gmtDate();
|
@@ -159,7 +282,10 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
|
159 |
Mage::app()->reinitStores();
|
160 |
}
|
161 |
|
162 |
-
/**
|
|
|
|
|
|
|
163 |
public function soapCallAfterExport(Contactlab_Commons_Model_Task $task) {
|
164 |
if ($task->getConfigFlag("contactlab_commons/soap/enable")
|
165 |
&& $task->getConfigFlag("contactlab_subscribers/global/soap_call_after_export")) {
|
6 |
class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
|
7 |
private $attributeSource = array();
|
8 |
private $noSourceAttributes = array();
|
9 |
+
protected $attribute_map = array();
|
10 |
+
protected $address_attribute_map = array();
|
11 |
|
12 |
+
/** Decode id attributes.
|
13 |
+
* @param Mage_Core_Model_Abstract $model
|
14 |
+
* @param string $name
|
15 |
+
* @param string $attributeName
|
16 |
+
* @param string $value
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
public function decode(Mage_Core_Model_Abstract $model, $name, $attributeName, $value) {
|
20 |
$ak = $name . '_' . $attributeName;
|
21 |
if (array_key_exists($ak, $this->noSourceAttributes)) {
|
22 |
return $value;
|
23 |
}
|
24 |
+
$resource = $model->getResource();
|
25 |
if (!array_key_exists($ak, $this->attributeSource)) {
|
26 |
+
$attribute = $resource->getAttribute($attributeName);
|
27 |
if ($attribute->getSourceModel()) {
|
28 |
$this->attributeSource[$ak] = $attribute->getSource();
|
29 |
} else {
|
37 |
return $this->attributeSource[$ak]->getOptionText($value);
|
38 |
}
|
39 |
|
40 |
+
/**
|
41 |
+
* Attributes map for customer.
|
42 |
+
* Metodo customizzatoper aggiungere l'evento
|
43 |
+
* @param Contactlab_Commons_Model_Task $task
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
public function getAttributesMap(Contactlab_Commons_Model_Task $task) {
|
47 |
+
$attribute_map = $this->attribute_map;
|
48 |
+
if (!empty($attribute_map)){
|
49 |
+
return $attribute_map;
|
50 |
+
}
|
51 |
+
|
52 |
+
$attribute_map = array_merge(array(
|
53 |
'prefix' => 'prefix',
|
54 |
'firstname' => 'firstname',
|
55 |
'middlename' => 'middlename',
|
58 |
'dob' => 'dob',
|
59 |
'gender' => 'gender',
|
60 |
'email' => 'email',
|
61 |
+
'created_at' => 'created_at',
|
62 |
+
/**
|
63 |
+
* Adding new fields from extended newsletter subscription form
|
64 |
+
*/
|
65 |
+
'privacy' => 'privacy',
|
66 |
+
'mobilephone' => 'mobilephone',
|
67 |
+
'notes' => 'notes',
|
68 |
+
'custom_1' => 'custom_1',
|
69 |
+
'custom_2' => 'custom_2',
|
70 |
+
'customer_group_id' => 'customer_group_id',
|
71 |
+
'customer_group_name' => 'customer_group_name'
|
72 |
+
), array_merge($this->_getCustomAttributesMap($task)), $this->getStatsAttributesMap());
|
73 |
+
|
74 |
+
$tMapTransporter = Mage::getModel('contactlab_subscribers/exporter_subscribers_mapTransporter_attribute');
|
75 |
+
$tMapTransporter->setMap($attribute_map);
|
76 |
+
$tMapTransporter->setIsMod(false);
|
77 |
+
|
78 |
+
Mage::dispatchEvent("contactlab_export_attributesmap",array(
|
79 |
+
'map_transporter' => $tMapTransporter
|
80 |
+
));
|
81 |
+
|
82 |
+
if ($tMapTransporter->isMod()){
|
83 |
+
$attribute_map = $tMapTransporter->getMap();
|
84 |
+
}
|
85 |
+
$this->attribute_map = $attribute_map;
|
86 |
+
|
87 |
+
return $this->attribute_map ;
|
88 |
}
|
89 |
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Attributes map for addresses.
|
93 |
+
* Metodo customizzatoper aggiungere l'evento
|
94 |
+
*/
|
95 |
public function getAddressesAttributesMap() {
|
96 |
+
$address_attribute_map = $this->address_attribute_map;
|
97 |
+
if (!empty($address_attribute_map)){
|
98 |
+
return $address_attribute_map;
|
99 |
+
}
|
100 |
+
|
101 |
+
$address_attribute_map = array(
|
102 |
'country_id' => 'country_id',
|
103 |
+
'country' => 'country',
|
104 |
'region_id' => 'region_id',
|
105 |
'region' => 'region',
|
106 |
'postcode' => 'postcode',
|
110 |
'fax' => 'fax',
|
111 |
'company' => 'company',
|
112 |
);
|
113 |
+
|
114 |
+
$tMapTransporter = Mage::getModel('contactlab_subscribers/exporter_subscribers_mapTransporter_address');
|
115 |
+
$tMapTransporter->setMap($address_attribute_map);
|
116 |
+
$tMapTransporter->setIsMod(false);
|
117 |
+
|
118 |
+
Mage::dispatchEvent("contactlab_export_AddressesAttributesMap",array(
|
119 |
+
'map_transporter' => $tMapTransporter
|
120 |
+
));
|
121 |
+
|
122 |
+
if ($tMapTransporter->isMod()){
|
123 |
+
$address_attribute_map = $tMapTransporter->getMap();
|
124 |
+
}
|
125 |
+
$this->address_attribute_map = $address_attribute_map;
|
126 |
+
|
127 |
+
return $this->address_attribute_map ;
|
128 |
}
|
129 |
|
130 |
+
/**
|
131 |
+
* Attributes map for stats.
|
132 |
+
* @param Contactlab_Commons_Model_Task $task
|
133 |
+
* @return array
|
134 |
+
*/
|
135 |
private function _getCustomAttributesMap(Contactlab_Commons_Model_Task $task) {
|
136 |
$rv = array();
|
137 |
foreach (range(1, 7) as $i) {
|
138 |
if ($task->getConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $i)) {
|
139 |
+
// $rv['cstm_' . $i] = $task->getConfig("contactlab_subscribers/custom_fields/field_" . $i);
|
140 |
+
// Array is flipped
|
141 |
+
$rv[$task->getConfig("contactlab_subscribers/custom_fields/field_" . $i)] = 'cstm_' . $i;
|
142 |
}
|
143 |
}
|
144 |
return $rv;
|
164 |
);
|
165 |
}
|
166 |
|
167 |
+
/**
|
168 |
+
* Map new subscriber fields names to customer attribute names
|
169 |
+
*/
|
170 |
+
public function getSubscriberToCustomerAttributeMap() {
|
171 |
+
return array(
|
172 |
+
'first_name' => 'firstname',
|
173 |
+
'last_name' => 'lastname',
|
174 |
+
'company' => 'billing_company',
|
175 |
+
'gender' => 'gender',
|
176 |
+
'dob' => 'dob',
|
177 |
+
'privacy_accepted' => 'privacy',
|
178 |
+
'country' => 'billing_country',
|
179 |
+
'city' => 'billing_city',
|
180 |
+
'address' => 'billing_street',
|
181 |
+
'zip_code' => 'billing_postcode',
|
182 |
+
'phone' => 'billing_telephone',
|
183 |
+
'cell_phone' => 'mobilephone',
|
184 |
+
'notes' => 'notes',
|
185 |
+
'custom_1' => 'custom_1',
|
186 |
+
'custom_2' => 'custom_2'
|
187 |
+
);
|
188 |
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* Entity type id from name.
|
193 |
+
* @param $name
|
194 |
+
* @return null|string
|
195 |
+
*/
|
196 |
public function getEntityTypeId($name) {
|
197 |
$types = Mage::getModel("eav/entity_type")->getCollection();
|
198 |
foreach ($types as $type) {
|
203 |
return null;
|
204 |
}
|
205 |
|
206 |
+
/**
|
207 |
+
* @param Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributes
|
208 |
+
* @return array
|
209 |
+
*/
|
210 |
+
public function fillBackendTypesFromArray(Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributes) {
|
211 |
$types = array();
|
212 |
foreach ($attributes as $row) {
|
213 |
$backendType = $row->getData('backend_type');
|
217 |
$types[$backendType][] = $row->getAttributeId();
|
218 |
}
|
219 |
return $types;
|
220 |
+
}
|
221 |
|
222 |
+
/**
|
223 |
+
* Attributes collection for entity type.
|
224 |
+
* @param $entityType
|
225 |
+
* @param array $attributes
|
226 |
+
* @return Mage_Eav_Model_Resource_Entity_Attribute_Collection
|
227 |
+
*/
|
228 |
public function getAttributesForEntityType($entityType, array $attributes) {
|
229 |
return Mage::getModel('eav/entity_attribute')
|
230 |
->getCollection()
|
233 |
->addFieldToFilter('entity_type_id', $this->getEntityTypeId($entityType));
|
234 |
}
|
235 |
|
236 |
+
/**
|
237 |
+
* Attributes collection for entity type.
|
238 |
+
* @param $entityType
|
239 |
+
* @return array
|
240 |
+
*/
|
241 |
public function getAttributesCodesForEntityType($entityType) {
|
242 |
$rv = array();
|
243 |
foreach (Mage::getModel('eav/entity_attribute')
|
248 |
return $rv;
|
249 |
}
|
250 |
|
251 |
+
/**
|
252 |
+
* Attributes collection for entity type.
|
253 |
+
* @param $entityType
|
254 |
+
* @param $attributeCode
|
255 |
+
* @return bool|int|null
|
256 |
+
*/
|
257 |
public function getAttributeId($entityType, $attributeCode) {
|
258 |
foreach (Mage::getModel('eav/entity_attribute')
|
259 |
->getCollection()
|
264 |
return false;
|
265 |
}
|
266 |
|
267 |
+
/**
|
268 |
+
* Manage export policy data after export success.
|
269 |
+
* @param Contactlab_Commons_Model_Task $task
|
270 |
+
*/
|
271 |
public function saveLastExportDatetime(Contactlab_Commons_Model_Task $task) {
|
272 |
// FIXME diff by store?
|
273 |
$lastExport = Mage::getModel("core/date")->gmtDate();
|
282 |
Mage::app()->reinitStores();
|
283 |
}
|
284 |
|
285 |
+
/**
|
286 |
+
* Calls ContactLab SOAP StartSubscriberDataExchange method.
|
287 |
+
* @param Contactlab_Commons_Model_Task $task
|
288 |
+
*/
|
289 |
public function soapCallAfterExport(Contactlab_Commons_Model_Task $task) {
|
290 |
if ($task->getConfigFlag("contactlab_commons/soap/enable")
|
291 |
&& $task->getConfigFlag("contactlab_subscribers/global/soap_call_after_export")) {
|
app/code/community/Contactlab/Subscribers/Helper/Uk.php
CHANGED
@@ -1,46 +1,61 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
* Uk manager.
|
5 |
*/
|
6 |
-
class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract
|
|
|
7 |
/**
|
8 |
-
*
|
9 |
-
* @param
|
10 |
-
* @param
|
11 |
* @return void
|
12 |
*/
|
13 |
public function update($customerId, $subscriberId) {
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
if (is_null($subscriberId)) {
|
18 |
-
$subscriberId = $this->_getSubscriberIdFromCustomerId($customerId);
|
19 |
-
}
|
20 |
-
if (is_null($subscriberId)) {
|
21 |
-
// Not subscriber customer
|
22 |
-
if (!$this->_exists('customer_id', $customerId)) {
|
23 |
-
$this->_insertSubscriberIdCustomerId(NULL, $customerId);
|
24 |
}
|
25 |
-
|
26 |
-
|
27 |
-
if (!$this->_exists('subscriber_id', $subscriberId)) {
|
28 |
-
$this->_insertSubscriberIdCustomerId($subscriberId, NULL);
|
29 |
}
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
}
|
|
|
|
|
37 |
}
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
40 |
public function searchByCustomerId($id) {
|
41 |
return $this->_search('customer_id', $id);
|
42 |
}
|
43 |
|
|
|
|
|
|
|
|
|
|
|
44 |
public function searchBySubscriberId($id) {
|
45 |
return $this->_search('subscriber_id', $id);
|
46 |
}
|
@@ -50,21 +65,49 @@ class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract {
|
|
50 |
Mage::getModel("contactlab_subscribers/uk")->purge();
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
private final function _search($column, $id) {
|
54 |
$model = Mage::getModel("contactlab_subscribers/uk")->load($id, $column);
|
55 |
-
return $model->hasEntityId() ? $model :
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
private final function _exists($column, $id) {
|
59 |
-
return $this->_search($column, $id) ?
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
private final function _insertSubscriberIdCustomerId($subscriberId, $customerId) {
|
|
|
63 |
$model = Mage::getModel("contactlab_subscribers/uk");
|
64 |
return $model->setCustomerId($customerId)->setSubscriberId($subscriberId)->save();
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
private final function _updateSubscriberIdFromCustomerId($customerId, $subscriberId) {
|
|
|
68 |
$model = Mage::getModel("contactlab_subscribers/uk")->load($customerId, 'customer_id');
|
69 |
if (!$model->hasEntityId()) {
|
70 |
return false;
|
@@ -72,6 +115,13 @@ class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract {
|
|
72 |
return $model->setSubscriberId($subscriberId)->save();
|
73 |
}
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
private final function _updateCustomerIdFromSubscriberId($subscriberId, $customerId) {
|
76 |
$model = Mage::getModel("contactlab_subscribers/uk")->load($subscriberId, 'subscriber_id');
|
77 |
if (!$model->hasEntityId()) {
|
@@ -86,9 +136,14 @@ class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract {
|
|
86 |
return $rv;
|
87 |
}
|
88 |
|
89 |
-
|
|
|
|
|
|
|
|
|
90 |
private function _getSubscriberIdFromCustomerId($customerId) {
|
91 |
$customer = Mage::getModel("customer/customer")->load($customerId);
|
|
|
92 |
$subscriber = Mage::getModel("newsletter/subscriber")->loadByCustomer($customer);
|
93 |
return $subscriber->hasSubscriberId() ? $subscriber->getSubscriberId() : NULL;
|
94 |
}
|
@@ -96,6 +151,8 @@ class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract {
|
|
96 |
/**
|
97 |
* Update all.
|
98 |
* @param boolean $doIt
|
|
|
|
|
99 |
*/
|
100 |
public function updateAll($doIt, Contactlab_Commons_Model_Task $task = null) {
|
101 |
/* @var $model Contactlab_Subscribers_Model_Uk */
|
@@ -107,17 +164,20 @@ class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract {
|
|
107 |
return !$model->getHasNotices();
|
108 |
}
|
109 |
|
110 |
-
/**
|
|
|
|
|
111 |
public function addUpdateUkTask() {
|
112 |
return Mage::getModel("contactlab_commons/task")
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
* Truncate table
|
|
|
121 |
*/
|
122 |
public function truncate(Contactlab_Commons_Model_Task $task = null) {
|
123 |
/* @var $model Contactlab_Subscribers_Model_Uk */
|
@@ -131,10 +191,20 @@ class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract {
|
|
131 |
/** Add truncate uk task. */
|
132 |
public function addTruncateUkTask() {
|
133 |
return Mage::getModel("contactlab_commons/task")
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
}
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* Uk manager helper.
|
5 |
*/
|
6 |
+
class Contactlab_Subscribers_Helper_Uk extends Mage_Core_Helper_Abstract
|
7 |
+
{
|
8 |
/**
|
9 |
+
* Update keys.
|
10 |
+
* @param int $customerId
|
11 |
+
* @param int $subscriberId
|
12 |
* @return void
|
13 |
*/
|
14 |
public function update($customerId, $subscriberId) {
|
15 |
+
try {
|
16 |
+
if (is_null($customerId) && is_null($subscriberId)) {
|
17 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
+
if (is_null($subscriberId)) {
|
20 |
+
$subscriberId = $this->_getSubscriberIdFromCustomerId($customerId);
|
|
|
|
|
21 |
}
|
22 |
+
if (is_null($subscriberId)) {
|
23 |
+
// Not subscriber customer
|
24 |
+
if (!$this->_exists('customer_id', $customerId)) {
|
25 |
+
$this->_insertSubscriberIdCustomerId(NULL, $customerId);
|
26 |
+
}
|
27 |
+
} else if (is_null($customerId)) {
|
28 |
+
// Subscriber not customer
|
29 |
+
if (!$this->_exists('subscriber_id', $subscriberId)) {
|
30 |
+
$this->_insertSubscriberIdCustomerId($subscriberId, NULL);
|
31 |
+
}
|
32 |
+
} else {
|
33 |
+
// Subscriber customer
|
34 |
+
if (!$this->_updateCustomerIdFromSubscriberId($subscriberId, $customerId)) {
|
35 |
+
if (!$this->_updateSubscriberIdFromCustomerId($customerId, $subscriberId)) {
|
36 |
+
$this->_insertSubscriberIdCustomerId($subscriberId, $customerId);
|
37 |
+
}
|
38 |
}
|
39 |
}
|
40 |
+
} catch (Exception $e) {
|
41 |
+
$this->_reportException($e);
|
42 |
}
|
43 |
}
|
44 |
|
45 |
+
/**
|
46 |
+
* Search by customer id.
|
47 |
+
* @param int $id
|
48 |
+
* @return bool|Contactlab_Subscribers_Model_Uk
|
49 |
+
*/
|
50 |
public function searchByCustomerId($id) {
|
51 |
return $this->_search('customer_id', $id);
|
52 |
}
|
53 |
|
54 |
+
/**
|
55 |
+
* Search by subscriber id.
|
56 |
+
* @param int $id
|
57 |
+
* @return bool|Contactlab_Subscribers_Model_Uk
|
58 |
+
*/
|
59 |
public function searchBySubscriberId($id) {
|
60 |
return $this->_search('subscriber_id', $id);
|
61 |
}
|
65 |
Mage::getModel("contactlab_subscribers/uk")->purge();
|
66 |
}
|
67 |
|
68 |
+
/**
|
69 |
+
* Search record.
|
70 |
+
* @param string $column
|
71 |
+
* @param int $id
|
72 |
+
* @return bool|Contactlab_Subscribers_Model_Uk
|
73 |
+
*/
|
74 |
private final function _search($column, $id) {
|
75 |
$model = Mage::getModel("contactlab_subscribers/uk")->load($id, $column);
|
76 |
+
return $model->hasEntityId() ? $model : false;
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Does the record exist?
|
81 |
+
* @param string $column
|
82 |
+
* @param int $id
|
83 |
+
* @return bool
|
84 |
+
*/
|
85 |
private final function _exists($column, $id) {
|
86 |
+
return $this->_search($column, $id) ? true : false;
|
87 |
}
|
88 |
|
89 |
+
/**
|
90 |
+
* Insert subscriber id and customer id.
|
91 |
+
* @param int $subscriberId
|
92 |
+
* @param int $customerId
|
93 |
+
* @return Mage_Core_Model_Abstract
|
94 |
+
* @throws Exception
|
95 |
+
*/
|
96 |
private final function _insertSubscriberIdCustomerId($subscriberId, $customerId) {
|
97 |
+
/** @var $model Contactlab_Subscribers_Model_Uk */
|
98 |
$model = Mage::getModel("contactlab_subscribers/uk");
|
99 |
return $model->setCustomerId($customerId)->setSubscriberId($subscriberId)->save();
|
100 |
}
|
101 |
|
102 |
+
/**
|
103 |
+
* Update subscriber id from customer id.
|
104 |
+
* @param int $customerId
|
105 |
+
* @param int $subscriberId
|
106 |
+
* @return bool|Mage_Core_Model_Abstract
|
107 |
+
* @throws Exception
|
108 |
+
*/
|
109 |
private final function _updateSubscriberIdFromCustomerId($customerId, $subscriberId) {
|
110 |
+
/** @var $model Contactlab_Subscribers_Model_Uk */
|
111 |
$model = Mage::getModel("contactlab_subscribers/uk")->load($customerId, 'customer_id');
|
112 |
if (!$model->hasEntityId()) {
|
113 |
return false;
|
115 |
return $model->setSubscriberId($subscriberId)->save();
|
116 |
}
|
117 |
|
118 |
+
/**
|
119 |
+
* Update customer id from subscriber id.
|
120 |
+
* @param int $subscriberId
|
121 |
+
* @param int $customerId
|
122 |
+
* @return bool|Contactlab_Subscribers_Model_Uk|Mage_Core_Model_Abstract
|
123 |
+
* @throws Exception
|
124 |
+
*/
|
125 |
private final function _updateCustomerIdFromSubscriberId($subscriberId, $customerId) {
|
126 |
$model = Mage::getModel("contactlab_subscribers/uk")->load($subscriberId, 'subscriber_id');
|
127 |
if (!$model->hasEntityId()) {
|
136 |
return $rv;
|
137 |
}
|
138 |
|
139 |
+
/**
|
140 |
+
* Get subscriber id from customer id.
|
141 |
+
* @param int $customerId
|
142 |
+
* @return int|null
|
143 |
+
*/
|
144 |
private function _getSubscriberIdFromCustomerId($customerId) {
|
145 |
$customer = Mage::getModel("customer/customer")->load($customerId);
|
146 |
+
/* @var $subscriber Contactlab_Subscribers_Model_Newsletter_Subscriber */
|
147 |
$subscriber = Mage::getModel("newsletter/subscriber")->loadByCustomer($customer);
|
148 |
return $subscriber->hasSubscriberId() ? $subscriber->getSubscriberId() : NULL;
|
149 |
}
|
151 |
/**
|
152 |
* Update all.
|
153 |
* @param boolean $doIt
|
154 |
+
* @param Contactlab_Commons_Model_Task $task
|
155 |
+
* @return bool
|
156 |
*/
|
157 |
public function updateAll($doIt, Contactlab_Commons_Model_Task $task = null) {
|
158 |
/* @var $model Contactlab_Subscribers_Model_Uk */
|
164 |
return !$model->getHasNotices();
|
165 |
}
|
166 |
|
167 |
+
/**
|
168 |
+
* Add update uk task.
|
169 |
+
*/
|
170 |
public function addUpdateUkTask() {
|
171 |
return Mage::getModel("contactlab_commons/task")
|
172 |
+
->setTaskCode("UpdateUkTask")
|
173 |
+
->setModelName('contactlab_subscribers/task_updateUkRunner')
|
174 |
+
->setDescription('Update uk table')
|
175 |
+
->save();
|
176 |
}
|
177 |
|
178 |
/**
|
179 |
* Truncate table
|
180 |
+
* @param Contactlab_Commons_Model_Task $task
|
181 |
*/
|
182 |
public function truncate(Contactlab_Commons_Model_Task $task = null) {
|
183 |
/* @var $model Contactlab_Subscribers_Model_Uk */
|
191 |
/** Add truncate uk task. */
|
192 |
public function addTruncateUkTask() {
|
193 |
return Mage::getModel("contactlab_commons/task")
|
194 |
+
->setTaskCode("TruncateUkTask")
|
195 |
+
->setModelName('contactlab_subscribers/task_truncateUkRunner')
|
196 |
+
->setDescription('Truncate uk table')
|
197 |
+
->save();
|
198 |
}
|
199 |
|
200 |
+
/**
|
201 |
+
* Report exception.
|
202 |
+
* @param Exception $exception
|
203 |
+
*/
|
204 |
+
private function _reportException(Exception $exception) {
|
205 |
+
Mage::logException($exception);
|
206 |
+
$v = $exception->getMessage() . " - " . $exception->getTraceAsString();
|
207 |
+
Mage::helper('contactlab_commons')->logCrit($v);
|
208 |
+
Mage::helper('contactlab_commons')->addCriticalMessage($v);
|
209 |
+
}
|
210 |
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/AbstractCheck.php
ADDED
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
abstract class Contactlab_Subscribers_Model_Checks_AbstractCheck
|
4 |
+
extends Mage_Core_Model_Abstract
|
5 |
+
implements Contactlab_Subscribers_Model_Checks_CheckInterface
|
6 |
+
{
|
7 |
+
private $_success = array();
|
8 |
+
private $_error = array();
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Start check.
|
12 |
+
* @return String
|
13 |
+
*/
|
14 |
+
public function check() {
|
15 |
+
$exitCode = $this->doCheck();
|
16 |
+
$this->setExitCode($exitCode);
|
17 |
+
return $exitCode;
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get Name.
|
22 |
+
* @return string
|
23 |
+
*/
|
24 |
+
function getName()
|
25 |
+
{
|
26 |
+
return get_class($this);
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Start check.
|
31 |
+
* @return String
|
32 |
+
*/
|
33 |
+
protected abstract function doCheck();
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @return mixed
|
37 |
+
*/
|
38 |
+
public function getExitCode()
|
39 |
+
{
|
40 |
+
return parent::getData('exit_code');
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @param mixed $exitCode
|
45 |
+
* @return Varien_Object
|
46 |
+
*/
|
47 |
+
public function setExitCode($exitCode)
|
48 |
+
{
|
49 |
+
return parent::setData('exit_code', $exitCode);
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @param string $value
|
54 |
+
* @return mixed
|
55 |
+
*/
|
56 |
+
protected function success($value)
|
57 |
+
{
|
58 |
+
$this->_addSuccess($value);
|
59 |
+
return self::SUCCESS;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @param string $value
|
64 |
+
* @return mixed
|
65 |
+
*/
|
66 |
+
protected function error($value)
|
67 |
+
{
|
68 |
+
Mage::logException(new Zend_Exception($value));
|
69 |
+
$this->_addError($value);
|
70 |
+
return self::ERROR;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Table name with prefix.
|
75 |
+
* @param $string
|
76 |
+
* @return string
|
77 |
+
*/
|
78 |
+
protected function _getTableName($string)
|
79 |
+
{
|
80 |
+
return Mage::getModel('core/resource')->getTableName($string);
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Get sql result.
|
85 |
+
* @param $sql
|
86 |
+
* @return int
|
87 |
+
* @throws Zend_Exception
|
88 |
+
*/
|
89 |
+
protected function _getSqlResult($sql)
|
90 |
+
{
|
91 |
+
/** @var $conn Varien_Db_Adapter_Pdo_Mysql */
|
92 |
+
$conn = Mage::getModel('core/resource')->getConnection('read');
|
93 |
+
/** @var $stmt PDOStatement */
|
94 |
+
$stmt = $conn->prepare($sql);
|
95 |
+
/** @noinspection PhpUndefinedVariableInspection */
|
96 |
+
$stmt->bindColumn('c', $count);
|
97 |
+
$stmt->execute();
|
98 |
+
$stmt->fetch();
|
99 |
+
$stmt->closeCursor();
|
100 |
+
|
101 |
+
return $count;
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Add success row.
|
106 |
+
* @param String $value
|
107 |
+
*/
|
108 |
+
private function _addSuccess($value)
|
109 |
+
{
|
110 |
+
$this->_success[] = $value;
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Add error row.
|
115 |
+
* @param String $value
|
116 |
+
*/
|
117 |
+
private function _addError($value)
|
118 |
+
{
|
119 |
+
$this->_error[] = $value;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Get error messages.
|
124 |
+
* @return array
|
125 |
+
*/
|
126 |
+
public function getErrors()
|
127 |
+
{
|
128 |
+
return $this->_error;
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Get success messages.
|
133 |
+
* @return array
|
134 |
+
*/
|
135 |
+
public function getSuccess()
|
136 |
+
{
|
137 |
+
return $this->_success;
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Is essential check.
|
142 |
+
* @return bool
|
143 |
+
*/
|
144 |
+
public function isEssential()
|
145 |
+
{
|
146 |
+
return false;
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Should the check fail in test mode?
|
151 |
+
* @return bool
|
152 |
+
*/
|
153 |
+
public function shouldFailInTest() {
|
154 |
+
return false;
|
155 |
+
}
|
156 |
+
|
157 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/CheckInterface.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
interface Contactlab_Subscribers_Model_Checks_CheckInterface
|
4 |
+
{
|
5 |
+
const SUCCESS = "Ok";
|
6 |
+
const ERROR = "Error";
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Do Check.
|
10 |
+
* @return int
|
11 |
+
*/
|
12 |
+
public function check();
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Get name.
|
16 |
+
* @return String
|
17 |
+
*/
|
18 |
+
public function getName();
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get code.
|
22 |
+
* @return String
|
23 |
+
*/
|
24 |
+
public function getCode();
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get description.
|
28 |
+
* @return String
|
29 |
+
*/
|
30 |
+
public function getDescription();
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Get Exit Code.
|
34 |
+
* @return String
|
35 |
+
*/
|
36 |
+
public function getExitCode();
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Get position.
|
40 |
+
* @return int
|
41 |
+
*/
|
42 |
+
public function getPosition();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Get error array.
|
46 |
+
* @return array
|
47 |
+
*/
|
48 |
+
public function getErrors();
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Get success array.
|
52 |
+
* @return array
|
53 |
+
*/
|
54 |
+
public function getSuccess();
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Is an essential check
|
58 |
+
* @return boolean
|
59 |
+
*/
|
60 |
+
public function isEssential();
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Should the check fail in test mode?
|
64 |
+
* @return bool
|
65 |
+
*/
|
66 |
+
public function shouldFailInTest();
|
67 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/ContactlabAuthApiKeyCheck.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Model_Checks_ContactlabAuthApiKeyCheck
|
4 |
+
extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
5 |
+
{
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Do check.
|
9 |
+
*/
|
10 |
+
protected function doCheck()
|
11 |
+
{
|
12 |
+
$key = Mage::getStoreConfig('contactlab_template/queue/auth_api_key');
|
13 |
+
if (empty($key)) {
|
14 |
+
return $this->error("No auth_api_key specified");
|
15 |
+
} else {
|
16 |
+
return $this->success("auth_api_key specified");
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get Check code.
|
22 |
+
* @return string
|
23 |
+
*/
|
24 |
+
function getCode()
|
25 |
+
{
|
26 |
+
return "auth-api-key";
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Get description.
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
function getDescription()
|
34 |
+
{
|
35 |
+
return "Check auth_api_key";
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Get position.
|
40 |
+
* @return int
|
41 |
+
*/
|
42 |
+
public function getPosition()
|
43 |
+
{
|
44 |
+
return 200;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Is essential check.
|
49 |
+
* @return bool
|
50 |
+
*/
|
51 |
+
public function isEssential()
|
52 |
+
{
|
53 |
+
return true;
|
54 |
+
}
|
55 |
+
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Should the check fail in test mode?
|
59 |
+
* @return bool
|
60 |
+
*/
|
61 |
+
public function shouldFailInTest()
|
62 |
+
{
|
63 |
+
return true;
|
64 |
+
}
|
65 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/FindDuplicatedCustomersCheck.php
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class FindDuplicatedCustomersCheck
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_Checks_FindDuplicatedCustomersCheck extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
7 |
+
{
|
8 |
+
private $count;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Do check.
|
12 |
+
*/
|
13 |
+
protected function doCheck()
|
14 |
+
{
|
15 |
+
$count = $this->getCount();
|
16 |
+
$this->count = $count;
|
17 |
+
if ($count > 0) {
|
18 |
+
//return $this->error(sprintf("Duplicate customers in newsletter subscribers: %d", $count));
|
19 |
+
Mage::helper('contactlab_commons')->logCrit(sprintf("Duplicate customers in newsletter subscribers: %d", $count));
|
20 |
+
return $this->success(sprintf("Skipped %d duplicate customers in newsletter subscribers", $count));
|
21 |
+
} else {
|
22 |
+
return $this->success("No duplicate customers in newsletter subscribers");
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get Check code.
|
28 |
+
* @return string
|
29 |
+
*/
|
30 |
+
function getCode()
|
31 |
+
{
|
32 |
+
return "duplicated-customers-count";
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Get description.
|
37 |
+
* @return string
|
38 |
+
*/
|
39 |
+
function getDescription()
|
40 |
+
{
|
41 |
+
return "Find duplicate customers check";
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Get customer count.
|
46 |
+
* @return int
|
47 |
+
*/
|
48 |
+
private function getCount()
|
49 |
+
{
|
50 |
+
$sql = sprintf("select count(1) as c from (select customer_id, count(1) from %s where customer_id != 0 group by customer_id having count(1) > 1) t;", $this->_getTableName('newsletter_subscriber'));
|
51 |
+
return $this->_getSqlResult($sql);
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Get position.
|
56 |
+
* @return int
|
57 |
+
*/
|
58 |
+
public function getPosition()
|
59 |
+
{
|
60 |
+
return 130;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Is essential check.
|
65 |
+
* @return bool
|
66 |
+
*/
|
67 |
+
public function isEssential()
|
68 |
+
{
|
69 |
+
return true;
|
70 |
+
}
|
71 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/FindInvalidCustomersCheck.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class FindInvalidCustomersCheck
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_Checks_FindInvalidCustomersCheck
|
7 |
+
extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
8 |
+
{
|
9 |
+
private $count;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Do check.
|
13 |
+
*/
|
14 |
+
protected function doCheck()
|
15 |
+
{
|
16 |
+
$count = $this->getCount();
|
17 |
+
$this->count = $count;
|
18 |
+
if ($count > 0) {
|
19 |
+
return $this->error(sprintf("Non-valid customers in newsletter subscribers: %d", $count));
|
20 |
+
} else {
|
21 |
+
return $this->success("No non-valid customers in newsletter subscribers");
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Get Check code.
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
function getCode()
|
30 |
+
{
|
31 |
+
return "invalid-customer-count";
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get description.
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
function getDescription()
|
39 |
+
{
|
40 |
+
return "Find non-valid customers check";
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Need Database?
|
45 |
+
* @return bool
|
46 |
+
*/
|
47 |
+
public function needDatabase()
|
48 |
+
{
|
49 |
+
return true;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Get customer count.
|
54 |
+
* @return int
|
55 |
+
*/
|
56 |
+
private function getCount()
|
57 |
+
{
|
58 |
+
$sql = sprintf("select count(1) as c from %s where customer_id != 0 and customer_id not in (select entity_id from %s);",
|
59 |
+
$this->_getTableName('newsletter_subscriber'),
|
60 |
+
$this->_getTableName('customer_entity'));
|
61 |
+
return $this->_getSqlResult($sql);
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Get position.
|
66 |
+
* @return int
|
67 |
+
*/
|
68 |
+
public function getPosition()
|
69 |
+
{
|
70 |
+
return 140;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Get log data to send.
|
75 |
+
* @return int
|
76 |
+
*/
|
77 |
+
public function getLogData()
|
78 |
+
{
|
79 |
+
return $this->count;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Do send log data.
|
84 |
+
* @return bool
|
85 |
+
*/
|
86 |
+
public function doSendLogData()
|
87 |
+
{
|
88 |
+
return true;
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Is essential check.
|
93 |
+
* @return bool
|
94 |
+
*/
|
95 |
+
public function isEssential()
|
96 |
+
{
|
97 |
+
return false;
|
98 |
+
}
|
99 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/RewritesCheck.php
ADDED
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class RewritesCheck.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_Checks_RewritesCheck extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Do check.
|
10 |
+
*/
|
11 |
+
protected function doCheck()
|
12 |
+
{
|
13 |
+
$this->_checkRewrites();
|
14 |
+
return self::SUCCESS;
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Get Check code.
|
19 |
+
* @return string
|
20 |
+
*/
|
21 |
+
function getCode()
|
22 |
+
{
|
23 |
+
return "rewrites";
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get description.
|
28 |
+
* @return string
|
29 |
+
*/
|
30 |
+
function getDescription()
|
31 |
+
{
|
32 |
+
return "Check magento rewrites";
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Check rewrite for all modules.
|
37 |
+
*/
|
38 |
+
private function _checkRewrites()
|
39 |
+
{
|
40 |
+
foreach (array("Commons", "Subscribers", "Template", "Transactional") as $module) {
|
41 |
+
$this->_checkRewritesFor($module);
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Check rewrite for the module.
|
47 |
+
* @param $module
|
48 |
+
*/
|
49 |
+
private function _checkRewritesFor($module)
|
50 |
+
{
|
51 |
+
$branch = $this->getGitBranch();
|
52 |
+
$base = $this->getGitBase();
|
53 |
+
$url = sprintf("%s/%s/app/code/community/Contactlab/%s/etc/config.xml", $base, $branch, $module);
|
54 |
+
$configXml = simplexml_load_file($url);
|
55 |
+
$this->_checkRewritesForConfig($configXml);
|
56 |
+
}
|
57 |
+
|
58 |
+
private function _checkRewritesForConfig(SimpleXMLElement $configXml)
|
59 |
+
{
|
60 |
+
$this->_checkRewritesForModels($configXml->global->models);
|
61 |
+
$this->_checkRewritesForBlocks($configXml->global->blocks);
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @param SimpleXMLElement $models
|
66 |
+
*/
|
67 |
+
private function _checkRewritesForModels(SimpleXMLElement $models)
|
68 |
+
{
|
69 |
+
$rewrites = $this->_getRewrites($models);
|
70 |
+
foreach ($rewrites['default'] as $rewrite) {
|
71 |
+
$this->_checkRewritesForModel($rewrite);
|
72 |
+
}
|
73 |
+
foreach ($rewrites['resources'] as $rewrite) {
|
74 |
+
$this->_checkRewritesForResource($rewrite);
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Check rewrite for blocks.
|
80 |
+
* @param SimpleXMLElement $blocks
|
81 |
+
*/
|
82 |
+
private function _checkRewritesForBlocks(SimpleXMLElement $blocks)
|
83 |
+
{
|
84 |
+
$rewrites = $this->_getRewrites($blocks);
|
85 |
+
foreach ($rewrites['default'] as $rewrite) {
|
86 |
+
$this->_checkRewritesForBlock($rewrite);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Get Rewrites.
|
92 |
+
* @param SimpleXMLElement $parent
|
93 |
+
* @return array
|
94 |
+
*/
|
95 |
+
private function _getRewrites(SimpleXMLElement $parent)
|
96 |
+
{
|
97 |
+
$rv = array("default" => array(), "resources" => array());
|
98 |
+
|
99 |
+
if (!$parent) {
|
100 |
+
return $rv;
|
101 |
+
}
|
102 |
+
/** @var SimpleXMLElement $model */
|
103 |
+
foreach ($parent->children() as $model) {
|
104 |
+
if ($model->rewrite->count()) {
|
105 |
+
$module = (string) $model->getName();
|
106 |
+
foreach ($model->rewrite->children() as $rewrite) {
|
107 |
+
$class = (string) $rewrite->getName();
|
108 |
+
if (preg_match('|resource$|', $module)) {
|
109 |
+
$m = preg_replace("|_resource$|", "", $module);
|
110 |
+
$rv['resources'][] = "{$m}/{$class}";
|
111 |
+
} else {
|
112 |
+
$rv['default'][] = "{$module}/{$class}";
|
113 |
+
}
|
114 |
+
}
|
115 |
+
}
|
116 |
+
}
|
117 |
+
return $rv;
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* Get rewrite for models.
|
122 |
+
* @param $rewrite Sting
|
123 |
+
*/
|
124 |
+
private function _checkRewritesForModel($rewrite)
|
125 |
+
{
|
126 |
+
$modelName = Mage::app()->getConfig()->getModelClassName($rewrite);
|
127 |
+
$this->_checkClass("Model", $modelName, $rewrite);
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Get rewrite for models resources.
|
132 |
+
* @param $rewrite String
|
133 |
+
*/
|
134 |
+
private function _checkRewritesForResource($rewrite)
|
135 |
+
{
|
136 |
+
$modelName = Mage::app()->getConfig()->getResourceModelClassName($rewrite);
|
137 |
+
$this->_checkClass("Resource", $modelName, $rewrite);
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Get rewrite for blocks.
|
142 |
+
* @param $rewrite String
|
143 |
+
*/
|
144 |
+
private function _checkRewritesForBlock($rewrite)
|
145 |
+
{
|
146 |
+
$block = Mage::app()->getConfig()->getBlockClassName($rewrite);
|
147 |
+
$this->_checkClass("Block", $block, $rewrite);
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Check the class
|
152 |
+
* @param $type String
|
153 |
+
* @param $className String
|
154 |
+
* @param $name String
|
155 |
+
*/
|
156 |
+
private function _checkClass($type, $className, $name)
|
157 |
+
{
|
158 |
+
if (preg_match('|^Contactlab|', $className)) {
|
159 |
+
$this->success("Module installed: $name $type is $className");
|
160 |
+
} else if (preg_match('|^Mage_|', $className)) {
|
161 |
+
if ($this->_hasLocalFallback($className)) {
|
162 |
+
$this->error("Core class has local fallback: $name $type is $className");
|
163 |
+
} else if ($this->_hasCommunityFallback($className)) {
|
164 |
+
$this->error("Core class has community fallback: $name $type is $className");
|
165 |
+
} else {
|
166 |
+
$this->success("Core class: $name $type is $className");
|
167 |
+
}
|
168 |
+
} else {
|
169 |
+
$this->error("Rewrite problem: $name $type is $className");
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
/**
|
174 |
+
* Has Local Fallback?
|
175 |
+
* @param $className String
|
176 |
+
* @return bool
|
177 |
+
*/
|
178 |
+
private function _hasLocalFallback($className)
|
179 |
+
{
|
180 |
+
return $this->_hasFallback('local', $className);
|
181 |
+
}
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Has Community Fallback?
|
185 |
+
* @param $className String
|
186 |
+
* @return bool
|
187 |
+
*/
|
188 |
+
private function _hasCommunityFallback($className)
|
189 |
+
{
|
190 |
+
return $this->_hasFallback('community', $className);
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Has fallback?
|
195 |
+
* @param $pool String
|
196 |
+
* @param $className String
|
197 |
+
* @return bool
|
198 |
+
*/
|
199 |
+
private function _hasFallback($pool, $className)
|
200 |
+
{
|
201 |
+
$base = Mage::getBaseDir();
|
202 |
+
$filename = sprintf("%s/app/code/%s/%s.php", $base, $pool, str_replace('_', '/', $className));
|
203 |
+
return is_file($filename);
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Get position.
|
208 |
+
* @return int
|
209 |
+
*/
|
210 |
+
public function getPosition()
|
211 |
+
{
|
212 |
+
return 170;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Git branch.
|
217 |
+
* @return string
|
218 |
+
*/
|
219 |
+
public function getGitBranch()
|
220 |
+
{
|
221 |
+
return "develop";
|
222 |
+
}
|
223 |
+
|
224 |
+
public function getGitBase()
|
225 |
+
{
|
226 |
+
return "https://raw.githubusercontent.com/contactlab/contactlab-magento-connect";
|
227 |
+
}
|
228 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/WsdlCheck.php
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Created by PhpStorm.
|
5 |
+
* User: andreag
|
6 |
+
* Date: 06/10/15
|
7 |
+
* Time: 9.30
|
8 |
+
*/
|
9 |
+
class Contactlab_Subscribers_Model_Checks_WsdlCheck extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
10 |
+
{
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Start check.
|
14 |
+
* @return String
|
15 |
+
*/
|
16 |
+
protected function doCheck()
|
17 |
+
{
|
18 |
+
return $this->_getCheckWsdl()
|
19 |
+
? $this->success(sprintf("WSDL test ok"))
|
20 |
+
: $this->error(sprintf("WSDL test error"));
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Get code.
|
25 |
+
* @return String
|
26 |
+
*/
|
27 |
+
public function getCode()
|
28 |
+
{
|
29 |
+
return "wsdl";
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Get description.
|
34 |
+
* @return String
|
35 |
+
*/
|
36 |
+
public function getDescription()
|
37 |
+
{
|
38 |
+
return "WSDL test";
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Get position.
|
43 |
+
* @return int
|
44 |
+
*/
|
45 |
+
public function getPosition()
|
46 |
+
{
|
47 |
+
return 200;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Check wsdl.
|
52 |
+
*/
|
53 |
+
private function _getCheckWsdl()
|
54 |
+
{
|
55 |
+
$wsdl = Mage::getStoreConfig("contactlab_commons/soap/wsdl_url");
|
56 |
+
$xml = @simplexml_load_file($wsdl);
|
57 |
+
if (!$xml) {
|
58 |
+
return false;
|
59 |
+
}
|
60 |
+
new SoapClient($wsdl, array('soap_version' => SOAP_1_2));
|
61 |
+
return true;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Should the check fail in test mode?
|
66 |
+
* @return bool
|
67 |
+
*/
|
68 |
+
public function shouldFailInTest() {
|
69 |
+
return true;
|
70 |
+
}
|
71 |
+
|
72 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers.php
CHANGED
@@ -2,12 +2,31 @@
|
|
2 |
|
3 |
/**
|
4 |
* Export subscribers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commons_Model_Exporter_Abstract {
|
7 |
/**
|
8 |
-
* Get xml object.
|
9 |
*/
|
10 |
protected function writeXml() {
|
|
|
11 |
$this->limiter = '###';
|
12 |
$this->found = false;
|
13 |
|
@@ -17,7 +36,7 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
17 |
|
18 |
$this->exportPolicy = $this->getTask()->getConfig('contactlab_subscribers/global/export_policy');
|
19 |
$this->helper = Mage::helper("contactlab_subscribers/exporter");
|
20 |
-
$this->
|
21 |
|
22 |
$this->ukQuery = "";
|
23 |
|
@@ -39,119 +58,106 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
39 |
|
40 |
// Define customer collection
|
41 |
$attributesCustomer = $this->helper->getAttributesForEntityType('customer',
|
42 |
-
|
43 |
$this->fAttributesMap = array_flip($this->helper->getAttributesMap($this->getTask()));
|
44 |
$this->fAddressAttributes = array_flip($this->helper->getAddressesAttributesMap());
|
45 |
|
46 |
-
$subscribersInCustomers = Mage::getModel('customer/customer')->getCollection();
|
47 |
-
|
48 |
-
$w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
49 |
-
$w = $this->_manageExportPolicySql($w, array(
|
50 |
-
'e' => 'updated_at',
|
51 |
-
'e' => 'created_at',
|
52 |
-
$this->r->getTableName('newsletter_subscriber') => 'last_updated_at'
|
53 |
-
));
|
54 |
-
|
55 |
-
if (!$this->_mustExportNotSubscribed()) {
|
56 |
-
$subscribersInCustomers->getSelect()
|
57 |
-
->where('e.entity_id in (select customer_id from ' . $this->r->getTableName('newsletter_subscriber')
|
58 |
-
. ' where ' . $w . ')');
|
59 |
-
}
|
60 |
-
|
61 |
-
// Fills array of types with attributes id array
|
62 |
-
foreach ($this->helper->fillBackendTypesFromArray($attributesCustomer) as $backendType => $ids) {
|
63 |
-
$alias = 'ce' . $backendType;
|
64 |
-
$w = 'e.entity_id = ' . $alias . '.entity_id and length(' . $alias . '.value) > 0 and '
|
65 |
-
. $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
|
66 |
-
$subscribersInCustomers->getSelect()->joinLeft(
|
67 |
-
array(
|
68 |
-
$alias => $this->r->getTableName('customer_entity_' . $backendType)),
|
69 |
-
$w, array($backendType . '_value' => 'GROUP_CONCAT(DISTINCT CONCAT('
|
70 |
-
. $alias . '.attribute_id, "_", '.$alias.'.value) SEPARATOR "' . $this->limiter . '")'));
|
71 |
-
}
|
72 |
-
|
73 |
-
// Stats
|
74 |
-
$this->_addStatsToSelect($subscribersInCustomers);
|
75 |
-
$this->_addAddressesToSelect($subscribersInCustomers);
|
76 |
-
$this->_manageExportPolicy($subscribersInCustomers,
|
77 |
-
array(
|
78 |
-
'e' => array('created_at', 'updated_at'),
|
79 |
-
$this->r->getTableName('newsletter_subscriber') => 'last_updated_at',
|
80 |
-
));
|
81 |
-
$this->_addCustomerExportCollection($subscribersInCustomers);
|
82 |
-
|
83 |
-
$subscribersInCustomers->getSelect()->group('e.entity_id');
|
84 |
-
|
85 |
-
Mage::helper("contactlab_commons")->logDebug($subscribersInCustomers->getSelect()->assemble());
|
86 |
-
|
87 |
-
$prefilled = array_fill_keys(array_keys($this->fAttributesMap), '');
|
88 |
-
foreach (array('billing', 'shipping') as $addressType) {
|
89 |
-
if ($this->_mustExportAddress($addressType)) {
|
90 |
-
foreach ($this->fAddressAttributes as $k) {
|
91 |
-
$prefilled[$addressType . '_' . $k] = '';
|
92 |
-
}
|
93 |
-
}
|
94 |
-
}
|
95 |
-
|
96 |
$counter = 0;
|
97 |
$start = microtime(true);
|
98 |
-
$max = $
|
99 |
$this->getTask()->setMaxValue($max);
|
100 |
Mage::helper("contactlab_commons")->logNotice(sprintf("Counting time: %0.4f", microtime(true) - $start));
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
$start = microtime(true);
|
103 |
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
$
|
113 |
-
$
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
|
|
123 |
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
$k = strtoupper($k);
|
133 |
}
|
134 |
-
$
|
135 |
-
|
136 |
-
|
137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
|
139 |
-
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
142 |
}
|
|
|
143 |
}
|
144 |
Mage::helper("contactlab_commons")->logNotice(sprintf("Loop time: %0.4f", microtime(true) - $start));
|
145 |
|
146 |
$this->_addNotCustomerRecords();
|
147 |
$this->_addDeletedRecords();
|
148 |
|
149 |
-
|
150 |
-
$this->ukQuery = sprintf('update %s set is_exported = 1 where entity_id in (%s)',
|
151 |
-
$this->r->getTableName('contactlab_subscribers/uk'),
|
152 |
-
$this->ukQuery);
|
153 |
-
$this->_query($this->ukQuery);
|
154 |
-
}
|
155 |
|
156 |
Mage::helper("contactlab_commons")->flushDbProfiler();
|
157 |
if (!$this->found) {
|
@@ -169,6 +175,93 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
169 |
}
|
170 |
}
|
171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
/**
|
173 |
* Called after the export.
|
174 |
*/
|
@@ -179,96 +272,148 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
179 |
/** Not customer records. */
|
180 |
private function _addNotCustomerRecords() {
|
181 |
Mage::helper("contactlab_commons")->logDebug("_addNotCustomerRecords");
|
182 |
-
$
|
183 |
-
$this->
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
|
|
|
|
188 |
}
|
189 |
-
$this->_addNewsletterSubscriberExportCollection($subscribersNotInCustomers);
|
190 |
-
|
191 |
-
$subscribersNotInCustomers
|
192 |
-
->getSelect()->where('main_table.customer_id is null or main_table.customer_id = 0');
|
193 |
-
|
194 |
$counter = 0;
|
|
|
|
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
foreach ($
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
}
|
|
|
208 |
}
|
|
|
209 |
|
210 |
-
Mage::helper("contactlab_commons")->logDebug($subscribersNotInCustomers->getSelect()->assemble());
|
211 |
-
|
212 |
-
foreach ($subscribersNotInCustomers as $item) {
|
213 |
-
$counter++;
|
214 |
-
$toFill = array();
|
215 |
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
$this->
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
if ($k !== $this->getSubscribedFlagName()) {
|
236 |
-
$k = strtoupper($k);
|
237 |
-
}
|
238 |
-
$writer->writeElement($k, $v);
|
239 |
-
}
|
240 |
-
$writer->endElement();
|
241 |
-
gzwrite($this->gz, $writer->outputMemory());
|
242 |
-
if ($counter % 500 == 0) {
|
243 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
|
244 |
-
$this->getTask()->setProgressValue($counter);
|
245 |
-
}
|
246 |
}
|
|
|
|
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
249 |
private function _addDeletedRecords() {
|
|
|
250 |
$deletedEntities = Mage::getModel('contactlab_commons/deleted')
|
251 |
->getCollection()
|
252 |
->addFieldToFilter('task_id', array('null' => true));
|
253 |
|
254 |
$counter = 0;
|
|
|
255 |
$max = $deletedEntities->count();
|
256 |
|
257 |
Mage::helper("contactlab_commons")->logDebug($deletedEntities->getSelect()->assemble());
|
258 |
$this->deletedEntities = array();
|
259 |
-
$
|
|
|
260 |
|
261 |
-
|
|
|
262 |
$counter++;
|
263 |
-
$
|
264 |
|
265 |
$this->found = true;
|
266 |
$this->deleted++;
|
267 |
|
268 |
-
$
|
269 |
-
$
|
270 |
-
$toFill = array_merge($
|
271 |
$toFill['email'] = $deletedEntity->getEmail();
|
|
|
|
|
|
|
272 |
|
273 |
$writer = new XMLWriter();
|
274 |
$writer->openMemory();
|
@@ -291,16 +436,32 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
291 |
}
|
292 |
}
|
293 |
|
294 |
-
|
|
|
|
|
|
|
|
|
|
|
295 |
$this->_setAddressAttributeKeys($toFill, $data, "shipping");
|
296 |
$this->_setAddressAttributeKeys($toFill, $data, "billing");
|
297 |
}
|
298 |
|
|
|
|
|
|
|
|
|
|
|
299 |
private function _mustExportAddress($addressType) {
|
300 |
return $this->getTask()->getConfigFlag("contactlab_subscribers/global/export_" . $addressType . "_address");
|
301 |
}
|
302 |
|
303 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
if (!$this->_mustExportAddress($addressType)) {
|
305 |
return;
|
306 |
}
|
@@ -310,7 +471,7 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
310 |
return;
|
311 |
}
|
312 |
$values = explode($this->limiter, $data->getData($addressType . '_' . $type . '_value'));
|
313 |
-
foreach ($values as $
|
314 |
$pos = strpos($key, '_');
|
315 |
if ($pos === false) {
|
316 |
continue;
|
@@ -326,14 +487,19 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
326 |
}
|
327 |
}
|
328 |
|
329 |
-
|
|
|
|
|
|
|
|
|
|
|
330 |
$entityTypes = array('int', 'varchar', 'text', 'decimal', 'datetime');
|
331 |
foreach ($entityTypes as $type) {
|
332 |
if (!array_key_exists($type . '_value', $data->getData())) {
|
333 |
continue;
|
334 |
}
|
335 |
$values = explode($this->limiter, $data->getData($type . '_value'));
|
336 |
-
foreach ($values as $
|
337 |
$pos = strpos($key, '_');
|
338 |
if ($pos === false) {
|
339 |
continue;
|
@@ -343,49 +509,109 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
343 |
if (!array_key_exists($k, $this->customerAttributes)) {
|
344 |
continue;
|
345 |
}
|
346 |
-
|
347 |
-
|
|
|
|
|
|
|
|
|
348 |
}
|
349 |
}
|
|
|
350 |
}
|
351 |
|
352 |
-
/**
|
353 |
-
|
354 |
-
|
|
|
|
|
|
|
|
|
355 |
foreach (array('store_id', 'store_name', 'website_id', 'website_name',
|
356 |
'group_id', 'group_name', 'lang') as $k) {
|
357 |
$toFill[$k] = $store[$k];
|
358 |
}
|
359 |
}
|
360 |
|
361 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
private function _addStatsToSelect(Varien_Data_Collection_Db $collection) {
|
363 |
$collection->getSelect()->joinLeft(
|
364 |
-
array('stats' => $this->
|
365 |
'stats.customer_id = e.entity_id', $this->statsAttributesMap);
|
366 |
}
|
367 |
|
368 |
-
/**
|
|
|
|
|
|
|
369 |
private function _addCustomerExportCollection(Varien_Data_Collection_Db $collection) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
$collection->getSelect()->joinLeft(
|
371 |
-
array('
|
372 |
-
'newsletter_subscriber.customer_id = e.entity_id',
|
373 |
-
array('subscriber_status' => 'subscriber_status'));
|
374 |
-
$collection->getSelect()->joinLeft(
|
375 |
-
array('uk' => $this->r->getTableName('contactlab_subscribers/uk')),
|
376 |
'uk.customer_id = e.entity_id',
|
377 |
array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
|
378 |
}
|
379 |
|
380 |
-
/**
|
|
|
|
|
|
|
381 |
private function _addNewsletterSubscriberExportCollection(Varien_Data_Collection_Db $collection) {
|
382 |
$collection->getSelect()->joinLeft(
|
383 |
-
array('uk' => $this->
|
384 |
'uk.subscriber_id = main_table.subscriber_id',
|
385 |
array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
|
386 |
}
|
387 |
|
388 |
-
|
|
|
|
|
|
|
|
|
389 |
private function _manageExportPolicy(Varien_Data_Collection_Db $collection,
|
390 |
array $fields) {
|
391 |
if ($this->exportPolicy != '2') {
|
@@ -400,14 +626,10 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
400 |
$clause = '';
|
401 |
//$lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
|
402 |
|
403 |
-
$first = true;
|
404 |
foreach ($fields as $table => $field) {
|
405 |
if (!is_array($field)) {
|
406 |
$field = array($field);
|
407 |
-
}
|
408 |
-
if (!$first) {
|
409 |
-
$clause .= ' and ';
|
410 |
-
}*/
|
411 |
foreach ($field as $item) {
|
412 |
if (!empty($clause)) {
|
413 |
$clause .= ' or ';
|
@@ -419,12 +641,16 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
419 |
$clause .= sprintf(" or %s.%s is null", $table, $item);
|
420 |
}
|
421 |
}
|
422 |
-
$first = false;
|
423 |
}
|
424 |
$collection->getSelect()->where($clause);
|
425 |
}
|
426 |
|
427 |
-
|
|
|
|
|
|
|
|
|
|
|
428 |
private function _manageExportPolicySql($w, array $fields) {
|
429 |
if ($this->exportPolicy != '2') {
|
430 |
// Ok, will export everything
|
@@ -435,11 +661,12 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
435 |
// Ok, will export everything, no last import saved.
|
436 |
return $w;
|
437 |
}
|
438 |
-
|
439 |
|
440 |
$w .= ' and (';
|
441 |
$first = true;
|
442 |
foreach ($fields as $table => $field) {
|
|
|
443 |
if (!is_array($field)) {
|
444 |
$field = array($field);
|
445 |
}
|
@@ -460,18 +687,26 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
460 |
return $w;
|
461 |
}
|
462 |
|
463 |
-
|
|
|
|
|
|
|
464 |
private function _addAddressesToSelect(Varien_Data_Collection_Db $collection) {
|
465 |
$this->_addAddressToSelect($collection, "shipping");
|
466 |
$this->_addAddressToSelect($collection, "billing");
|
467 |
}
|
468 |
|
|
|
|
|
|
|
|
|
|
|
469 |
private function _addAddressToSelect(Varien_Data_Collection_Db $collection, $type) {
|
470 |
if (!$this->getTask()->getConfigFlag("contactlab_subscribers/global/export_" . $type . "_address")) {
|
471 |
return;
|
472 |
}
|
473 |
$collection->getSelect()->joinLeft(
|
474 |
-
array($type . '_addr' => $this->
|
475 |
$type . '_addr.entity_id = e.entity_id and ' . $type . '_addr.attribute_id = '
|
476 |
. $this->helper->getAttributeId('customer', 'default_' . $type),
|
477 |
array('default_' . $type => 'value'));
|
@@ -485,12 +720,16 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
485 |
. $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
|
486 |
$collection->getSelect()->joinLeft(
|
487 |
array(
|
488 |
-
$alias => $this->
|
489 |
-
$w, array($type . '_' . $backendType . '_value' => 'GROUP_CONCAT(DISTINCT CONCAT('
|
490 |
-
. $alias .
|
491 |
}
|
492 |
}
|
493 |
|
|
|
|
|
|
|
|
|
494 |
private function _removeDeletedEntity() {
|
495 |
$toDelete = Mage::getModel('contactlab_commons/deleted')
|
496 |
->getCollection()
|
@@ -510,43 +749,60 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
510 |
}
|
511 |
}
|
512 |
|
|
|
|
|
|
|
|
|
513 |
private function _loadStores() {
|
514 |
$rv = array();
|
515 |
-
$websiteTable = $this->
|
516 |
-
$storeGroupTable = $this->
|
|
|
|
|
517 |
$stores = Mage::getModel('core/store')
|
518 |
->getCollection()->setLoadDefault(true);
|
519 |
$stores->addFieldToSelect('*')->getSelect()
|
520 |
->join(array('core_website' => $websiteTable),
|
521 |
-
'main_table.website_id = ' .
|
522 |
-
array('website_name' =>
|
523 |
->join(array('core_store_group' => $storeGroupTable),
|
524 |
-
'main_table.group_id = ' .
|
525 |
-
array('group_name' =>
|
|
|
526 |
foreach ($stores as $store) {
|
527 |
-
$
|
528 |
-
|
529 |
-
'
|
530 |
-
'
|
531 |
-
'
|
532 |
-
'
|
533 |
-
'
|
|
|
534 |
'lang' => $store->getConfig("general/locale/code"),
|
535 |
);
|
536 |
}
|
537 |
return $rv;
|
538 |
}
|
539 |
|
540 |
-
/**
|
|
|
|
|
|
|
541 |
private function _mustExportNotSubscribed() {
|
542 |
return $this->getTask()->getConfigFlag("contactlab_subscribers/global/export_not_subscribed");
|
543 |
}
|
544 |
|
545 |
-
/**
|
|
|
|
|
|
|
546 |
private function _mustResetExportDates() {
|
547 |
-
return $this->getTask()->
|
548 |
}
|
549 |
|
|
|
|
|
|
|
550 |
private function _resetMustResetExportDatesFlag() {
|
551 |
Mage::helper("contactlab_commons")->logDebug("Reset reset_export_dates_before_next_export flag");
|
552 |
Mage::getConfig()
|
@@ -556,14 +812,18 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
556 |
}
|
557 |
|
558 |
private function _resetExportDates() {
|
559 |
-
$
|
|
|
560 |
}
|
561 |
|
562 |
-
/**
|
|
|
|
|
|
|
|
|
563 |
private function _query($sql) {
|
564 |
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
|
565 |
-
$write->query($sql);
|
566 |
-
Mage::helper("contactlab_commons")->logDebug($sql);
|
567 |
}
|
568 |
|
569 |
|
@@ -575,55 +835,67 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
575 |
/**
|
576 |
* Manage if include CLS tag and his value.
|
577 |
* Fill the persistence table.
|
|
|
|
|
578 |
*/
|
579 |
-
private function _manageCustomerClsFlag(array &$toFill, $item) {
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
if ($this->_manageClsFlag($toFill, $item)) {
|
585 |
if ($this->ukQuery != '') {
|
586 |
$this->ukQuery .= ', ';
|
587 |
}
|
588 |
-
$this->ukQuery .= $item->
|
589 |
}
|
590 |
}
|
591 |
|
592 |
/**
|
593 |
* Manage if include CLS tag and his value.
|
594 |
* Fill the persistence table.
|
|
|
|
|
595 |
*/
|
596 |
-
private function _manageNewsletterClsFlag(array &$toFill, $item) {
|
597 |
if ($this->_manageClsFlag($toFill, $item, true)) {
|
598 |
if ($this->ukQuery != '') {
|
599 |
$this->ukQuery .= ', ';
|
600 |
}
|
601 |
-
$this->ukQuery .= $item->
|
602 |
}
|
603 |
}
|
604 |
|
605 |
/**
|
606 |
* Manage if include CLS tag and his value.
|
607 |
* Fill the persistence table.
|
|
|
|
|
|
|
|
|
608 |
*/
|
609 |
-
private function _manageClsFlag(array &$toFill, $item, $force = false) {
|
610 |
// If processing record has (first) ExportDate, return.
|
611 |
-
if ($item->
|
612 |
return false;
|
613 |
}
|
614 |
$toFill[$this->getSubscribedFlagName()]
|
615 |
-
= $item->
|
616 |
? 1 : 0;
|
617 |
return true;
|
618 |
}
|
619 |
|
620 |
-
/**
|
|
|
|
|
|
|
621 |
protected function isEnabled() {
|
622 |
return Mage::helper("contactlab_subscribers")->isEnabled($this->getTask());
|
623 |
}
|
624 |
|
625 |
/**
|
626 |
* Get file name.
|
|
|
627 |
*/
|
628 |
protected function getFileName() {
|
629 |
return $this->getTask()->getConfig("contactlab_subscribers/global/export_filename");
|
@@ -639,4 +911,147 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
|
|
639 |
$this->_resetMustResetExportDatesFlag();
|
640 |
}
|
641 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
642 |
}
|
2 |
|
3 |
/**
|
4 |
* Export subscribers.
|
5 |
+
* @property string limiter
|
6 |
+
* @property bool found
|
7 |
+
* @property int customers
|
8 |
+
* @property int newsletterSubscribers
|
9 |
+
* @property int deleted
|
10 |
+
* @property mixed exportPolicy
|
11 |
+
* @property Contactlab_Subscribers_Helper_Exporter helper
|
12 |
+
* @property Mage_Core_Model_Resource $resource
|
13 |
+
* @property string ukQuery
|
14 |
+
* @property array customerAttributes
|
15 |
+
* @property array addressAttributes
|
16 |
+
* @property Mage_Customer_Model_Customer customerModel
|
17 |
+
* @property Mage_Customer_Model_Address addressModel
|
18 |
+
* @property array statsAttributesMap
|
19 |
+
* @property array stores
|
20 |
+
* @property array fAttributesMap
|
21 |
+
* @property array fAddressAttributes
|
22 |
+
* @property array deletedEntities
|
23 |
*/
|
24 |
class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commons_Model_Exporter_Abstract {
|
25 |
/**
|
26 |
+
* Get xml object.
|
27 |
*/
|
28 |
protected function writeXml() {
|
29 |
+
|
30 |
$this->limiter = '###';
|
31 |
$this->found = false;
|
32 |
|
36 |
|
37 |
$this->exportPolicy = $this->getTask()->getConfig('contactlab_subscribers/global/export_policy');
|
38 |
$this->helper = Mage::helper("contactlab_subscribers/exporter");
|
39 |
+
$this->resource = Mage::getSingleton('core/resource');
|
40 |
|
41 |
$this->ukQuery = "";
|
42 |
|
58 |
|
59 |
// Define customer collection
|
60 |
$attributesCustomer = $this->helper->getAttributesForEntityType('customer',
|
61 |
+
array_keys($this->helper->getAttributesMap($this->getTask())));
|
62 |
$this->fAttributesMap = array_flip($this->helper->getAttributesMap($this->getTask()));
|
63 |
$this->fAddressAttributes = array_flip($this->helper->getAddressesAttributesMap());
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
$counter = 0;
|
66 |
$start = microtime(true);
|
67 |
+
$max = $this->_createCounterSubscribersInCustomersCollection()->getSize();
|
68 |
$this->getTask()->setMaxValue($max);
|
69 |
Mage::helper("contactlab_commons")->logNotice(sprintf("Counting time: %0.4f", microtime(true) - $start));
|
70 |
|
71 |
+
$customKeys = array();
|
72 |
+
for ($ic = 1; $ic < 8; ++$ic) {
|
73 |
+
if ($this->getTask()->getConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $ic)) {
|
74 |
+
$customKeys[] = $this->getTask()->getConfig("contactlab_subscribers/custom_fields/field_" . $ic);
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
$start = microtime(true);
|
79 |
|
80 |
+
$limit = 50000;
|
81 |
+
$page = 1;
|
82 |
+
$preFilled = array_fill_keys(array_values($this->fAttributesMap), '');
|
83 |
+
$this->_addAddressFields($preFilled);
|
84 |
+
while (true) {
|
85 |
+
$subscribersInCustomers = $this->_createSubscribersInCustomersCollection($attributesCustomer);
|
86 |
+
$subscribersInCustomers->getSelect()->limitPage($page, $limit);
|
87 |
+
Mage::helper("contactlab_commons")->logDebug($subscribersInCustomers->getSelect()->assemble());
|
88 |
+
$found = false;
|
89 |
+
while ($item = $subscribersInCustomers->fetchItem()) {
|
90 |
+
$toFill = array();
|
91 |
+
$found = true;
|
92 |
+
$counter++;
|
93 |
+
$toFill['is_customer'] = 1;
|
94 |
+
if (!$item->hasData('uk')) {
|
95 |
+
$msg = sprintf("FATAL ERROR, %s subscriber has no UK record!", $item->getData('email'));
|
96 |
+
$this->getTask()->addEvent($msg, true);
|
97 |
+
throw new Exception($msg);
|
98 |
+
}
|
99 |
+
$toFill['entity_id'] = $item->getData('uk');
|
100 |
|
101 |
+
$toFill = array_merge($toFill, $preFilled);
|
102 |
+
$toFill['email'] = $item->getData('email');
|
103 |
+
$this->_setAttributeKeys($toFill, $item);
|
104 |
+
$this->_setAddressesAttributeKeys($toFill, $item);
|
105 |
+
|
106 |
+
$this->_fillStoreAttributes($toFill, $item);
|
107 |
+
foreach ($this->statsAttributesMap as $k => $v) {
|
108 |
+
$toFill[$k] = $item->getData($v);
|
|
|
109 |
}
|
110 |
+
$this->_fillCustomerGroupAttributes($toFill, $item);
|
111 |
+
$this->_manageCustomerClsFlag($toFill, $item);
|
112 |
+
/** Custom rispetto alla versione originale del modulo */
|
113 |
+
$this->customizeInfoCustomer($toFill, $item);
|
114 |
+
|
115 |
+
foreach ($customKeys as $icKey) {
|
116 |
+
if (empty($icKey)) {
|
117 |
+
continue;
|
118 |
+
}
|
119 |
+
$icValue = $item->getData($icKey);
|
120 |
+
if (isset($toFill[$icKey]) && empty($toFill[$icKey]) && !empty($icValue)) {
|
121 |
+
$toFill[$icKey] = $icValue;
|
122 |
+
}
|
123 |
+
}
|
124 |
+
$this->found = true;
|
125 |
+
$this->customers++;
|
126 |
+
$writer = new XMLWriter();
|
127 |
+
$writer->openMemory();
|
128 |
+
$writer->setIndent(true);
|
129 |
+
$writer->startElement("RECORD");
|
130 |
+
$writer->writeAttribute('ACTION', 'U');
|
131 |
+
foreach ($toFill as $k => $v) {
|
132 |
+
|
133 |
+
if (empty($k)) {
|
134 |
+
continue;
|
135 |
+
}
|
136 |
+
if ($k !== $this->getSubscribedFlagName()) {
|
137 |
+
$k = strtoupper($this->getOutputTagName($k));
|
138 |
+
}
|
139 |
+
$writer->writeElement($k, $v);
|
140 |
+
}
|
141 |
+
$writer->endElement();
|
142 |
+
gzwrite($this->gz, $writer->outputMemory());
|
143 |
|
144 |
+
if ($counter % 2000 == 0) {
|
145 |
+
Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
|
146 |
+
$this->getTask()->setProgressValue($counter);
|
147 |
+
}
|
148 |
+
}
|
149 |
+
$this->_setUkIsExported();
|
150 |
+
if (!$found) {
|
151 |
+
break;
|
152 |
}
|
153 |
+
$page++;
|
154 |
}
|
155 |
Mage::helper("contactlab_commons")->logNotice(sprintf("Loop time: %0.4f", microtime(true) - $start));
|
156 |
|
157 |
$this->_addNotCustomerRecords();
|
158 |
$this->_addDeletedRecords();
|
159 |
|
160 |
+
$this->_setUkIsExported();
|
|
|
|
|
|
|
|
|
|
|
161 |
|
162 |
Mage::helper("contactlab_commons")->flushDbProfiler();
|
163 |
if (!$this->found) {
|
175 |
}
|
176 |
}
|
177 |
|
178 |
+
/**
|
179 |
+
* Create subscribers in customers collection.
|
180 |
+
* @param Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributesCustomer
|
181 |
+
* @return Mage_Customer_Model_Resource_Customer_Collection
|
182 |
+
*/
|
183 |
+
private function _createSubscribersInCustomersCollection(
|
184 |
+
Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributesCustomer)
|
185 |
+
{
|
186 |
+
/**
|
187 |
+
* @var $subscribersInCustomers Mage_Customer_Model_Resource_Customer_Collection
|
188 |
+
*/
|
189 |
+
$rv = Mage::getModel('customer/customer')->getCollection();
|
190 |
+
// $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
191 |
+
// $w = $this->_manageExportPolicySql($w, array(
|
192 |
+
// 'e#1' => 'updated_at',
|
193 |
+
// 'e#2' => 'created_at',
|
194 |
+
// $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
|
195 |
+
// ));
|
196 |
+
|
197 |
+
|
198 |
+
// if (!$this->_mustExportNotSubscribed()) {
|
199 |
+
// $rv->getSelect()
|
200 |
+
// ->where('e.entity_id in (select customer_id from ' . $this->resource->getTableName('newsletter_subscriber')
|
201 |
+
// . ' where ' . $w . ')');
|
202 |
+
// }
|
203 |
+
|
204 |
+
// Fills array of types with attributes id array
|
205 |
+
foreach ($this->helper->fillBackendTypesFromArray($attributesCustomer) as $backendType => $ids) {
|
206 |
+
$alias = 'ce' . $backendType;
|
207 |
+
$w = 'e.entity_id = ' . $alias . '.entity_id and length(' . $alias . '.value) > 0 and '
|
208 |
+
. $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
|
209 |
+
$rv->getSelect()->joinLeft(
|
210 |
+
array(
|
211 |
+
$alias => $this->resource->getTableName('customer_entity_' . $backendType)),
|
212 |
+
$w, array($backendType . '_value' => new Zend_Db_Expr('GROUP_CONCAT(DISTINCT CONCAT('
|
213 |
+
. $alias . ".attribute_id, '_', " .$alias. ".value) SEPARATOR '" . $this->limiter . "')")));
|
214 |
+
}
|
215 |
+
|
216 |
+
// Stats
|
217 |
+
$this->_addStatsToSelect($rv);
|
218 |
+
$this->_addAddressesToSelect($rv);
|
219 |
+
$this->_addCustomerGroupToSelect($rv);
|
220 |
+
$this->_manageExportPolicy($rv,
|
221 |
+
array(
|
222 |
+
'e' => array('created_at', 'updated_at'),
|
223 |
+
$this->resource->getTableName('newsletter_subscriber') => 'last_updated_at',
|
224 |
+
));
|
225 |
+
$this->_addCustomerExportCollection($rv);
|
226 |
+
$this->_addSubscriberFields($rv);
|
227 |
+
|
228 |
+
$rv->getSelect()->group('e.entity_id');
|
229 |
+
|
230 |
+
return $rv;
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Create count subscribers in customers collection.
|
235 |
+
* @return Mage_Customer_Model_Resource_Customer_Collection
|
236 |
+
*/
|
237 |
+
private function _createCounterSubscribersInCustomersCollection()
|
238 |
+
{
|
239 |
+
/**
|
240 |
+
* @var $subscribersInCustomers Mage_Customer_Model_Resource_Customer_Collection
|
241 |
+
*/
|
242 |
+
$rv = Mage::getModel('customer/customer')->getCollection();
|
243 |
+
// $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
244 |
+
// $w = $this->_manageExportPolicySql($w, array(
|
245 |
+
// 'e#1' => 'updated_at',
|
246 |
+
// 'e#2' => 'created_at',
|
247 |
+
// $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
|
248 |
+
// ));
|
249 |
+
|
250 |
+
// if (!$this->_mustExportNotSubscribed()) {
|
251 |
+
// $rv->getSelect()
|
252 |
+
// ->where('e.entity_id in (select customer_id from ' . $this->resource->getTableName('newsletter_subscriber')
|
253 |
+
// . ' where ' . $w . ')');
|
254 |
+
// }
|
255 |
+
|
256 |
+
$this->_manageExportPolicy($rv,
|
257 |
+
array(
|
258 |
+
'e' => array('created_at', 'updated_at'),
|
259 |
+
$this->resource->getTableName('newsletter_subscriber') => 'last_updated_at',
|
260 |
+
));
|
261 |
+
$this->_addCustomerExportCollection($rv);
|
262 |
+
return $rv;
|
263 |
+
}
|
264 |
+
|
265 |
/**
|
266 |
* Called after the export.
|
267 |
*/
|
272 |
/** Not customer records. */
|
273 |
private function _addNotCustomerRecords() {
|
274 |
Mage::helper("contactlab_commons")->logDebug("_addNotCustomerRecords");
|
275 |
+
$preFilled = array_fill_keys(array_values($this->fAttributesMap), '');
|
276 |
+
$this->_addAddressFields($preFilled);
|
277 |
+
$subscribersNotInCustomers = $this->_createSubscribersNotInCustomers();
|
278 |
+
$customKeys = array();
|
279 |
+
for ($ic = 1; $ic < 8; ++$ic) {
|
280 |
+
if ($this->getTask()->getConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $ic)) {
|
281 |
+
$customKeys[] = $this->getTask()->getConfig("contactlab_subscribers/custom_fields/field_" . $ic);
|
282 |
+
}
|
283 |
}
|
|
|
|
|
|
|
|
|
|
|
284 |
$counter = 0;
|
285 |
+
$max = $subscribersNotInCustomers->getSize();
|
286 |
+
$this->getTask()->setMaxValue($max);
|
287 |
|
288 |
+
$limit = 200000;
|
289 |
+
$page = 1;
|
290 |
+
while (true) {
|
291 |
+
$subscribersNotInCustomers = $this->_createSubscribersNotInCustomers();
|
292 |
+
$subscribersNotInCustomers->getSelect()->limitPage($page, $limit);
|
293 |
+
Mage::helper("contactlab_commons")->logDebug($subscribersNotInCustomers->getSelect()->assemble());
|
294 |
+
$found = false;
|
295 |
+
|
296 |
+
while ($item = $subscribersNotInCustomers->fetchItem()) {
|
297 |
+
$counter++;
|
298 |
+
$found = true;
|
299 |
+
$toFill1 = array();
|
300 |
+
|
301 |
+
$toFill1['is_customer'] = 0;
|
302 |
+
if (!$item->hasData('uk')) {
|
303 |
+
$msg = sprintf("FATAL ERROR, %s customer has no UK record!", $item->getData('subscriber_email'));
|
304 |
+
$this->getTask()->addEvent($msg, true);
|
305 |
+
throw new Exception($msg);
|
306 |
+
}
|
307 |
+
$toFill1['entity_id'] = $item->getData('uk');
|
308 |
+
|
309 |
+
$toFill = array_merge($toFill1, $preFilled);
|
310 |
+
$toFill['email'] = $item->getData('subscriber_email');
|
311 |
+
$this->_manageNewsletterClsFlag($toFill, $item);
|
312 |
+
$this->_fillStoreAttributes($toFill, $item);
|
313 |
+
$this->_fillNewsletterAttributes($toFill, $item);
|
314 |
+
/** Custom rispetto alla versione originale del modulo */
|
315 |
+
$this->customizeInfoSubscriber($toFill, $item);
|
316 |
+
|
317 |
+
foreach ($customKeys as $icKey) {
|
318 |
+
if (empty($icKey)) {
|
319 |
+
continue;
|
320 |
+
}
|
321 |
+
$icValue = $item->getData($icKey);
|
322 |
+
if (isset($toFill[$icKey]) && empty($toFill[$icKey]) && !empty($icValue)) {
|
323 |
+
$toFill[$icKey] = $icValue;
|
324 |
+
}
|
325 |
+
}
|
326 |
|
327 |
+
$this->found = true;
|
328 |
+
$this->newsletterSubscribers++;
|
329 |
+
$writer = new XMLWriter();
|
330 |
+
$writer->openMemory();
|
331 |
+
$writer->setIndent(true);
|
332 |
+
$writer->startElement("RECORD");
|
333 |
+
$writer->writeAttribute('ACTION', 'U');
|
334 |
+
foreach ($toFill as $k => $v) {
|
335 |
+
if (empty($k)) {
|
336 |
+
continue;
|
337 |
+
}
|
338 |
+
if ($k !== $this->getSubscribedFlagName()) {
|
339 |
+
$k = strtoupper($this->getOutputTagName($k));
|
340 |
+
}
|
341 |
+
$writer->writeElement($k, $v);
|
342 |
}
|
343 |
+
$writer->endElement();
|
344 |
+
gzwrite($this->gz, $writer->outputMemory());
|
345 |
+
if ($counter % 2000 == 0) {
|
346 |
+
Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
|
347 |
+
$this->getTask()->setProgressValue($counter);
|
348 |
+
}
|
349 |
+
}
|
350 |
+
$this->_setUkIsExported();
|
351 |
+
if (!$found) {
|
352 |
+
break;
|
353 |
}
|
354 |
+
$page++;
|
355 |
}
|
356 |
+
}
|
357 |
|
|
|
|
|
|
|
|
|
|
|
358 |
|
359 |
+
/**
|
360 |
+
* Create subscribers not in customers.
|
361 |
+
* @return Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection
|
362 |
+
*/
|
363 |
+
private function _createSubscribersNotInCustomers()
|
364 |
+
{
|
365 |
+
/** @var $rv Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection */
|
366 |
+
$rv = Mage::getModel('contactlab_subscribers/uk')->getCollection();
|
367 |
+
$rv->addFieldToSelect(
|
368 |
+
array('uk' => 'entity_id', 'is_exported' => 'is_exported')
|
369 |
+
);
|
370 |
+
$this->_addSubscriberFields($rv, 'main_table');
|
371 |
+
$rv->getSelect()->joinLeft(
|
372 |
+
array('native_nl' => $this->resource->getTableName('newsletter/subscriber')),
|
373 |
+
'native_nl.subscriber_id = main_table.subscriber_id');
|
374 |
+
$this->_manageExportPolicy($rv,
|
375 |
+
array('native_nl' => 'last_updated_at'));
|
376 |
+
if (!$this->_mustExportNotSubscribed()) {
|
377 |
+
$rv->addFieldToFilter('native_nl.subscriber_status', Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
}
|
379 |
+
$rv->getSelect()->where('main_table.customer_id is null or main_table.customer_id = 0');
|
380 |
+
return $rv;
|
381 |
}
|
382 |
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Add delete records.
|
386 |
+
*/
|
387 |
private function _addDeletedRecords() {
|
388 |
+
/** @var $deletedEntities Contactlab_Commons_Model_Resource_Deleted_Collection */
|
389 |
$deletedEntities = Mage::getModel('contactlab_commons/deleted')
|
390 |
->getCollection()
|
391 |
->addFieldToFilter('task_id', array('null' => true));
|
392 |
|
393 |
$counter = 0;
|
394 |
+
// FIXME TODO count vs getSize
|
395 |
$max = $deletedEntities->count();
|
396 |
|
397 |
Mage::helper("contactlab_commons")->logDebug($deletedEntities->getSelect()->assemble());
|
398 |
$this->deletedEntities = array();
|
399 |
+
$preFilled = array_fill_keys(array_keys($this->fAttributesMap), '');
|
400 |
+
$this->_addAddressFields($preFilled);
|
401 |
|
402 |
+
/** @var $deletedEntity Contactlab_Commons_Model_Deleted */
|
403 |
+
while ($deletedEntity = $deletedEntities->fetchItem()) {
|
404 |
$counter++;
|
405 |
+
$toFill1 = array();
|
406 |
|
407 |
$this->found = true;
|
408 |
$this->deleted++;
|
409 |
|
410 |
+
$toFill1['is_customer'] = $deletedEntity->getIsCustomer();
|
411 |
+
$toFill1['entity_id'] = $deletedEntity->getEntityId();
|
412 |
+
$toFill = array_merge($toFill1, $preFilled);
|
413 |
$toFill['email'] = $deletedEntity->getEmail();
|
414 |
+
/** Custom rispetto alla versione originale del modulo */
|
415 |
+
$this->customizeInfoDeleted($toFill, $deletedEntity);
|
416 |
+
|
417 |
|
418 |
$writer = new XMLWriter();
|
419 |
$writer->openMemory();
|
436 |
}
|
437 |
}
|
438 |
|
439 |
+
/**
|
440 |
+
* Set addresses attribute keys.
|
441 |
+
* @param array $toFill
|
442 |
+
* @param Varien_Object $data
|
443 |
+
*/
|
444 |
+
private function _setAddressesAttributeKeys(array &$toFill, Varien_Object $data) {
|
445 |
$this->_setAddressAttributeKeys($toFill, $data, "shipping");
|
446 |
$this->_setAddressAttributeKeys($toFill, $data, "billing");
|
447 |
}
|
448 |
|
449 |
+
/**
|
450 |
+
* Do export address with type.
|
451 |
+
* @param string $addressType
|
452 |
+
* @return bool
|
453 |
+
*/
|
454 |
private function _mustExportAddress($addressType) {
|
455 |
return $this->getTask()->getConfigFlag("contactlab_subscribers/global/export_" . $addressType . "_address");
|
456 |
}
|
457 |
|
458 |
+
/**
|
459 |
+
* Set address attribute keys.
|
460 |
+
* @param array $toFill
|
461 |
+
* @param Varien_Object $data
|
462 |
+
* @param $addressType
|
463 |
+
*/
|
464 |
+
private function _setAddressAttributeKeys(array &$toFill, Varien_Object $data, $addressType) {
|
465 |
if (!$this->_mustExportAddress($addressType)) {
|
466 |
return;
|
467 |
}
|
471 |
return;
|
472 |
}
|
473 |
$values = explode($this->limiter, $data->getData($addressType . '_' . $type . '_value'));
|
474 |
+
foreach ($values as $key) {
|
475 |
$pos = strpos($key, '_');
|
476 |
if ($pos === false) {
|
477 |
continue;
|
487 |
}
|
488 |
}
|
489 |
|
490 |
+
/**
|
491 |
+
* Set attribute keys.
|
492 |
+
* @param array $toFill
|
493 |
+
* @param Varien_Object $data
|
494 |
+
*/
|
495 |
+
private function _setAttributeKeys(array &$toFill, Varien_Object $data) {
|
496 |
$entityTypes = array('int', 'varchar', 'text', 'decimal', 'datetime');
|
497 |
foreach ($entityTypes as $type) {
|
498 |
if (!array_key_exists($type . '_value', $data->getData())) {
|
499 |
continue;
|
500 |
}
|
501 |
$values = explode($this->limiter, $data->getData($type . '_value'));
|
502 |
+
foreach ($values as $key) {
|
503 |
$pos = strpos($key, '_');
|
504 |
if ($pos === false) {
|
505 |
continue;
|
509 |
if (!array_key_exists($k, $this->customerAttributes)) {
|
510 |
continue;
|
511 |
}
|
512 |
+
// use flipped array for cstm attributes
|
513 |
+
//$flip = array_flip($this->fAttributesMap);
|
514 |
+
//$toFill[$this->fAttributesMap[$this->customerAttributes[$k]]] =
|
515 |
+
// $toFill[$flip[$this->customerAttributes[$k]]] =
|
516 |
+
$toFill[$this->customerAttributes[$k]] =
|
517 |
+
$this->helper->decode($this->customerModel, 'customer', $this->customerAttributes[$k], $v);
|
518 |
}
|
519 |
}
|
520 |
+
|
521 |
}
|
522 |
|
523 |
+
/**
|
524 |
+
* Add store, group and website attributes.
|
525 |
+
* @param array $toFill
|
526 |
+
* @param Varien_Object $item
|
527 |
+
*/
|
528 |
+
private function _fillStoreAttributes(array &$toFill, Varien_Object $item) {
|
529 |
+
$store = $this->stores[$item->getData('store_id')];
|
530 |
foreach (array('store_id', 'store_name', 'website_id', 'website_name',
|
531 |
'group_id', 'group_name', 'lang') as $k) {
|
532 |
$toFill[$k] = $store[$k];
|
533 |
}
|
534 |
}
|
535 |
|
536 |
+
private function _fillCustomerGroupAttributes(array &$toFill, Varien_Object $item)
|
537 |
+
{
|
538 |
+
$toFill['customer_group_id'] = $item->getData('customer_group_id');
|
539 |
+
$toFill['customer_group_name'] = $item->getData('customer_group_name');
|
540 |
+
//FIX
|
541 |
+
$toFill['created_at'] = $item->getData('created_at');
|
542 |
+
}
|
543 |
+
|
544 |
+
/**
|
545 |
+
* Fill Newsletter attributes fields.
|
546 |
+
* @param array $toFill
|
547 |
+
* @param Varien_Object $item
|
548 |
+
*/
|
549 |
+
private function _fillNewsletterAttributes(array &$toFill, Varien_Object $item)
|
550 |
+
{
|
551 |
+
foreach ($this->helper->getSubscriberToCustomerAttributeMap() as $k => $v) {
|
552 |
+
if (!$this->_doManageAddressAttribute($v)) {
|
553 |
+
continue;
|
554 |
+
}
|
555 |
+
$toFill[$v] = $item->getData($k);
|
556 |
+
}
|
557 |
+
}
|
558 |
+
|
559 |
+
/**
|
560 |
+
* Add stats to collection.
|
561 |
+
* @param Varien_Data_Collection_Db $collection
|
562 |
+
*/
|
563 |
private function _addStatsToSelect(Varien_Data_Collection_Db $collection) {
|
564 |
$collection->getSelect()->joinLeft(
|
565 |
+
array('stats' => $this->resource->getTableName('contactlab_subscribers/stats')),
|
566 |
'stats.customer_id = e.entity_id', $this->statsAttributesMap);
|
567 |
}
|
568 |
|
569 |
+
/**
|
570 |
+
* Add customer export to collection.
|
571 |
+
* @param Varien_Data_Collection_Db $collection
|
572 |
+
*/
|
573 |
private function _addCustomerExportCollection(Varien_Data_Collection_Db $collection) {
|
574 |
+
if (!$this->_mustExportNotSubscribed()) {
|
575 |
+
$w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
576 |
+
$w = $this->_manageExportPolicySql($w, array(
|
577 |
+
'e#1' => 'updated_at',
|
578 |
+
'e#2' => 'created_at',
|
579 |
+
$this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
|
580 |
+
));
|
581 |
+
|
582 |
+
$collection->getSelect()->joinInner(
|
583 |
+
array('newsletter_subscriber' => $this->resource->getTableName('newsletter/subscriber')),
|
584 |
+
'newsletter_subscriber.customer_id = e.entity_id AND ' . $w,
|
585 |
+
array('subscriber_status' => 'subscriber_status'));
|
586 |
+
}else{
|
587 |
+
$collection->getSelect()->joinLeft(
|
588 |
+
array('newsletter_subscriber' => $this->resource->getTableName('newsletter/subscriber')),
|
589 |
+
'newsletter_subscriber.customer_id = e.entity_id',
|
590 |
+
array('subscriber_status' => 'subscriber_status'));
|
591 |
+
}
|
592 |
+
|
593 |
$collection->getSelect()->joinLeft(
|
594 |
+
array('uk' => $this->resource->getTableName('contactlab_subscribers/uk')),
|
|
|
|
|
|
|
|
|
595 |
'uk.customer_id = e.entity_id',
|
596 |
array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
|
597 |
}
|
598 |
|
599 |
+
/**
|
600 |
+
* Add newsletter subscriber export to collection.
|
601 |
+
* @param Varien_Data_Collection_Db $collection
|
602 |
+
*/
|
603 |
private function _addNewsletterSubscriberExportCollection(Varien_Data_Collection_Db $collection) {
|
604 |
$collection->getSelect()->joinLeft(
|
605 |
+
array('uk' => $this->resource->getTableName('contactlab_subscribers/uk')),
|
606 |
'uk.subscriber_id = main_table.subscriber_id',
|
607 |
array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
|
608 |
}
|
609 |
|
610 |
+
/**
|
611 |
+
* Add export policy to sql statement.
|
612 |
+
* @param Varien_Data_Collection_Db $collection
|
613 |
+
* @param array $fields
|
614 |
+
*/
|
615 |
private function _manageExportPolicy(Varien_Data_Collection_Db $collection,
|
616 |
array $fields) {
|
617 |
if ($this->exportPolicy != '2') {
|
626 |
$clause = '';
|
627 |
//$lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
|
628 |
|
|
|
629 |
foreach ($fields as $table => $field) {
|
630 |
if (!is_array($field)) {
|
631 |
$field = array($field);
|
632 |
+
}
|
|
|
|
|
|
|
633 |
foreach ($field as $item) {
|
634 |
if (!empty($clause)) {
|
635 |
$clause .= ' or ';
|
641 |
$clause .= sprintf(" or %s.%s is null", $table, $item);
|
642 |
}
|
643 |
}
|
|
|
644 |
}
|
645 |
$collection->getSelect()->where($clause);
|
646 |
}
|
647 |
|
648 |
+
/**
|
649 |
+
* Add export policy to sql statement.
|
650 |
+
* @param string $w
|
651 |
+
* @param array $fields
|
652 |
+
* @return string
|
653 |
+
*/
|
654 |
private function _manageExportPolicySql($w, array $fields) {
|
655 |
if ($this->exportPolicy != '2') {
|
656 |
// Ok, will export everything
|
661 |
// Ok, will export everything, no last import saved.
|
662 |
return $w;
|
663 |
}
|
664 |
+
// $lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
|
665 |
|
666 |
$w .= ' and (';
|
667 |
$first = true;
|
668 |
foreach ($fields as $table => $field) {
|
669 |
+
$table = preg_replace('|#.*|', '', $table);
|
670 |
if (!is_array($field)) {
|
671 |
$field = array($field);
|
672 |
}
|
687 |
return $w;
|
688 |
}
|
689 |
|
690 |
+
/**
|
691 |
+
* Add addresses to select
|
692 |
+
* @param Varien_Data_Collection_Db $collection
|
693 |
+
*/
|
694 |
private function _addAddressesToSelect(Varien_Data_Collection_Db $collection) {
|
695 |
$this->_addAddressToSelect($collection, "shipping");
|
696 |
$this->_addAddressToSelect($collection, "billing");
|
697 |
}
|
698 |
|
699 |
+
/**
|
700 |
+
* Add address to select.
|
701 |
+
* @param Varien_Data_Collection_Db $collection
|
702 |
+
* @param string $type
|
703 |
+
*/
|
704 |
private function _addAddressToSelect(Varien_Data_Collection_Db $collection, $type) {
|
705 |
if (!$this->getTask()->getConfigFlag("contactlab_subscribers/global/export_" . $type . "_address")) {
|
706 |
return;
|
707 |
}
|
708 |
$collection->getSelect()->joinLeft(
|
709 |
+
array($type . '_addr' => $this->resource->getTableName('customer_entity_int')),
|
710 |
$type . '_addr.entity_id = e.entity_id and ' . $type . '_addr.attribute_id = '
|
711 |
. $this->helper->getAttributeId('customer', 'default_' . $type),
|
712 |
array('default_' . $type => 'value'));
|
720 |
. $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
|
721 |
$collection->getSelect()->joinLeft(
|
722 |
array(
|
723 |
+
$alias => $this->resource->getTableName('customer_address_entity_' . $backendType)),
|
724 |
+
$w, array($type . '_' . $backendType . '_value' => new Zend_Db_Expr('GROUP_CONCAT(DISTINCT CONCAT('
|
725 |
+
. $alias . ".attribute_id, '_', " .$alias. ".value) SEPARATOR '" . $this->limiter . "')")));
|
726 |
}
|
727 |
}
|
728 |
|
729 |
+
/**
|
730 |
+
* Remove deleted entity.
|
731 |
+
* @throws Exception
|
732 |
+
*/
|
733 |
private function _removeDeletedEntity() {
|
734 |
$toDelete = Mage::getModel('contactlab_commons/deleted')
|
735 |
->getCollection()
|
749 |
}
|
750 |
}
|
751 |
|
752 |
+
/**
|
753 |
+
* Load stores.
|
754 |
+
* @return array
|
755 |
+
*/
|
756 |
private function _loadStores() {
|
757 |
$rv = array();
|
758 |
+
$websiteTable = $this->resource->getTableName('core/website');
|
759 |
+
$storeGroupTable = $this->resource->getTableName('core/store_group');
|
760 |
+
|
761 |
+
/** @var Mage_Core_Model_Resource_Store_Collection $stores */
|
762 |
$stores = Mage::getModel('core/store')
|
763 |
->getCollection()->setLoadDefault(true);
|
764 |
$stores->addFieldToSelect('*')->getSelect()
|
765 |
->join(array('core_website' => $websiteTable),
|
766 |
+
'main_table.website_id = ' . 'core_website.website_id',
|
767 |
+
array('website_name' => 'core_website.name'))
|
768 |
->join(array('core_store_group' => $storeGroupTable),
|
769 |
+
'main_table.group_id = ' . 'core_store_group.group_id',
|
770 |
+
array('group_name' => 'core_store_group.name'));
|
771 |
+
/** @var $store Mage_Core_Model_Store */
|
772 |
foreach ($stores as $store) {
|
773 |
+
$storeId = $store->getData('store_id');
|
774 |
+
$rv[$storeId] = array(
|
775 |
+
'store_id' => $storeId,
|
776 |
+
'website_id' => $store->getData('website_id'),
|
777 |
+
'group_id' => $store->getData('group_id'),
|
778 |
+
'store_name' => $store->getData('mame'),
|
779 |
+
'website_name' => $store->getData('website_name'),
|
780 |
+
'group_name' => $store->getData('group_name'),
|
781 |
'lang' => $store->getConfig("general/locale/code"),
|
782 |
);
|
783 |
}
|
784 |
return $rv;
|
785 |
}
|
786 |
|
787 |
+
/**
|
788 |
+
* Do I have to export all contacts? Or only subscribed ones?
|
789 |
+
* @return bool
|
790 |
+
*/
|
791 |
private function _mustExportNotSubscribed() {
|
792 |
return $this->getTask()->getConfigFlag("contactlab_subscribers/global/export_not_subscribed");
|
793 |
}
|
794 |
|
795 |
+
/**
|
796 |
+
* Do I have to reset export dates before export?
|
797 |
+
* @return bool
|
798 |
+
*/
|
799 |
private function _mustResetExportDates() {
|
800 |
+
return $this->getTask()->getConfigFlag("contactlab_subscribers/global/reset_export_dates_before_next_export");
|
801 |
}
|
802 |
|
803 |
+
/**
|
804 |
+
* Reset reset export flg.
|
805 |
+
*/
|
806 |
private function _resetMustResetExportDatesFlag() {
|
807 |
Mage::helper("contactlab_commons")->logDebug("Reset reset_export_dates_before_next_export flag");
|
808 |
Mage::getConfig()
|
812 |
}
|
813 |
|
814 |
private function _resetExportDates() {
|
815 |
+
$tableName = $this->resource->getTableName('contactlab_subscribers/uk');
|
816 |
+
$this->_query("update $tableName set is_exported = 0;");
|
817 |
}
|
818 |
|
819 |
+
/**
|
820 |
+
* Run custom query.
|
821 |
+
* @param $sql
|
822 |
+
* @return Zend_Db_Statement_Interface
|
823 |
+
*/
|
824 |
private function _query($sql) {
|
825 |
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
|
826 |
+
return $write->query($sql);
|
|
|
827 |
}
|
828 |
|
829 |
|
835 |
/**
|
836 |
* Manage if include CLS tag and his value.
|
837 |
* Fill the persistence table.
|
838 |
+
* @param array $toFill
|
839 |
+
* @param Varien_Object $item
|
840 |
*/
|
841 |
+
private function _manageCustomerClsFlag(array &$toFill, Varien_Object $item) {
|
842 |
+
/* 1 = Subscribed
|
843 |
+
0 = Not subscribed
|
844 |
+
-1 = Unsubscribed
|
845 |
+
*/
|
846 |
if ($this->_manageClsFlag($toFill, $item)) {
|
847 |
if ($this->ukQuery != '') {
|
848 |
$this->ukQuery .= ', ';
|
849 |
}
|
850 |
+
$this->ukQuery .= $item->getData('uk');
|
851 |
}
|
852 |
}
|
853 |
|
854 |
/**
|
855 |
* Manage if include CLS tag and his value.
|
856 |
* Fill the persistence table.
|
857 |
+
* @param array $toFill
|
858 |
+
* @param Varien_Object $item
|
859 |
*/
|
860 |
+
private function _manageNewsletterClsFlag(array &$toFill, Varien_Object $item) {
|
861 |
if ($this->_manageClsFlag($toFill, $item, true)) {
|
862 |
if ($this->ukQuery != '') {
|
863 |
$this->ukQuery .= ', ';
|
864 |
}
|
865 |
+
$this->ukQuery .= $item->getData('uk');
|
866 |
}
|
867 |
}
|
868 |
|
869 |
/**
|
870 |
* Manage if include CLS tag and his value.
|
871 |
* Fill the persistence table.
|
872 |
+
* @param array $toFill
|
873 |
+
* @param Varien_Object $item
|
874 |
+
* @param bool $force
|
875 |
+
* @return bool
|
876 |
*/
|
877 |
+
private function _manageClsFlag(array &$toFill, Varien_Object $item, $force = false) {
|
878 |
// If processing record has (first) ExportDate, return.
|
879 |
+
if ($item->hasData('is_exported') && $item->getData('is_exported') == 1 && !$force) {
|
880 |
return false;
|
881 |
}
|
882 |
$toFill[$this->getSubscribedFlagName()]
|
883 |
+
= $item->getData('subscriber_status') == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED
|
884 |
? 1 : 0;
|
885 |
return true;
|
886 |
}
|
887 |
|
888 |
+
/**
|
889 |
+
* Is enabled.
|
890 |
+
* @return bool
|
891 |
+
*/
|
892 |
protected function isEnabled() {
|
893 |
return Mage::helper("contactlab_subscribers")->isEnabled($this->getTask());
|
894 |
}
|
895 |
|
896 |
/**
|
897 |
* Get file name.
|
898 |
+
* @return string
|
899 |
*/
|
900 |
protected function getFileName() {
|
901 |
return $this->getTask()->getConfig("contactlab_subscribers/global/export_filename");
|
911 |
$this->_resetMustResetExportDatesFlag();
|
912 |
}
|
913 |
}
|
914 |
+
|
915 |
+
/**
|
916 |
+
* Set uk is exported.
|
917 |
+
*/
|
918 |
+
private function _setUkIsExported()
|
919 |
+
{
|
920 |
+
if ($this->ukQuery != "") {
|
921 |
+
$tableName = $this->resource->getTableName('contactlab_subscribers/uk');
|
922 |
+
$this->ukQuery = "update $tableName set is_exported = 1 where entity_id in ({$this->ukQuery})";
|
923 |
+
$this->_query($this->ukQuery);
|
924 |
+
$this->ukQuery = "";
|
925 |
+
}
|
926 |
+
}
|
927 |
+
|
928 |
+
/**
|
929 |
+
* Add subscriber fields.
|
930 |
+
* @param Varien_Data_Collection_Db $collection
|
931 |
+
* @param string $table Table name for join
|
932 |
+
* @return Varien_Db_Select
|
933 |
+
*/
|
934 |
+
private function _addSubscriberFields(Varien_Data_Collection_Db $collection, $table = 'newsletter_subscriber')
|
935 |
+
{
|
936 |
+
return $collection->getSelect()->joinLeft(
|
937 |
+
array('fields' => $this->resource->getTableName('contactlab_subscribers/newsletter_subscriber_fields')),
|
938 |
+
"fields.subscriber_id = $table.subscriber_id"
|
939 |
+
);
|
940 |
+
}
|
941 |
+
|
942 |
+
/**
|
943 |
+
* Do include this field into xml element?
|
944 |
+
* @param String $attributeCode
|
945 |
+
* @return bool
|
946 |
+
*/
|
947 |
+
private function _doManageAddressAttribute($attributeCode)
|
948 |
+
{
|
949 |
+
if (preg_match('|^billing_|', $attributeCode)) {
|
950 |
+
return $this->_mustExportAddress('billing');
|
951 |
+
} else if (preg_match('|^shipping|', $attributeCode)) {
|
952 |
+
return $this->_mustExportAddress('shipping');
|
953 |
+
}
|
954 |
+
return true;
|
955 |
+
}
|
956 |
+
|
957 |
+
/**
|
958 |
+
* Add address fields.
|
959 |
+
* @param array $preFilled
|
960 |
+
*/
|
961 |
+
private function _addAddressFields(array &$preFilled)
|
962 |
+
{
|
963 |
+
foreach (array('billing', 'shipping') as $addressType) {
|
964 |
+
if ($this->_mustExportAddress($addressType)) {
|
965 |
+
foreach ($this->fAddressAttributes as $k) {
|
966 |
+
$preFilled[$addressType . '_' . $k] = '';
|
967 |
+
}
|
968 |
+
}
|
969 |
+
}
|
970 |
+
}
|
971 |
+
|
972 |
+
/**
|
973 |
+
* @param Varien_Data_Collection_Db $collection
|
974 |
+
* @return Varien_Db_Select
|
975 |
+
*/
|
976 |
+
private function _addCustomerGroupToSelect(Varien_Data_Collection_Db $collection)
|
977 |
+
{
|
978 |
+
return $collection->getSelect()->joinInner(
|
979 |
+
array(
|
980 |
+
'customer_group' => $this->resource->getTableName('customer/customer_group')
|
981 |
+
),
|
982 |
+
"customer_group.customer_group_id = e.group_id",
|
983 |
+
array(
|
984 |
+
'customer_group_name' => 'customer_group_code',
|
985 |
+
'customer_group_id' => 'customer_group_id'
|
986 |
+
)
|
987 |
+
);
|
988 |
+
}
|
989 |
+
|
990 |
+
/**
|
991 |
+
* Use destination field name for cstm fields
|
992 |
+
* @param $k
|
993 |
+
* @return mixed
|
994 |
+
*/
|
995 |
+
private function getOutputTagName($k) {
|
996 |
+
if (isset($this->fAttributesMap[$k]) && strpos($k, 'cstm') === 0) {
|
997 |
+
return $this->fAttributesMap[$k];
|
998 |
+
}
|
999 |
+
return $k;
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
/**
|
1003 |
+
* Custom rispetto alla versione originale del modulo
|
1004 |
+
*/
|
1005 |
+
protected function customizeInfoCustomer(array &$toFill, Varien_Object $customer){
|
1006 |
+
$tCustInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_customer');
|
1007 |
+
$tCustInfo->setInfo($toFill);
|
1008 |
+
$tCustInfo->setCustomer($customer);
|
1009 |
+
$tCustInfo->setIsMod(false);
|
1010 |
+
|
1011 |
+
Mage::dispatchEvent("contactlab_export_subscribers_customer_info",array(
|
1012 |
+
'customer_info' => $tCustInfo
|
1013 |
+
));
|
1014 |
+
|
1015 |
+
if ($tCustInfo->isMod()){
|
1016 |
+
$toFill = $tCustInfo->getInfo();
|
1017 |
+
}
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
|
1021 |
+
/**
|
1022 |
+
* Custom rispetto alla versione originale del modulo
|
1023 |
+
*/
|
1024 |
+
protected function customizeInfoDeleted(array &$toFill, Varien_Object $deleted){
|
1025 |
+
$tDeletedInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_deleted');
|
1026 |
+
$tDeletedInfo->setInfo($toFill);
|
1027 |
+
$tDeletedInfo->setDeleted($deleted);
|
1028 |
+
$tDeletedInfo->setIsMod(false);
|
1029 |
+
|
1030 |
+
Mage::dispatchEvent("contactlab_export_subscribers_deleted_info",array(
|
1031 |
+
'deleted_info' => $tDeletedInfo
|
1032 |
+
));
|
1033 |
+
|
1034 |
+
if ($tDeletedInfo->isMod()){
|
1035 |
+
$toFill = $tDeletedInfo->getInfo();
|
1036 |
+
}
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
|
1040 |
+
/**
|
1041 |
+
* Custom rispetto alla versione originale del modulo
|
1042 |
+
*/
|
1043 |
+
protected function customizeInfoSubscriber(array &$toFill, Varien_Object $subscriber){
|
1044 |
+
$tSubscriberInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_subscriber');
|
1045 |
+
$tSubscriberInfo->setInfo($toFill);
|
1046 |
+
$tSubscriberInfo->setSubscriber($subscriber);
|
1047 |
+
$tSubscriberInfo->setIsMod(false);
|
1048 |
+
|
1049 |
+
Mage::dispatchEvent("contactlab_export_subscribers_subscriber_info",array(
|
1050 |
+
'subscriber_info' => $tSubscriberInfo
|
1051 |
+
));
|
1052 |
+
|
1053 |
+
if ($tSubscriberInfo->isMod()){
|
1054 |
+
$toFill = $tSubscriberInfo->getInfo();
|
1055 |
+
}
|
1056 |
+
}
|
1057 |
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Abstract.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
abstract class Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Abstract {
|
3 |
+
protected $_info = array();
|
4 |
+
protected $_is_mod = false;
|
5 |
+
|
6 |
+
public function setInfo($_info){
|
7 |
+
$this->_info = $_info;
|
8 |
+
$this->setIsMod();
|
9 |
+
}
|
10 |
+
|
11 |
+
public function getInfo(){
|
12 |
+
return $this->_info;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function isMod(){
|
16 |
+
return $this->_is_mod;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function setIsMod($_is_mod = true){
|
20 |
+
$this->_is_mod = $_is_mod;
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Customer.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Customer extends Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Abstract{
|
3 |
+
protected $_customer = null;
|
4 |
+
|
5 |
+
public function getCustomer(){
|
6 |
+
return $this->_customer;
|
7 |
+
}
|
8 |
+
|
9 |
+
public function setCustomer($_customer){
|
10 |
+
$this->_customer = $_customer;
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Deleted.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Deleted extends Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Abstract{
|
3 |
+
protected $_deleted = null;
|
4 |
+
|
5 |
+
public function getDeleted(){
|
6 |
+
return $this->_deleted;
|
7 |
+
}
|
8 |
+
|
9 |
+
public function setDeleted($_deleted){
|
10 |
+
$this->_deleted = $_deleted;
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/InfoTransporter/Subscriber.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Subscriber extends Contactlab_Subscribers_Model_Exporter_Subscribers_InfoTransporter_Abstract{
|
3 |
+
protected $_subscriber = null;
|
4 |
+
|
5 |
+
public function getSubscriber(){
|
6 |
+
return $this->_subscriber;
|
7 |
+
}
|
8 |
+
|
9 |
+
public function setSubscriber($_subscriber){
|
10 |
+
$this->_subscriber = $_subscriber;
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/MapTransporter/Abstract.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
abstract class Contactlab_Subscribers_Model_Exporter_Subscribers_MapTransporter_Abstract {
|
3 |
+
protected $_map = array();
|
4 |
+
protected $_is_mod = false;
|
5 |
+
|
6 |
+
public function setMap($_map){
|
7 |
+
$this->_map = $_map;
|
8 |
+
$this->setIsMod();
|
9 |
+
}
|
10 |
+
|
11 |
+
public function getMap(){
|
12 |
+
return $this->_map;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function isMod(){
|
16 |
+
return $this->_is_mod;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function setIsMod($_is_mod = true){
|
20 |
+
$this->_is_mod = $_is_mod;
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/MapTransporter/Address.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Contactlab_Subscribers_Model_Exporter_Subscribers_MapTransporter_Address extends Contactlab_Subscribers_Model_Exporter_Subscribers_MapTransporter_Abstract {
|
3 |
+
|
4 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Subscribers/MapTransporter/Attribute.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Contactlab_Subscribers_Model_Exporter_Subscribers_MapTransporter_Attribute extends Contactlab_Subscribers_Model_Exporter_Subscribers_MapTransporter_Abstract {
|
3 |
+
|
4 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Fields.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Fields table model.
|
5 |
+
* @method getNotes()
|
6 |
+
* @method getFirstName()
|
7 |
+
* @method getLastName()
|
8 |
+
* @method getCustom1()
|
9 |
+
* @method getCustom2()
|
10 |
+
* @method getZipCode()
|
11 |
+
* @method getPhone()
|
12 |
+
* @method getCellPhone()
|
13 |
+
* @method getDob()
|
14 |
+
* @method getPrivacyAccepted()
|
15 |
+
* @method getGender()
|
16 |
+
* @method getSubscriberEmail()
|
17 |
+
*
|
18 |
+
* @method Contactlab_Subscribers_Model_Fields setNotes($value)
|
19 |
+
* @method Contactlab_Subscribers_Model_Fields setFirstName($value)
|
20 |
+
* @method Contactlab_Subscribers_Model_Fields setLastName($value)
|
21 |
+
* @method Contactlab_Subscribers_Model_Fields setCustom1($value)
|
22 |
+
* @method Contactlab_Subscribers_Model_Fields setCustom2($value)
|
23 |
+
* @method Contactlab_Subscribers_Model_Fields setZipCode($value)
|
24 |
+
* @method Contactlab_Subscribers_Model_Fields setPhone($value)
|
25 |
+
* @method Contactlab_Subscribers_Model_Fields setCellPhone($value)
|
26 |
+
* @method Contactlab_Subscribers_Model_Fields setDob($value)
|
27 |
+
* @method Contactlab_Subscribers_Model_Fields setPrivacyAccepted($value)
|
28 |
+
* @method Contactlab_Subscribers_Model_Fields setGender($value)
|
29 |
+
* @method Contactlab_Subscribers_Model_Fields setSubscriberEmail($value)
|
30 |
+
*/
|
31 |
+
class Contactlab_Subscribers_Model_Fields extends Mage_Core_Model_Abstract {
|
32 |
+
/**
|
33 |
+
* Constructor.
|
34 |
+
*/
|
35 |
+
public function _construct() {
|
36 |
+
$this->_init("contactlab_subscribers/fields");
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Load object data
|
41 |
+
*
|
42 |
+
* @param integer $id
|
43 |
+
* @return Mage_Core_Model_Abstract
|
44 |
+
*/
|
45 |
+
public function load($id, $field=null)
|
46 |
+
{
|
47 |
+
$rv = parent::load($id, $field);
|
48 |
+
if (!$this->hasData('subscriber_id')) {
|
49 |
+
if ($field === 'subscriber_id') {
|
50 |
+
$this->createFromSubscriber($id);
|
51 |
+
} else if ($field === 'subscriber_email') {
|
52 |
+
$this->createFromSubscriberEmail($id);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
return $rv;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* @param $id
|
61 |
+
* @throws Exception
|
62 |
+
*/
|
63 |
+
private function createFromSubscriber($id) {
|
64 |
+
$subscriber = Mage::getModel('newsletter/subscriber')->load($id);
|
65 |
+
$this->setSubscriberId($id);
|
66 |
+
$this->setSubscriberEmail($subscriber->getEmail());
|
67 |
+
$this->save();
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param $email
|
72 |
+
* @throws Exception
|
73 |
+
*/
|
74 |
+
private function createFromSubscriberEmail($email) {
|
75 |
+
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
|
76 |
+
$this->setSubscriberId($subscriber->getSubscriberId());
|
77 |
+
$this->setSubscriberEmail($subscriber->getEmail());
|
78 |
+
$this->save();
|
79 |
+
}
|
80 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Importer/Subscribers.php
CHANGED
@@ -76,7 +76,11 @@ class Contactlab_Subscribers_Model_Importer_Subscribers extends Contactlab_Commo
|
|
76 |
return false;
|
77 |
}
|
78 |
// Check WebForCode
|
79 |
-
|
|
|
|
|
|
|
|
|
80 |
return false;
|
81 |
}
|
82 |
return true;
|
76 |
return false;
|
77 |
}
|
78 |
// Check WebForCode
|
79 |
+
$wfc = (string) $item->CATEGORY_DESC;
|
80 |
+
|
81 |
+
$enabledWfcCodes = array_map('trim', explode(',', $this->getWebFormCode()));
|
82 |
+
|
83 |
+
if (!in_array($wfc, $enabledWfcCodes)) {
|
84 |
return false;
|
85 |
}
|
86 |
return true;
|
app/code/community/Contactlab/Subscribers/Model/Newsletter/Subscriber.php
CHANGED
@@ -2,6 +2,15 @@
|
|
2 |
|
3 |
/**
|
4 |
* Newsletter subscribers model, get and set from SOAP.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Subscribers_Model_Newsletter_Subscriber extends Mage_Newsletter_Model_Subscriber {
|
7 |
// Is customer subscribed?
|
@@ -38,6 +47,19 @@ class Contactlab_Subscribers_Model_Newsletter_Subscriber extends Mage_Newsletter
|
|
38 |
return parent::isSubscribed();
|
39 |
}
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
/**
|
42 |
* Load subscriber by customer
|
43 |
*
|
2 |
|
3 |
/**
|
4 |
* Newsletter subscribers model, get and set from SOAP.
|
5 |
+
* @method int getSubscriberId()
|
6 |
+
* @method int getLastSubscribedAt()
|
7 |
+
* @method bool hasSubscriberId()
|
8 |
+
* @method bool hasSubscriberConfirmCode()
|
9 |
+
* @method bool hasStoreId()
|
10 |
+
* @method bool hasLastSubscribedAt()
|
11 |
+
* @method array getProductIds()
|
12 |
+
*
|
13 |
+
* @method Contactlab_Subscribers_Model_Newsletter_Subscriber setLastSubscribedAt($value)
|
14 |
*/
|
15 |
class Contactlab_Subscribers_Model_Newsletter_Subscriber extends Mage_Newsletter_Model_Subscriber {
|
16 |
// Is customer subscribed?
|
47 |
return parent::isSubscribed();
|
48 |
}
|
49 |
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Load subscriber data from resource model by email
|
53 |
+
*
|
54 |
+
* @param int $subscriberId
|
55 |
+
*/
|
56 |
+
public function loadByEmail($subscriberEmail, $storeId=null)
|
57 |
+
{
|
58 |
+
$this->addData(Mage::getModel('newsletter_resource/subscriber')->loadByEmail($subscriberEmail, $storeId));
|
59 |
+
return $this;
|
60 |
+
}
|
61 |
+
|
62 |
+
|
63 |
/**
|
64 |
* Load subscriber by customer
|
65 |
*
|
app/code/community/Contactlab/Subscribers/Model/Newsletter/Subscribers/Observer.php
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Add custom fields to subscribers grid.
|
5 |
+
* Class Contactlab_Subscribers_Model_Newsletter_Subscribers_Observer
|
6 |
+
*/
|
7 |
+
class Contactlab_Subscribers_Model_Newsletter_Subscribers_Observer extends Mage_Core_Model_Abstract
|
8 |
+
{
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Remove old columns.
|
12 |
+
* @param Varien_Event_Observer $event
|
13 |
+
* @return $this
|
14 |
+
*/
|
15 |
+
public function removeOldColumns(Varien_Event_Observer $event)
|
16 |
+
{
|
17 |
+
/* @var $block Mage_Adminhtml_Block_Newsletter_Subscriber_Grid */
|
18 |
+
$block = $event->getBlock();
|
19 |
+
if (!isset($block)) {
|
20 |
+
return $this;
|
21 |
+
}
|
22 |
+
|
23 |
+
if ($block instanceof Mage_Adminhtml_Block_Newsletter_Subscriber_Grid) {
|
24 |
+
$this->_removeColumnsToGrid($block);
|
25 |
+
}
|
26 |
+
|
27 |
+
return $this;
|
28 |
+
}
|
29 |
+
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Append custom columns.
|
33 |
+
* @param Varien_Event_Observer $event
|
34 |
+
* @return $this
|
35 |
+
*/
|
36 |
+
public function appendCustomColumns(Varien_Event_Observer $event)
|
37 |
+
{
|
38 |
+
/* @var $block Mage_Adminhtml_Block_Newsletter_Subscriber_Grid */
|
39 |
+
$block = $event->getBlock();
|
40 |
+
if (!isset($block)) {
|
41 |
+
return $this;
|
42 |
+
}
|
43 |
+
|
44 |
+
if ($block instanceof Mage_Adminhtml_Block_Newsletter_Subscriber_Grid) {
|
45 |
+
$this->_addColumnsToGrid($block);
|
46 |
+
}
|
47 |
+
|
48 |
+
return $this;
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Remove columns to grid.
|
53 |
+
* @param Mage_Adminhtml_Block_Newsletter_Subscriber_Grid $block
|
54 |
+
* @return Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
|
55 |
+
*/
|
56 |
+
private function _removeColumnsToGrid(Mage_Adminhtml_Block_Newsletter_Subscriber_Grid $block)
|
57 |
+
{
|
58 |
+
$block->removeColumn('email')
|
59 |
+
->removeColumn('firstname')
|
60 |
+
->removeColumn('lastname')
|
61 |
+
->sortColumnsByOrder();
|
62 |
+
return $block;
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Add columns to grid.
|
68 |
+
* @param Mage_Adminhtml_Block_Newsletter_Subscriber_Grid $block
|
69 |
+
* @return Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
|
70 |
+
*/
|
71 |
+
private function _addColumnsToGrid(Mage_Adminhtml_Block_Newsletter_Subscriber_Grid $block)
|
72 |
+
{
|
73 |
+
$block
|
74 |
+
->addColumnAfter('subscriber_email', array(
|
75 |
+
'header' => Mage::helper('newsletter')->__('Email C'),
|
76 |
+
'index' => 'subscriber_email',
|
77 |
+
'filter_index' => 'main_table.subscriber_email',
|
78 |
+
'default' => '---'), 'subscriber_id')
|
79 |
+
->addColumnAfter('fname', array(
|
80 |
+
'header' => Mage::helper('newsletter')->__('First Name'),
|
81 |
+
'index' => 'fname2',
|
82 |
+
'default' => '---'), 'type')
|
83 |
+
->addColumnAfter('lname', array(
|
84 |
+
'header' => Mage::helper('newsletter')->__('Last Name'),
|
85 |
+
'index' => 'lname2',
|
86 |
+
'default' => '---'), 'fname')
|
87 |
+
->addColumnAfter('dob2', array(
|
88 |
+
'header' => Mage::helper('newsletter')->__('Date of Birth'),
|
89 |
+
'index' => 'dob2',
|
90 |
+
'type' => 'date',
|
91 |
+
'align' => 'center',
|
92 |
+
'default' => '---'), 'lname')
|
93 |
+
->addColumnAfter('gender2', array(
|
94 |
+
'header' => Mage::helper('newsletter')->__('Gender'),
|
95 |
+
'index' => 'gender2',
|
96 |
+
'type' => 'options',
|
97 |
+
'options' => array(
|
98 |
+
'',
|
99 |
+
Mage::helper('contactlab_subscribers')->__('M'),
|
100 |
+
Mage::helper('contactlab_subscribers')->__('F')),
|
101 |
+
'default' => '---'), 'dob2')
|
102 |
+
->addColumnAfter('country2', array(
|
103 |
+
'header' => Mage::helper('newsletter')->__('Country'),
|
104 |
+
'index' => 'country2',
|
105 |
+
'default' => '---'), 'gender2')
|
106 |
+
->addColumnAfter('city2', array(
|
107 |
+
'header' => Mage::helper('newsletter')->__('City'),
|
108 |
+
'index' => 'city2',
|
109 |
+
'default' => '---'), 'country2')
|
110 |
+
->addColumnAfter('zipcode2', array(
|
111 |
+
'header' => Mage::helper('newsletter')->__('Zip Code'),
|
112 |
+
'index' => 'zipcode2',
|
113 |
+
'default' => '---'), 'city2')
|
114 |
+
->addColumnAfter('address2', array(
|
115 |
+
'header' => Mage::helper('newsletter')->__('Address'),
|
116 |
+
'index' => 'address2',
|
117 |
+
'default' => '---'), 'zipcode2')
|
118 |
+
->addColumnAfter('phone2', array(
|
119 |
+
'header' => Mage::helper('newsletter')->__('Landline Phone'),
|
120 |
+
'index' => 'phone2',
|
121 |
+
'default' => '---'), 'address2')
|
122 |
+
->addColumnAfter('mphone', array(
|
123 |
+
'header' => Mage::helper('newsletter')->__('Mobile Phone'),
|
124 |
+
'index' => 'mphone',
|
125 |
+
'default' => '---'), 'phone2')
|
126 |
+
->addColumnAfter('company', array(
|
127 |
+
'header' => Mage::helper('newsletter')->__('Company'),
|
128 |
+
'index' => 'company',
|
129 |
+
'default' => '---'), 'mphone')
|
130 |
+
->addColumnAfter('privacy', array(
|
131 |
+
'header' => Mage::helper('newsletter')->__('Privacy Terms Agreement'),
|
132 |
+
'index' => 'privacy',
|
133 |
+
'type' => 'options',
|
134 |
+
'options' => array('no', 'si')), 'company')
|
135 |
+
->addColumnAfter('custom_1', array(
|
136 |
+
'header' => Mage::helper('newsletter')->__('Custom info 1'),
|
137 |
+
'index' => 'custom_1',
|
138 |
+
'default' => '---'), 'privacy')
|
139 |
+
->addColumnAfter('custom_2', array(
|
140 |
+
'header' => Mage::helper('newsletter')->__('Custom info 2'),
|
141 |
+
'index' => 'custom_2',
|
142 |
+
'default' => '---'), 'custom_1')
|
143 |
+
->addColumnAfter('notes', array(
|
144 |
+
'header' => Mage::helper('newsletter')->__('Notes'),
|
145 |
+
'index' => 'notes',
|
146 |
+
'width' => '100'), 'custom_2')
|
147 |
+
;
|
148 |
+
|
149 |
+
return $block;
|
150 |
+
}
|
151 |
+
|
152 |
+
public function appendCustomAttributes(Varien_Event_Observer $event)
|
153 |
+
{
|
154 |
+
if ($this->_isGridAction() && $this->_isNewsletterSubscriberCollection($event)) {
|
155 |
+
$this->_addCustomAttributes($event->getCollection());
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
private function _isGridAction()
|
160 |
+
{
|
161 |
+
$request = Mage::app()->getRequest();
|
162 |
+
if ($request->getModuleName() !== 'admin') {
|
163 |
+
return false;
|
164 |
+
}
|
165 |
+
if ($request->getControllerName() !== 'newsletter_subscriber') {
|
166 |
+
return false;
|
167 |
+
}
|
168 |
+
return $request->getActionName() === 'index' ||$request->getActionName() === 'grid';
|
169 |
+
}
|
170 |
+
|
171 |
+
private function _isNewsletterSubscriberCollection($event)
|
172 |
+
{
|
173 |
+
return $event->hasCollection() && ($event->getCollection() instanceof Mage_Newsletter_Model_Resource_Subscriber_Collection);
|
174 |
+
}
|
175 |
+
|
176 |
+
private function _addCustomAttributes($collection)
|
177 |
+
{
|
178 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
179 |
+
$collection->getSelect()
|
180 |
+
->joinLeft(array('csnsf' => $tablePrefix.'contactlab_subscribers_newsletter_subscriber_fields'),
|
181 |
+
'csnsf.subscriber_id = main_table.subscriber_id',
|
182 |
+
array(
|
183 |
+
'privacy' => 'csnsf.privacy_accepted',
|
184 |
+
'company' => 'csnsf.company',
|
185 |
+
'fname2' => 'csnsf.first_name',
|
186 |
+
'lname2' => 'csnsf.last_name',
|
187 |
+
'gender2' => 'csnsf.gender',
|
188 |
+
'dob2' => 'csnsf.dob',
|
189 |
+
'custom_1' => 'csnsf.custom_1',
|
190 |
+
'custom_2' => 'csnsf.custom_2',
|
191 |
+
'notes' => 'csnsf.notes',
|
192 |
+
'country2' => 'csnsf.country',
|
193 |
+
'address2' => 'csnsf.address',
|
194 |
+
'zipcode2' => 'csnsf.zip_code',
|
195 |
+
'phone2' => 'csnsf.phone',
|
196 |
+
'mphone' => 'csnsf.cell_phone',
|
197 |
+
'email' => 'csnsf.subscriber_email',
|
198 |
+
'city2' => 'csnsf.city'));
|
199 |
+
}
|
200 |
+
|
201 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Observer.php
CHANGED
@@ -9,7 +9,10 @@ class Contactlab_Subscribers_Model_Observer extends Mage_Core_Model_Abstract {
|
|
9 |
|
10 |
private $_toUnsubscribe = array();
|
11 |
|
12 |
-
/**
|
|
|
|
|
|
|
13 |
public function updateStats($observer) {
|
14 |
try {
|
15 |
Mage::helper("contactlab_subscribers")
|
@@ -20,7 +23,10 @@ class Contactlab_Subscribers_Model_Observer extends Mage_Core_Model_Abstract {
|
|
20 |
}
|
21 |
}
|
22 |
|
23 |
-
/**
|
|
|
|
|
|
|
24 |
public function doUpdateStats($observer) {
|
25 |
try {
|
26 |
Mage::helper("contactlab_subscribers")->doUpdateStats();
|
@@ -30,7 +36,10 @@ class Contactlab_Subscribers_Model_Observer extends Mage_Core_Model_Abstract {
|
|
30 |
}
|
31 |
|
32 |
|
33 |
-
|
|
|
|
|
|
|
34 |
public function subscriberSaved($observer) {
|
35 |
$subscriber = $observer->getEvent()->getDataObject();
|
36 |
$isSubscribed = $subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
@@ -45,6 +54,7 @@ class Contactlab_Subscribers_Model_Observer extends Mage_Core_Model_Abstract {
|
|
45 |
/**
|
46 |
* A subscriber has been promoted to customer.
|
47 |
* @param $observer Varien_Event_Observer
|
|
|
48 |
*/
|
49 |
public function subscriberPromotedToCustomer(Varien_Event_Observer $observer) {
|
50 |
$uk = $observer->getEvent()->getDataObject();
|
@@ -97,7 +107,6 @@ class Contactlab_Subscribers_Model_Observer extends Mage_Core_Model_Abstract {
|
|
97 |
private function _doUnsubscribeLater(Mage_Newsletter_Model_Subscriber $subscriber) {
|
98 |
Mage::helper("contactlab_commons")->logNotice(sprintf("Subscriber \"%s\" has been promoted to customer without confirm subscription",
|
99 |
$subscriber->getSubscriberEmail()));
|
100 |
-
$id = $subscriber->getId();
|
101 |
$subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED)->save();
|
102 |
Mage::log(Mage::getModel('newsletter/subscriber')->load($subscriber->getId())->getData());
|
103 |
if (Mage::getStoreConfigFlag("contactlab_subscribers/subscriber_to_customer/email_on_unsubscribe")) {
|
@@ -110,20 +119,31 @@ class Contactlab_Subscribers_Model_Observer extends Mage_Core_Model_Abstract {
|
|
110 |
}
|
111 |
|
112 |
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
115 |
private function _updateLastSubscribedAt(Mage_Newsletter_Model_Subscriber $subscriber) {
|
116 |
$date = Mage::getModel('core/date')->gmtDate();
|
117 |
$subscriber->setLastSubscribedAt($date);
|
118 |
}
|
119 |
|
120 |
-
|
|
|
|
|
|
|
|
|
121 |
private function _wasUnsubscribed(Mage_Newsletter_Model_Subscriber $subscriber) {
|
122 |
$oldModel = new Mage_Newsletter_Model_Subscriber();
|
123 |
$oldModel->load($subscriber->getSubscriberId());
|
124 |
return $oldModel->getStatus() !== Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
125 |
}
|
126 |
|
|
|
|
|
|
|
|
|
127 |
private static function _isSubscribedLocally(Mage_Newsletter_Model_Subscriber $subscriber) {
|
128 |
if ($subscriber->getId() && $subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
|
129 |
return true;
|
9 |
|
10 |
private $_toUnsubscribe = array();
|
11 |
|
12 |
+
/**
|
13 |
+
* Update customer stats, on order save and delete.
|
14 |
+
* @param $observer
|
15 |
+
*/
|
16 |
public function updateStats($observer) {
|
17 |
try {
|
18 |
Mage::helper("contactlab_subscribers")
|
23 |
}
|
24 |
}
|
25 |
|
26 |
+
/**
|
27 |
+
* Update customer stats, on order save and delete.
|
28 |
+
* @param $observer
|
29 |
+
*/
|
30 |
public function doUpdateStats($observer) {
|
31 |
try {
|
32 |
Mage::helper("contactlab_subscribers")->doUpdateStats();
|
36 |
}
|
37 |
|
38 |
|
39 |
+
/**
|
40 |
+
* A subscriber has been saved.
|
41 |
+
* @param $observer
|
42 |
+
*/
|
43 |
public function subscriberSaved($observer) {
|
44 |
$subscriber = $observer->getEvent()->getDataObject();
|
45 |
$isSubscribed = $subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
54 |
/**
|
55 |
* A subscriber has been promoted to customer.
|
56 |
* @param $observer Varien_Event_Observer
|
57 |
+
* @return bool
|
58 |
*/
|
59 |
public function subscriberPromotedToCustomer(Varien_Event_Observer $observer) {
|
60 |
$uk = $observer->getEvent()->getDataObject();
|
107 |
private function _doUnsubscribeLater(Mage_Newsletter_Model_Subscriber $subscriber) {
|
108 |
Mage::helper("contactlab_commons")->logNotice(sprintf("Subscriber \"%s\" has been promoted to customer without confirm subscription",
|
109 |
$subscriber->getSubscriberEmail()));
|
|
|
110 |
$subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED)->save();
|
111 |
Mage::log(Mage::getModel('newsletter/subscriber')->load($subscriber->getId())->getData());
|
112 |
if (Mage::getStoreConfigFlag("contactlab_subscribers/subscriber_to_customer/email_on_unsubscribe")) {
|
119 |
}
|
120 |
|
121 |
|
122 |
+
/**
|
123 |
+
* Update last subscribed at, before save.
|
124 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
125 |
+
* @deprecated
|
126 |
+
*/
|
127 |
private function _updateLastSubscribedAt(Mage_Newsletter_Model_Subscriber $subscriber) {
|
128 |
$date = Mage::getModel('core/date')->gmtDate();
|
129 |
$subscriber->setLastSubscribedAt($date);
|
130 |
}
|
131 |
|
132 |
+
/**
|
133 |
+
* Was unsubscribed?
|
134 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
135 |
+
* @return bool
|
136 |
+
*/
|
137 |
private function _wasUnsubscribed(Mage_Newsletter_Model_Subscriber $subscriber) {
|
138 |
$oldModel = new Mage_Newsletter_Model_Subscriber();
|
139 |
$oldModel->load($subscriber->getSubscriberId());
|
140 |
return $oldModel->getStatus() !== Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
141 |
}
|
142 |
|
143 |
+
/**
|
144 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
145 |
+
* @return bool
|
146 |
+
*/
|
147 |
private static function _isSubscribedLocally(Mage_Newsletter_Model_Subscriber $subscriber) {
|
148 |
if ($subscriber->getId() && $subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
|
149 |
return true;
|
app/code/community/Contactlab/Subscribers/Model/Observer/Fields.php
ADDED
@@ -0,0 +1,212 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Observer for manage uk table.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_Observer_Fields extends Mage_Core_Model_Abstract
|
7 |
+
{
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Fill Model.
|
11 |
+
* @param Contactlab_Subscribers_Model_Fields $model
|
12 |
+
* @param array $parameters
|
13 |
+
* @return mixed
|
14 |
+
*/
|
15 |
+
private function fillModel(Contactlab_Subscribers_Model_Fields $model, array $parameters)
|
16 |
+
{
|
17 |
+
$model->addData($parameters);
|
18 |
+
// Parameter "email" has another name: we can't change the original or
|
19 |
+
// newsletter observer won't work
|
20 |
+
$model->setSubscriberEmail($parameters['email']);
|
21 |
+
|
22 |
+
// Privacy needs post-elaboration bcause it's a checkbox
|
23 |
+
if ($model->hasData('privacy')) {
|
24 |
+
$model->setPrivacyAccepted($parameters['privacy'] == 'on');
|
25 |
+
} else {
|
26 |
+
$model->setPrivacyAccepted(false);
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Date of birth needs post-elaboration too: use locale date format
|
31 |
+
* to translate?
|
32 |
+
* Also, is it kosher to use php date functions?
|
33 |
+
*/
|
34 |
+
$dateFormat = Mage::app()->getLocale()
|
35 |
+
->getDateStrFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
|
36 |
+
|
37 |
+
// Translate date according to locale date format
|
38 |
+
if ($model->hasData('dob')) {
|
39 |
+
if (mb_strlen($model->getDob()) < 6) {
|
40 |
+
$model->unsDob();
|
41 |
+
} else {
|
42 |
+
$dateArray = strptime($model->getDob(), $dateFormat);
|
43 |
+
$model->setDob(($dateArray['tm_year'] + 1900) . '-' . ($dateArray['tm_mon'] + 1) . '-' . $dateArray['tm_mday']);
|
44 |
+
}
|
45 |
+
}
|
46 |
+
return $model;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Controller action pre dispatch, queues additional fields
|
51 |
+
* triggered by new subscriber action
|
52 |
+
* @param $observer
|
53 |
+
* @throws Exception
|
54 |
+
*/
|
55 |
+
public function controllerActionPreDispatch($observer)
|
56 |
+
{
|
57 |
+
$action = $observer->getEvent()->getControllerAction();
|
58 |
+
$request = $action->getRequest();
|
59 |
+
if (!$request->isPost()) {
|
60 |
+
// Probably unnecessary
|
61 |
+
return;
|
62 |
+
}
|
63 |
+
if (!($action->getFullActionName() === 'newsletter_subscriber_new')) {
|
64 |
+
return;
|
65 |
+
}
|
66 |
+
|
67 |
+
$parameters = $request->getParams();
|
68 |
+
|
69 |
+
/** @var $fields Contactlab_Subscribers_Model_Fields */
|
70 |
+
$fields = Mage::getModel("contactlab_subscribers/fields");
|
71 |
+
$fields->setData($parameters);
|
72 |
+
// Parameter "email" has another name: we can't change the original or newsletter observer won't work
|
73 |
+
$fields->setSubscriberEmail($parameters['email']);
|
74 |
+
//privacy needs post-elaboration because it's a checkbox
|
75 |
+
if ($fields->hasData('privacy')) {
|
76 |
+
$fields->setPrivacyAccepted($parameters['privacy'] == 'on');
|
77 |
+
} else {
|
78 |
+
$fields->setPrivacyAccepted(false);
|
79 |
+
}
|
80 |
+
/**
|
81 |
+
* Date of birth needs post-elaboration too: use locale date format
|
82 |
+
* to translate?
|
83 |
+
* Also, is it kosher to use php date functions?
|
84 |
+
*/
|
85 |
+
$dateFormat = Mage::app()->getLocale()->getDateStrFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
|
86 |
+
|
87 |
+
// Translate date according to locale date format
|
88 |
+
if ($fields->hasData('dob')) {
|
89 |
+
if (mb_strlen($fields->getDob()) < 6) {
|
90 |
+
$fields->unsDob();
|
91 |
+
} else {
|
92 |
+
$dateArray = strptime($fields->getDob(), $dateFormat);
|
93 |
+
$fields->setDob(($dateArray['tm_year'] + 1900) . '-' . ($dateArray['tm_mon'] + 1) . '-' . $dateArray['tm_mday']);
|
94 |
+
}
|
95 |
+
}
|
96 |
+
/**
|
97 |
+
* TODO: Server-side data validation
|
98 |
+
*/
|
99 |
+
$fields->save();
|
100 |
+
}
|
101 |
+
|
102 |
+
public function afterSubscriberSaved($observer)
|
103 |
+
{
|
104 |
+
Mage::helper('contactlab_commons')->logInfo('AFTERSUBSAVED:' . print_r($observer->getEvent()->getDataObject(), true));
|
105 |
+
$email = $observer->getEvent()->getDataObject()->getSubscriberEmail();
|
106 |
+
$subs = Mage::getModel("contactlab_subscribers/fields")->load($email, 'subscriber_email');
|
107 |
+
if ($subs->hasData('entity_id')) {
|
108 |
+
/**
|
109 |
+
* If the subscriber was already present in our table, this means that
|
110 |
+
* the record was saved through a form submission
|
111 |
+
*/
|
112 |
+
/*
|
113 |
+
* Set subscriberId only if not set yet
|
114 |
+
*/
|
115 |
+
if (!$subs->hasSubscriberId()) {
|
116 |
+
Mage::helper('contactlab_commons')->logInfo('SAVING FIELDS FROM afterSubscriberSaved 1:');
|
117 |
+
$subs->setSubscriberId($observer->getDataObject()->getSubscriberId())->save();
|
118 |
+
}
|
119 |
+
} else {
|
120 |
+
/*
|
121 |
+
* Otherwise, subscriber was already a customer, so we require customer id
|
122 |
+
*/
|
123 |
+
Mage::helper('contactlab_commons')->logInfo('empty data : ' . print_r($observer->getDataObject()->getData(), true));
|
124 |
+
if (!$observer->getDataObject()->hasCustomerId()) {
|
125 |
+
return;
|
126 |
+
}
|
127 |
+
|
128 |
+
$customerId = $observer->getDataObject()->getCustomerId();
|
129 |
+
/**
|
130 |
+
* Transfer all fields from customer data
|
131 |
+
*/
|
132 |
+
$customer = Mage::getModel("customer/customer")->load($customerId);
|
133 |
+
$subs->setFirstName($customer->getFirstname());
|
134 |
+
$subs->setLastName($customer->getLastname());
|
135 |
+
$subs->setDob($customer->getDob());
|
136 |
+
$subs->setGender($customer->getGender());
|
137 |
+
/*
|
138 |
+
* Manage info saved in address attribute
|
139 |
+
* Using default billing address
|
140 |
+
*/
|
141 |
+
$address = Mage::getModel('customer/address')->load($customer->getDefaultBilling());
|
142 |
+
|
143 |
+
$subs->setCity($address->getCity());
|
144 |
+
$subs->setCompany($address->getCompany());
|
145 |
+
$subs->setPhone($address->getTelephone());
|
146 |
+
$subs->setAddress(implode(',', $address->getStreet()));
|
147 |
+
$subs->setZipCode($address->getPostcode());
|
148 |
+
$name = Mage::getModel('directory/country')->load($address->getCountryId())->getName();
|
149 |
+
$subs->setCountry($name);
|
150 |
+
$subs->setSubscriberEmail($observer->getDataObject()->getSubscriberEmail());
|
151 |
+
$subs->setSubscriberId($observer->getDataObject()->getSubscriberId())->save();
|
152 |
+
}
|
153 |
+
|
154 |
+
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Before subscriber deleted.
|
159 |
+
* @param $observer
|
160 |
+
* @throws Exception
|
161 |
+
* @deprecated uses cascade
|
162 |
+
*/
|
163 |
+
public function beforeSubscriberDeleted($observer)
|
164 |
+
{
|
165 |
+
/*$id = $observer->getEvent()->getDataObject()->getSubscriberId();
|
166 |
+
Mage::getModel("contactlab_subscribers/fields")->load($id, 'subscriber_id')->delete();*/
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* @param Varien_Event_Observer $params
|
171 |
+
*/
|
172 |
+
public function updateFields(Varien_Event_Observer $params)
|
173 |
+
{
|
174 |
+
/** @var $fields Contactlab_Subscribers_Model_Fields */
|
175 |
+
/*
|
176 |
+
$fields = Mage::getModel('contactlab_subscribers/fields')
|
177 |
+
->load($params->getData('email'), 'subscriber_email');
|
178 |
+
*/
|
179 |
+
$fields = $this->checkEditParams($params);
|
180 |
+
|
181 |
+
if ($fields && $fields->hasData()) {
|
182 |
+
$this->fillModel($fields, $params->getData())->save();
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
private function checkEditParams($params) {
|
187 |
+
//check params
|
188 |
+
if (!$params->getData('chkhash')
|
189 |
+
|| !$params->getData('chkid')) {
|
190 |
+
return null;
|
191 |
+
}
|
192 |
+
|
193 |
+
// Load the subscriber and the additional fields entity
|
194 |
+
|
195 |
+
$subs = Mage::getModel('newsletter/subscriber')->load($params->getData('chkid'));
|
196 |
+
if (!$subs->hasData('subscriber_id')) {
|
197 |
+
return null;
|
198 |
+
}
|
199 |
+
|
200 |
+
/** @noinspection PhpUndefinedMethodInspection */
|
201 |
+
if (!$subs->hasSubscriberConfirmCode()) {
|
202 |
+
return null;
|
203 |
+
}
|
204 |
+
|
205 |
+
if ($subs->getSubscriberConfirmCode() != $params->getData('chkhash')) {
|
206 |
+
return null;
|
207 |
+
}
|
208 |
+
|
209 |
+
return Mage::getModel('contactlab_subscribers/fields')->load($subs->getSubscriberId(), 'subscriber_id');
|
210 |
+
|
211 |
+
}
|
212 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Observer/Uk.php
CHANGED
@@ -10,9 +10,15 @@ class Contactlab_Subscribers_Model_Observer_Uk extends Mage_Core_Model_Abstract
|
|
10 |
private $toUnsubscribeRecords = array();
|
11 |
|
12 |
/** A subscriber has been saved. */
|
13 |
-
|
14 |
-
$subscriber = $observer->getEvent()->getDataObject();
|
15 |
$customerId = $subscriber->getCustomerId();
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
if ($customerId == 0) {
|
17 |
$customerId = NULL;
|
18 |
}
|
@@ -43,6 +49,14 @@ class Contactlab_Subscribers_Model_Observer_Uk extends Mage_Core_Model_Abstract
|
|
43 |
$source = $observer->getEvent()->getDataObject();
|
44 |
$this->_doRecordDelete($source);
|
45 |
$this->purge($observer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
47 |
|
48 |
/**
|
10 |
private $toUnsubscribeRecords = array();
|
11 |
|
12 |
/** A subscriber has been saved. */
|
13 |
+
public function subscriberSaved($observer) {
|
14 |
+
$subscriber = $observer->getEvent()->getDataObject();
|
15 |
$customerId = $subscriber->getCustomerId();
|
16 |
+
/* Added this control to prevent UK Integrity constraint violation */
|
17 |
+
if($subscriber->getSavedCustomerId())
|
18 |
+
{
|
19 |
+
$customerId = $subscriber->getSavedCustomerId();
|
20 |
+
}
|
21 |
+
|
22 |
if ($customerId == 0) {
|
23 |
$customerId = NULL;
|
24 |
}
|
49 |
$source = $observer->getEvent()->getDataObject();
|
50 |
$this->_doRecordDelete($source);
|
51 |
$this->purge($observer);
|
52 |
+
|
53 |
+
/* This will delete the customer fixing the MultiWebsite Subscriber */
|
54 |
+
$customer = $observer->getEvent()->getCustomer();
|
55 |
+
$subscriber = Mage::getModel('newsletter/subscriber')
|
56 |
+
->loadByEmail($customer->getEmail(), $customer->getStoreId());
|
57 |
+
if($subscriber->getId()) {
|
58 |
+
$subscriber->delete();
|
59 |
+
}
|
60 |
}
|
61 |
|
62 |
/**
|
app/code/community/Contactlab/Subscribers/Model/Resource/Fields.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Fields resource.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_Resource_Fields extends Mage_Core_Model_Mysql4_Abstract {
|
7 |
+
/**
|
8 |
+
* Constructor.
|
9 |
+
*/
|
10 |
+
public function _construct() {
|
11 |
+
$this->_init("contactlab_subscribers/newsletter_subscriber_fields", "entity_id");
|
12 |
+
}
|
13 |
+
|
14 |
+
|
15 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Resource/Fields/Collection.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Additional Fields collection.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_Resource_Fields_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Construct.
|
10 |
+
*/
|
11 |
+
public function _construct() {
|
12 |
+
$this->_init("contactlab_subscribers/newsletter_subscriber_fields");
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
app/code/community/Contactlab/Subscribers/Model/Resource/Newsletter/Subscriber.php
ADDED
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Allow multi website newsletter subscriber.
|
5 |
+
* Class Contactlab_Subscribers_Model_Resource_Newsletter_Subscriber
|
6 |
+
*/
|
7 |
+
class Contactlab_Subscribers_Model_Resource_Newsletter_Subscriber
|
8 |
+
extends Mage_Newsletter_Model_Resource_Subscriber
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
* Load subscriber from DB by email
|
12 |
+
*
|
13 |
+
* @param string $subscriberEmail
|
14 |
+
* @return array
|
15 |
+
*/
|
16 |
+
public function loadByEmail($subscriberEmail, $storeId=null)
|
17 |
+
{
|
18 |
+
if (!$this->_isEnabledMultiWebsiteSubscriber()) {
|
19 |
+
return parent::loadByEmail($subscriberEmail);
|
20 |
+
}
|
21 |
+
|
22 |
+
if(!$storeId)
|
23 |
+
{
|
24 |
+
/** @var $customerSession Mage_Customer_Model_Session */
|
25 |
+
$customerSession = Mage::getSingleton('customer/session');
|
26 |
+
$ownerId = Mage::getModel('customer/customer')
|
27 |
+
->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
|
28 |
+
->loadByEmail($subscriberEmail)
|
29 |
+
->getId();
|
30 |
+
|
31 |
+
$storeId = $customerSession->isLoggedIn() && $ownerId == $customerSession->getId()
|
32 |
+
? $customerSession->getCustomer()->getStoreId()
|
33 |
+
: Mage::app()->getStore()->getId();
|
34 |
+
}
|
35 |
+
|
36 |
+
$select = $this->getReadConnection()->select()
|
37 |
+
->from($this->getMainTable())
|
38 |
+
->where('subscriber_email=:subscriber_email')
|
39 |
+
->where('store_id=:store_id'); // Add store ID for newsletters
|
40 |
+
|
41 |
+
$result = $this->getReadConnection()->fetchRow($select, array(
|
42 |
+
'subscriber_email' => $subscriberEmail,
|
43 |
+
'store_id' => $storeId
|
44 |
+
));
|
45 |
+
if (!$result) {
|
46 |
+
return array();
|
47 |
+
}
|
48 |
+
|
49 |
+
return $result;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Load subscriber by customer
|
54 |
+
*
|
55 |
+
* @param Mage_Customer_Model_Customer $customer
|
56 |
+
* @return array
|
57 |
+
*/
|
58 |
+
public function loadByCustomer(Mage_Customer_Model_Customer $customer)
|
59 |
+
{
|
60 |
+
if (!$this->_isEnabledMultiWebsiteSubscriber()) {
|
61 |
+
return parent::loadByCustomer($customer);
|
62 |
+
}
|
63 |
+
$select = $this->_read->select()
|
64 |
+
->from($this->getMainTable())
|
65 |
+
->where('customer_id=:customer_id')
|
66 |
+
->where('store_id=:store_id');
|
67 |
+
|
68 |
+
$result = $this->_read->fetchRow($select, array(
|
69 |
+
'customer_id' => $customer->getId(),
|
70 |
+
'store_id' => $customer->getStoreId()
|
71 |
+
));
|
72 |
+
|
73 |
+
if ($result) {
|
74 |
+
return $result;
|
75 |
+
}
|
76 |
+
|
77 |
+
$select = $this->_read->select()
|
78 |
+
->from($this->getMainTable())
|
79 |
+
->where('subscriber_email=:subscriber_email')
|
80 |
+
->where('store_id=:store_id');
|
81 |
+
|
82 |
+
$result = $this->_read->fetchRow($select, array(
|
83 |
+
'subscriber_email' => $customer->getEmail(),
|
84 |
+
'store_id' => $customer->getStoreId()
|
85 |
+
));
|
86 |
+
|
87 |
+
if ($result) {
|
88 |
+
return $result;
|
89 |
+
}
|
90 |
+
|
91 |
+
return array();
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Check configuration and Magento version.
|
96 |
+
* @return bool
|
97 |
+
*/
|
98 |
+
private function _isEnabledMultiWebsiteSubscriber()
|
99 |
+
{
|
100 |
+
return $this->_isEnabledConfiguration() && $this->_greaterThan14();
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Is rewrite enabled.
|
105 |
+
* @return bool
|
106 |
+
*/
|
107 |
+
private function _isEnabledConfiguration()
|
108 |
+
{
|
109 |
+
return Mage::getStoreConfigFlag('contactlab_subscribers/global/enable_multiwebsite_subscription');
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Is Mage > 1.4.
|
114 |
+
* @return bool
|
115 |
+
*/
|
116 |
+
private function _greaterThan14()
|
117 |
+
{
|
118 |
+
if ($this->_isEnterprise()) {
|
119 |
+
return true;
|
120 |
+
}
|
121 |
+
$version = Mage::getVersionInfo();
|
122 |
+
return $version['major'] >= '1' && $version['minor'] > '4';
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Is Enterprise edition.
|
127 |
+
* @return bool
|
128 |
+
*/
|
129 |
+
private function _isEnterprise()
|
130 |
+
{
|
131 |
+
return Mage::getEdition() == Mage::EDITION_ENTERPRISE;
|
132 |
+
}
|
133 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Resource/Uk.php
CHANGED
@@ -7,11 +7,15 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
7 |
private $_task;
|
8 |
private $_hasNotices = false;
|
9 |
|
|
|
|
|
|
|
10 |
/**
|
11 |
* Constructor.
|
12 |
*/
|
13 |
-
public function _construct() {
|
14 |
-
$this->_init("contactlab_subscribers/uk", "entity_id");
|
|
|
15 |
}
|
16 |
|
17 |
/** Remove null null records. */
|
@@ -28,6 +32,7 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
28 |
|
29 |
/** Update keys. */
|
30 |
public function update($doit = false) {
|
|
|
31 |
$wr = $this->_getWriteAdapter();
|
32 |
$session = Mage::getSingleton('adminhtml/session');
|
33 |
$this->_purge($wr, $doit, true, $session);
|
@@ -36,20 +41,81 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
36 |
}
|
37 |
|
38 |
/** Insert existing records. */
|
39 |
-
private function _insertExistingRecords($adapter, $doit, $session) {
|
40 |
-
|
41 |
-
$this->
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
return $this;
|
48 |
}
|
49 |
-
|
50 |
/** Delete duplicated subscribers. */
|
51 |
-
private function
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
$subscribers = "newsletter/subscriber";
|
54 |
$subscribersTable = $this->getTable($subscribers);
|
55 |
$select = $adapter
|
@@ -70,11 +136,11 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
70 |
->select()->from(array('s' => $subscribersTable), array('subscriber_id'))
|
71 |
->where("customer_id = " . $id['customer_id'])
|
72 |
->order("subscriber_status desc");
|
73 |
-
|
74 |
$first = true;
|
75 |
foreach ($adapter->fetchAll($select) as $id) {
|
76 |
if (!$first) {
|
77 |
-
|
78 |
if ($doit) {
|
79 |
$select = $adapter->query("delete from $subscribersTable where subscriber_id = " . $id['subscriber_id']);
|
80 |
}
|
@@ -94,32 +160,54 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
94 |
* Insert all record from newsletter_subscriber
|
95 |
* where customer_id and subscriber_id are not in uk table
|
96 |
*/
|
97 |
-
private function _insertFromNewsletterSubscriber($adapter, $doit, $session) {
|
|
|
|
|
98 |
$ukTable = $this->getMainTable();
|
|
|
99 |
$subscribers = "newsletter/subscriber";
|
100 |
$subscribersTable = $this->getTable($subscribers);
|
|
|
|
|
|
|
|
|
|
|
101 |
$select = $adapter
|
102 |
->select()->from(array('s' => $subscribersTable), array(
|
103 |
-
'subscriber_id' => 'subscriber_id'
|
104 |
-
|
105 |
-
)
|
106 |
-
->where("customer_id not in (select customer_id from $
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
|
|
|
|
|
|
|
|
112 |
}
|
113 |
if ($doit) {
|
114 |
// backward compatibility
|
115 |
if ($this->_useCoreInsertFrom()) {
|
116 |
-
$sql = $adapter->insertFromSelect($select,
|
|
|
|
|
117 |
} else {
|
118 |
-
$sql = $this->_insertFromSelect($adapter, $select,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
-
|
121 |
-
$this->addError("$count missing subscribers inserted", $session);
|
122 |
-
return $adapter->query($sql);
|
123 |
} else {
|
124 |
$this->addNotice("Would insert $count missing subscribers", $session);
|
125 |
return $this;
|
@@ -130,20 +218,28 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
130 |
* Insert all record from customers
|
131 |
* where customer_id is no in uk table and it's not a newsletter subscriber
|
132 |
*/
|
133 |
-
private function _insertFromCustomers($adapter, $doit, $session) {
|
|
|
134 |
$ukTable = $this->getMainTable();
|
135 |
$customers = "customer/entity";
|
136 |
$customersTable = $this->getTable($customers);
|
137 |
$subscribers = "newsletter/subscriber";
|
138 |
$subscribersTable = $this->getTable($subscribers);
|
|
|
139 |
$select = $adapter
|
140 |
->select()->from(array('c' => $customersTable), array('entity_id'))
|
141 |
-
->where("entity_id not in (select customer_id from $
|
142 |
-
|
143 |
-
$
|
144 |
-
if (
|
145 |
-
$this->
|
146 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
}
|
148 |
if ($doit) {
|
149 |
// backward compatibility
|
@@ -152,28 +248,32 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
152 |
} else {
|
153 |
$sql = $this->_insertFromSelect($adapter, $select, $ukTable, array('customer_id'));
|
154 |
}
|
155 |
-
|
156 |
-
$
|
157 |
-
|
|
|
|
|
|
|
|
|
158 |
} else {
|
159 |
-
$this->addNotice("Would insert $count missing customers", $session);
|
160 |
-
return $this;
|
161 |
}
|
162 |
}
|
163 |
|
164 |
/**
|
165 |
* Update all uk rows where subscriber_id is not set.
|
166 |
*/
|
167 |
-
private function _updateSubscriberId($adapter, $doit, $session) {
|
|
|
|
|
168 |
$ukTable = $this->getMainTable();
|
169 |
$subscribers = "newsletter/subscriber";
|
170 |
$subscribersTable = $this->getTable($subscribers);
|
171 |
-
|
172 |
$select = $adapter
|
173 |
->select()->from(array('u' => $ukTable), array('entity_id'))
|
174 |
->join(array("s" => $subscribersTable), "s.customer_id = u.customer_id", array('subscriber_id'))
|
175 |
->where("s.subscriber_id != ifnull(u.subscriber_id, -1)");
|
176 |
-
|
177 |
|
178 |
$count = $this->_getCount($adapter, $select);
|
179 |
if ($count === 0) {
|
@@ -196,15 +296,20 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
196 |
/**
|
197 |
* Update all uk rows where customer_id is not set.
|
198 |
*/
|
199 |
-
private function _updateCustomerId($adapter, $doit, $session) {
|
|
|
|
|
200 |
$ukTable = $this->getMainTable();
|
201 |
$subscribers = "newsletter/subscriber";
|
202 |
$subscribersTable = $this->getTable($subscribers);
|
203 |
-
|
204 |
-
$
|
205 |
-
|
206 |
-
|
207 |
-
->
|
|
|
|
|
|
|
208 |
|
209 |
$count = $this->_getCount($adapter, $select);
|
210 |
if ($count === 0) {
|
@@ -212,11 +317,21 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
212 |
return $this;
|
213 |
}
|
214 |
|
|
|
|
|
215 |
if ($doit) {
|
216 |
-
|
217 |
-
|
218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
$row['customer_id'] . " where entity_id = " . $row['entity_id']);
|
|
|
|
|
220 |
}
|
221 |
$this->addError("$count missing customer_id updated", $session);
|
222 |
} else {
|
@@ -228,7 +343,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
228 |
/**
|
229 |
* Couple rows discupled.
|
230 |
*/
|
231 |
-
private function _makeCouples($adapter, $doit, $session) {
|
|
|
232 |
$ukTable = $this->getMainTable();
|
233 |
$subscribers = "newsletter/subscriber";
|
234 |
$subscribersTable = $this->getTable($subscribers);
|
@@ -246,9 +362,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
246 |
}
|
247 |
|
248 |
if ($doit) {
|
249 |
-
|
250 |
foreach ($adapter->fetchAll($select) as $row) {
|
251 |
-
Mage::log($row);
|
252 |
$adapter->query("delete from $ukTable where entity_id = " .
|
253 |
$row['customer_uk_id']);
|
254 |
$adapter->query("update $ukTable set customer_id = " . $row['customer_id'] . " where entity_id = " .
|
@@ -261,8 +376,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
261 |
return $this;
|
262 |
}
|
263 |
|
264 |
-
private function _truncate($adapter, $session) {
|
265 |
-
|
266 |
$adapter->query($sql);
|
267 |
$this->addSuccess("Table truncated", $session);
|
268 |
return $this;
|
@@ -277,7 +392,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
277 |
}
|
278 |
|
279 |
/** Remove null null records. */
|
280 |
-
private function _purge($adapter, $doit, $messages, $session) {
|
|
|
281 |
$select = $adapter->select()
|
282 |
->from($this->getMainTable())
|
283 |
->where('subscriber_id is null and customer_id is null');
|
@@ -305,7 +421,7 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
305 |
return $this;
|
306 |
}
|
307 |
|
308 |
-
private function _getCount($adapter, Varien_Db_Select $select) {
|
309 |
$countSelect = $adapter->select()
|
310 |
->from(
|
311 |
array("t" => $select), array("c" => new Zend_Db_Expr('count(1)')));
|
@@ -318,7 +434,7 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
318 |
/**
|
319 |
* For backward compatibility
|
320 |
*/
|
321 |
-
private function _insertFromSelect($adapter, Varien_Db_Select $select, $table, array $fields = array(), $mode = false) {
|
322 |
$query = 'INSERT';
|
323 |
if ($mode == $adapter::INSERT_IGNORE) {
|
324 |
$query .= ' IGNORE';
|
@@ -376,6 +492,9 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
376 |
* @param Mage_Adminhtml_Model_Session $session
|
377 |
*/
|
378 |
public function addSuccess($message, $session) {
|
|
|
|
|
|
|
379 |
if ($this->hasTask() && $this->getTask()->getSuppressSuccessUk()) {
|
380 |
return;
|
381 |
}
|
@@ -393,6 +512,9 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
393 |
* @param Mage_Adminhtml_Model_Session $session
|
394 |
*/
|
395 |
public function addError($message, $session) {
|
|
|
|
|
|
|
396 |
if (!is_null($session) && $session instanceof Mage_Adminhtml_Model_Session) {
|
397 |
$session->addError($message);
|
398 |
}
|
@@ -408,6 +530,9 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
408 |
*/
|
409 |
public function addNotice($message, $session) {
|
410 |
$this->setHasNotices();
|
|
|
|
|
|
|
411 |
if (!is_null($session) && $session instanceof Mage_Adminhtml_Model_Session) {
|
412 |
$session->addNotice($message);
|
413 |
}
|
@@ -416,12 +541,46 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
|
|
416 |
}
|
417 |
}
|
418 |
|
419 |
-
public function setHasNotices() {
|
420 |
-
$this->_hasNotices =
|
421 |
}
|
422 |
|
423 |
public function getHasNotices() {
|
424 |
return $this->_hasNotices;
|
425 |
}
|
426 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
427 |
}
|
|
7 |
private $_task;
|
8 |
private $_hasNotices = false;
|
9 |
|
10 |
+
/** @var Contactlab_Commons_Helper_Data */
|
11 |
+
private $_helper;
|
12 |
+
|
13 |
/**
|
14 |
* Constructor.
|
15 |
*/
|
16 |
+
public function _construct() {
|
17 |
+
$this->_init("contactlab_subscribers/uk", "entity_id");
|
18 |
+
$this->_helper = Mage::helper('contactlab_commons');
|
19 |
}
|
20 |
|
21 |
/** Remove null null records. */
|
32 |
|
33 |
/** Update keys. */
|
34 |
public function update($doit = false) {
|
35 |
+
/* @var $wr Varien_Db_Adapter_Pdo_Mysql */
|
36 |
$wr = $this->_getWriteAdapter();
|
37 |
$session = Mage::getSingleton('adminhtml/session');
|
38 |
$this->_purge($wr, $doit, true, $session);
|
41 |
}
|
42 |
|
43 |
/** Insert existing records. */
|
44 |
+
private function _insertExistingRecords(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
45 |
+
$this->_helper->logNotice("----------- _insertExistingRecords");
|
46 |
+
$this->_createTmpTables($adapter);
|
47 |
+
try {
|
48 |
+
$this->_makeCouples($adapter, $doit, $session);
|
49 |
+
$this->_deleteDuplicatedSubscribers($adapter, $doit, $session);
|
50 |
+
$this->_deleteOrphanSubscribers($adapter, $doit, $session);
|
51 |
+
$this->_insertFromNewsletterSubscriber($adapter, $doit, $session);
|
52 |
+
$this->_updateSubscriberId($adapter, $doit, $session);
|
53 |
+
$this->_insertFromCustomers($adapter, $doit, $session);
|
54 |
+
$this->_updateCustomerId($adapter, $doit, $session);
|
55 |
+
$this->_helper->logNotice("----------- DONE");
|
56 |
+
} catch (Exception $e) {
|
57 |
+
$this->_dropTmpTables($adapter);
|
58 |
+
throw $e;
|
59 |
+
}
|
60 |
+
$this->_dropTmpTables($adapter);
|
61 |
return $this;
|
62 |
}
|
63 |
+
|
64 |
/** Delete duplicated subscribers. */
|
65 |
+
private function _deleteOrphanSubscribers($adapter, $doit, $session) {
|
66 |
+
$subscribers = "newsletter/subscriber";
|
67 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
68 |
+
|
69 |
+
$subscribersTable = $this->getTable($subscribers);
|
70 |
+
$select = $adapter
|
71 |
+
->select()->from(array('s' => $subscribersTable), array('customer_id','subscriber_id'))
|
72 |
+
->where("customer_id > 0 AND customer_id NOT IN (select entity_id FROM {$tablePrefix}customer_entity)");
|
73 |
+
|
74 |
+
$count = $this->_getCount($adapter, $select);
|
75 |
+
if ($count === 0) {
|
76 |
+
$this->addSuccess("No orphan subscribers found", $session);
|
77 |
+
return $this;
|
78 |
+
}
|
79 |
+
|
80 |
+
if ($doit) {
|
81 |
+
/*
|
82 |
+
foreach ($adapter->fetchAll($select) as $id) {
|
83 |
+
$select = $adapter
|
84 |
+
->select()->from(array('s' => $subscribersTable), array('subscriber_id'))
|
85 |
+
->where("customer_id = " . $id['customer_id'])
|
86 |
+
->order("subscriber_status desc");
|
87 |
+
Mage::log($select->assemble());
|
88 |
+
$first = true;
|
89 |
+
foreach ($adapter->fetchAll($select) as $id) {
|
90 |
+
if (!$first) {
|
91 |
+
Mage::log("Will delete " . $id['subscriber_id']);
|
92 |
+
if ($doit) {
|
93 |
+
$select = $adapter->query("delete from $subscribersTable where subscriber_id = " . $id['subscriber_id']);
|
94 |
+
}
|
95 |
+
}
|
96 |
+
$first = false;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
$this->addError("$count duplicated subscribers removed", $session);
|
100 |
+
return $this;
|
101 |
+
*/
|
102 |
+
} else {
|
103 |
+
$string='Table '.$subscribersTable.' subscriber_id: ';
|
104 |
+
foreach ($adapter->fetchAll($select) as $id) {
|
105 |
+
$string.= $id["subscriber_id"].",";
|
106 |
+
}
|
107 |
+
$bckNotice = $this->getHasNotices();
|
108 |
+
$this->addNotice("There are $count orphan subscribers :: $string", $session);
|
109 |
+
$this->setHasNotices($bckNotice);
|
110 |
+
return $this;
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
|
115 |
+
/** Delete duplicated subscribers. */
|
116 |
+
private function _deleteDuplicatedSubscribers(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
117 |
+
|
118 |
+
$this->_helper->logNotice("----------- _deleteDuplicatedSubscribers");
|
119 |
$subscribers = "newsletter/subscriber";
|
120 |
$subscribersTable = $this->getTable($subscribers);
|
121 |
$select = $adapter
|
136 |
->select()->from(array('s' => $subscribersTable), array('subscriber_id'))
|
137 |
->where("customer_id = " . $id['customer_id'])
|
138 |
->order("subscriber_status desc");
|
139 |
+
$this->_helper->logNotice($select->assemble());
|
140 |
$first = true;
|
141 |
foreach ($adapter->fetchAll($select) as $id) {
|
142 |
if (!$first) {
|
143 |
+
$this->_helper->logNotice("Will delete " . $id['subscriber_id']);
|
144 |
if ($doit) {
|
145 |
$select = $adapter->query("delete from $subscribersTable where subscriber_id = " . $id['subscriber_id']);
|
146 |
}
|
160 |
* Insert all record from newsletter_subscriber
|
161 |
* where customer_id and subscriber_id are not in uk table
|
162 |
*/
|
163 |
+
private function _insertFromNewsletterSubscriber(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
164 |
+
|
165 |
+
$this->_helper->logNotice("----------- _insertFromNewsletterSubscriber");
|
166 |
$ukTable = $this->getMainTable();
|
167 |
+
|
168 |
$subscribers = "newsletter/subscriber";
|
169 |
$subscribersTable = $this->getTable($subscribers);
|
170 |
+
$customers = "customer/entity";
|
171 |
+
$customersTable = $this->getTable($customers);
|
172 |
+
|
173 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
174 |
+
|
175 |
$select = $adapter
|
176 |
->select()->from(array('s' => $subscribersTable), array(
|
177 |
+
'subscriber_id' => 'subscriber_id')
|
178 |
+
)
|
179 |
+
->joinLeft(array("c" => $customersTable), "s.customer_id = c.entity_id", array('customer_id' => 'entity_id'))
|
180 |
+
->where("customer_id not in (select customer_id from {$tablePrefix}contactlab_customers_tmp_idx) and subscriber_id
|
181 |
+
not in (select subscriber_id from {$tablePrefix}contactlab_subscribers_tmp_idx)");
|
182 |
+
|
183 |
+
$this->_helper->logNotice($select->assemble());
|
184 |
+
if (!$doit) {
|
185 |
+
$count = $this->_getCount($adapter, $select);
|
186 |
+
if ($count === 0) {
|
187 |
+
$this->addSuccess("No newsletter subscribers to insert", $session);
|
188 |
+
return $this;
|
189 |
+
}
|
190 |
}
|
191 |
if ($doit) {
|
192 |
// backward compatibility
|
193 |
if ($this->_useCoreInsertFrom()) {
|
194 |
+
$sql = $adapter->insertFromSelect($select,
|
195 |
+
$ukTable, array('subscriber_id', 'customer_id')/*,
|
196 |
+
Varien_Db_Adapter_Interface::INSERT_IGNORE*/);
|
197 |
} else {
|
198 |
+
$sql = $this->_insertFromSelect($adapter, $select,
|
199 |
+
$ukTable,
|
200 |
+
array('subscriber_id', 'customer_id')/*,
|
201 |
+
Varien_Db_Adapter_Interface::INSERT_IGNORE*/);
|
202 |
+
}
|
203 |
+
$this->_helper->logNotice($sql);
|
204 |
+
|
205 |
+
$rv = $adapter->query($sql);
|
206 |
+
$count = $rv->rowCount();
|
207 |
+
if ($count > 0) {
|
208 |
+
$this->addError("$count missing subscribers inserted", $session);
|
209 |
}
|
210 |
+
return $rv;
|
|
|
|
|
211 |
} else {
|
212 |
$this->addNotice("Would insert $count missing subscribers", $session);
|
213 |
return $this;
|
218 |
* Insert all record from customers
|
219 |
* where customer_id is no in uk table and it's not a newsletter subscriber
|
220 |
*/
|
221 |
+
private function _insertFromCustomers(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
222 |
+
$this->_helper->logNotice("----------- _insertFromCustomers");
|
223 |
$ukTable = $this->getMainTable();
|
224 |
$customers = "customer/entity";
|
225 |
$customersTable = $this->getTable($customers);
|
226 |
$subscribers = "newsletter/subscriber";
|
227 |
$subscribersTable = $this->getTable($subscribers);
|
228 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
229 |
$select = $adapter
|
230 |
->select()->from(array('c' => $customersTable), array('entity_id'))
|
231 |
+
->where("entity_id not in (select customer_id from {$tablePrefix}contactlab_customers_tmp_idx) and entity_id not in (select customer_id from $subscribersTable)");
|
232 |
+
|
233 |
+
$this->_helper->logNotice($select->assemble());
|
234 |
+
if (!$doit) {
|
235 |
+
$count = $this->_getCount($adapter, $select);
|
236 |
+
if ($count === 0) {
|
237 |
+
$this->addSuccess("No customer to insert", $session);
|
238 |
+
return $this;
|
239 |
+
} else {
|
240 |
+
$this->addNotice("Would insert $count missing customers", $session);
|
241 |
+
return $this;
|
242 |
+
}
|
243 |
}
|
244 |
if ($doit) {
|
245 |
// backward compatibility
|
248 |
} else {
|
249 |
$sql = $this->_insertFromSelect($adapter, $select, $ukTable, array('customer_id'));
|
250 |
}
|
251 |
+
$this->_helper->logNotice($sql);
|
252 |
+
$rv = $adapter->query($sql);
|
253 |
+
$count = $rv->rowCount();
|
254 |
+
if ($count > 0) {
|
255 |
+
$this->addError("$count missing customers inserted", $session);
|
256 |
+
}
|
257 |
+
return $rv;
|
258 |
} else {
|
|
|
|
|
259 |
}
|
260 |
}
|
261 |
|
262 |
/**
|
263 |
* Update all uk rows where subscriber_id is not set.
|
264 |
*/
|
265 |
+
private function _updateSubscriberId(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
266 |
+
$this->_helper->logNotice("----------- _updateSubscriberId");
|
267 |
+
|
268 |
$ukTable = $this->getMainTable();
|
269 |
$subscribers = "newsletter/subscriber";
|
270 |
$subscribersTable = $this->getTable($subscribers);
|
271 |
+
|
272 |
$select = $adapter
|
273 |
->select()->from(array('u' => $ukTable), array('entity_id'))
|
274 |
->join(array("s" => $subscribersTable), "s.customer_id = u.customer_id", array('subscriber_id'))
|
275 |
->where("s.subscriber_id != ifnull(u.subscriber_id, -1)");
|
276 |
+
$this->_helper->logNotice($select->assemble());
|
277 |
|
278 |
$count = $this->_getCount($adapter, $select);
|
279 |
if ($count === 0) {
|
296 |
/**
|
297 |
* Update all uk rows where customer_id is not set.
|
298 |
*/
|
299 |
+
private function _updateCustomerId(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
300 |
+
|
301 |
+
$this->_helper->logNotice("----------- _updateCustomerId");
|
302 |
$ukTable = $this->getMainTable();
|
303 |
$subscribers = "newsletter/subscriber";
|
304 |
$subscribersTable = $this->getTable($subscribers);
|
305 |
+
$customers = "customer/entity";
|
306 |
+
$customersTable = $this->getTable($customers);
|
307 |
+
|
308 |
+
$select = $adapter->select()->from(array('u' => $ukTable), array('entity_id'))
|
309 |
+
->join(array("s" => $subscribersTable), "s.subscriber_id = u.subscriber_id", array(''))
|
310 |
+
->joinLeft(array("c" => $customersTable), "s.customer_id = c.entity_id", array('customer_id' => 'entity_id'))
|
311 |
+
->where("ifnull(c.entity_id, -1) != ifnull(u.customer_id, -1)");
|
312 |
+
|
313 |
|
314 |
$count = $this->_getCount($adapter, $select);
|
315 |
if ($count === 0) {
|
317 |
return $this;
|
318 |
}
|
319 |
|
320 |
+
|
321 |
+
|
322 |
if ($doit) {
|
323 |
+
$this->_helper->logNotice($select->assemble());
|
324 |
+
|
325 |
+
foreach ($adapter->fetchAll($select) as $row) {
|
326 |
+
if(!$row['customer_id'])
|
327 |
+
{
|
328 |
+
$row['customer_id'] = 'NULL';
|
329 |
+
}
|
330 |
+
|
331 |
+
$sql = $adapter->query("update $ukTable set customer_id = " .
|
332 |
$row['customer_id'] . " where entity_id = " . $row['entity_id']);
|
333 |
+
|
334 |
+
|
335 |
}
|
336 |
$this->addError("$count missing customer_id updated", $session);
|
337 |
} else {
|
343 |
/**
|
344 |
* Couple rows discupled.
|
345 |
*/
|
346 |
+
private function _makeCouples(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
|
347 |
+
$this->_helper->logNotice("----------- _makeCouples");
|
348 |
$ukTable = $this->getMainTable();
|
349 |
$subscribers = "newsletter/subscriber";
|
350 |
$subscribersTable = $this->getTable($subscribers);
|
362 |
}
|
363 |
|
364 |
if ($doit) {
|
365 |
+
$this->_helper->logNotice($select->assemble());
|
366 |
foreach ($adapter->fetchAll($select) as $row) {
|
|
|
367 |
$adapter->query("delete from $ukTable where entity_id = " .
|
368 |
$row['customer_uk_id']);
|
369 |
$adapter->query("update $ukTable set customer_id = " . $row['customer_id'] . " where entity_id = " .
|
376 |
return $this;
|
377 |
}
|
378 |
|
379 |
+
private function _truncate(Varien_Db_Adapter_Pdo_Mysql $adapter, $session) {
|
380 |
+
$sql = "truncate table " . $this->getMainTable();
|
381 |
$adapter->query($sql);
|
382 |
$this->addSuccess("Table truncated", $session);
|
383 |
return $this;
|
392 |
}
|
393 |
|
394 |
/** Remove null null records. */
|
395 |
+
private function _purge(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $messages, $session) {
|
396 |
+
$this->_helper->logNotice("----------- Purge");
|
397 |
$select = $adapter->select()
|
398 |
->from($this->getMainTable())
|
399 |
->where('subscriber_id is null and customer_id is null');
|
421 |
return $this;
|
422 |
}
|
423 |
|
424 |
+
private function _getCount(Varien_Db_Adapter_Pdo_Mysql $adapter, Varien_Db_Select $select) {
|
425 |
$countSelect = $adapter->select()
|
426 |
->from(
|
427 |
array("t" => $select), array("c" => new Zend_Db_Expr('count(1)')));
|
434 |
/**
|
435 |
* For backward compatibility
|
436 |
*/
|
437 |
+
private function _insertFromSelect(Varien_Db_Adapter_Pdo_Mysql $adapter, Varien_Db_Select $select, $table, array $fields = array(), $mode = false) {
|
438 |
$query = 'INSERT';
|
439 |
if ($mode == $adapter::INSERT_IGNORE) {
|
440 |
$query .= ' IGNORE';
|
492 |
* @param Mage_Adminhtml_Model_Session $session
|
493 |
*/
|
494 |
public function addSuccess($message, $session) {
|
495 |
+
if ($this->skipMessages()) {
|
496 |
+
return;
|
497 |
+
}
|
498 |
if ($this->hasTask() && $this->getTask()->getSuppressSuccessUk()) {
|
499 |
return;
|
500 |
}
|
512 |
* @param Mage_Adminhtml_Model_Session $session
|
513 |
*/
|
514 |
public function addError($message, $session) {
|
515 |
+
if ($this->skipMessages()) {
|
516 |
+
return;
|
517 |
+
}
|
518 |
if (!is_null($session) && $session instanceof Mage_Adminhtml_Model_Session) {
|
519 |
$session->addError($message);
|
520 |
}
|
530 |
*/
|
531 |
public function addNotice($message, $session) {
|
532 |
$this->setHasNotices();
|
533 |
+
if ($this->skipMessages()) {
|
534 |
+
return;
|
535 |
+
}
|
536 |
if (!is_null($session) && $session instanceof Mage_Adminhtml_Model_Session) {
|
537 |
$session->addNotice($message);
|
538 |
}
|
541 |
}
|
542 |
}
|
543 |
|
544 |
+
public function setHasNotices($value = true) {
|
545 |
+
$this->_hasNotices = $value;
|
546 |
}
|
547 |
|
548 |
public function getHasNotices() {
|
549 |
return $this->_hasNotices;
|
550 |
}
|
551 |
|
552 |
+
private function skipMessages()
|
553 |
+
{
|
554 |
+
if ($this->hasTask()) {
|
555 |
+
if ($this->getTask()->getSkipMessages()) {
|
556 |
+
return true;
|
557 |
+
}
|
558 |
+
}
|
559 |
+
return false;
|
560 |
+
}
|
561 |
+
|
562 |
+
private function _createTmpTables(Varien_Db_Adapter_Pdo_Mysql $adapter)
|
563 |
+
{
|
564 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
565 |
+
|
566 |
+
$this->_helper->logNotice("----------- _createTmpTables");
|
567 |
+
$this->_dropTmpTables($adapter);
|
568 |
+
|
569 |
+
$adapter->query("create table {$tablePrefix}contactlab_subscribers_tmp_idx as select subscriber_id from {$tablePrefix}contactlab_subscribers_uk where subscriber_id is not null;");
|
570 |
+
$adapter->query("create table {$tablePrefix}contactlab_customers_tmp_idx as select customer_id from {$tablePrefix}contactlab_subscribers_uk where customer_id is not null;");
|
571 |
+
$adapter->query("alter table {$tablePrefix}contactlab_subscribers_tmp_idx add unique key contactlab_subscribers_uks (subscriber_id);");
|
572 |
+
$adapter->query("alter table {$tablePrefix}contactlab_customers_tmp_idx add unique key contactlab_subscribers_ukc (customer_id);");
|
573 |
+
|
574 |
+
}
|
575 |
+
|
576 |
+
private function _dropTmpTables(Varien_Db_Adapter_Pdo_Mysql $adapter)
|
577 |
+
{
|
578 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
579 |
+
|
580 |
+
$this->_helper->logNotice("----------- _dropTmpTables");
|
581 |
+
|
582 |
+
$adapter->query("drop table if exists {$tablePrefix}contactlab_subscribers_tmp_idx;");
|
583 |
+
$adapter->query("drop table if exists {$tablePrefix}contactlab_customers_tmp_idx;");
|
584 |
+
}
|
585 |
}
|
586 |
+
|
app/code/community/Contactlab/Subscribers/Model/Soap/SetSubscriptionStatus.php
CHANGED
@@ -2,6 +2,10 @@
|
|
2 |
|
3 |
/**
|
4 |
* Model for SetSubscriptionStatus calls.
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus extends Contactlab_Subscribers_Model_Soap_AbstractSubscriberCall {
|
7 |
/** Do the SOAP call. */
|
2 |
|
3 |
/**
|
4 |
* Model for SetSubscriptionStatus calls.
|
5 |
+
* @method Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus setStoreId($value)
|
6 |
+
* @method Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus setEntityId($value)
|
7 |
+
* @method Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus setSubscriberEmail($value)
|
8 |
+
* @method Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus setSubscriberStatus($value)
|
9 |
*/
|
10 |
class Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus extends Contactlab_Subscribers_Model_Soap_AbstractSubscriberCall {
|
11 |
/** Do the SOAP call. */
|
app/code/community/Contactlab/Subscribers/Model/Stats.php
CHANGED
@@ -2,6 +2,15 @@
|
|
2 |
|
3 |
/**
|
4 |
* Exporter data helper.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
7 |
/**
|
@@ -11,7 +20,11 @@ class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
|
11 |
$this->_init("contactlab_subscribers/stats");
|
12 |
}
|
13 |
|
14 |
-
/**
|
|
|
|
|
|
|
|
|
15 |
public function updateFromCustomer(Mage_Customer_Model_Customer $customer) {
|
16 |
$this->_updateLastOrder($customer);
|
17 |
$this->_updateTotalOrder($customer);
|
@@ -20,8 +33,12 @@ class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
|
20 |
return $this;
|
21 |
}
|
22 |
|
23 |
-
/**
|
|
|
|
|
|
|
24 |
private function _updateLastOrder(Mage_Customer_Model_Customer $customer) {
|
|
|
25 |
$order = $this->_getLastOrder($customer);
|
26 |
if ($order) {
|
27 |
$this->setLastOrderDate($order->getCreatedAt());
|
@@ -34,12 +51,17 @@ class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
|
34 |
}
|
35 |
}
|
36 |
|
37 |
-
/**
|
|
|
|
|
|
|
|
|
38 |
private function _updateTotalOrderPeriod(Mage_Customer_Model_Customer $customer, $period) {
|
39 |
$periodLength = Mage::getStoreConfig("contactlab_subscribers/stats/period_" . $period);
|
40 |
if (!is_numeric($periodLength) || $periodLength == 0) {
|
41 |
return;
|
42 |
}
|
|
|
43 |
$coll = Mage::getModel('sales/order')
|
44 |
->getCollection()
|
45 |
->addExpressionFieldToSelect('grand_total', 'sum({{base_grand_total}})', 'base_grand_total')
|
@@ -57,8 +79,12 @@ class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
|
57 |
}
|
58 |
}
|
59 |
|
60 |
-
/**
|
|
|
|
|
|
|
61 |
private function _updateTotalOrder(Mage_Customer_Model_Customer $customer) {
|
|
|
62 |
$coll = Mage::getModel('sales/order')
|
63 |
->getCollection()
|
64 |
->addExpressionFieldToSelect('grand_total', 'sum({{base_grand_total}})', 'base_grand_total')
|
@@ -79,6 +105,7 @@ class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
|
79 |
|
80 |
/** Get last order of customer $customer. */
|
81 |
private function _getLastOrder(Mage_Customer_Model_Customer $customer) {
|
|
|
82 |
$coll = Mage::getModel('sales/order')
|
83 |
->getCollection()
|
84 |
->setOrder('created_at', 'desc')
|
2 |
|
3 |
/**
|
4 |
* Exporter data helper.
|
5 |
+
* @method Contactlab_Subscribers_Model_Stats setCustomerId($value)
|
6 |
+
* @method setTotalOrdersAmount($value)
|
7 |
+
* @method setTotalOrdersProducts($value)
|
8 |
+
* @method setTotalOrdersCount($value)
|
9 |
+
* @method setAvgOrdersAmount($value)
|
10 |
+
* @method setAvgOrdersProducts($value)
|
11 |
+
* @method setLastOrderDate($value)
|
12 |
+
* @method setLastOrderAmount($value)
|
13 |
+
* @method setLastOrderProducts($value)
|
14 |
*/
|
15 |
class Contactlab_Subscribers_Model_Stats extends Mage_Core_Model_Abstract {
|
16 |
/**
|
20 |
$this->_init("contactlab_subscribers/stats");
|
21 |
}
|
22 |
|
23 |
+
/**
|
24 |
+
* Update customer statistics
|
25 |
+
* @param Mage_Customer_Model_Customer $customer
|
26 |
+
* @return $this
|
27 |
+
*/
|
28 |
public function updateFromCustomer(Mage_Customer_Model_Customer $customer) {
|
29 |
$this->_updateLastOrder($customer);
|
30 |
$this->_updateTotalOrder($customer);
|
33 |
return $this;
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
* Update last order statistics.
|
38 |
+
* @param Mage_Customer_Model_Customer $customer
|
39 |
+
*/
|
40 |
private function _updateLastOrder(Mage_Customer_Model_Customer $customer) {
|
41 |
+
/** @var $order Mage_Sales_Model_Order */
|
42 |
$order = $this->_getLastOrder($customer);
|
43 |
if ($order) {
|
44 |
$this->setLastOrderDate($order->getCreatedAt());
|
51 |
}
|
52 |
}
|
53 |
|
54 |
+
/**
|
55 |
+
* Update orders statistics for period.
|
56 |
+
* @param Mage_Customer_Model_Customer $customer
|
57 |
+
* @param $period
|
58 |
+
*/
|
59 |
private function _updateTotalOrderPeriod(Mage_Customer_Model_Customer $customer, $period) {
|
60 |
$periodLength = Mage::getStoreConfig("contactlab_subscribers/stats/period_" . $period);
|
61 |
if (!is_numeric($periodLength) || $periodLength == 0) {
|
62 |
return;
|
63 |
}
|
64 |
+
/* @var $coll Mage_Sales_Model_Resource_Order_Collection */
|
65 |
$coll = Mage::getModel('sales/order')
|
66 |
->getCollection()
|
67 |
->addExpressionFieldToSelect('grand_total', 'sum({{base_grand_total}})', 'base_grand_total')
|
79 |
}
|
80 |
}
|
81 |
|
82 |
+
/**
|
83 |
+
* Update all orders statistics.
|
84 |
+
* @param Mage_Customer_Model_Customer $customer
|
85 |
+
*/
|
86 |
private function _updateTotalOrder(Mage_Customer_Model_Customer $customer) {
|
87 |
+
/* @var $coll Mage_Sales_Model_Resource_Order_Collection */
|
88 |
$coll = Mage::getModel('sales/order')
|
89 |
->getCollection()
|
90 |
->addExpressionFieldToSelect('grand_total', 'sum({{base_grand_total}})', 'base_grand_total')
|
105 |
|
106 |
/** Get last order of customer $customer. */
|
107 |
private function _getLastOrder(Mage_Customer_Model_Customer $customer) {
|
108 |
+
/* @var $coll Mage_Sales_Model_Resource_Order_Collection */
|
109 |
$coll = Mage::getModel('sales/order')
|
110 |
->getCollection()
|
111 |
->setOrder('created_at', 'desc')
|
app/code/community/Contactlab/Subscribers/Model/System/Config/Source/Export/CheckUkPolicy.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Check Uk Policy.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Model_System_Config_Source_Export_CheckUkPolicy {
|
7 |
+
/**
|
8 |
+
* Options getter
|
9 |
+
*
|
10 |
+
* @return array
|
11 |
+
*/
|
12 |
+
public function toOptionArray() {
|
13 |
+
return array(
|
14 |
+
array('value' => 0, 'label' => Mage::helper('contactlab_subscribers')->__('No')),
|
15 |
+
array('value' => 1, 'label' => Mage::helper('contactlab_subscribers')->__('Only check')),
|
16 |
+
array('value' => 2, 'label' => Mage::helper('contactlab_subscribers')->__('Check and repair')),
|
17 |
+
);
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get options in "key-value" format
|
22 |
+
*
|
23 |
+
* @return array
|
24 |
+
*/
|
25 |
+
public function toArray() {
|
26 |
+
return array(
|
27 |
+
0 => Mage::helper('contactlab_subscribers')->__('No'),
|
28 |
+
1 => Mage::helper('contactlab_subscribers')->__('Only check'),
|
29 |
+
2 => Mage::helper('contactlab_subscribers')->__('Check and repair'),
|
30 |
+
);
|
31 |
+
}
|
32 |
+
|
33 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Task/ExportSubscribersRunner.php
CHANGED
@@ -14,10 +14,20 @@ class Contactlab_Subscribers_Model_Task_ExportSubscribersRunner extends Contactl
|
|
14 |
if ($task->getConfigFlag("contactlab_commons/soap/enable")) {
|
15 |
$this->_checkSubscriberDataExchangeStatus();
|
16 |
}
|
17 |
-
if (
|
|
|
|
|
|
|
18 |
if (!$this->_checkUk()) {
|
19 |
throw new Exception("UK Table inconsistent, please fix it with the \"Update unique Keys\" button in the task page!");
|
20 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
}
|
22 |
$this->setExporter(Mage::getModel("contactlab_subscribers/exporter_subscribers")
|
23 |
->setTask($this->getTask()));
|
@@ -48,11 +58,30 @@ class Contactlab_Subscribers_Model_Task_ExportSubscribersRunner extends Contactl
|
|
48 |
return Mage::getStoreConfig("contactlab_subscribers/global/memory_limit");
|
49 |
}
|
50 |
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
52 |
/* @var $helper Contactlab_Subscribers_Helper_Uk */
|
53 |
$helper = Mage::helper('contactlab_subscribers/uk');
|
54 |
$this->getTask()->setSuppressSuccessUk(true);
|
|
|
55 |
return $helper->updateAll(false, $this->getTask());
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
14 |
if ($task->getConfigFlag("contactlab_commons/soap/enable")) {
|
15 |
$this->_checkSubscriberDataExchangeStatus();
|
16 |
}
|
17 |
+
if (!Mage::helper('contactlab_subscribers/checks')->checkAvailableEssentialChecks()) {
|
18 |
+
throw Mage::helper('contactlab_subscribers/checks')->getLastCheckException($task);
|
19 |
+
}
|
20 |
+
if ($task->getConfig("contactlab_subscribers/global/check_uk_before_export") == '1') {
|
21 |
if (!$this->_checkUk()) {
|
22 |
throw new Exception("UK Table inconsistent, please fix it with the \"Update unique Keys\" button in the task page!");
|
23 |
}
|
24 |
+
} else if ($task->getConfig("contactlab_subscribers/global/check_uk_before_export") == '2') {
|
25 |
+
if (!$this->_checkUk(true)) {
|
26 |
+
$this->_repairUk(true);
|
27 |
+
if (!$this->_checkUk()) {
|
28 |
+
throw new Exception("UK Table inconsistent, please fix it with the \"Update unique Keys\" button in the task page!");
|
29 |
+
}
|
30 |
+
}
|
31 |
}
|
32 |
$this->setExporter(Mage::getModel("contactlab_subscribers/exporter_subscribers")
|
33 |
->setTask($this->getTask()));
|
58 |
return Mage::getStoreConfig("contactlab_subscribers/global/memory_limit");
|
59 |
}
|
60 |
|
61 |
+
/**
|
62 |
+
* Check UK table.
|
63 |
+
* @param boolean $skipMessages
|
64 |
+
* @return boolean
|
65 |
+
*/
|
66 |
+
private function _checkUk($skipMessages = false) {
|
67 |
/* @var $helper Contactlab_Subscribers_Helper_Uk */
|
68 |
$helper = Mage::helper('contactlab_subscribers/uk');
|
69 |
$this->getTask()->setSuppressSuccessUk(true);
|
70 |
+
$this->getTask()->setSkipMessages($skipMessages);
|
71 |
return $helper->updateAll(false, $this->getTask());
|
72 |
}
|
73 |
|
74 |
+
/**
|
75 |
+
* Repair UK table.
|
76 |
+
* @param boolean $skipMessages
|
77 |
+
* @return boolean
|
78 |
+
*/
|
79 |
+
private function _repairUk($skipMessages = false)
|
80 |
+
{
|
81 |
+
/* @var $helper Contactlab_Subscribers_Helper_Uk */
|
82 |
+
$helper = Mage::helper('contactlab_subscribers/uk');
|
83 |
+
$this->getTask()->setSuppressSuccessUk(true);
|
84 |
+
$this->getTask()->setSkipMessages($skipMessages);
|
85 |
+
return $helper->updateAll(true, $this->getTask());
|
86 |
+
}
|
87 |
}
|
app/code/community/Contactlab/Subscribers/Model/Uk.php
CHANGED
@@ -2,6 +2,25 @@
|
|
2 |
|
3 |
/**
|
4 |
* Uk table model.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Subscribers_Model_Uk extends Mage_Core_Model_Abstract {
|
7 |
/**
|
@@ -11,17 +30,25 @@ class Contactlab_Subscribers_Model_Uk extends Mage_Core_Model_Abstract {
|
|
11 |
$this->_init("contactlab_subscribers/uk");
|
12 |
}
|
13 |
|
14 |
-
/**
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
17 |
}
|
18 |
|
19 |
-
/**
|
20 |
-
|
|
|
|
|
|
|
21 |
/* @var $resource Contactlab_Subscribers_Model_Resource_Uk */
|
22 |
$resource = $this->getResource();
|
|
|
|
|
23 |
$resource->setTask($this->getTask());
|
24 |
-
$resource->update($
|
25 |
if ($resource->getHasNotices()) {
|
26 |
$this->setHasNotices(true);
|
27 |
}
|
2 |
|
3 |
/**
|
4 |
* Uk table model.
|
5 |
+
* @method bool getSubscriberId()
|
6 |
+
* @method bool hasEntityId()
|
7 |
+
* @method bool hasSubscriberId()
|
8 |
+
* @method Contactlab_Commons_Model_Task getTask()
|
9 |
+
* @method setHasNotices($true)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* @method bool hasEntityId()
|
14 |
+
* @method bool getHasNotices()
|
15 |
+
* @method int getEntityId()
|
16 |
+
* @method Contactlab_Subscribers_Model_Uk setEntityId(int $value)
|
17 |
+
* @method int getSubscriberId()
|
18 |
+
* @method Contactlab_Subscribers_Model_Uk setSubscriberId(int $value)
|
19 |
+
* @method int getCustomerId()
|
20 |
+
* @method Contactlab_Subscribers_Model_Uk setCustomerId(int $value)
|
21 |
+
* @method int getIsExported()
|
22 |
+
* @method Contactlab_Subscribers_Model_Uk setIsExported(int $value)
|
23 |
+
* @method Contactlab_Subscribers_Model_Uk setTask(Contactlab_Commons_Model_Task $value)
|
24 |
*/
|
25 |
class Contactlab_Subscribers_Model_Uk extends Mage_Core_Model_Abstract {
|
26 |
/**
|
30 |
$this->_init("contactlab_subscribers/uk");
|
31 |
}
|
32 |
|
33 |
+
/**
|
34 |
+
* Remove null null records.
|
35 |
+
* @param bool $doIt
|
36 |
+
*/
|
37 |
+
public function purge($doIt = true) {
|
38 |
+
$this->getResource()->purge($doIt);
|
39 |
}
|
40 |
|
41 |
+
/**
|
42 |
+
* Update keys.
|
43 |
+
* @param bool $doIt
|
44 |
+
*/
|
45 |
+
public function update($doIt = false) {
|
46 |
/* @var $resource Contactlab_Subscribers_Model_Resource_Uk */
|
47 |
$resource = $this->getResource();
|
48 |
+
$this->setHasNotices(false);
|
49 |
+
$resource->setHasNotices(false);
|
50 |
$resource->setTask($this->getTask());
|
51 |
+
$resource->update($doIt);
|
52 |
if ($resource->getHasNotices()) {
|
53 |
$this->setHasNotices(true);
|
54 |
}
|
app/code/community/Contactlab/Subscribers/Test/Helper/Checks.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Helper_Checks extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* @var Contactlab_Subscribers_Helper_Checks
|
7 |
+
*/
|
8 |
+
private $helper;
|
9 |
+
|
10 |
+
protected function setUp() {
|
11 |
+
$this->helper = Mage::helper("contactlab_subscribers/checks");
|
12 |
+
}
|
13 |
+
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Get available checks.
|
17 |
+
* @test
|
18 |
+
*/
|
19 |
+
public function getAvailableChecks() {
|
20 |
+
$essentials = $this->helper->getAvailableChecks(true);
|
21 |
+
$all = $this->helper->getAvailableChecks();
|
22 |
+
$this->assertInternalType('array', $essentials);
|
23 |
+
$this->assertInternalType('array', $all);
|
24 |
+
$this->assertNotEmpty($all);
|
25 |
+
$this->assertNotEmpty($essentials);
|
26 |
+
$this->assertGreaterThan(count($essentials), count($all));
|
27 |
+
$this->checkCheckInstances($all);
|
28 |
+
$this->checkCheckInstances($essentials);
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Run all available checks.
|
33 |
+
* @test
|
34 |
+
*/
|
35 |
+
public function runAvailableChecks() {
|
36 |
+
$this->doTestRunAvailableChecks(true);
|
37 |
+
$this->doTestRunAvailableChecks(false);
|
38 |
+
}
|
39 |
+
|
40 |
+
private function doTestRunAvailableChecks($bool) {
|
41 |
+
$checks = $this->helper->runAvailableChecks($bool);
|
42 |
+
$this->assertNotEmpty($checks);
|
43 |
+
foreach ($checks as $check) {
|
44 |
+
/* @var Contactlab_Subscribers_Model_Checks_CheckInterface $check */
|
45 |
+
$this->assertInstanceOf('Contactlab_Subscribers_Model_Checks_CheckInterface', $check);
|
46 |
+
if ($check->shouldFailInTest()) {
|
47 |
+
$this->assertEquals($check->getExitCode(), Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR,
|
48 |
+
$check->getName() . ' success');
|
49 |
+
} else {
|
50 |
+
$this->assertEquals($check->getExitCode(), Contactlab_Subscribers_Model_Checks_CheckInterface::SUCCESS,
|
51 |
+
$check->getName() . ' failed');
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get last checks exit code.
|
58 |
+
* @test
|
59 |
+
*/
|
60 |
+
public function getLastExitCode() {
|
61 |
+
$this->helper->runAvailableChecks(true);
|
62 |
+
$this->assertEquals($this->helper->getLastExitCode(), Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR);
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Run available essential checks and return last status.
|
67 |
+
* @test
|
68 |
+
*/
|
69 |
+
public function checkAvailableEssentialChecks() {
|
70 |
+
$this->assertFalse($this->helper->checkAvailableEssentialChecks());
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Check Check instance.
|
75 |
+
* @param $all
|
76 |
+
*/
|
77 |
+
private function checkCheckInstances($all) {
|
78 |
+
foreach ($all as $check) {
|
79 |
+
/* @var Contactlab_Subscribers_Model_Checks_CheckInterface $check */
|
80 |
+
$this->assertInstanceOf('Contactlab_Subscribers_Model_Checks_CheckInterface', $check);
|
81 |
+
}
|
82 |
+
}
|
83 |
+
}
|
app/code/community/Contactlab/Subscribers/Test/Model/Checks/ContactlabAuthApiKeyCheck.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Model_Checks_ContactlabAuthApiKeyCheck extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
private $check;
|
6 |
+
|
7 |
+
protected function setUp() {
|
8 |
+
$this->check = Mage::getModel('contactlab_subscribers/checks_contactlabAuthApiKeyCheck');
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @test
|
13 |
+
*/
|
14 |
+
public function doCheck() {
|
15 |
+
$this->assertEquals($this->check->check(), Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR);
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Contactlab/Subscribers/Test/Model/Checks/FindDuplicatedCustomersCheck.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Model_Checks_FindDuplicatedCustomersCheck extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
private $check;
|
6 |
+
|
7 |
+
protected function setUp() {
|
8 |
+
$this->check = Mage::getModel('contactlab_subscribers/checks_findDuplicatedCustomersCheck');
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @test
|
13 |
+
*/
|
14 |
+
public function doCheck() {
|
15 |
+
$this->assertEquals($this->check->check(), Contactlab_Subscribers_Model_Checks_CheckInterface::SUCCESS);
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Contactlab/Subscribers/Test/Model/Checks/FindInvalidCustomersCheck.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Model_Checks_FindInvalidCustomersCheck extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
private $check;
|
6 |
+
|
7 |
+
protected function setUp() {
|
8 |
+
$this->check = Mage::getModel('contactlab_subscribers/checks_findInvalidCustomersCheck');
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @test
|
13 |
+
*/
|
14 |
+
public function doCheck() {
|
15 |
+
$this->assertEquals($this->check->check(), Contactlab_Subscribers_Model_Checks_CheckInterface::SUCCESS);
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Contactlab/Subscribers/Test/Model/Checks/RewritesCheck.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Model_Checks_RewritesCheck extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
private $check;
|
6 |
+
|
7 |
+
protected function setUp() {
|
8 |
+
$this->check = Mage::getModel('contactlab_subscribers/checks_rewritesCheck');
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @test
|
13 |
+
*/
|
14 |
+
public function doCheck() {
|
15 |
+
$this->assertEquals($this->check->check(), Contactlab_Subscribers_Model_Checks_CheckInterface::SUCCESS);
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Contactlab/Subscribers/Test/Model/Checks/WsdlCheck.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Model_WsdlCheck extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
private $check;
|
6 |
+
|
7 |
+
protected function setUp() {
|
8 |
+
$this->check = Mage::getModel('contactlab_subscribers/checks_wsdlCheck');
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @test
|
13 |
+
*/
|
14 |
+
public function doCheck() {
|
15 |
+
$this->assertEquals($this->check->check(), Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR);
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Contactlab/Subscribers/Test/Model/Uk.php
ADDED
@@ -0,0 +1,436 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Subscribers_Test_Model_Uk extends EcomDev_PHPUnit_Test_Case
|
4 |
+
{
|
5 |
+
const TEST_EMAIL = 'name.surname@example.com';
|
6 |
+
/** @var Contactlab_Subscribers_Model_Uk */
|
7 |
+
private $model;
|
8 |
+
/** @var Contactlab_Subscribers_Helper_Uk */
|
9 |
+
private $helper;
|
10 |
+
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Setup.
|
14 |
+
*/
|
15 |
+
protected function setUp() {
|
16 |
+
$sessionMock = $this->getModelMockBuilder('adminhtml/session')
|
17 |
+
->disableOriginalConstructor() // This one removes session_start and other methods usage
|
18 |
+
->setMethods(null) // Enables original methods usage, because by default it overrides all methods
|
19 |
+
->getMock();
|
20 |
+
$this->replaceByMock('singleton', 'adminhtml/session', $sessionMock);
|
21 |
+
|
22 |
+
|
23 |
+
$this->model = Mage::getModel('contactlab_subscribers/uk');
|
24 |
+
$this->helper = Mage::helper('contactlab_subscribers/uk');
|
25 |
+
$this->model->truncate();
|
26 |
+
foreach (Mage::getModel('newsletter/subscriber')->getCollection() as $item) {
|
27 |
+
$item->delete();
|
28 |
+
}
|
29 |
+
foreach (Mage::getModel('customer/customer')->getCollection() as $item) {
|
30 |
+
$item->delete();
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @test
|
37 |
+
*/
|
38 |
+
public function firstTest() {
|
39 |
+
$this->assertEquals($this->getUkCount(), 0);
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Test subscriber
|
44 |
+
*/
|
45 |
+
public function testSubscriber() {
|
46 |
+
$this->assertEquals($this->getUkCount(), 0);
|
47 |
+
$subscriber = $this->createSubscriber();
|
48 |
+
$subscriberId = $subscriber->getSubscriberId();
|
49 |
+
|
50 |
+
$this->helper->update(null, $subscriberId);
|
51 |
+
$this->assertEquals($this->getUkCount(), 1);
|
52 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
53 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
54 |
+
$this->assertNull($uk->getCustomerId());
|
55 |
+
$this->model->purge(true);
|
56 |
+
$this->assertEquals($this->getUkCount(), 1);
|
57 |
+
$this->model->truncate();
|
58 |
+
$this->assertEquals($this->getUkCount(), 0);
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Test customer
|
63 |
+
*/
|
64 |
+
public function testCustomer() {
|
65 |
+
$this->assertEquals($this->getUkCount(), 0);
|
66 |
+
$customer = $this->createCustomer();
|
67 |
+
$customerId = $customer->getEntityId();
|
68 |
+
|
69 |
+
$this->helper->update($customerId, null);
|
70 |
+
$this->assertEquals($this->getUkCount(), 1);
|
71 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
72 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
73 |
+
$this->assertNull($uk->getSubscriberId());
|
74 |
+
$this->model->purge(true);
|
75 |
+
$this->assertEquals($this->getUkCount(), 1);
|
76 |
+
$this->model->truncate();
|
77 |
+
$this->assertEquals($this->getUkCount(), 0);
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Test customer
|
82 |
+
*/
|
83 |
+
public function testSubscribeACustomer() {
|
84 |
+
$this->assertEquals($this->getUkCount(), 0);
|
85 |
+
$customer = $this->createCustomer();
|
86 |
+
$customerId = $customer->getEntityId();
|
87 |
+
|
88 |
+
$this->helper->update($customerId, null);
|
89 |
+
$this->assertEquals($this->getUkCount(), 1);
|
90 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
91 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
92 |
+
$this->assertNull($uk->getSubscriberId());
|
93 |
+
|
94 |
+
$subscriber = $this->createSubscriber();
|
95 |
+
$subscriber->subscribeCustomer($customer);
|
96 |
+
$subscriber->save();
|
97 |
+
$subscriberId = $subscriber->getSubscriberId();
|
98 |
+
$this->helper->update($customerId, null);
|
99 |
+
|
100 |
+
|
101 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
102 |
+
$this->assertNotNull($customerId);
|
103 |
+
$this->assertNotNull($subscriberId);
|
104 |
+
$this->assertNotNull($uk->getCustomerId());
|
105 |
+
$this->assertNotNull($uk->getSubscriberId());
|
106 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
107 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
108 |
+
|
109 |
+
|
110 |
+
$this->model->purge(true);
|
111 |
+
$this->assertEquals($this->getUkCount(), 1);
|
112 |
+
$this->model->truncate();
|
113 |
+
$this->assertEquals($this->getUkCount(), 0);
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Test customer
|
118 |
+
*/
|
119 |
+
public function testCustomerASubscriber() {
|
120 |
+
$this->assertEquals($this->getUkCount(), 0);
|
121 |
+
$subscriber = $this->createSubscriber();
|
122 |
+
$subscriber->save();
|
123 |
+
$subscriberId = $subscriber->getSubscriberId();
|
124 |
+
|
125 |
+
$customer = $this->createCustomer();
|
126 |
+
$customerId = $customer->getEntityId();
|
127 |
+
$subscriber->subscribeCustomer($customer)->save();
|
128 |
+
$this->helper->update($customerId, $subscriberId);
|
129 |
+
|
130 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
131 |
+
$this->assertNotNull($customerId);
|
132 |
+
$this->assertNotNull($subscriberId);
|
133 |
+
$this->assertNotNull($uk->getCustomerId());
|
134 |
+
$this->assertNotNull($uk->getSubscriberId());
|
135 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
136 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
137 |
+
|
138 |
+
|
139 |
+
$this->model->purge(true);
|
140 |
+
$this->assertEquals($this->getUkCount(), 1);
|
141 |
+
$this->model->truncate();
|
142 |
+
$this->assertEquals($this->getUkCount(), 0);
|
143 |
+
}
|
144 |
+
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Test insert Subscriber without related Customer
|
148 |
+
*
|
149 |
+
*/
|
150 |
+
public function testCanInsertSubscriberWithoutRelatedCustomer()
|
151 |
+
{
|
152 |
+
$this->assertEquals($this->getUkCount(), 0);
|
153 |
+
|
154 |
+
$subscriber = $this->createSubscriber();
|
155 |
+
$subscriber->save();
|
156 |
+
$subscriberId = $subscriber->getSubscriberId();
|
157 |
+
$this->assertNotNull($subscriberId);
|
158 |
+
|
159 |
+
$this->helper->updateAll(true);
|
160 |
+
|
161 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
162 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
163 |
+
$this->assertNull($uk->getCustomerId());
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Test insert Subscriber with related Customer
|
168 |
+
*
|
169 |
+
* @depends testCanInsertSubscriberWithoutRelatedCustomer
|
170 |
+
*/
|
171 |
+
public function testCanInsertSubscriberWithRelatedCustomer()
|
172 |
+
{
|
173 |
+
$this->assertEquals($this->getUkCount(), 0);
|
174 |
+
|
175 |
+
$customer = $this->createCustomer();
|
176 |
+
$customer->save();
|
177 |
+
$customerId = $customer->getEntityId();
|
178 |
+
$this->assertNotNull($customerId);
|
179 |
+
|
180 |
+
$subscriber = $this->createSubscriber();
|
181 |
+
$subscriber->setCustomerId($customerId);
|
182 |
+
$subscriber->save();
|
183 |
+
$subscriberId = $subscriber->getSubscriberId();
|
184 |
+
$this->assertNotNull($subscriberId);
|
185 |
+
|
186 |
+
$this->helper->updateAll(true);
|
187 |
+
|
188 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
189 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
190 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Test insert Subscriber with not existent related Customer as null
|
195 |
+
*
|
196 |
+
* @depends testCanInsertSubscriberWithoutRelatedCustomer
|
197 |
+
*/
|
198 |
+
public function testCanInsertSubscriberWithNotExistentRelatedCustomerAsNull()
|
199 |
+
{
|
200 |
+
$notExistentCustomerId = 999;
|
201 |
+
$this->assertEquals($this->getUkCount(), 0);
|
202 |
+
$subscriber = $this->createSubscriber();
|
203 |
+
$subscriber->setCustomerId($notExistentCustomerId);
|
204 |
+
$subscriber->save();
|
205 |
+
$subscriberId = $subscriber->getSubscriberId();
|
206 |
+
$this->assertNotNull($subscriberId);
|
207 |
+
|
208 |
+
$this->helper->updateAll(true);
|
209 |
+
|
210 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
211 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
212 |
+
$this->assertNull($uk->getCustomerId());
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Test update Subscriber with related Customer
|
217 |
+
*
|
218 |
+
* @depends testCanInsertSubscriberWithoutRelatedCustomer
|
219 |
+
*/
|
220 |
+
public function testCanUpdateSubscriberWithRelatedCustomer()
|
221 |
+
{
|
222 |
+
$this->assertEquals($this->getUkCount(), 0);
|
223 |
+
|
224 |
+
$subscriber = $this->createSubscriber();
|
225 |
+
$subscriber->save();
|
226 |
+
$subscriberId = $subscriber->getSubscriberId();
|
227 |
+
$this->assertNotNull($subscriberId);
|
228 |
+
|
229 |
+
$this->helper->updateAll(true);
|
230 |
+
|
231 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
232 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
233 |
+
$this->assertNull($uk->getCustomerId());
|
234 |
+
|
235 |
+
$customer = $this->createCustomer();
|
236 |
+
$customer->save();
|
237 |
+
$customerId = $customer->getEntityId();
|
238 |
+
$this->assertNotNull($customerId);
|
239 |
+
|
240 |
+
$subscriber->setCustomerId($customerId);
|
241 |
+
$subscriber->save();
|
242 |
+
|
243 |
+
$this->helper->updateAll(true);
|
244 |
+
|
245 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
246 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
247 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Test update Subscriber without related Customer
|
252 |
+
*
|
253 |
+
* @depends testCanInsertSubscriberWithRelatedCustomer
|
254 |
+
*/
|
255 |
+
public function testCanUpdateSubscriberWithoutRelatedCustomer()
|
256 |
+
{
|
257 |
+
$this->assertEquals($this->getUkCount(), 0);
|
258 |
+
|
259 |
+
$customer = $this->createCustomer();
|
260 |
+
$customer->save();
|
261 |
+
$customerId = $customer->getEntityId();
|
262 |
+
$this->assertNotNull($customerId);
|
263 |
+
|
264 |
+
$subscriber = $this->createSubscriber();
|
265 |
+
$subscriber->setCustomerId($customerId);
|
266 |
+
$subscriber->save();
|
267 |
+
$subscriberId = $subscriber->getSubscriberId();
|
268 |
+
$this->assertNotNull($subscriberId);
|
269 |
+
|
270 |
+
$this->helper->updateAll(true);
|
271 |
+
|
272 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
273 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
274 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
275 |
+
|
276 |
+
$subscriber->setCustomerId(0);
|
277 |
+
$subscriber->save();
|
278 |
+
$this->assertEquals($subscriber->getCustomerId(), 0);
|
279 |
+
|
280 |
+
$this->helper->updateAll(true);
|
281 |
+
|
282 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
283 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
284 |
+
$this->assertNull($uk->getCustomerId());
|
285 |
+
}
|
286 |
+
|
287 |
+
/**
|
288 |
+
* Test update Subscriber not existent related Customer as null
|
289 |
+
*
|
290 |
+
* @depends testCanInsertSubscriberWithoutRelatedCustomer
|
291 |
+
*/
|
292 |
+
public function testCanUpdateSubscriberWithNotExistentRelatedCustomerAsNull()
|
293 |
+
{
|
294 |
+
$notExistentCustomerId = 999;
|
295 |
+
$this->assertEquals($this->getUkCount(), 0);
|
296 |
+
$subscriber = $this->createSubscriber();
|
297 |
+
$subscriber->save();
|
298 |
+
$subscriberId = $subscriber->getSubscriberId();
|
299 |
+
$this->assertNotNull($subscriberId);
|
300 |
+
|
301 |
+
$this->helper->updateAll(true);
|
302 |
+
|
303 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
304 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
305 |
+
$this->assertNull($uk->getCustomerId());
|
306 |
+
|
307 |
+
$subscriber->setCustomerId($notExistentCustomerId);
|
308 |
+
$subscriber->save();
|
309 |
+
$this->assertEquals($subscriber->getCustomerId(), $notExistentCustomerId);
|
310 |
+
|
311 |
+
$this->helper->updateAll(true);
|
312 |
+
|
313 |
+
$uk = $this->helper->searchBySubscriberId($subscriberId);
|
314 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
315 |
+
$this->assertNull($uk->getCustomerId());
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Test insert Customer not related to Subscriber
|
320 |
+
*
|
321 |
+
*
|
322 |
+
*/
|
323 |
+
public function testCanInsertCustomerNotRelatedToSubscriber()
|
324 |
+
{
|
325 |
+
$this->assertEquals($this->getUkCount(), 0);
|
326 |
+
|
327 |
+
$customer = $this->createCustomer();
|
328 |
+
$customer->save();
|
329 |
+
$customerId = $customer->getEntityId();
|
330 |
+
$this->assertNotNull($customerId);
|
331 |
+
|
332 |
+
$this->helper->updateAll(true);
|
333 |
+
|
334 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
335 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
336 |
+
$this->assertNull($uk->getSubscriberId());
|
337 |
+
}
|
338 |
+
|
339 |
+
/**
|
340 |
+
* Test update Customer related to Subscriber
|
341 |
+
*
|
342 |
+
* @depends testCanInsertCustomerNotRelatedToSubscriber
|
343 |
+
*/
|
344 |
+
public function testCanUpdateCustomerRelatedToSubscriber()
|
345 |
+
{
|
346 |
+
$this->assertEquals($this->getUkCount(), 0);
|
347 |
+
|
348 |
+
$customer = $this->createCustomer();
|
349 |
+
$customer->save();
|
350 |
+
$customerId = $customer->getEntityId();
|
351 |
+
$this->assertNotNull($customerId);
|
352 |
+
|
353 |
+
$this->helper->updateAll(true);
|
354 |
+
|
355 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
356 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
357 |
+
$this->assertNull($uk->getSubscriberId());
|
358 |
+
|
359 |
+
$subscriber = $this->createSubscriber();
|
360 |
+
$subscriber->setCustomerId($customerId);
|
361 |
+
$subscriber->save();
|
362 |
+
$subscriberId = $subscriber->getSubscriberId();
|
363 |
+
$this->assertNotNull($subscriberId);
|
364 |
+
|
365 |
+
$this->helper->updateAll(true);
|
366 |
+
|
367 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
368 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
369 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
370 |
+
|
371 |
+
$this->assertEquals($this->getUkCount(), 1);
|
372 |
+
}
|
373 |
+
|
374 |
+
/* *
|
375 |
+
* Test update Customer not related to Subscriber
|
376 |
+
*
|
377 |
+
* @depends testCanInsertSubscriberWithRelatedCustomer
|
378 |
+
* @depends testCanUpdateSubscriberWithoutRelatedCustomer
|
379 |
+
*/
|
380 |
+
/* UNSUPPORTED FEATURE
|
381 |
+
public function testCanUpdateCustomerNotRelatedToSubscriber()
|
382 |
+
{
|
383 |
+
$this->assertEquals($this->getUkCount(), 0);
|
384 |
+
|
385 |
+
$customer = $this->createCustomer();
|
386 |
+
$customer->save();
|
387 |
+
$customerId = $customer->getEntityId();
|
388 |
+
$this->assertNotNull($customerId);
|
389 |
+
|
390 |
+
$subscriber = $this->createSubscriber();
|
391 |
+
$subscriber->setCustomerId($customerId);
|
392 |
+
$subscriber->save();
|
393 |
+
$subscriberId = $subscriber->getSubscriberId();
|
394 |
+
$this->assertNotNull($subscriberId);
|
395 |
+
|
396 |
+
$this->helper->updateAll(true);
|
397 |
+
|
398 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
399 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
400 |
+
$this->assertEquals($uk->getSubscriberId(), $subscriberId);
|
401 |
+
|
402 |
+
$subscriber->setCustomerId(0);
|
403 |
+
$subscriber->save();
|
404 |
+
$this->assertEquals($subscriber->getCustomerId(), 0);
|
405 |
+
|
406 |
+
$this->helper->updateAll(true);
|
407 |
+
|
408 |
+
$uk = $this->helper->searchByCustomerId($customerId);
|
409 |
+
$this->assertTrue($uk);
|
410 |
+
$this->assertEquals($uk->getCustomerId(), $customerId);
|
411 |
+
$this->assertNull($uk->getSubscriberId());
|
412 |
+
|
413 |
+
$this->assertEquals($this->getUkCount(), 2);
|
414 |
+
}*/
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Get Count.
|
418 |
+
* @return int
|
419 |
+
*/
|
420 |
+
private function getUkCount() {
|
421 |
+
$collection = Mage::getModel('contactlab_subscribers/uk')->getCollection();
|
422 |
+
return $collection->getSize();
|
423 |
+
}
|
424 |
+
|
425 |
+
private function createCustomer() {
|
426 |
+
$customer = Mage::getModel('customer/customer');
|
427 |
+
$customer->setData('email', self::TEST_EMAIL);
|
428 |
+
return $customer->save();
|
429 |
+
}
|
430 |
+
|
431 |
+
private function createSubscriber() {
|
432 |
+
$subscriber = Mage::getModel('newsletter/subscriber');
|
433 |
+
$subscriber->setSubscriberEmail(self::TEST_EMAIL);
|
434 |
+
return $subscriber->save();
|
435 |
+
}
|
436 |
+
}
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/Contactlab/Subscribers/ExportController.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Controller that manage the queue of exporting tasks.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Adminhtml_Contactlab_Subscribers_ExportController extends Mage_Adminhtml_Controller_Action {
|
7 |
+
/**
|
8 |
+
* Queue action.
|
9 |
+
*/
|
10 |
+
public function queueAction() {
|
11 |
+
Mage::getModel("contactlab_subscribers/cron")->addExportSubscribersQueue();
|
12 |
+
return $this->_redirect('adminhtml/contactlab_commons_tasks');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Is this controller allowed?
|
17 |
+
* @return bool
|
18 |
+
*/
|
19 |
+
protected function _isAllowed()
|
20 |
+
{
|
21 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/subscribers/actions/queue');
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/Contactlab/Subscribers/ImportController.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Controller that manage the queue of exporting tasks.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Adminhtml_Contactlab_Subscribers_ImportController extends Mage_Adminhtml_Controller_Action {
|
7 |
+
/**
|
8 |
+
* Queue action.
|
9 |
+
*/
|
10 |
+
public function queueAction() {
|
11 |
+
Mage::getModel("contactlab_subscribers/cron")->addImportSubscribersQueue();
|
12 |
+
return $this->_redirect('adminhtml/contactlab_commons_tasks');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Is this controller allowed?
|
17 |
+
* @return bool
|
18 |
+
*/
|
19 |
+
protected function _isAllowed()
|
20 |
+
{
|
21 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/subscribers/actions/import');
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/Contactlab/Subscribers/StatsController.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Customer Statistics controller.
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_Adminhtml_Contactlab_Subscribers_StatsController extends Mage_Adminhtml_Controller_Action {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Queue action.
|
10 |
+
* @deprecated
|
11 |
+
*/
|
12 |
+
public function clearAction() {
|
13 |
+
Mage::helper("contactlab_subscribers")->addClearStatsQueue();
|
14 |
+
return $this->_redirect('adminhtml/contactlab_commons_tasks');
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Queue action.
|
19 |
+
*/
|
20 |
+
public function fillAction() {
|
21 |
+
Mage::helper("contactlab_subscribers")->addCalcStatsQueue();
|
22 |
+
return $this->_redirect('adminhtml/contactlab_commons_tasks');
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Is this controller allowed?
|
27 |
+
* @return bool
|
28 |
+
*/
|
29 |
+
protected function _isAllowed()
|
30 |
+
{
|
31 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/stats');
|
32 |
+
}
|
33 |
+
}
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/{UkController.php → Contactlab/Subscribers/UkController.php}
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Controller that manage the queue of exporting tasks.
|
5 |
*/
|
6 |
-
class
|
7 |
/**
|
8 |
* Update UK Table action.
|
9 |
*/
|
@@ -16,11 +16,13 @@ class Contactlab_Subscribers_Adminhtml_UkController extends Mage_Adminhtml_Contr
|
|
16 |
throw new Zend_Exception("Unique keys update not allowed");
|
17 |
}
|
18 |
$this->doUpdate($doIt);
|
19 |
-
|
|
|
|
|
20 |
} catch (Exception $e) {
|
21 |
$session->addError($e);
|
22 |
}
|
23 |
-
return $this->_redirect('
|
24 |
}
|
25 |
|
26 |
/**
|
@@ -38,7 +40,7 @@ class Contactlab_Subscribers_Adminhtml_UkController extends Mage_Adminhtml_Contr
|
|
38 |
} catch (Exception $e) {
|
39 |
$session->addError($e);
|
40 |
}
|
41 |
-
return $this->_redirect('
|
42 |
}
|
43 |
|
44 |
/** Really update uk. */
|
@@ -58,4 +60,13 @@ class Contactlab_Subscribers_Adminhtml_UkController extends Mage_Adminhtml_Contr
|
|
58 |
$helper = Mage::helper('contactlab_subscribers/uk');
|
59 |
$helper->addTruncateUkTask();
|
60 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
}
|
3 |
/**
|
4 |
* Controller that manage the queue of exporting tasks.
|
5 |
*/
|
6 |
+
class Contactlab_Subscribers_Adminhtml_Contactlab_Subscribers_UkController extends Mage_Adminhtml_Controller_Action {
|
7 |
/**
|
8 |
* Update UK Table action.
|
9 |
*/
|
16 |
throw new Zend_Exception("Unique keys update not allowed");
|
17 |
}
|
18 |
$this->doUpdate($doIt);
|
19 |
+
if ($doIt) {
|
20 |
+
$session->addSuccess($helper->__('Unique keys updated successfully.'));
|
21 |
+
}
|
22 |
} catch (Exception $e) {
|
23 |
$session->addError($e);
|
24 |
}
|
25 |
+
return $this->_redirect('adminhtml/contactlab_commons_tasks');
|
26 |
}
|
27 |
|
28 |
/**
|
40 |
} catch (Exception $e) {
|
41 |
$session->addError($e);
|
42 |
}
|
43 |
+
return $this->_redirect('adminhtml/contactlab_commons_tasks');
|
44 |
}
|
45 |
|
46 |
/** Really update uk. */
|
60 |
$helper = Mage::helper('contactlab_subscribers/uk');
|
61 |
$helper->addTruncateUkTask();
|
62 |
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Is this controller allowed?
|
66 |
+
* @return bool
|
67 |
+
*/
|
68 |
+
protected function _isAllowed()
|
69 |
+
{
|
70 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/stats');
|
71 |
+
}
|
72 |
}
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/ExportSubscribersController.php
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Controller that manage the queue of exporting tasks.
|
5 |
-
*/
|
6 |
-
class Contactlab_Subscribers_Adminhtml_ExportSubscribersController extends Mage_Adminhtml_Controller_Action {
|
7 |
-
/**
|
8 |
-
* Queue action.
|
9 |
-
*/
|
10 |
-
public function queueAction() {
|
11 |
-
Mage::getModel("contactlab_subscribers/cron")->addExportSubscribersQueue();
|
12 |
-
return $this->_redirect('contactlab_commons/adminhtml_tasks');
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/ImportSubscribersController.php
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Controller that manage the queue of exporting tasks.
|
5 |
-
*/
|
6 |
-
class Contactlab_Subscribers_Adminhtml_ImportSubscribersController extends Mage_Adminhtml_Controller_Action {
|
7 |
-
/**
|
8 |
-
* Queue action.
|
9 |
-
*/
|
10 |
-
public function queueAction() {
|
11 |
-
Mage::getModel("contactlab_subscribers/cron")->addImportSubscribersQueue();
|
12 |
-
return $this->_redirect('contactlab_commons/adminhtml_tasks');
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Subscribers/controllers/Adminhtml/StatsController.php
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Customer Statistics controller.
|
5 |
-
*/
|
6 |
-
class Contactlab_Subscribers_Adminhtml_StatsController extends Mage_Adminhtml_Controller_Action {
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Queue action.
|
10 |
-
*/
|
11 |
-
public function clearAction() {
|
12 |
-
Mage::helper("contactlab_subscribers")->addClearStatsQueue();
|
13 |
-
return $this->_redirect('contactlab_commons/adminhtml_tasks');
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Queue action.
|
18 |
-
*/
|
19 |
-
public function fillAction() {
|
20 |
-
Mage::helper("contactlab_subscribers")->addCalcStatsQueue();
|
21 |
-
return $this->_redirect('contactlab_commons/adminhtml_tasks');
|
22 |
-
}
|
23 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Subscribers/controllers/EditController.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Manages insertion of mail from user who wants to unsubscribe/change her data
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_EditController extends Mage_Core_Controller_Front_Action
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* index action
|
10 |
+
* takes as query parameter the mail of the subscriber
|
11 |
+
*/
|
12 |
+
public function indexAction()
|
13 |
+
{
|
14 |
+
$params = $this->getRequest()->getParams();
|
15 |
+
//check params
|
16 |
+
if (!array_key_exists('hash', $params)
|
17 |
+
|| !array_key_exists('id', $params)) {
|
18 |
+
Mage::throwException($this->__('Not a valid URL'));
|
19 |
+
}
|
20 |
+
|
21 |
+
// Load the subscriber and the additional fields entity
|
22 |
+
|
23 |
+
$subs = Mage::getModel('newsletter/subscriber')->load($params['id']);
|
24 |
+
if (!$subs->hasData('subscriber_id')) {
|
25 |
+
Mage::throwException($this->__('Subscriber not present'));
|
26 |
+
}
|
27 |
+
|
28 |
+
/** @noinspection PhpUndefinedMethodInspection */
|
29 |
+
if (!$subs->hasSubscriberConfirmCode()) {
|
30 |
+
Mage::throwException($this->__('Subscriber has no confirm code'));
|
31 |
+
}
|
32 |
+
|
33 |
+
if ($subs->getSubscriberConfirmCode() != $params['hash']) {
|
34 |
+
Mage::throwException($this->__('Confirm code does not match subscriber'));
|
35 |
+
}
|
36 |
+
|
37 |
+
$fields = Mage::getModel('contactlab_subscribers/fields')->load($subs->getSubscriberId(), 'subscriber_id');
|
38 |
+
|
39 |
+
$fields->setSubscriberConfirmCode($params['hash']);
|
40 |
+
/*if (!$fields->hasData('subscriber_id')) {
|
41 |
+
Mage::throwException($this->__('No additional fields for this subscriber'));
|
42 |
+
}*/
|
43 |
+
// End of checks
|
44 |
+
// Register our fields entity, it will be used to fill input fields by the Modify block
|
45 |
+
Mage::register('contactlab/fields', $fields);
|
46 |
+
|
47 |
+
$this->loadLayout();
|
48 |
+
$this->renderLayout();
|
49 |
+
}
|
50 |
+
}
|
app/code/community/Contactlab/Subscribers/controllers/ModifyController.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Manages insertion of mail from user who wants to unsubscribe/change her data
|
5 |
+
*/
|
6 |
+
class Contactlab_Subscribers_ModifyController extends Mage_Core_Controller_Front_Action
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* index action
|
10 |
+
* takes as query parameter the mail of the subscriber
|
11 |
+
*/
|
12 |
+
public function indexAction()
|
13 |
+
{
|
14 |
+
if ($this->getRequest()->isPost() && $this->getRequest()->getPost('email')) {
|
15 |
+
$session = Mage::getSingleton('core/session');
|
16 |
+
$email = (string) $this->getRequest()->getPost('email');
|
17 |
+
try {
|
18 |
+
if (!Zend_Validate::is($email, 'EmailAddress')) {
|
19 |
+
Mage::throwException($this->__('Please enter a valid email address.'));
|
20 |
+
}
|
21 |
+
if (!$this->_isEmailPresent($email)) {
|
22 |
+
Mage::throwException($this->__('This email is not in our subscribers database'));
|
23 |
+
}
|
24 |
+
Mage::helper('contactlab_subscribers')->sendSubscriberEditEmail($email);
|
25 |
+
Mage::getSingleton('core/session')->addSuccess($this->__('Follow the link sent to your email to modify your data'));
|
26 |
+
} catch (Mage_Core_Exception $e) {
|
27 |
+
$session->addException($e, $this->__('There was a problem with your request: %s', $e->getMessage()));
|
28 |
+
} catch (Exception $e) {
|
29 |
+
$session->addException($e, $this->__('There was a problem with your request.'));
|
30 |
+
}
|
31 |
+
}
|
32 |
+
$this->_redirectReferer();
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
public function personalAction()
|
37 |
+
{
|
38 |
+
$params = $this->getRequest()->getParams();
|
39 |
+
Mage::dispatchEvent('contactlab_subscribers_subscriber_update', $params);
|
40 |
+
$this->_redirectUrl(Mage::getBaseUrl());
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Is mail present
|
45 |
+
* @param $email
|
46 |
+
* @return bool
|
47 |
+
*/
|
48 |
+
private function _isEmailPresent($email)
|
49 |
+
{
|
50 |
+
/** @noinspection PhpUndefinedMethodInspection */
|
51 |
+
$ownerId = Mage::getModel('customer/customer')
|
52 |
+
->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
|
53 |
+
->loadByEmail($email)
|
54 |
+
->getId();
|
55 |
+
if ($ownerId) {
|
56 |
+
return true;
|
57 |
+
}
|
58 |
+
/** @var $subscriber Contactlab_Subscribers_Model_Newsletter_Subscriber */
|
59 |
+
$subscriber = Mage::getModel('newsletter/subscriber')->load($email, 'subscriber_email');
|
60 |
+
return $subscriber->hasSubscriberId();
|
61 |
+
}
|
62 |
+
}
|
app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.16.html
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<ul>
|
2 |
-
<li><del>
|
3 |
<li><q>No record exported</q> message removed</li>
|
4 |
<li>If the subscriber module is disabled, import and export task won't be queued</li>
|
5 |
</ul>
|
1 |
<ul>
|
2 |
+
<li><del>Attempts</del> <strong>label</strong> fixed to <q>Attempts</q></li>
|
3 |
<li><q>No record exported</q> message removed</li>
|
4 |
<li>If the subscriber module is disabled, import and export task won't be queued</li>
|
5 |
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.18.html
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Improvement</strong> multiple WFC separated by "," allowed</li>
|
3 |
+
<li><strong>Improvement</strong> auto repair of UK table before export</li>
|
4 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.20.html
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Removed default values from <code>config.xml</code>.</li>
|
3 |
+
<li>Performance tuning on uk fix query.</li>
|
4 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/0.8.21.html
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Removed fatal error from Subscriber Export procedure.</li>
|
3 |
+
<li>Tuning of subscriber export for > 1G records.</li>
|
4 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/0.9.0.html
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Modified adminhtml controllers due to SUPEE-6788 Magento patch.</li>
|
3 |
+
<li><strong>Feature</strong>: Runs essential checks before subscriber exports.</li>
|
4 |
+
<li><strong>Feature</strong>: Custom subscribers fields added to frontend.</li>
|
5 |
+
<li><strong>Feature</strong>: Added "customer_group_id" and "customer_group_name" to customers' export.</li>
|
6 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/0.9.1.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Fix</strong>: Generate subscribers fields record if not present, in edit page</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/1.0.0.html
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Feature</strong>: you can now show/hide custom newsletter subscription from from configuration section in backend</li>
|
3 |
+
<li><strong>Fix</strong>: several fixes to the sync process</li>
|
4 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/docs/release-notes/1.0.1.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Improvement and fixes</strong></li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Subscribers/etc/config.xml
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Subscribers>
|
5 |
-
<version>0.
|
6 |
-
<description>Subscriber sync Magento/ContactLab and ContactLab/Magento
|
7 |
</Contactlab_Subscribers>
|
8 |
</modules>
|
9 |
<global>
|
@@ -43,6 +43,11 @@
|
|
43 |
<subscriber>Contactlab_Subscribers_Model_Newsletter_Subscriber</subscriber>
|
44 |
</rewrite>
|
45 |
</newsletter>
|
|
|
|
|
|
|
|
|
|
|
46 |
<contactlab_subscribers>
|
47 |
<class>Contactlab_Subscribers_Model</class>
|
48 |
<resourceModel>contactlab_subscribers_resource</resourceModel>
|
@@ -62,10 +67,41 @@
|
|
62 |
<newsletter_subscriber_export>
|
63 |
<table>contactlab_subscribers_newsletter_subscriber_export</table>
|
64 |
</newsletter_subscriber_export>
|
|
|
|
|
|
|
65 |
</entities>
|
66 |
</contactlab_subscribers_resource>
|
67 |
</models>
|
68 |
<events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
<sales_order_save_after>
|
70 |
<observers>
|
71 |
<contactlab_commons_model_delete_after>
|
@@ -94,16 +130,25 @@
|
|
94 |
</observers>
|
95 |
</controller_front_send_response_after>
|
96 |
</events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
</global>
|
98 |
<admin>
|
99 |
<routers>
|
100 |
-
<
|
101 |
-
<use>admin</use>
|
102 |
<args>
|
103 |
-
<
|
104 |
-
|
|
|
105 |
</args>
|
106 |
-
</
|
107 |
</routers>
|
108 |
</admin>
|
109 |
<adminhtml>
|
@@ -196,9 +241,44 @@
|
|
196 |
</contactlab_subscribers_newsletter_controller_action_postdispatch>
|
197 |
</observers>
|
198 |
</controller_action_postdispatch>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
</events>
|
200 |
</adminhtml>
|
201 |
<frontend>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
<events>
|
203 |
<newsletter_subscriber_save_after>
|
204 |
<observers>
|
@@ -263,6 +343,15 @@
|
|
263 |
</contactlab_subscribers_newsletter_subscriber_save_after>
|
264 |
</observers>
|
265 |
</newsletter_subscriber_save_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
<controller_action_postdispatch>
|
267 |
<observers>
|
268 |
<contactlab_subscribers_newsletter_controller_action_postdispatch>
|
@@ -282,11 +371,20 @@
|
|
282 |
</observers>
|
283 |
</contactlab_subscribers_uk_subscriber_promoted_to_customer>
|
284 |
</events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
</frontend>
|
286 |
<default>
|
287 |
<contactlab_subscribers>
|
288 |
<global>
|
289 |
-
|
290 |
<debug>0</debug>
|
291 |
<export_filename>subscribers_{Ymd}.xml</export_filename>
|
292 |
<import_filename>event_info_{Ymd}.xml</import_filename>
|
@@ -296,10 +394,10 @@
|
|
296 |
<check_uk_before_export>1</check_uk_before_export>
|
297 |
<subscribed_flag_name>__cls1</subscribed_flag_name>
|
298 |
<export_not_subscribed>1</export_not_subscribed>
|
299 |
-
<reset_export_dates_before_next_export>0</reset_export_dates_before_next_export
|
300 |
</global>
|
301 |
<queue>
|
302 |
-
|
303 |
<contactlab_subscribers_model_task_exportsubscribersrunner_retries>5</contactlab_subscribers_model_task_exportsubscribersrunner_retries>
|
304 |
<contactlab_subscribers_model_task_importsubscribersrunner_interval>10</contactlab_subscribers_model_task_importsubscribersrunner_interval>
|
305 |
<contactlab_subscribers_model_task_importsubscribersrunner_retries>3</contactlab_subscribers_model_task_importsubscribersrunner_retries>
|
@@ -310,11 +408,11 @@
|
|
310 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval>5</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval>
|
311 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries>5</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries>
|
312 |
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>1</contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>
|
313 |
-
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries>10</contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries
|
314 |
</queue>
|
315 |
<stats>
|
316 |
-
|
317 |
-
<period_2>120</period_2
|
318 |
</stats>
|
319 |
</contactlab_subscribers>
|
320 |
</default>
|
@@ -328,6 +426,13 @@
|
|
328 |
</contactlab_subscribers_import_subscribers>
|
329 |
</jobs>
|
330 |
</crontab>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
<!--crontab>
|
332 |
<jobs>
|
333 |
<contactlab_subscribers_stats_recalc>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Subscribers>
|
5 |
+
<version>1.0.1</version>
|
6 |
+
<description>Subscriber sync Magento/ContactLab and ContactLab/Magento.</description>
|
7 |
</Contactlab_Subscribers>
|
8 |
</modules>
|
9 |
<global>
|
43 |
<subscriber>Contactlab_Subscribers_Model_Newsletter_Subscriber</subscriber>
|
44 |
</rewrite>
|
45 |
</newsletter>
|
46 |
+
<newsletter_resource>
|
47 |
+
<rewrite>
|
48 |
+
<subscriber>Contactlab_Subscribers_Model_Resource_Newsletter_Subscriber</subscriber>
|
49 |
+
</rewrite>
|
50 |
+
</newsletter_resource>
|
51 |
<contactlab_subscribers>
|
52 |
<class>Contactlab_Subscribers_Model</class>
|
53 |
<resourceModel>contactlab_subscribers_resource</resourceModel>
|
67 |
<newsletter_subscriber_export>
|
68 |
<table>contactlab_subscribers_newsletter_subscriber_export</table>
|
69 |
</newsletter_subscriber_export>
|
70 |
+
<newsletter_subscriber_fields>
|
71 |
+
<table>contactlab_subscribers_newsletter_subscriber_fields</table>
|
72 |
+
</newsletter_subscriber_fields>
|
73 |
</entities>
|
74 |
</contactlab_subscribers_resource>
|
75 |
</models>
|
76 |
<events>
|
77 |
+
<contactlab_subscribers_subscriber_update>
|
78 |
+
<observers>
|
79 |
+
<contactlab_subscribers_subscriber_update_fields>
|
80 |
+
<type>singleton</type>
|
81 |
+
<class>contactlab_subscribers/observer_fields</class>
|
82 |
+
<method>updateFields</method>
|
83 |
+
</contactlab_subscribers_subscriber_update_fields>
|
84 |
+
</observers>
|
85 |
+
</contactlab_subscribers_subscriber_update>
|
86 |
+
<newsletter_subscriber_save_after>
|
87 |
+
<observers>
|
88 |
+
<contactlab_subscribers_newsletter_subscriber_save_after_fields>
|
89 |
+
<type>singleton</type>
|
90 |
+
<class>contactlab_subscribers/observer_fields</class>
|
91 |
+
<method>afterSubscriberSaved</method>
|
92 |
+
</contactlab_subscribers_newsletter_subscriber_save_after_fields>
|
93 |
+
</observers>
|
94 |
+
</newsletter_subscriber_save_after>
|
95 |
+
<!-- Driven by cascade database -->
|
96 |
+
<!--newsletter_subscriber_delete_before>
|
97 |
+
<observers>
|
98 |
+
<contactlab_subscribers_newsletter_subscriber_delete_before_fields>
|
99 |
+
<type>singleton</type>
|
100 |
+
<class>contactlab_subscribers/observer_fields</class>
|
101 |
+
<method>beforeSubscriberDeleted</method>
|
102 |
+
</contactlab_subscribers_newsletter_subscriber_delete_before_fields>
|
103 |
+
</observers>
|
104 |
+
</newsletter_subscriber_delete_before-->
|
105 |
<sales_order_save_after>
|
106 |
<observers>
|
107 |
<contactlab_commons_model_delete_after>
|
130 |
</observers>
|
131 |
</controller_front_send_response_after>
|
132 |
</events>
|
133 |
+
<template>
|
134 |
+
<email>
|
135 |
+
<contactlab_subscribers_modify_email_send_email_template translate="label" module="contactlab_subscribers">
|
136 |
+
<label>Modify subscriber data email</label>
|
137 |
+
<file>contactlab_subscribers/modify_subscriber_data.html</file>
|
138 |
+
<type>html</type>
|
139 |
+
</contactlab_subscribers_modify_email_send_email_template>
|
140 |
+
</email>
|
141 |
+
</template>
|
142 |
</global>
|
143 |
<admin>
|
144 |
<routers>
|
145 |
+
<adminhtml>
|
|
|
146 |
<args>
|
147 |
+
<modules>
|
148 |
+
<contactlab_subscribers before="Mage_Adminhtml">Contactlab_Subscribers_Adminhtml</contactlab_subscribers>
|
149 |
+
</modules>
|
150 |
</args>
|
151 |
+
</adminhtml>
|
152 |
</routers>
|
153 |
</admin>
|
154 |
<adminhtml>
|
241 |
</contactlab_subscribers_newsletter_controller_action_postdispatch>
|
242 |
</observers>
|
243 |
</controller_action_postdispatch>
|
244 |
+
|
245 |
+
<adminhtml_block_html_before>
|
246 |
+
<observers>
|
247 |
+
<contactlab_subscribers_newsletter_fields_remove_grid>
|
248 |
+
<type>model</type>
|
249 |
+
<class>contactlab_subscribers/newsletter_subscribers_observer</class>
|
250 |
+
<method>removeOldColumns</method>
|
251 |
+
</contactlab_subscribers_newsletter_fields_remove_grid>
|
252 |
+
</observers>
|
253 |
+
</adminhtml_block_html_before>
|
254 |
+
<core_block_abstract_prepare_layout_after>
|
255 |
+
<observers>
|
256 |
+
<contactlab_subscribers_newsletter_fields_add_grid>
|
257 |
+
<type>model</type>
|
258 |
+
<class>contactlab_subscribers/newsletter_subscribers_observer</class>
|
259 |
+
<method>appendCustomColumns</method>
|
260 |
+
</contactlab_subscribers_newsletter_fields_add_grid>
|
261 |
+
</observers>
|
262 |
+
</core_block_abstract_prepare_layout_after>
|
263 |
+
<core_collection_abstract_load_before>
|
264 |
+
<observers>
|
265 |
+
<contactlab_subscribers_newsletter_fields_add_grid>
|
266 |
+
<type>model</type>
|
267 |
+
<class>contactlab_subscribers/newsletter_subscribers_observer</class>
|
268 |
+
<method>appendCustomAttributes</method>
|
269 |
+
</contactlab_subscribers_newsletter_fields_add_grid>
|
270 |
+
</observers>
|
271 |
+
</core_collection_abstract_load_before>
|
272 |
</events>
|
273 |
</adminhtml>
|
274 |
<frontend>
|
275 |
+
<layout>
|
276 |
+
<updates>
|
277 |
+
<contactlab_subscribers>
|
278 |
+
<file>contactlab/subscribers.xml</file>
|
279 |
+
</contactlab_subscribers>
|
280 |
+
</updates>
|
281 |
+
</layout>
|
282 |
<events>
|
283 |
<newsletter_subscriber_save_after>
|
284 |
<observers>
|
343 |
</contactlab_subscribers_newsletter_subscriber_save_after>
|
344 |
</observers>
|
345 |
</newsletter_subscriber_save_after>
|
346 |
+
<controller_action_predispatch>
|
347 |
+
<observers>
|
348 |
+
<contactlab_subscribers_newsletter_controller_action_predispatch>
|
349 |
+
<type>singleton</type>
|
350 |
+
<class>contactlab_subscribers/observer_fields</class>
|
351 |
+
<method>controllerActionPreDispatch</method>
|
352 |
+
</contactlab_subscribers_newsletter_controller_action_predispatch>
|
353 |
+
</observers>
|
354 |
+
</controller_action_predispatch>
|
355 |
<controller_action_postdispatch>
|
356 |
<observers>
|
357 |
<contactlab_subscribers_newsletter_controller_action_postdispatch>
|
371 |
</observers>
|
372 |
</contactlab_subscribers_uk_subscriber_promoted_to_customer>
|
373 |
</events>
|
374 |
+
<routers>
|
375 |
+
<contactlab_subscribers>
|
376 |
+
<use>standard</use>
|
377 |
+
<args>
|
378 |
+
<module>Contactlab_Subscribers</module>
|
379 |
+
<frontName>contactlab</frontName>
|
380 |
+
</args>
|
381 |
+
</contactlab_subscribers>
|
382 |
+
</routers>
|
383 |
</frontend>
|
384 |
<default>
|
385 |
<contactlab_subscribers>
|
386 |
<global>
|
387 |
+
<!--enabled>0</enabled>
|
388 |
<debug>0</debug>
|
389 |
<export_filename>subscribers_{Ymd}.xml</export_filename>
|
390 |
<import_filename>event_info_{Ymd}.xml</import_filename>
|
394 |
<check_uk_before_export>1</check_uk_before_export>
|
395 |
<subscribed_flag_name>__cls1</subscribed_flag_name>
|
396 |
<export_not_subscribed>1</export_not_subscribed>
|
397 |
+
<reset_export_dates_before_next_export>0</reset_export_dates_before_next_export-->
|
398 |
</global>
|
399 |
<queue>
|
400 |
+
<!--contactlab_subscribers_model_task_exportsubscribersrunner_interval>15</contactlab_subscribers_model_task_exportsubscribersrunner_interval>
|
401 |
<contactlab_subscribers_model_task_exportsubscribersrunner_retries>5</contactlab_subscribers_model_task_exportsubscribersrunner_retries>
|
402 |
<contactlab_subscribers_model_task_importsubscribersrunner_interval>10</contactlab_subscribers_model_task_importsubscribersrunner_interval>
|
403 |
<contactlab_subscribers_model_task_importsubscribersrunner_retries>3</contactlab_subscribers_model_task_importsubscribersrunner_retries>
|
408 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval>5</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval>
|
409 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries>5</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries>
|
410 |
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>1</contactlab_subscribers_model_task_updatesubscriberstatusrunner_interval>
|
411 |
+
<contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries>10</contactlab_subscribers_model_task_updatesubscriberstatusrunner_retries-->
|
412 |
</queue>
|
413 |
<stats>
|
414 |
+
<!--period_1>30</period_1>
|
415 |
+
<period_2>120</period_2-->
|
416 |
</stats>
|
417 |
</contactlab_subscribers>
|
418 |
</default>
|
426 |
</contactlab_subscribers_import_subscribers>
|
427 |
</jobs>
|
428 |
</crontab>
|
429 |
+
<phpunit>
|
430 |
+
<suite>
|
431 |
+
<modules>
|
432 |
+
<Contactlab_Subscribers/>
|
433 |
+
</modules>
|
434 |
+
</suite>
|
435 |
+
</phpunit>
|
436 |
<!--crontab>
|
437 |
<jobs>
|
438 |
<contactlab_subscribers_stats_recalc>
|
app/code/community/Contactlab/Subscribers/etc/system.xml
CHANGED
@@ -27,7 +27,7 @@
|
|
27 |
<show_in_default>1</show_in_default>
|
28 |
<show_in_website>0</show_in_website>
|
29 |
<show_in_store>0</show_in_store>
|
30 |
-
<comment>Enable or disable
|
31 |
</enabled>
|
32 |
<export_filename translate="label">
|
33 |
<label>Export filename</label>
|
@@ -36,7 +36,7 @@
|
|
36 |
<show_in_default>1</show_in_default>
|
37 |
<show_in_website>1</show_in_website>
|
38 |
<show_in_store>1</show_in_store>
|
39 |
-
<comment><![CDATA[Export filename (
|
40 |
</export_filename>
|
41 |
<export_shipping_address translate="label">
|
42 |
<label>Export shipping address</label>
|
@@ -57,7 +57,7 @@
|
|
57 |
<show_in_store>1</show_in_store>
|
58 |
</export_billing_address>
|
59 |
<export_policy>
|
60 |
-
<label>Export
|
61 |
<frontend_type>select</frontend_type>
|
62 |
<source_model>contactlab_subscribers/system_config_source_export_policy</source_model>
|
63 |
<sort_order>50</sort_order>
|
@@ -66,7 +66,7 @@
|
|
66 |
<show_in_store>1</show_in_store>
|
67 |
</export_policy>
|
68 |
<last_export>
|
69 |
-
<label>Last export
|
70 |
<frontend_type>text</frontend_type>
|
71 |
<sort_order>60</sort_order>
|
72 |
<show_in_default>1</show_in_default>
|
@@ -75,10 +75,10 @@
|
|
75 |
<depends>
|
76 |
<export_policy>2</export_policy>
|
77 |
</depends>
|
78 |
-
<comment>GMT
|
79 |
</last_export>
|
80 |
<export_not_subscribed>
|
81 |
-
<label>Always export
|
82 |
<frontend_type>select</frontend_type>
|
83 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
84 |
<sort_order>70</sort_order>
|
@@ -96,14 +96,15 @@
|
|
96 |
<show_in_store>1</show_in_store>
|
97 |
</reset_export_dates_before_next_export>
|
98 |
<check_uk_before_export translate="label">
|
99 |
-
<label>Check UK
|
100 |
<frontend_type>select</frontend_type>
|
101 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
|
|
102 |
<sort_order>90</sort_order>
|
103 |
<show_in_default>1</show_in_default>
|
104 |
<show_in_website>1</show_in_website>
|
105 |
<show_in_store>1</show_in_store>
|
106 |
-
<comment>
|
107 |
</check_uk_before_export>
|
108 |
<soap_call_after_export translate="label">
|
109 |
<label>Enable import execution after export</label>
|
@@ -121,7 +122,7 @@
|
|
121 |
<show_in_default>1</show_in_default>
|
122 |
<show_in_website>1</show_in_website>
|
123 |
<show_in_store>1</show_in_store>
|
124 |
-
<comment><![CDATA[Specify
|
125 |
</subscribed_flag_name>
|
126 |
<export_remote_path translate="label">
|
127 |
<label>Remote path for export</label>
|
@@ -133,7 +134,7 @@
|
|
133 |
<config_path>contactlab_commons/connection/export_remote_path</config_path>
|
134 |
</export_remote_path>
|
135 |
<data_updater_config_identifier translate="label" module="contactlab_commons">
|
136 |
-
<label>
|
137 |
<frontend_type>text</frontend_type>
|
138 |
<sort_order>120</sort_order>
|
139 |
<show_in_default>1</show_in_default>
|
@@ -156,6 +157,7 @@
|
|
156 |
<show_in_default>1</show_in_default>
|
157 |
<show_in_website>1</show_in_website>
|
158 |
<show_in_store>1</show_in_store>
|
|
|
159 |
</web_form_code>
|
160 |
<memory_limit>
|
161 |
<label>Memory limit</label>
|
@@ -164,7 +166,7 @@
|
|
164 |
<show_in_default>1</show_in_default>
|
165 |
<show_in_website>1</show_in_website>
|
166 |
<show_in_store>1</show_in_store>
|
167 |
-
<comment><![CDATA[Leave
|
168 |
</memory_limit>
|
169 |
</fields>
|
170 |
</global>
|
@@ -328,7 +330,7 @@
|
|
328 |
<show_in_website>0</show_in_website>
|
329 |
<show_in_store>0</show_in_store>
|
330 |
<expanded>0</expanded>
|
331 |
-
<comment><![CDATA[
|
332 |
<fields>
|
333 |
<period_1 translate="label">
|
334 |
<label>First period length</label>
|
@@ -349,7 +351,7 @@
|
|
349 |
<comment>Second period length in days</comment>
|
350 |
</period_2>
|
351 |
<contactlab_subscribers_model_task_clearstatsrunner_interval translate="label">
|
352 |
-
<label>Interval between
|
353 |
<frontend_type>text</frontend_type>
|
354 |
<sort_order>30</sort_order>
|
355 |
<show_in_default>1</show_in_default>
|
@@ -358,7 +360,7 @@
|
|
358 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_clearstatsrunner_interval</config_path>
|
359 |
</contactlab_subscribers_model_task_clearstatsrunner_interval>
|
360 |
<contactlab_subscribers_model_task_clearstatsrunner_retries translate="label">
|
361 |
-
<label>Number of
|
362 |
<frontend_type>text</frontend_type>
|
363 |
<sort_order>40</sort_order>
|
364 |
<show_in_default>1</show_in_default>
|
@@ -367,7 +369,7 @@
|
|
367 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_clearstatsrunner_retries</config_path>
|
368 |
</contactlab_subscribers_model_task_clearstatsrunner_retries>
|
369 |
<contactlab_subscribers_model_task_calcstatsrunner_interval translate="label">
|
370 |
-
<label>Interval between
|
371 |
<frontend_type>text</frontend_type>
|
372 |
<sort_order>50</sort_order>
|
373 |
<show_in_default>1</show_in_default>
|
@@ -376,7 +378,7 @@
|
|
376 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_calcstatsrunner_interval</config_path>
|
377 |
</contactlab_subscribers_model_task_calcstatsrunner_interval>
|
378 |
<contactlab_subscribers_model_task_calcstatsrunner_retries translate="label">
|
379 |
-
<label>Number of
|
380 |
<frontend_type>text</frontend_type>
|
381 |
<sort_order>60</sort_order>
|
382 |
<show_in_default>1</show_in_default>
|
@@ -386,6 +388,62 @@
|
|
386 |
</contactlab_subscribers_model_task_calcstatsrunner_retries>
|
387 |
</fields>
|
388 |
</stats>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
<queue translate="label">
|
390 |
<label>Queue parameters</label>
|
391 |
<frontend_type>text</frontend_type>
|
@@ -394,7 +452,7 @@
|
|
394 |
<show_in_website>1</show_in_website>
|
395 |
<show_in_store>1</show_in_store>
|
396 |
<expanded>0</expanded>
|
397 |
-
<comment><![CDATA[All values are specified in <strong>minutes</strong>.]]></comment>
|
398 |
<fields>
|
399 |
<contactlab_subscribers_model_task_exportsubscribersrunner_interval translate="label">
|
400 |
<label>Interval between export attempts</label>
|
@@ -413,7 +471,7 @@
|
|
413 |
<show_in_store>1</show_in_store>
|
414 |
</contactlab_subscribers_model_task_exportsubscribersrunner_retries>
|
415 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval translate="label">
|
416 |
-
<label>Interval between StartSubscriberDataExchangeRunner SOAP
|
417 |
<frontend_type>text</frontend_type>
|
418 |
<sort_order>30</sort_order>
|
419 |
<show_in_default>1</show_in_default>
|
@@ -421,7 +479,7 @@
|
|
421 |
<show_in_store>1</show_in_store>
|
422 |
</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval>
|
423 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries translate="label">
|
424 |
-
<label>Number of StartSubscriberDataExchangeRunner SOAP
|
425 |
<frontend_type>text</frontend_type>
|
426 |
<sort_order>40</sort_order>
|
427 |
<show_in_default>1</show_in_default>
|
@@ -430,6 +488,26 @@
|
|
430 |
</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries>
|
431 |
</fields>
|
432 |
</queue>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
<example_configuration translate="label">
|
434 |
<label>Cron configuration example</label>
|
435 |
<frontend_type>text</frontend_type>
|
@@ -438,7 +516,7 @@
|
|
438 |
<show_in_website>0</show_in_website>
|
439 |
<show_in_store>0</show_in_store>
|
440 |
<comment><![CDATA[<h3>Example configuration</h3>
|
441 |
-
<p>This
|
442 |
<pre><crontab>
|
443 |
<jobs>
|
444 |
<contactlab_subscribers_export_subscribers>
|
@@ -489,10 +567,10 @@
|
|
489 |
<show_in_website>1</show_in_website>
|
490 |
<show_in_store>1</show_in_store>
|
491 |
<config_path>contactlab_subscribers/global/import_filename</config_path>
|
492 |
-
<comment><![CDATA[Import filename (
|
493 |
</import_filename>
|
494 |
<import_remote_path translate="label">
|
495 |
-
<label>
|
496 |
<frontend_type>text</frontend_type>
|
497 |
<sort_order>20</sort_order>
|
498 |
<show_in_default>1</show_in_default>
|
@@ -501,7 +579,7 @@
|
|
501 |
<config_path>contactlab_commons/connection/import_remote_path</config_path>
|
502 |
</import_remote_path>
|
503 |
<data_exporter_config_identifier translate="label">
|
504 |
-
<label>DataExporter
|
505 |
<frontend_type>text</frontend_type>
|
506 |
<sort_order>30</sort_order>
|
507 |
<show_in_default>1</show_in_default>
|
@@ -512,14 +590,14 @@
|
|
512 |
</fields>
|
513 |
</setup>
|
514 |
<queue translate="label">
|
515 |
-
<label>Manage
|
516 |
<frontend_type>text</frontend_type>
|
517 |
<sort_order>20</sort_order>
|
518 |
<show_in_default>1</show_in_default>
|
519 |
<show_in_website>1</show_in_website>
|
520 |
<show_in_store>1</show_in_store>
|
521 |
<expanded>0</expanded>
|
522 |
-
<comment><![CDATA[All values are in <strong>
|
523 |
<fields>
|
524 |
<contactlab_subscribers_model_task_importsubscribersrunner_interval translate="label">
|
525 |
<label>Interval between import attempts</label>
|
@@ -531,7 +609,7 @@
|
|
531 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_importsubscribersrunner_interval</config_path>
|
532 |
</contactlab_subscribers_model_task_importsubscribersrunner_interval>
|
533 |
<contactlab_subscribers_model_task_importsubscribersrunner_retries translate="label">
|
534 |
-
<label>
|
535 |
<frontend_type>text</frontend_type>
|
536 |
<sort_order>20</sort_order>
|
537 |
<show_in_default>1</show_in_default>
|
27 |
<show_in_default>1</show_in_default>
|
28 |
<show_in_website>0</show_in_website>
|
29 |
<show_in_store>0</show_in_store>
|
30 |
+
<comment>Enable or disable ContactLab Subscribers module</comment>
|
31 |
</enabled>
|
32 |
<export_filename translate="label">
|
33 |
<label>Export filename</label>
|
36 |
<show_in_default>1</show_in_default>
|
37 |
<show_in_website>1</show_in_website>
|
38 |
<show_in_store>1</show_in_store>
|
39 |
+
<comment><![CDATA[Export filename (for example: subscribers_{Ymd}.xml)<br>Use {Ymd} syntax to replace the date.<br>The <a href='http://php.net/manual/en/function.date.php'>PHP date() function</a>'s format is used.]]></comment>
|
40 |
</export_filename>
|
41 |
<export_shipping_address translate="label">
|
42 |
<label>Export shipping address</label>
|
57 |
<show_in_store>1</show_in_store>
|
58 |
</export_billing_address>
|
59 |
<export_policy>
|
60 |
+
<label>Export policy</label>
|
61 |
<frontend_type>select</frontend_type>
|
62 |
<source_model>contactlab_subscribers/system_config_source_export_policy</source_model>
|
63 |
<sort_order>50</sort_order>
|
66 |
<show_in_store>1</show_in_store>
|
67 |
</export_policy>
|
68 |
<last_export>
|
69 |
+
<label>Last export date and time</label>
|
70 |
<frontend_type>text</frontend_type>
|
71 |
<sort_order>60</sort_order>
|
72 |
<show_in_default>1</show_in_default>
|
75 |
<depends>
|
76 |
<export_policy>2</export_policy>
|
77 |
</depends>
|
78 |
+
<comment>GMT time zone.</comment>
|
79 |
</last_export>
|
80 |
<export_not_subscribed>
|
81 |
+
<label>Always export non-subscribed users</label>
|
82 |
<frontend_type>select</frontend_type>
|
83 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
84 |
<sort_order>70</sort_order>
|
96 |
<show_in_store>1</show_in_store>
|
97 |
</reset_export_dates_before_next_export>
|
98 |
<check_uk_before_export translate="label">
|
99 |
+
<label>Check UK table consistency before every export</label>
|
100 |
<frontend_type>select</frontend_type>
|
101 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
102 |
+
<source_model>contactlab_subscribers/system_config_source_export_checkUkPolicy</source_model>
|
103 |
<sort_order>90</sort_order>
|
104 |
<show_in_default>1</show_in_default>
|
105 |
<show_in_website>1</show_in_website>
|
106 |
<show_in_store>1</show_in_store>
|
107 |
+
<comment>Note: This can slow down the export process.</comment>
|
108 |
</check_uk_before_export>
|
109 |
<soap_call_after_export translate="label">
|
110 |
<label>Enable import execution after export</label>
|
122 |
<show_in_default>1</show_in_default>
|
123 |
<show_in_website>1</show_in_website>
|
124 |
<show_in_store>1</show_in_store>
|
125 |
+
<comment><![CDATA[Specify the field that contains the subscription flag in ContactLab database (for example: _cls1).]]></comment>
|
126 |
</subscribed_flag_name>
|
127 |
<export_remote_path translate="label">
|
128 |
<label>Remote path for export</label>
|
134 |
<config_path>contactlab_commons/connection/export_remote_path</config_path>
|
135 |
</export_remote_path>
|
136 |
<data_updater_config_identifier translate="label" module="contactlab_commons">
|
137 |
+
<label>DataUpdater configuration ID</label>
|
138 |
<frontend_type>text</frontend_type>
|
139 |
<sort_order>120</sort_order>
|
140 |
<show_in_default>1</show_in_default>
|
157 |
<show_in_default>1</show_in_default>
|
158 |
<show_in_website>1</show_in_website>
|
159 |
<show_in_store>1</show_in_store>
|
160 |
+
<comment><![CDATA[ContactLab <code>WebFormCode</code>. Multiple comma separated values are also permitted.]]></comment>
|
161 |
</web_form_code>
|
162 |
<memory_limit>
|
163 |
<label>Memory limit</label>
|
166 |
<show_in_default>1</show_in_default>
|
167 |
<show_in_website>1</show_in_website>
|
168 |
<show_in_store>1</show_in_store>
|
169 |
+
<comment><![CDATA[Leave blank to use the memory limit of your environment (follow <a href="http://php.net/manual/en/faq.using.php#faq.using.shorthandbytes">this link</a> for more about the correct syntax)]]></comment>
|
170 |
</memory_limit>
|
171 |
</fields>
|
172 |
</global>
|
330 |
<show_in_website>0</show_in_website>
|
331 |
<show_in_store>0</show_in_store>
|
332 |
<expanded>0</expanded>
|
333 |
+
<comment><![CDATA[To ensure that all customer statistics are updated in ContactLab, select <strong>All subscribers only for the next export</strong> in the <strong>Export policy</strong> field of the <strong>Magento to ContactLab Configuration > Setup</strong> dialog.]]></comment>
|
334 |
<fields>
|
335 |
<period_1 translate="label">
|
336 |
<label>First period length</label>
|
351 |
<comment>Second period length in days</comment>
|
352 |
</period_2>
|
353 |
<contactlab_subscribers_model_task_clearstatsrunner_interval translate="label">
|
354 |
+
<label>Interval between clear statistics attempts</label>
|
355 |
<frontend_type>text</frontend_type>
|
356 |
<sort_order>30</sort_order>
|
357 |
<show_in_default>1</show_in_default>
|
360 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_clearstatsrunner_interval</config_path>
|
361 |
</contactlab_subscribers_model_task_clearstatsrunner_interval>
|
362 |
<contactlab_subscribers_model_task_clearstatsrunner_retries translate="label">
|
363 |
+
<label>Number of clear statistics attempts</label>
|
364 |
<frontend_type>text</frontend_type>
|
365 |
<sort_order>40</sort_order>
|
366 |
<show_in_default>1</show_in_default>
|
369 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_clearstatsrunner_retries</config_path>
|
370 |
</contactlab_subscribers_model_task_clearstatsrunner_retries>
|
371 |
<contactlab_subscribers_model_task_calcstatsrunner_interval translate="label">
|
372 |
+
<label>Interval between fill statistics attempts</label>
|
373 |
<frontend_type>text</frontend_type>
|
374 |
<sort_order>50</sort_order>
|
375 |
<show_in_default>1</show_in_default>
|
378 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_calcstatsrunner_interval</config_path>
|
379 |
</contactlab_subscribers_model_task_calcstatsrunner_interval>
|
380 |
<contactlab_subscribers_model_task_calcstatsrunner_retries translate="label">
|
381 |
+
<label>Number of fill statistics attempts</label>
|
382 |
<frontend_type>text</frontend_type>
|
383 |
<sort_order>60</sort_order>
|
384 |
<show_in_default>1</show_in_default>
|
388 |
</contactlab_subscribers_model_task_calcstatsrunner_retries>
|
389 |
</fields>
|
390 |
</stats>
|
391 |
+
|
392 |
+
<modify_email translate="label">
|
393 |
+
<label>Email template for custom subscriber fields edit</label>
|
394 |
+
<frontend_type>text</frontend_type>
|
395 |
+
<sort_order>35</sort_order>
|
396 |
+
<show_in_default>1</show_in_default>
|
397 |
+
<show_in_website>0</show_in_website>
|
398 |
+
<show_in_store>0</show_in_store>
|
399 |
+
<expanded>0</expanded>
|
400 |
+
<fields>
|
401 |
+
<enable translate="label">
|
402 |
+
<label>Enable custom subscriber fields edit email</label>
|
403 |
+
<frontend_type>select</frontend_type>
|
404 |
+
<sort_order>10</sort_order>
|
405 |
+
<show_in_default>1</show_in_default>
|
406 |
+
<show_in_website>0</show_in_website>
|
407 |
+
<show_in_store>0</show_in_store>
|
408 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
409 |
+
</enable>
|
410 |
+
<email_sender translate="label">
|
411 |
+
<label>Sender email</label>
|
412 |
+
<frontend_type>text</frontend_type>
|
413 |
+
<sort_order>20</sort_order>
|
414 |
+
<show_in_default>1</show_in_default>
|
415 |
+
<show_in_website>0</show_in_website>
|
416 |
+
<show_in_store>0</show_in_store>
|
417 |
+
<depends>
|
418 |
+
<enable>1</enable>
|
419 |
+
</depends>
|
420 |
+
</email_sender>
|
421 |
+
<email_sender_name translate="label">
|
422 |
+
<label>Sender name</label>
|
423 |
+
<frontend_type>text</frontend_type>
|
424 |
+
<sort_order>30</sort_order>
|
425 |
+
<show_in_default>1</show_in_default>
|
426 |
+
<show_in_website>0</show_in_website>
|
427 |
+
<show_in_store>0</show_in_store>
|
428 |
+
<depends>
|
429 |
+
<enable>1</enable>
|
430 |
+
</depends>
|
431 |
+
</email_sender_name>
|
432 |
+
<send_email_template translate="label">
|
433 |
+
<label>Email template</label>
|
434 |
+
<frontend_type>select</frontend_type>
|
435 |
+
<source_model>adminhtml/system_config_source_email_template</source_model>
|
436 |
+
<sort_order>50</sort_order>
|
437 |
+
<show_in_default>1</show_in_default>
|
438 |
+
<show_in_website>0</show_in_website>
|
439 |
+
<show_in_store>0</show_in_store>
|
440 |
+
<depends>
|
441 |
+
<enable>1</enable>
|
442 |
+
</depends>
|
443 |
+
</send_email_template>
|
444 |
+
</fields>
|
445 |
+
</modify_email>
|
446 |
+
|
447 |
<queue translate="label">
|
448 |
<label>Queue parameters</label>
|
449 |
<frontend_type>text</frontend_type>
|
452 |
<show_in_website>1</show_in_website>
|
453 |
<show_in_store>1</show_in_store>
|
454 |
<expanded>0</expanded>
|
455 |
+
<comment><![CDATA[All time values are specified in <strong>minutes</strong>.]]></comment>
|
456 |
<fields>
|
457 |
<contactlab_subscribers_model_task_exportsubscribersrunner_interval translate="label">
|
458 |
<label>Interval between export attempts</label>
|
471 |
<show_in_store>1</show_in_store>
|
472 |
</contactlab_subscribers_model_task_exportsubscribersrunner_retries>
|
473 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval translate="label">
|
474 |
+
<label>Interval between StartSubscriberDataExchangeRunner SOAP calls</label>
|
475 |
<frontend_type>text</frontend_type>
|
476 |
<sort_order>30</sort_order>
|
477 |
<show_in_default>1</show_in_default>
|
479 |
<show_in_store>1</show_in_store>
|
480 |
</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_interval>
|
481 |
<contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries translate="label">
|
482 |
+
<label>Number of StartSubscriberDataExchangeRunner SOAP call attempts</label>
|
483 |
<frontend_type>text</frontend_type>
|
484 |
<sort_order>40</sort_order>
|
485 |
<show_in_default>1</show_in_default>
|
488 |
</contactlab_subscribers_model_task_startsubscriberdataexchangerunner_retries>
|
489 |
</fields>
|
490 |
</queue>
|
491 |
+
<newsletter>
|
492 |
+
<label>Newsletter custom block</label>
|
493 |
+
<frontend_type>text</frontend_type>
|
494 |
+
<sort_order>45</sort_order>
|
495 |
+
<show_in_default>1</show_in_default>
|
496 |
+
<show_in_website>1</show_in_website>
|
497 |
+
<show_in_store>1</show_in_store>
|
498 |
+
<expanded>0</expanded>
|
499 |
+
<fields>
|
500 |
+
<enable translate="label">
|
501 |
+
<label>Enable custom newsletter block</label>
|
502 |
+
<frontend_type>select</frontend_type>
|
503 |
+
<sort_order>10</sort_order>
|
504 |
+
<show_in_default>1</show_in_default>
|
505 |
+
<show_in_website>0</show_in_website>
|
506 |
+
<show_in_store>0</show_in_store>
|
507 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
508 |
+
</enable>
|
509 |
+
</fields>
|
510 |
+
</newsletter>
|
511 |
<example_configuration translate="label">
|
512 |
<label>Cron configuration example</label>
|
513 |
<frontend_type>text</frontend_type>
|
516 |
<show_in_website>0</show_in_website>
|
517 |
<show_in_store>0</show_in_store>
|
518 |
<comment><![CDATA[<h3>Example configuration</h3>
|
519 |
+
<p>This configuration example queues an export job every day at 9:30 PM.</p>
|
520 |
<pre><crontab>
|
521 |
<jobs>
|
522 |
<contactlab_subscribers_export_subscribers>
|
567 |
<show_in_website>1</show_in_website>
|
568 |
<show_in_store>1</show_in_store>
|
569 |
<config_path>contactlab_subscribers/global/import_filename</config_path>
|
570 |
+
<comment><![CDATA[Import filename (for example: event_info_{Ymd}.xml)<br>Use {Ymd} syntax to replace the date.<br>The <a href='http://php.net/manual/en/function.date.php'>PHP date() function</a>'s format is used.]]></comment>
|
571 |
</import_filename>
|
572 |
<import_remote_path translate="label">
|
573 |
+
<label>Server importer path</label>
|
574 |
<frontend_type>text</frontend_type>
|
575 |
<sort_order>20</sort_order>
|
576 |
<show_in_default>1</show_in_default>
|
579 |
<config_path>contactlab_commons/connection/import_remote_path</config_path>
|
580 |
</import_remote_path>
|
581 |
<data_exporter_config_identifier translate="label">
|
582 |
+
<label>DataExporter configuration ID</label>
|
583 |
<frontend_type>text</frontend_type>
|
584 |
<sort_order>30</sort_order>
|
585 |
<show_in_default>1</show_in_default>
|
590 |
</fields>
|
591 |
</setup>
|
592 |
<queue translate="label">
|
593 |
+
<label>Manage queue</label>
|
594 |
<frontend_type>text</frontend_type>
|
595 |
<sort_order>20</sort_order>
|
596 |
<show_in_default>1</show_in_default>
|
597 |
<show_in_website>1</show_in_website>
|
598 |
<show_in_store>1</show_in_store>
|
599 |
<expanded>0</expanded>
|
600 |
+
<comment><![CDATA[All time values are specified in <strong>minutes</strong>.]]></comment>
|
601 |
<fields>
|
602 |
<contactlab_subscribers_model_task_importsubscribersrunner_interval translate="label">
|
603 |
<label>Interval between import attempts</label>
|
609 |
<config_path>contactlab_subscribers/queue/contactlab_subscribers_model_task_importsubscribersrunner_interval</config_path>
|
610 |
</contactlab_subscribers_model_task_importsubscribersrunner_interval>
|
611 |
<contactlab_subscribers_model_task_importsubscribersrunner_retries translate="label">
|
612 |
+
<label>Number of import attempts</label>
|
613 |
<frontend_type>text</frontend_type>
|
614 |
<sort_order>20</sort_order>
|
615 |
<show_in_default>1</show_in_default>
|
app/code/community/Contactlab/Subscribers/shell/make-csv.php
DELETED
@@ -1,78 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function randomFirstName() {
|
4 |
-
return random("Mario", "Dario", "Lara", "Giulia", "Luisa", "Tania", "Marco", "Andrea", "Diego", "Gianluca", "Michele", "Ernesto", "Davide", "Carlo", "Carla", "Gianni", "Gianna", "Francesco", "Francesca");
|
5 |
-
}
|
6 |
-
|
7 |
-
function randomLastName() {
|
8 |
-
return random("Rossi", "Verdi", "Pasquali", "Peresson", "De Francesco", "Lorenzon", "Pinto", "De Luigi", "Bersani", "Speranza", "Girondi", "Fatrane", "Allegri", "Dello", "De Preti", "Mieli", "Paulate", "Verri", "Siniscalco");
|
9 |
-
}
|
10 |
-
function randomId() {
|
11 |
-
return "EMPL_AW_" . str_pad(mt_rand(500, 1000), 4, '0', STR_PAD_LEFT);
|
12 |
-
}
|
13 |
-
function randomStoreCode() {
|
14 |
-
return "AW" . str_pad(mt_rand(500, 1000), 4, '0', STR_PAD_LEFT);
|
15 |
-
}
|
16 |
-
function randomStreet() {
|
17 |
-
return random("Viale Verdi", "Via Roma", "Via Udine", "Viale Montecristo", "Vicolo Corto", "Vicolo stretto");
|
18 |
-
}
|
19 |
-
function randomNr() {
|
20 |
-
return random("1", "7", "12", "14/c", "19", "52", "44", "7/b", "20", "20/a", "25", "34", "35/b", "17");
|
21 |
-
}
|
22 |
-
function randomCity() {
|
23 |
-
return random("Pero", "Romano", "Desenzano", "Merano", "Villanova");
|
24 |
-
}
|
25 |
-
function randomCountry() {
|
26 |
-
return random("IT");
|
27 |
-
}
|
28 |
-
function randomRegion() {
|
29 |
-
return random("UD", "PN", "TS", "FI", "RM", "TO");
|
30 |
-
}
|
31 |
-
function randomPostcode() {
|
32 |
-
return mt_rand(12345, 99999);
|
33 |
-
}
|
34 |
-
function randomTelephone() {
|
35 |
-
return mt_rand(4012345, 4999999);
|
36 |
-
}
|
37 |
-
function randomStore() {
|
38 |
-
return random("Retail", "Franchising");
|
39 |
-
}
|
40 |
-
function random() {
|
41 |
-
$a = func_get_args();
|
42 |
-
return $a[mt_rand(0, func_num_args() - 1)];
|
43 |
-
}
|
44 |
-
|
45 |
-
function mkMail($n, $l) {
|
46 |
-
return "name.surname+" . preg_replace('|\s+|', '_', strtolower($n . "." . $l . '.' . mt_rand(100000000, 999999999) . '_' . mt_rand(100000000, 999999999) . '@example.com'));
|
47 |
-
}
|
48 |
-
|
49 |
-
/*
|
50 |
-
* first_name
|
51 |
-
* last_name
|
52 |
-
* aw_store_code
|
53 |
-
* aw_employee_id
|
54 |
-
* email
|
55 |
-
* street
|
56 |
-
* city
|
57 |
-
* country
|
58 |
-
* region
|
59 |
-
* postcode
|
60 |
-
* telephone
|
61 |
-
* group
|
62 |
-
*/
|
63 |
-
|
64 |
-
# 989999
|
65 |
-
echo "_address_firstname,_address_lastname,firstname,lastname,email,_address_street,_address_city," . "_address_country_id,_address_region,_address_postcode,_address_telephone,group_id,_website,_store,_address_default_billing_,_address_default_shipping_\n";
|
66 |
-
for ($i = 0; $i < 10000; $i++) {
|
67 |
-
$firstname = randomFirstName();
|
68 |
-
$lastname = randomLastName();
|
69 |
-
$email = mkMail($firstname, $lastname);
|
70 |
-
$street = randomStreet();
|
71 |
-
$nr = randomNr();
|
72 |
-
$city = randomCity();
|
73 |
-
$country = randomCountry();
|
74 |
-
$region = randomRegion();
|
75 |
-
$postcode = randomPostcode();
|
76 |
-
$phone = randomTelephone();
|
77 |
-
echo "\"$firstname\",\"$lastname\",\"$firstname\",\"$lastname\",\"$email\",\"$street, $nr\",\"$city\",\"$country\",\"$region\",\"$postcode\",\"$phone\",1,\"base\",\"default\",1,1\n";
|
78 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Subscribers/sql/contactlab_subscribers_setup/upgrade-0.8.21-0.8.22.php
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
6 |
+
$installer->startSetup();
|
7 |
+
|
8 |
+
// Create subscriber fields table
|
9 |
+
$table = "contactlab_subscribers/newsletter_subscriber_fields";
|
10 |
+
$tableName = $installer->getTable($table);
|
11 |
+
|
12 |
+
/** @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
13 |
+
$connection = $installer->getConnection();
|
14 |
+
|
15 |
+
if (!$connection->isTableExists($tableName)) {
|
16 |
+
$newTable = $connection->newTable($tableName)
|
17 |
+
->addColumn('entity_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
|
18 |
+
'identity' => true,
|
19 |
+
'unsigned' => true,
|
20 |
+
'nullable' => false,
|
21 |
+
'primary' => true), 'ContactLab Entity id')
|
22 |
+
->addColumn('subscriber_id',
|
23 |
+
Varien_Db_Ddl_Table::TYPE_INTEGER,
|
24 |
+
null,
|
25 |
+
array('nullable' => true),
|
26 |
+
'Newsletter subscribers table entity Id')
|
27 |
+
->addColumn('subscriber_email',
|
28 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
29 |
+
150, array(
|
30 |
+
'nullable' => true,
|
31 |
+
'default' => null),
|
32 |
+
'Subscriber Email')
|
33 |
+
->addColumn('first_name',
|
34 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
35 |
+
255,
|
36 |
+
array('nullable' => true),
|
37 |
+
'First name')
|
38 |
+
->addColumn('last_name',
|
39 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
40 |
+
255,
|
41 |
+
array('nullable' => true),
|
42 |
+
'Last name')
|
43 |
+
->addColumn('company',
|
44 |
+
Varien_Db_Ddl_Table::TYPE_TEXT, 255,
|
45 |
+
array('nullable' => true), 'Company')
|
46 |
+
->addColumn('gender',
|
47 |
+
Varien_Db_Ddl_Table::TYPE_TEXT, 10,
|
48 |
+
array('nullable' => true), 'Gender')
|
49 |
+
->addColumn('dob',
|
50 |
+
Varien_Db_Ddl_Table::TYPE_DATETIME,
|
51 |
+
null, array('nullable' => true), 'Date of birth')
|
52 |
+
->addColumn('privacy_accepted',
|
53 |
+
Varien_Db_Ddl_Table::TYPE_BOOLEAN,
|
54 |
+
null, array('nullable' => false), 'Privacy acceptance flag')
|
55 |
+
->addColumn('custom_1',
|
56 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
57 |
+
255, array('nullable' => true), 'Custom text field #1')
|
58 |
+
->addColumn('custom_2',
|
59 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
60 |
+
255, array('nullable' => true), 'Custom text field #2')
|
61 |
+
->addColumn('country',
|
62 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
63 |
+
255, array('nullable' => true), 'Country')
|
64 |
+
->addColumn('city',
|
65 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
66 |
+
255, array('nullable' => true), 'City')
|
67 |
+
->addColumn('address',
|
68 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
69 |
+
255, array('nullable' => true), 'Address')
|
70 |
+
->addColumn('zip_code',
|
71 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
72 |
+
10, array('nullable' => true), 'Zip code')
|
73 |
+
->addColumn('phone',
|
74 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
75 |
+
12, array('nullable' => true), 'Landline phone number')
|
76 |
+
->addColumn('cell_phone',
|
77 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
78 |
+
12, array('nullable' => true), 'Mobile phone number')
|
79 |
+
->addColumn('notes',
|
80 |
+
Varien_Db_Ddl_Table::TYPE_TEXT,
|
81 |
+
255, array('nullable' => true),
|
82 |
+
'Notes')
|
83 |
+
->addForeignKey($installer->getFkName($table, 'subscriber_id', 'newsletter/subscriber', 'subscriber_id'),
|
84 |
+
'subscriber_id', $installer->getTable('newsletter/subscriber'), 'subscriber_id',
|
85 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE)
|
86 |
+
->setComment("ContactLab Id -> Newsletter subscriber mapping table");
|
87 |
+
|
88 |
+
$connection->createTable($newTable);
|
89 |
+
}
|
90 |
+
|
91 |
+
$installer->endSetup();
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Edit/Form.php
CHANGED
@@ -2,10 +2,6 @@
|
|
2 |
|
3 |
/**
|
4 |
* Adminhtml Newsletter Template Edit Form Block
|
5 |
-
*
|
6 |
-
* @category Mage
|
7 |
-
* @package Mage_Adminhtml
|
8 |
-
* @author Magento Core Team <core@magentocommerce.com>
|
9 |
*/
|
10 |
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends Mage_Adminhtml_Block_Newsletter_Template_Edit_Form
|
11 |
{
|
@@ -18,19 +14,22 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
18 |
protected function _prepareForm() {
|
19 |
$returnValue = parent::_prepareForm();
|
20 |
|
|
|
21 |
$model = $this->getModel();
|
22 |
$h = Mage::helper('contactlab_template');
|
23 |
$form = $this->getForm();
|
24 |
$yesNo = Mage::getModel('adminhtml/system_config_source_yesno');
|
|
|
25 |
|
26 |
-
$
|
|
|
27 |
|
28 |
// Remove fields.
|
29 |
-
$
|
30 |
-
$
|
31 |
|
32 |
|
33 |
-
$
|
34 |
'required' => false,
|
35 |
'name' => 'enable_xml_delivery',
|
36 |
'default' => '1',
|
@@ -38,32 +37,39 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
38 |
'values' => $yesNo->toOptionArray(),
|
39 |
'value' => $model->getId() !== null ? $model->getEnableXmlDelivery() : 1));
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
$types = Mage::getModel('contactlab_template/system_config_source_template_type');
|
43 |
|
44 |
-
$
|
45 |
'required' => false,
|
46 |
'name' => 'reply_to',
|
47 |
'label' => $h->__('Reply to'),
|
48 |
'value' => $model->getId() !== null ? $model->getReplyTo() : ''));
|
49 |
-
$
|
50 |
'required' => false,
|
51 |
'name' => 'template_type_id',
|
52 |
'values' => $types->toOptionArray(),
|
53 |
'label' => $h->__('Template type'),
|
54 |
'value' => $model->getId() !== null ? $model->getTemplateTypeId() : ''));
|
55 |
-
$
|
56 |
'required' => true,
|
57 |
'name' => 'text',
|
58 |
'label' => $h->__('Template (html format)'),
|
59 |
'value' => $model->getTemplateText()));
|
60 |
-
$
|
61 |
'required' => true,
|
62 |
'name' => 'template_text_plain',
|
63 |
'label' => $h->__('Template (text format)'),
|
64 |
'value' => $model->getTemplateTextPlain()));
|
65 |
$formats = Mage::getModel('contactlab_template/system_config_source_template_format');
|
66 |
-
$
|
67 |
'required' => true,
|
68 |
'name' => 'flg_html_txt',
|
69 |
'label' => $h->__('Email format type'),
|
@@ -71,13 +77,13 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
71 |
'values' => $formats->toOptionArray(),
|
72 |
'value' => $model->getId() !== null ? $model->getFlgHtmlTxt() : 'B'));
|
73 |
|
74 |
-
$
|
75 |
'name' =>'styles',
|
76 |
'label' => Mage::helper('newsletter')->__('Template Styles'),
|
77 |
'container_id' => 'field_template_styles',
|
78 |
'value' => $model->getTemplateStyles()
|
79 |
));
|
80 |
-
$
|
81 |
'name' => 'is_test_mode',
|
82 |
'label' => Mage::helper('contactlab_template')->__('Send to test recipients'),
|
83 |
'title' => Mage::helper('contactlab_template')->__('Send to test recipients'),
|
@@ -89,9 +95,9 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
89 |
));
|
90 |
|
91 |
|
92 |
-
$this->
|
93 |
$this->_addCustomerFilterOptions();
|
94 |
-
$this->
|
95 |
|
96 |
return $returnValue;
|
97 |
}
|
@@ -100,24 +106,25 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
100 |
/**
|
101 |
* Add product fields fileset
|
102 |
*/
|
103 |
-
private function
|
|
|
104 |
$model = $this->getModel();
|
105 |
$h = Mage::helper('contactlab_template');
|
106 |
$form = $this->getForm();
|
107 |
|
108 |
-
$
|
109 |
'legend' => $h->__('Product templates'),
|
110 |
'class' => 'fieldset-wide'
|
111 |
));
|
112 |
|
113 |
foreach (range(1, 5) as $i) {
|
114 |
-
$
|
115 |
'required' => false,
|
116 |
'name' => "template_pr_txt_$i",
|
117 |
'label' => $h->__("Product template nr %d (text)", $i),
|
118 |
'title' => $h->__("Template nr %d for product (text/plain)", $i),
|
119 |
'value' => $model->getId() !== null ? $model->getData("template_pr_txt_$i") : ''));
|
120 |
-
$
|
121 |
'required' => false,
|
122 |
'name' => "template_pr_html_$i",
|
123 |
'label' => $h->__("Product template nr %d (html)", $i),
|
@@ -125,14 +132,14 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
125 |
'value' => $model->getId() !== null ? $model->getData("template_pr_html_$i") : ''));
|
126 |
}
|
127 |
|
128 |
-
$
|
129 |
'required' => false,
|
130 |
'name' => 'default_product_snippet',
|
131 |
'label' => $h->__('Default product snippet (1-5)'),
|
132 |
'title' => $h->__('Default product snippet number'),
|
133 |
'value' => $model->getId() !== null ? $model->getDefaultProductSnippet() : ''));
|
134 |
|
135 |
-
$
|
136 |
'required' => false,
|
137 |
'name' => 'product_image_size',
|
138 |
'label' => $h->__('Product image size (width x height)'),
|
@@ -144,51 +151,51 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
144 |
/**
|
145 |
* Add cron fields fileset
|
146 |
*/
|
147 |
-
private function
|
|
|
148 |
$model = $this->getModel();
|
149 |
$h = Mage::helper('contactlab_template');
|
150 |
$form = $this->getForm();
|
151 |
$yesNo = Mage::getModel('adminhtml/system_config_source_yesno');
|
152 |
|
153 |
-
$
|
154 |
-
$fieldset = $form->addFieldset('cron_fieldset', array(
|
155 |
'legend' => $h->__('Cron Information'),
|
156 |
'class' => 'fieldset-narrow'
|
157 |
));
|
158 |
|
159 |
-
$
|
160 |
-
'label' => $h->__('Activate for
|
161 |
-
'title' => $h->__('Does the template is active for
|
162 |
'name' => 'is_cron_enabled',
|
163 |
'values' => $yesNo->toOptionArray(),
|
164 |
'value' => $model->getId() !== null ? $model->getIsCronEnabled() : 0));
|
165 |
$dateFormatIso = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
|
166 |
-
$
|
167 |
'label' => $h->__('Enabled start date'),
|
168 |
-
'title' => $h->__('Start date for
|
169 |
'image' => $this->getSkinUrl('images/grid-cal.gif'),
|
170 |
'input_format' => Varien_Date::DATE_INTERNAL_FORMAT,
|
171 |
'format' => $dateFormatIso,
|
172 |
'required' => false,
|
173 |
'name' => 'cron_date_range_start',
|
174 |
'value' => $model->getId() !== null ? $model->getCronDateRangeStart() : ''));
|
175 |
-
$
|
176 |
'label' => $h->__('Enabled end date'),
|
177 |
-
'title' => $h->__('End date for
|
178 |
'image' => $this->getSkinUrl('images/grid-cal.gif'),
|
179 |
'input_format' => Varien_Date::DATE_INTERNAL_FORMAT,
|
180 |
'format' => $dateFormatIso,
|
181 |
'required' => false,
|
182 |
'name' => 'cron_date_range_end',
|
183 |
'value' => $model->getId() !== null ? $model->getCronDateRangeEnd() : ''));
|
184 |
-
$
|
185 |
'label' => $h->__('Queue delay time'),
|
186 |
'title' => $h->__('Optional queue delay time'),
|
187 |
'required' => false,
|
188 |
'name' => 'queue_delay_time',
|
189 |
'value' => $model->getId() !== null ? $model->getQueueDelayTime() : 0));
|
190 |
|
191 |
-
$
|
192 |
'required' => true,
|
193 |
'name' => 'priority',
|
194 |
'label' => $h->__('Priority'),
|
@@ -201,18 +208,20 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
201 |
* @return $this
|
202 |
*/
|
203 |
public function _addCustomerFilterOptions() {
|
|
|
204 |
$model = $this->getModel();
|
|
|
205 |
/* @var $h Contactlab_Template_Helper_Data */
|
206 |
$h = Mage::helper('contactlab_template');
|
207 |
$form = $this->getForm();
|
208 |
$andOr = Mage::getModel('contactlab_template/system_config_source_andOr');
|
209 |
|
210 |
-
$
|
211 |
'legend' => $h->__('Customer filter options'),
|
212 |
'class' => 'fieldset-narrow'
|
213 |
));
|
214 |
|
215 |
-
$
|
216 |
'required' => false,
|
217 |
'class' => 'validate-not-negative-number validate-digits validate-is-min-of-range',
|
218 |
'label' => $h->__('Minimum number of minutes'),
|
@@ -220,7 +229,7 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
220 |
'name' => 'min_minutes_from_last_update',
|
221 |
'value' => $model->getId() !== null ? $model->getMinMinutesFromLastUpdate() : ''));
|
222 |
|
223 |
-
$
|
224 |
'required' => false,
|
225 |
'class' => 'validate-not-negative-number validate-digits validate-is-max-of-range',
|
226 |
'label' => $h->__('Maximum number of minutes'),
|
@@ -228,7 +237,7 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
228 |
'name' => 'max_minutes_from_last_update',
|
229 |
'value' => $model->getId() !== null ? $model->getMaxMinutesFromLastUpdate() : ''));
|
230 |
|
231 |
-
$
|
232 |
'required' => false,
|
233 |
'class' => 'validate-number validate-not-negative-number validate-is-min-of-range',
|
234 |
'label' => $h->__('Minimum value'),
|
@@ -237,7 +246,7 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
237 |
'name' => 'min_value',
|
238 |
'value' => $model->getId() !== null ? $h->formatPrice($model->getMinValue()) : ''));
|
239 |
|
240 |
-
$
|
241 |
'required' => false,
|
242 |
'class' => 'validate-number validate-not-negative-number validate-is-max-of-range',
|
243 |
'label' => $h->__('Maximum value'),
|
@@ -245,7 +254,7 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
245 |
'name' => 'max_value',
|
246 |
'value' => $model->getId() !== null ? $h->formatPrice($model->getMaxValue()) : ''));
|
247 |
|
248 |
-
$
|
249 |
'required' => false,
|
250 |
'class' => 'validate-greater-than-zero validate-digits validate-is-min-of-range',
|
251 |
'label' => $h->__('Minimum number of products'),
|
@@ -253,7 +262,7 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
253 |
'name' => 'min_products',
|
254 |
'value' => $model->getId() !== null ? $model->getMinProducts() : ''));
|
255 |
|
256 |
-
$
|
257 |
'required' => false,
|
258 |
'class' => 'validate-greater-than-zero validate-digits validate-is-max-of-range',
|
259 |
'label' => $h->__('Maximum number of products'),
|
@@ -261,14 +270,29 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends
|
|
261 |
'name' => 'max_products',
|
262 |
'value' => $model->getId() !== null ? $model->getMaxProducts() : ''));
|
263 |
|
264 |
-
$
|
265 |
'required' => true,
|
266 |
-
'label' => $h->__('And
|
267 |
-
'title' => $h->__('And
|
268 |
'name' => 'and_or',
|
269 |
'values' => $andOr->toOptionArray(),
|
270 |
'value' => $model->getId() !== null ? $model->getAndOr() : 'AND'));
|
271 |
|
272 |
return $this;
|
273 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
}
|
2 |
|
3 |
/**
|
4 |
* Adminhtml Newsletter Template Edit Form Block
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Edit_Form extends Mage_Adminhtml_Block_Newsletter_Template_Edit_Form
|
7 |
{
|
14 |
protected function _prepareForm() {
|
15 |
$returnValue = parent::_prepareForm();
|
16 |
|
17 |
+
/** @var $model Contactlab_Template_Model_Newsletter_Template */
|
18 |
$model = $this->getModel();
|
19 |
$h = Mage::helper('contactlab_template');
|
20 |
$form = $this->getForm();
|
21 |
$yesNo = Mage::getModel('adminhtml/system_config_source_yesno');
|
22 |
+
$stores = $this->getStoresOptions();
|
23 |
|
24 |
+
/** @var $fieldSet Varien_Data_Form_Element_Fieldset */
|
25 |
+
$fieldSet = $form->getElement('base_fieldset');
|
26 |
|
27 |
// Remove fields.
|
28 |
+
$fieldSet->removeField('text');
|
29 |
+
$fieldSet->removeField('template_styles');
|
30 |
|
31 |
|
32 |
+
$fieldSet->addField('enable_xml_delivery', 'select', array(
|
33 |
'required' => false,
|
34 |
'name' => 'enable_xml_delivery',
|
35 |
'default' => '1',
|
37 |
'values' => $yesNo->toOptionArray(),
|
38 |
'value' => $model->getId() !== null ? $model->getEnableXmlDelivery() : 1));
|
39 |
|
40 |
+
$fieldSet->addField('store_id', 'select', array(
|
41 |
+
'required' => false,
|
42 |
+
'name' => 'store_id',
|
43 |
+
'label' => Mage::helper('adminhtml')->__('Store View'),
|
44 |
+
'values' => $stores,
|
45 |
+
'value' => $model->getStoreId()));
|
46 |
+
|
47 |
|
48 |
$types = Mage::getModel('contactlab_template/system_config_source_template_type');
|
49 |
|
50 |
+
$fieldSet->addField('reply_to', 'text', array(
|
51 |
'required' => false,
|
52 |
'name' => 'reply_to',
|
53 |
'label' => $h->__('Reply to'),
|
54 |
'value' => $model->getId() !== null ? $model->getReplyTo() : ''));
|
55 |
+
$fieldSet->addField('template_type_id', 'select', array(
|
56 |
'required' => false,
|
57 |
'name' => 'template_type_id',
|
58 |
'values' => $types->toOptionArray(),
|
59 |
'label' => $h->__('Template type'),
|
60 |
'value' => $model->getId() !== null ? $model->getTemplateTypeId() : ''));
|
61 |
+
$fieldSet->addField('text', 'textarea', array(
|
62 |
'required' => true,
|
63 |
'name' => 'text',
|
64 |
'label' => $h->__('Template (html format)'),
|
65 |
'value' => $model->getTemplateText()));
|
66 |
+
$fieldSet->addField('template_text_plain', 'textarea', array(
|
67 |
'required' => true,
|
68 |
'name' => 'template_text_plain',
|
69 |
'label' => $h->__('Template (text format)'),
|
70 |
'value' => $model->getTemplateTextPlain()));
|
71 |
$formats = Mage::getModel('contactlab_template/system_config_source_template_format');
|
72 |
+
$fieldSet->addField('flg_html_txt', 'select', array(
|
73 |
'required' => true,
|
74 |
'name' => 'flg_html_txt',
|
75 |
'label' => $h->__('Email format type'),
|
77 |
'values' => $formats->toOptionArray(),
|
78 |
'value' => $model->getId() !== null ? $model->getFlgHtmlTxt() : 'B'));
|
79 |
|
80 |
+
$fieldSet->addField('template_styles', 'textarea', array(
|
81 |
'name' =>'styles',
|
82 |
'label' => Mage::helper('newsletter')->__('Template Styles'),
|
83 |
'container_id' => 'field_template_styles',
|
84 |
'value' => $model->getTemplateStyles()
|
85 |
));
|
86 |
+
$fieldSet->addField('is_test_mode', 'select', array(
|
87 |
'name' => 'is_test_mode',
|
88 |
'label' => Mage::helper('contactlab_template')->__('Send to test recipients'),
|
89 |
'title' => Mage::helper('contactlab_template')->__('Send to test recipients'),
|
95 |
));
|
96 |
|
97 |
|
98 |
+
$this->_addProductFieldSet();
|
99 |
$this->_addCustomerFilterOptions();
|
100 |
+
$this->_addCronFieldSet();
|
101 |
|
102 |
return $returnValue;
|
103 |
}
|
106 |
/**
|
107 |
* Add product fields fileset
|
108 |
*/
|
109 |
+
private function _addProductFieldSet() {
|
110 |
+
/** @var $model Contactlab_Template_Model_Newsletter_Template */
|
111 |
$model = $this->getModel();
|
112 |
$h = Mage::helper('contactlab_template');
|
113 |
$form = $this->getForm();
|
114 |
|
115 |
+
$fieldSet = $form->addFieldset('product_fieldset', array(
|
116 |
'legend' => $h->__('Product templates'),
|
117 |
'class' => 'fieldset-wide'
|
118 |
));
|
119 |
|
120 |
foreach (range(1, 5) as $i) {
|
121 |
+
$fieldSet->addField("template_pr_txt_$i", 'textarea', array(
|
122 |
'required' => false,
|
123 |
'name' => "template_pr_txt_$i",
|
124 |
'label' => $h->__("Product template nr %d (text)", $i),
|
125 |
'title' => $h->__("Template nr %d for product (text/plain)", $i),
|
126 |
'value' => $model->getId() !== null ? $model->getData("template_pr_txt_$i") : ''));
|
127 |
+
$fieldSet->addField("template_pr_html_$i", 'textarea', array(
|
128 |
'required' => false,
|
129 |
'name' => "template_pr_html_$i",
|
130 |
'label' => $h->__("Product template nr %d (html)", $i),
|
132 |
'value' => $model->getId() !== null ? $model->getData("template_pr_html_$i") : ''));
|
133 |
}
|
134 |
|
135 |
+
$fieldSet->addField('default_product_snippet', 'text', array(
|
136 |
'required' => false,
|
137 |
'name' => 'default_product_snippet',
|
138 |
'label' => $h->__('Default product snippet (1-5)'),
|
139 |
'title' => $h->__('Default product snippet number'),
|
140 |
'value' => $model->getId() !== null ? $model->getDefaultProductSnippet() : ''));
|
141 |
|
142 |
+
$fieldSet->addField('product_image_size', 'text', array(
|
143 |
'required' => false,
|
144 |
'name' => 'product_image_size',
|
145 |
'label' => $h->__('Product image size (width x height)'),
|
151 |
/**
|
152 |
* Add cron fields fileset
|
153 |
*/
|
154 |
+
private function _addCronFieldSet() {
|
155 |
+
/** @var $model Contactlab_Template_Model_Newsletter_Template */
|
156 |
$model = $this->getModel();
|
157 |
$h = Mage::helper('contactlab_template');
|
158 |
$form = $this->getForm();
|
159 |
$yesNo = Mage::getModel('adminhtml/system_config_source_yesno');
|
160 |
|
161 |
+
$fieldSet = $form->addFieldset('cron_fieldset', array(
|
|
|
162 |
'legend' => $h->__('Cron Information'),
|
163 |
'class' => 'fieldset-narrow'
|
164 |
));
|
165 |
|
166 |
+
$fieldSet->addField('is_cron_enabled', 'select', array(
|
167 |
+
'label' => $h->__('Activate for Cron execution'),
|
168 |
+
'title' => $h->__('Does the template is active for Cron?'),
|
169 |
'name' => 'is_cron_enabled',
|
170 |
'values' => $yesNo->toOptionArray(),
|
171 |
'value' => $model->getId() !== null ? $model->getIsCronEnabled() : 0));
|
172 |
$dateFormatIso = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
|
173 |
+
$fieldSet->addField('cron_date_range_start', 'date', array(
|
174 |
'label' => $h->__('Enabled start date'),
|
175 |
+
'title' => $h->__('Start date for Cron'),
|
176 |
'image' => $this->getSkinUrl('images/grid-cal.gif'),
|
177 |
'input_format' => Varien_Date::DATE_INTERNAL_FORMAT,
|
178 |
'format' => $dateFormatIso,
|
179 |
'required' => false,
|
180 |
'name' => 'cron_date_range_start',
|
181 |
'value' => $model->getId() !== null ? $model->getCronDateRangeStart() : ''));
|
182 |
+
$fieldSet->addField('cron_date_range_end', 'date', array(
|
183 |
'label' => $h->__('Enabled end date'),
|
184 |
+
'title' => $h->__('End date for Cron'),
|
185 |
'image' => $this->getSkinUrl('images/grid-cal.gif'),
|
186 |
'input_format' => Varien_Date::DATE_INTERNAL_FORMAT,
|
187 |
'format' => $dateFormatIso,
|
188 |
'required' => false,
|
189 |
'name' => 'cron_date_range_end',
|
190 |
'value' => $model->getId() !== null ? $model->getCronDateRangeEnd() : ''));
|
191 |
+
$fieldSet->addField('queue_delay_time', 'text', array(
|
192 |
'label' => $h->__('Queue delay time'),
|
193 |
'title' => $h->__('Optional queue delay time'),
|
194 |
'required' => false,
|
195 |
'name' => 'queue_delay_time',
|
196 |
'value' => $model->getId() !== null ? $model->getQueueDelayTime() : 0));
|
197 |
|
198 |
+
$fieldSet->addField('priority', 'text', array(
|
199 |
'required' => true,
|
200 |
'name' => 'priority',
|
201 |
'label' => $h->__('Priority'),
|
208 |
* @return $this
|
209 |
*/
|
210 |
public function _addCustomerFilterOptions() {
|
211 |
+
/** @var $model Contactlab_Template_Model_Newsletter_Template */
|
212 |
$model = $this->getModel();
|
213 |
+
|
214 |
/* @var $h Contactlab_Template_Helper_Data */
|
215 |
$h = Mage::helper('contactlab_template');
|
216 |
$form = $this->getForm();
|
217 |
$andOr = Mage::getModel('contactlab_template/system_config_source_andOr');
|
218 |
|
219 |
+
$fieldSet = $form->addFieldset('customer_filter_fieldset', array(
|
220 |
'legend' => $h->__('Customer filter options'),
|
221 |
'class' => 'fieldset-narrow'
|
222 |
));
|
223 |
|
224 |
+
$fieldSet->addField('min_minutes_from_last_update', 'text', array(
|
225 |
'required' => false,
|
226 |
'class' => 'validate-not-negative-number validate-digits validate-is-min-of-range',
|
227 |
'label' => $h->__('Minimum number of minutes'),
|
229 |
'name' => 'min_minutes_from_last_update',
|
230 |
'value' => $model->getId() !== null ? $model->getMinMinutesFromLastUpdate() : ''));
|
231 |
|
232 |
+
$fieldSet->addField('max_minutes_from_last_update', 'text', array(
|
233 |
'required' => false,
|
234 |
'class' => 'validate-not-negative-number validate-digits validate-is-max-of-range',
|
235 |
'label' => $h->__('Maximum number of minutes'),
|
237 |
'name' => 'max_minutes_from_last_update',
|
238 |
'value' => $model->getId() !== null ? $model->getMaxMinutesFromLastUpdate() : ''));
|
239 |
|
240 |
+
$fieldSet->addField('min_value', 'text', array(
|
241 |
'required' => false,
|
242 |
'class' => 'validate-number validate-not-negative-number validate-is-min-of-range',
|
243 |
'label' => $h->__('Minimum value'),
|
246 |
'name' => 'min_value',
|
247 |
'value' => $model->getId() !== null ? $h->formatPrice($model->getMinValue()) : ''));
|
248 |
|
249 |
+
$fieldSet->addField('max_value', 'text', array(
|
250 |
'required' => false,
|
251 |
'class' => 'validate-number validate-not-negative-number validate-is-max-of-range',
|
252 |
'label' => $h->__('Maximum value'),
|
254 |
'name' => 'max_value',
|
255 |
'value' => $model->getId() !== null ? $h->formatPrice($model->getMaxValue()) : ''));
|
256 |
|
257 |
+
$fieldSet->addField('min_products', 'text', array(
|
258 |
'required' => false,
|
259 |
'class' => 'validate-greater-than-zero validate-digits validate-is-min-of-range',
|
260 |
'label' => $h->__('Minimum number of products'),
|
262 |
'name' => 'min_products',
|
263 |
'value' => $model->getId() !== null ? $model->getMinProducts() : ''));
|
264 |
|
265 |
+
$fieldSet->addField('max_products', 'text', array(
|
266 |
'required' => false,
|
267 |
'class' => 'validate-greater-than-zero validate-digits validate-is-max-of-range',
|
268 |
'label' => $h->__('Maximum number of products'),
|
270 |
'name' => 'max_products',
|
271 |
'value' => $model->getId() !== null ? $model->getMaxProducts() : ''));
|
272 |
|
273 |
+
$fieldSet->addField('and_or', 'select', array(
|
274 |
'required' => true,
|
275 |
+
'label' => $h->__('And/or condition values'),
|
276 |
+
'title' => $h->__('And/or condition values'),
|
277 |
'name' => 'and_or',
|
278 |
'values' => $andOr->toOptionArray(),
|
279 |
'value' => $model->getId() !== null ? $model->getAndOr() : 'AND'));
|
280 |
|
281 |
return $this;
|
282 |
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Get stores options.
|
286 |
+
* @return array
|
287 |
+
*/
|
288 |
+
private function getStoresOptions()
|
289 |
+
{
|
290 |
+
/* @var $h Contactlab_Template_Helper_Data */
|
291 |
+
$h = Mage::helper('contactlab_template');
|
292 |
+
$stores = Mage::getModel('adminhtml/system_config_source_store')->toOptionArray();
|
293 |
+
$stores = array_reverse($stores);
|
294 |
+
$stores['none'] = $h->__('Any');
|
295 |
+
$stores = array_reverse($stores);
|
296 |
+
return $stores;
|
297 |
+
}
|
298 |
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Grid.php
CHANGED
@@ -18,10 +18,18 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid extends Mage_
|
|
18 |
'index'=>'template_code',
|
19 |
'width' => 1
|
20 |
));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
$this->addColumn('template_type_name',
|
23 |
array(
|
24 |
-
'header'=>Mage::helper('newsletter')->__('Template
|
25 |
'index'=>'template_type_name',
|
26 |
'width' => 1
|
27 |
));
|
@@ -103,7 +111,8 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid extends Mage_
|
|
103 |
/* @var $collection Mage_Newsletter_Model_Resource_Template_Collection */
|
104 |
$collection = Mage::getResourceSingleton('newsletter/template_collection')
|
105 |
->useOnlyActual();
|
106 |
-
$collection->
|
|
|
107 |
"main_table.template_type_id = template_types.entity_id",
|
108 |
array('template_type_name' => 'name'));
|
109 |
$this->setCollection($collection);
|
18 |
'index'=>'template_code',
|
19 |
'width' => 1
|
20 |
));
|
21 |
+
$this->addColumn('store_id',
|
22 |
+
array(
|
23 |
+
'header'=>Mage::helper('newsletter')->__('Store View'),
|
24 |
+
'index'=>'store_id',
|
25 |
+
'width' => 1,
|
26 |
+
'type' => 'store',
|
27 |
+
'renderer' => 'contactlab_commons/adminhtml_tasks_renderer_store'
|
28 |
+
));
|
29 |
|
30 |
$this->addColumn('template_type_name',
|
31 |
array(
|
32 |
+
'header'=>Mage::helper('newsletter')->__('Template Type'),
|
33 |
'index'=>'template_type_name',
|
34 |
'width' => 1
|
35 |
));
|
111 |
/* @var $collection Mage_Newsletter_Model_Resource_Template_Collection */
|
112 |
$collection = Mage::getResourceSingleton('newsletter/template_collection')
|
113 |
->useOnlyActual();
|
114 |
+
$collection->getSelect()
|
115 |
+
->joinLeft(array('template_types' => $collection->getTable('contactlab_template/type')),
|
116 |
"main_table.template_type_id = template_types.entity_id",
|
117 |
array('template_type_name' => 'name'));
|
118 |
$this->setCollection($collection);
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Grid/Renderer/XmlDeliveryStatus.php
CHANGED
@@ -1,33 +1,76 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
*
|
5 |
*/
|
6 |
-
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid_Renderer_XmlDeliveryStatus
|
|
|
|
|
7 |
|
8 |
/**
|
9 |
* Renders grid column
|
10 |
*
|
11 |
-
* @param Varien_Object $row
|
12 |
* @return string
|
13 |
*/
|
14 |
-
public function render(Varien_Object $row)
|
15 |
-
|
|
|
|
|
16 |
}
|
17 |
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
$rv = "";
|
20 |
-
/* @var $queueCollection
|
21 |
$queueCollection = Mage::getResourceModel("newsletter/queue_collection");
|
22 |
-
$queueCollection->
|
23 |
-
|
24 |
-
'main_table.task_id = task.task_id and task.status != \'hidden\'',
|
25 |
-
array(
|
26 |
-
'status' => 'status',
|
27 |
-
'task_created_at' => 'created_at',
|
28 |
-
'task_planned_at' => 'planned_at'
|
29 |
-
));
|
30 |
-
$queueCollection->addOrder('task_id', Varien_Data_Collection::SORT_ORDER_DESC);
|
31 |
if ($queueCollection->count() == 0) {
|
32 |
return $rv;
|
33 |
}
|
@@ -38,13 +81,13 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid_Renderer_XmlD
|
|
38 |
$rv .= "<table class=\"data\" cellspacing=\"0\">";
|
39 |
$rv .= "<thead>";
|
40 |
$rv .= "<tr class=\"headings\">";
|
41 |
-
$rv .= "<th>" . $helper->__('Created
|
42 |
-
$rv .= "<th>" . $helper->__('Planned
|
43 |
-
$rv .= "<th>" . $helper->__('Status') ."</th>";
|
44 |
$rv .= "</tr>";
|
45 |
$rv .= "</thead>";
|
46 |
$rv .= "<tbody>";
|
47 |
-
|
48 |
$found = false;
|
49 |
$nr = 0;
|
50 |
foreach ($queueCollection as $queue) {
|
@@ -52,8 +95,8 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid_Renderer_XmlD
|
|
52 |
$nr = $nr + 1;
|
53 |
}
|
54 |
$a = sprintf('<a href="%s" title="%s">',
|
55 |
-
|
56 |
-
|
57 |
$rv .= "<tr";
|
58 |
if ($queue->getStatus() === 'closed' && $nr > 1) {
|
59 |
$rv .= ' style="display: none" class="template-' . $templateId . '-row"';
|
@@ -62,6 +105,9 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid_Renderer_XmlD
|
|
62 |
$rv .= ">";
|
63 |
$rv .= "<td>" . $a . $queue->getTaskCreatedAt() . "</a></td>";
|
64 |
$rv .= "<td>" . $a . ($queue->hasTaskPlannedAt() ? $queue->getTaskPlannedAt() : '—') . "</a></td>";
|
|
|
|
|
|
|
65 |
$rv .= "<td>" . $a . Contactlab_Commons_Block_Adminhtml_Events_Renderer_Status::renderTask($queue) . "</a></td>";
|
66 |
$rv .= "</tr>";
|
67 |
}
|
@@ -79,4 +125,16 @@ class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid_Renderer_XmlD
|
|
79 |
$rv .= "</table>";
|
80 |
return $rv;
|
81 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* XML Delivery status column renderer
|
5 |
*/
|
6 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Grid_Renderer_XmlDeliveryStatus
|
7 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
8 |
+
{
|
9 |
|
10 |
/**
|
11 |
* Renders grid column
|
12 |
*
|
13 |
+
* @param Varien_Object $row
|
14 |
* @return string
|
15 |
*/
|
16 |
+
public function render(Varien_Object $row)
|
17 |
+
{
|
18 |
+
/** @noinspection PhpUndefinedMethodInspection */
|
19 |
+
return $this->renderTasksCount($row->getTemplateId());
|
20 |
}
|
21 |
|
22 |
+
/**
|
23 |
+
* Render tasks with status count.
|
24 |
+
* @param $templateId
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function renderTasksCount($templateId)
|
28 |
+
{
|
29 |
+
/* @var $queueCollection Contactlab_Template_Model_Resource_Newsletter_Queue_Collection */
|
30 |
+
$queueCollection = Mage::getResourceModel("newsletter/queue_collection");
|
31 |
+
$queueCollection->getQueueByTemplateId($templateId)->addTaskData();
|
32 |
+
|
33 |
+
// Hidden tasks shown as closed.
|
34 |
+
$statusHiddenClosedExpr = new Zend_Db_Expr("if (task.status = 'hidden', 'closed', task.status)");
|
35 |
+
$queueCollection->getSelect()
|
36 |
+
->group($statusHiddenClosedExpr)
|
37 |
+
->reset(Zend_Db_Select::COLUMNS)
|
38 |
+
->columns(array('status' => $statusHiddenClosedExpr, 'queue_count' => new Zend_Db_Expr('count(1)')));
|
39 |
+
$rv = array();
|
40 |
+
while ($item = $queueCollection->fetchItem()) {
|
41 |
+
if ($item->getStatus() === 'hidden') {
|
42 |
+
$item->setStatus('closed');
|
43 |
+
}
|
44 |
+
$rv[] = sprintf('%s: %d',
|
45 |
+
Contactlab_Commons_Block_Adminhtml_Events_Renderer_Status::renderTask($item),
|
46 |
+
$item->getQueueCount());
|
47 |
+
}
|
48 |
+
if (empty($rv)) {
|
49 |
+
return '';
|
50 |
+
}
|
51 |
+
/* @var $helper Contactlab_Template_Helper_Data */
|
52 |
+
$helper = Mage::helper('contactlab_commons');
|
53 |
+
$link = sprintf('<a title="%s" href="%s">%s</a>',
|
54 |
+
$helper->__('Show full XML Delivery status information for this template'),
|
55 |
+
$this->_getUrlForTemplateId($templateId),
|
56 |
+
$helper->__('Full XML Delivery status'));
|
57 |
+
|
58 |
+
return sprintf('%s<br>%s', implode('<br />', $rv), $link);
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Render tasks with status.
|
63 |
+
* @param $templateId
|
64 |
+
* @deprecated
|
65 |
+
* @return string
|
66 |
+
*/
|
67 |
+
public function renderTasks($templateId)
|
68 |
+
{
|
69 |
$rv = "";
|
70 |
+
/* @var $queueCollection Contactlab_Template_Model_Resource_Newsletter_Queue_Collection */
|
71 |
$queueCollection = Mage::getResourceModel("newsletter/queue_collection");
|
72 |
+
$queueCollection->getQueueByTemplateId($templateId)->addTaskData();
|
73 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
if ($queueCollection->count() == 0) {
|
75 |
return $rv;
|
76 |
}
|
81 |
$rv .= "<table class=\"data\" cellspacing=\"0\">";
|
82 |
$rv .= "<thead>";
|
83 |
$rv .= "<tr class=\"headings\">";
|
84 |
+
$rv .= "<th>" . $helper->__('Created') . "</th>";
|
85 |
+
$rv .= "<th>" . $helper->__('Planned') . "</th>";
|
86 |
+
$rv .= "<th>" . $helper->__('Status') . "</th>";
|
87 |
$rv .= "</tr>";
|
88 |
$rv .= "</thead>";
|
89 |
$rv .= "<tbody>";
|
90 |
+
|
91 |
$found = false;
|
92 |
$nr = 0;
|
93 |
foreach ($queueCollection as $queue) {
|
95 |
$nr = $nr + 1;
|
96 |
}
|
97 |
$a = sprintf('<a href="%s" title="%s">',
|
98 |
+
Mage::helper("adminhtml")->getUrl("contactlab_commons/adminhtml_events",
|
99 |
+
array('id' => $queue->getTaskId())), $helper->__('Task events'));
|
100 |
$rv .= "<tr";
|
101 |
if ($queue->getStatus() === 'closed' && $nr > 1) {
|
102 |
$rv .= ' style="display: none" class="template-' . $templateId . '-row"';
|
105 |
$rv .= ">";
|
106 |
$rv .= "<td>" . $a . $queue->getTaskCreatedAt() . "</a></td>";
|
107 |
$rv .= "<td>" . $a . ($queue->hasTaskPlannedAt() ? $queue->getTaskPlannedAt() : '—') . "</a></td>";
|
108 |
+
if ($queue->getStatus() === 'hidden') {
|
109 |
+
$queue->setStatus('closed');
|
110 |
+
}
|
111 |
$rv .= "<td>" . $a . Contactlab_Commons_Block_Adminhtml_Events_Renderer_Status::renderTask($queue) . "</a></td>";
|
112 |
$rv .= "</tr>";
|
113 |
}
|
125 |
$rv .= "</table>";
|
126 |
return $rv;
|
127 |
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Get Url for template task list.
|
131 |
+
* @param int $templateId
|
132 |
+
* @return string
|
133 |
+
*/
|
134 |
+
private function _getUrlForTemplateId($templateId)
|
135 |
+
{
|
136 |
+
return Mage::helper('adminhtml')
|
137 |
+
->getUrl('adminhtml/contactlab_template_tasks/list',
|
138 |
+
array('template_id' => $templateId));
|
139 |
+
}
|
140 |
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Detail.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_Detail
|
5 |
+
*/
|
6 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_Detail
|
7 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Container
|
8 |
+
{
|
9 |
+
/**
|
10 |
+
* Construct the block.
|
11 |
+
*/
|
12 |
+
public function __construct() {
|
13 |
+
$this->_blockGroup = 'contactlab_template';
|
14 |
+
$this->_controller = 'adminhtml_newsletter_template_tasks_detail';
|
15 |
+
$this->_headerText = $this->__("Queue Detail");
|
16 |
+
|
17 |
+
parent::__construct();
|
18 |
+
$this->_removeButton('add');
|
19 |
+
$this->_addBackButton();
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Back url to newsletter template page.
|
24 |
+
* @return string
|
25 |
+
*/
|
26 |
+
public function getBackUrl() {
|
27 |
+
return $this->getUrl('*/*/list',
|
28 |
+
array('template_id' => Mage::registry('template_id')));
|
29 |
+
}
|
30 |
+
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Detail/Grid.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/** Adminhtml type grid. */
|
4 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_Detail_Grid
|
5 |
+
extends Mage_Adminhtml_Block_Widget_Grid {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Construct the block.
|
9 |
+
*
|
10 |
+
* @param array $attributes = array()
|
11 |
+
*/
|
12 |
+
public function __construct($attributes = array()) {
|
13 |
+
parent::__construct($attributes);
|
14 |
+
$this->setId('queue_link_id');
|
15 |
+
$this->setDefaultSort('queue_link_id');
|
16 |
+
$this->setDefaultDir('DESC');
|
17 |
+
$this->setSaveParametersInSession(false);
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Setting collection to show.
|
22 |
+
*
|
23 |
+
* @return Mage_Adminhtml_Block_Widget_Grid
|
24 |
+
*/
|
25 |
+
protected function _prepareCollection() {
|
26 |
+
/* @var $queueCollection Contactlab_Template_Model_Resource_Newsletter_Queue_Link_Collection */
|
27 |
+
$queueCollection = Mage::getResourceModel("contactlab_template/newsletter_queue_link_collection");
|
28 |
+
$queueCollection->addFieldToFilter('queue_id', Mage::registry('queue_id'));
|
29 |
+
$queueCollection->addCustomerInfo();
|
30 |
+
$queueCollection->addSubscriberInfo();
|
31 |
+
$this->setCollection($queueCollection);
|
32 |
+
return parent::_prepareCollection();
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Configuration of grid.
|
37 |
+
*
|
38 |
+
* @return Mage_Adminhtml_Block_Widget_Grid
|
39 |
+
*/
|
40 |
+
protected function _prepareColumns() {
|
41 |
+
$this->addColumn('queued_at', array(
|
42 |
+
'header' => $this->__('Queued'),
|
43 |
+
'align' => 'left',
|
44 |
+
'index' => 'queued_at',
|
45 |
+
'width' => 1,
|
46 |
+
'type' => 'range'
|
47 |
+
));
|
48 |
+
$this->addColumn('subscriber_email', array(
|
49 |
+
'header' => Mage::helper('newsletter')->__('Subscriber'),
|
50 |
+
'align' => 'left',
|
51 |
+
'index' => 'subscriber_email',
|
52 |
+
'width' => 1,
|
53 |
+
'filter' => false,
|
54 |
+
'order' => false,
|
55 |
+
'type' => 'range'
|
56 |
+
));
|
57 |
+
$this->addColumn('customer_email', array(
|
58 |
+
'header' => Mage::helper('customer')->__('Customer'),
|
59 |
+
'align' => 'left',
|
60 |
+
'index' => 'customer_email',
|
61 |
+
'width' => 1,
|
62 |
+
'filter' => false,
|
63 |
+
'order' => false,
|
64 |
+
'type' => 'range',
|
65 |
+
'renderer' => 'contactlab_template/adminhtml_newsletter_template_tasks_renderer_customer'
|
66 |
+
));
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Get grid url.
|
71 |
+
*
|
72 |
+
* @return string
|
73 |
+
*/
|
74 |
+
public function getGridUrl() {
|
75 |
+
return false;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Get row url.
|
80 |
+
*
|
81 |
+
* @param Varien_Object $row
|
82 |
+
* @return string
|
83 |
+
*/
|
84 |
+
public function getRowUrl($row) {
|
85 |
+
return false;
|
86 |
+
}
|
87 |
+
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/List.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_List
|
4 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Container
|
5 |
+
{
|
6 |
+
/**
|
7 |
+
* Construct the block.
|
8 |
+
*/
|
9 |
+
public function __construct() {
|
10 |
+
$this->_blockGroup = 'contactlab_template';
|
11 |
+
$this->_controller = 'adminhtml_newsletter_template_tasks_list';
|
12 |
+
$this->_headerText = $this->__("XML Delivery Status");
|
13 |
+
|
14 |
+
parent::__construct();
|
15 |
+
$this->_removeButton('add');
|
16 |
+
$this->_addBackButton();
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Back url to newsletter template page.
|
21 |
+
* @return string
|
22 |
+
*/
|
23 |
+
public function getBackUrl() {
|
24 |
+
return $this->getUrl('adminhtml/newsletter_template');
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/List/Grid.php
ADDED
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/** Adminhtml type grid. */
|
4 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_List_Grid
|
5 |
+
extends Mage_Adminhtml_Block_Widget_Grid {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Construct the block.
|
9 |
+
*
|
10 |
+
* @param array $attributes = array()
|
11 |
+
*/
|
12 |
+
public function __construct($attributes = array()) {
|
13 |
+
parent::__construct($attributes);
|
14 |
+
$this->setId('task_id');
|
15 |
+
$this->setDefaultSort('task_id');
|
16 |
+
$this->setDefaultDir('DESC');
|
17 |
+
$this->setSaveParametersInSession(false);
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Setting collection to show.
|
22 |
+
*
|
23 |
+
* @return Mage_Adminhtml_Block_Widget_Grid
|
24 |
+
*/
|
25 |
+
protected function _prepareCollection() {
|
26 |
+
/* @var $queueCollection Contactlab_Template_Model_Resource_Newsletter_Queue_Collection */
|
27 |
+
$queueCollection = Mage::getResourceModel("newsletter/queue_collection");
|
28 |
+
$queueCollection->getQueueByTemplateId(Mage::registry('template_id'))->addTaskData();
|
29 |
+
$this->setCollection($queueCollection);
|
30 |
+
return parent::_prepareCollection();
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Configuration of grid.
|
35 |
+
*
|
36 |
+
* @return Mage_Adminhtml_Block_Widget_Grid
|
37 |
+
*/
|
38 |
+
protected function _prepareColumns() {
|
39 |
+
$this->addColumn('task_id', array(
|
40 |
+
'header' => $this->__('ID'),
|
41 |
+
'align' => 'left',
|
42 |
+
'index' => 'task_id',
|
43 |
+
'width' => 1,
|
44 |
+
'filter' => false,
|
45 |
+
'order' => false,
|
46 |
+
'type' => 'range'
|
47 |
+
));
|
48 |
+
$this->addColumn('task_description', array(
|
49 |
+
'header' => $this->__('Description'),
|
50 |
+
'align' => 'left',
|
51 |
+
'index' => 'task_description',
|
52 |
+
'filter' => false,
|
53 |
+
'order' => false,
|
54 |
+
'type' => 'range',
|
55 |
+
'renderer' => 'contactlab_commons/adminhtml_tasks_renderer_task'
|
56 |
+
));
|
57 |
+
$this->addColumn('queue_status', array(
|
58 |
+
'header' => $this->__('Queue status'),
|
59 |
+
'align' => 'left',
|
60 |
+
'index' => 'queue_status',
|
61 |
+
'filter' => false,
|
62 |
+
'order' => false,
|
63 |
+
'type' => 'range',
|
64 |
+
'renderer' => 'contactlab_template/adminhtml_newsletter_template_tasks_renderer_queueStatus'
|
65 |
+
));
|
66 |
+
$this->addColumn('status', array(
|
67 |
+
'header' => $this->__('Status'),
|
68 |
+
'align' => 'left',
|
69 |
+
'index' => 'status',
|
70 |
+
'width' => 200,
|
71 |
+
'type' => 'range',
|
72 |
+
'filter' => false,
|
73 |
+
'order' => false,
|
74 |
+
'renderer' => 'contactlab_commons/adminhtml_events_renderer_status'
|
75 |
+
));
|
76 |
+
$this->addColumn('task_created_at', array(
|
77 |
+
'header' => $this->__('Created'),
|
78 |
+
'align' => 'left',
|
79 |
+
'index' => 'task_created_at',
|
80 |
+
'width' => 200,
|
81 |
+
'filter' => false,
|
82 |
+
'order' => false,
|
83 |
+
'type' => 'range'
|
84 |
+
));
|
85 |
+
$this->addColumn('task_planned_at', array(
|
86 |
+
'header' => $this->__('Planned'),
|
87 |
+
'align' => 'left',
|
88 |
+
'index' => 'task_planned_at',
|
89 |
+
'width' => 200,
|
90 |
+
'filter' => false,
|
91 |
+
'order' => false,
|
92 |
+
'type' => 'range'
|
93 |
+
));
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Get grid url.
|
98 |
+
*
|
99 |
+
* @return string
|
100 |
+
*/
|
101 |
+
public function getGridUrl() {
|
102 |
+
return false;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Get row url.
|
107 |
+
*
|
108 |
+
* @param Varien_Object $row
|
109 |
+
* @return string
|
110 |
+
*/
|
111 |
+
public function getRowUrl($row) {
|
112 |
+
return false;
|
113 |
+
}
|
114 |
+
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Renderer/Customer.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_Renderer_Customer
|
4 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
5 |
+
{
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Renders grid column
|
10 |
+
*
|
11 |
+
* @param Varien_Object $row
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
public function render(Varien_Object $row)
|
15 |
+
{
|
16 |
+
if (!$row->hasCustomerId()) {
|
17 |
+
return '';
|
18 |
+
}
|
19 |
+
$customer = Mage::getModel('customer/customer')->load($row->getCustomerId());
|
20 |
+
return sprintf('<a href="%s">%s [<strong>%s</strong>]</a>',
|
21 |
+
Mage::helper('adminhtml')->getUrl('adminhtml/customer/edit', array('id' => $row->getCustomerId())),
|
22 |
+
$customer->getName(), $customer->getEmail());
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Newsletter/Template/Tasks/Renderer/QueueStatus.php
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Block_Adminhtml_Newsletter_Template_Tasks_Renderer_QueueStatus
|
4 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
5 |
+
{
|
6 |
+
private $_helper;
|
7 |
+
|
8 |
+
public function __construct()
|
9 |
+
{
|
10 |
+
$this->_helper = Mage::helper('contactlab_template');
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Renders grid column
|
15 |
+
*
|
16 |
+
* @param Varien_Object $row
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
public function render(Varien_Object $row)
|
20 |
+
{
|
21 |
+
$count = $this->_getQueueRecipients($row->getQueueId());
|
22 |
+
if (!$count) {
|
23 |
+
return '<em>None</em>';
|
24 |
+
} else if ($count === 1) {
|
25 |
+
$label = 'recipient';
|
26 |
+
} else {
|
27 |
+
$label = 'recipients';
|
28 |
+
}
|
29 |
+
return sprintf('<a title="%s" href="%s">%s [%s %s]</a>',
|
30 |
+
$this->_helper->__('Queue Detail'),
|
31 |
+
$this->_getQueueDetailUrl($row->getQueueId(), $row->getTemplateId()),
|
32 |
+
$this->_getQueueStatus($row->getQueueStatus()),
|
33 |
+
$count, $label);
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Get queue status.
|
38 |
+
* @param $status
|
39 |
+
* @return string
|
40 |
+
*/
|
41 |
+
private function _getQueueStatus($status)
|
42 |
+
{
|
43 |
+
switch ($status) {
|
44 |
+
case Mage_Newsletter_Model_Queue::STATUS_NEVER:
|
45 |
+
return $this->_helper->__('Never');
|
46 |
+
case Mage_Newsletter_Model_Queue::STATUS_SENDING:
|
47 |
+
return $this->_helper->__('Sending');
|
48 |
+
case Mage_Newsletter_Model_Queue::STATUS_CANCEL:
|
49 |
+
return $this->_helper->__('Cancel');
|
50 |
+
case Mage_Newsletter_Model_Queue::STATUS_SENT:
|
51 |
+
return $this->_helper->__('Sent');
|
52 |
+
case Mage_Newsletter_Model_Queue::STATUS_PAUSE:
|
53 |
+
return $this->_helper->__('Pause');
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Get Recipient information
|
59 |
+
* @param $queueId
|
60 |
+
* @return array
|
61 |
+
*/
|
62 |
+
private function _getQueueRecipients($queueId)
|
63 |
+
{
|
64 |
+
$resource = Mage::getSingleton('core/resource');
|
65 |
+
$adapter = $resource->getConnection('core_read');
|
66 |
+
$select = $adapter->select();
|
67 |
+
$select
|
68 |
+
->from($resource->getTableName('newsletter/queue_link'),
|
69 |
+
new Zend_Db_Expr('count(1)'))
|
70 |
+
->where('queue_id = ?', $queueId);
|
71 |
+
|
72 |
+
return $adapter->fetchOne($select);
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* @param $queueId
|
77 |
+
* @param $templateId
|
78 |
+
* @return string
|
79 |
+
*/
|
80 |
+
private function _getQueueDetailUrl($queueId, $templateId)
|
81 |
+
{
|
82 |
+
return Mage::helper('adminhtml')
|
83 |
+
->getUrl('adminhtml/contactlab_template_tasks/detail',
|
84 |
+
array('queue_id' => $queueId, 'template_id' => $templateId));
|
85 |
+
}
|
86 |
+
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Type.php
CHANGED
@@ -11,7 +11,7 @@ class Contactlab_Template_Block_Adminhtml_Type extends Mage_Adminhtml_Block_Widg
|
|
11 |
public function __construct() {
|
12 |
$this->_blockGroup = 'contactlab_template';
|
13 |
$this->_controller = 'adminhtml_type';
|
14 |
-
$this->_headerText = $this->__("Template
|
15 |
|
16 |
parent::__construct();
|
17 |
}
|
11 |
public function __construct() {
|
12 |
$this->_blockGroup = 'contactlab_template';
|
13 |
$this->_controller = 'adminhtml_type';
|
14 |
+
$this->_headerText = $this->__("Template Types");
|
15 |
|
16 |
parent::__construct();
|
17 |
}
|
app/code/community/Contactlab/Template/Block/Adminhtml/Type/Edit/Form.php
CHANGED
@@ -114,8 +114,8 @@ class Contactlab_Template_Block_Adminhtml_Type_Edit_Form extends Mage_Adminhtml_
|
|
114 |
));
|
115 |
$toDisable[] = $fieldset->addField('is_cron_enabled', 'select', array(
|
116 |
'name' => 'is_cron_enabled',
|
117 |
-
'label' => Mage::helper('contactlab_template')->__('Enable for
|
118 |
-
'title' => Mage::helper('contactlab_template')->__('Enable for
|
119 |
'after_element_html' => "<small>" . Mage::helper('contactlab_template')->__('Default for new templates') . "</small>",
|
120 |
'options' => array(
|
121 |
1 => Mage::helper('adminhtml')->__('Yes'),
|
@@ -133,16 +133,16 @@ class Contactlab_Template_Block_Adminhtml_Type_Edit_Form extends Mage_Adminhtml_
|
|
133 |
$fieldsetDnd->addField('dnd_period', 'text', array(
|
134 |
'name' => 'dnd_period',
|
135 |
'class' => 'validate-not-negative-number validate-digits',
|
136 |
-
'label' => Mage::helper('contactlab_template')->__('
|
137 |
-
'title' => Mage::helper('contactlab_template')->__('
|
138 |
'required' => false,
|
139 |
'value' => $model->getDndPeriod(),
|
140 |
));
|
141 |
$fieldsetDnd->addField('dnd_mail_number', 'text', array(
|
142 |
'name' => 'dnd_mail_number',
|
143 |
'class' => 'validate-not-negative-number validate-digits',
|
144 |
-
'label' => Mage::helper('contactlab_template')->__('
|
145 |
-
'title' => Mage::helper('contactlab_template')->__('
|
146 |
'required' => false,
|
147 |
'value' => $model->getDndMailNumber(),
|
148 |
));
|
114 |
));
|
115 |
$toDisable[] = $fieldset->addField('is_cron_enabled', 'select', array(
|
116 |
'name' => 'is_cron_enabled',
|
117 |
+
'label' => Mage::helper('contactlab_template')->__('Enable for Cron execution'),
|
118 |
+
'title' => Mage::helper('contactlab_template')->__('Enable for Cron execution'),
|
119 |
'after_element_html' => "<small>" . Mage::helper('contactlab_template')->__('Default for new templates') . "</small>",
|
120 |
'options' => array(
|
121 |
1 => Mage::helper('adminhtml')->__('Yes'),
|
133 |
$fieldsetDnd->addField('dnd_period', 'text', array(
|
134 |
'name' => 'dnd_period',
|
135 |
'class' => 'validate-not-negative-number validate-digits',
|
136 |
+
'label' => Mage::helper('contactlab_template')->__('DND period length'),
|
137 |
+
'title' => Mage::helper('contactlab_template')->__('DND period length'),
|
138 |
'required' => false,
|
139 |
'value' => $model->getDndPeriod(),
|
140 |
));
|
141 |
$fieldsetDnd->addField('dnd_mail_number', 'text', array(
|
142 |
'name' => 'dnd_mail_number',
|
143 |
'class' => 'validate-not-negative-number validate-digits',
|
144 |
+
'label' => Mage::helper('contactlab_template')->__('DND max mail number'),
|
145 |
+
'title' => Mage::helper('contactlab_template')->__('DND max mail number'),
|
146 |
'required' => false,
|
147 |
'value' => $model->getDndMailNumber(),
|
148 |
));
|
app/code/community/Contactlab/Template/Block/Adminhtml/Type/Grid.php
CHANGED
@@ -35,7 +35,7 @@ class Contactlab_Template_Block_Adminhtml_Type_Grid extends Mage_Adminhtml_Block
|
|
35 |
*/
|
36 |
protected function _prepareColumns() {
|
37 |
$this->addColumn('entity_id', array(
|
38 |
-
'header' => $this->__('
|
39 |
'align' => 'left',
|
40 |
'index' => 'entity_id',
|
41 |
'width' => 1,
|
@@ -64,13 +64,13 @@ class Contactlab_Template_Block_Adminhtml_Type_Grid extends Mage_Adminhtml_Block
|
|
64 |
),
|
65 |
));
|
66 |
$this->addColumn('dnd_period', array(
|
67 |
-
'header' => $this->__('
|
68 |
'index' => 'dnd_period',
|
69 |
'width' => 1,
|
70 |
'type' => 'text'
|
71 |
));
|
72 |
$this->addColumn('dnd_mail_number', array(
|
73 |
-
'header' => $this->__('
|
74 |
'index' => 'dnd_mail_number',
|
75 |
'width' => 1,
|
76 |
'type' => 'text'
|
@@ -78,7 +78,7 @@ class Contactlab_Template_Block_Adminhtml_Type_Grid extends Mage_Adminhtml_Block
|
|
78 |
|
79 |
|
80 |
$this->addColumn('is_cron_enabled', array(
|
81 |
-
'header' => $this->__('Enable for
|
82 |
'index' => 'is_cron_enabled',
|
83 |
'type' => 'options',
|
84 |
'width' => 1,
|
35 |
*/
|
36 |
protected function _prepareColumns() {
|
37 |
$this->addColumn('entity_id', array(
|
38 |
+
'header' => $this->__('ID'),
|
39 |
'align' => 'left',
|
40 |
'index' => 'entity_id',
|
41 |
'width' => 1,
|
64 |
),
|
65 |
));
|
66 |
$this->addColumn('dnd_period', array(
|
67 |
+
'header' => $this->__('DND period length'),
|
68 |
'index' => 'dnd_period',
|
69 |
'width' => 1,
|
70 |
'type' => 'text'
|
71 |
));
|
72 |
$this->addColumn('dnd_mail_number', array(
|
73 |
+
'header' => $this->__('DND max mail number'),
|
74 |
'index' => 'dnd_mail_number',
|
75 |
'width' => 1,
|
76 |
'type' => 'text'
|
78 |
|
79 |
|
80 |
$this->addColumn('is_cron_enabled', array(
|
81 |
+
'header' => $this->__('Enable for Cron execution'),
|
82 |
'index' => 'is_cron_enabled',
|
83 |
'type' => 'options',
|
84 |
'width' => 1,
|
app/code/community/Contactlab/Template/Helper/Data.php
CHANGED
@@ -1,20 +1,24 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
/**
|
|
|
|
|
|
|
4 |
class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
5 |
|
6 |
/**
|
7 |
* Scan for template to be sent.
|
8 |
*
|
9 |
-
* @param string $storeId = 0
|
10 |
* @param string $debugAddress
|
|
|
11 |
* @return array
|
12 |
*/
|
13 |
-
public function scan($storeId = 0, $debugAddress = null) {
|
14 |
$rv = array();
|
15 |
/* @var $templates Mage_Newsletter_Model_Resource_Template_Collection */
|
16 |
$templates = Mage::getResourceModel("newsletter/template_collection")
|
17 |
-
->loadActiveTemplatesForCron();
|
18 |
|
19 |
// $helper->logDebug("Scan " . $templates->count() . " templates found");
|
20 |
$info = array();
|
@@ -22,6 +26,7 @@ class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
22 |
$this->addSessionWarning("No <strong>templates</strong> found.");
|
23 |
} else {
|
24 |
$message = "Scanning <strong>" . $templates->count() . " templates</strong> found: ";
|
|
|
25 |
foreach ($templates as $template) {
|
26 |
/* @var $template Contactlab_Template_Model_Newsletter_Template */
|
27 |
$message .= $template->getTemplateSubject() . ", ";
|
@@ -64,7 +69,7 @@ class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
64 |
/**
|
65 |
* Is this store enabled for sending in cron?
|
66 |
* @param Mage_Core_Model_Store $store
|
67 |
-
* @return
|
68 |
*/
|
69 |
public function isStoreEnabled(Mage_Core_Model_Store $store) {
|
70 |
return Mage::getStoreConfigFlag('contactlab_template/global/enabled', $store);
|
@@ -78,7 +83,10 @@ class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
78 |
* @param Contactlab_Commons_Model_Task $parentTask
|
79 |
* @param string $xmlFile
|
80 |
* @param string $storeId
|
|
|
81 |
* @return string
|
|
|
|
|
82 |
*/
|
83 |
public function checkNewsletterQueueReport(Contactlab_Commons_Model_Task $task,
|
84 |
Contactlab_Commons_Model_Task $parentTask, $xmlFile, $storeId, $queueId) {
|
@@ -106,7 +114,7 @@ class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
106 |
|
107 |
/**
|
108 |
* Add session message.
|
109 |
-
* @param
|
110 |
*/
|
111 |
public function addSessionMessage($message) {
|
112 |
/* @var $session Mage_Adminhtml_Model_Session */
|
@@ -118,7 +126,7 @@ class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
118 |
|
119 |
/**
|
120 |
* Add session message.
|
121 |
-
* @param
|
122 |
*/
|
123 |
public function addSessionWarning($message) {
|
124 |
/* @var $session Mage_Adminhtml_Model_Session */
|
1 |
<?php
|
2 |
|
3 |
+
/**
|
4 |
+
* Template helper.
|
5 |
+
* Manages template scan.
|
6 |
+
*/
|
7 |
class Contactlab_Template_Helper_Data extends Mage_Core_Helper_Abstract {
|
8 |
|
9 |
/**
|
10 |
* Scan for template to be sent.
|
11 |
*
|
12 |
+
* @param int|string $storeId = 0
|
13 |
* @param string $debugAddress
|
14 |
+
* @param bool $excludeTest Exclude test mode templates
|
15 |
* @return array
|
16 |
*/
|
17 |
+
public function scan($storeId = 0, $debugAddress = null, $excludeTest = true) {
|
18 |
$rv = array();
|
19 |
/* @var $templates Mage_Newsletter_Model_Resource_Template_Collection */
|
20 |
$templates = Mage::getResourceModel("newsletter/template_collection")
|
21 |
+
->loadActiveTemplatesForCron($storeId, $excludeTest);
|
22 |
|
23 |
// $helper->logDebug("Scan " . $templates->count() . " templates found");
|
24 |
$info = array();
|
26 |
$this->addSessionWarning("No <strong>templates</strong> found.");
|
27 |
} else {
|
28 |
$message = "Scanning <strong>" . $templates->count() . " templates</strong> found: ";
|
29 |
+
/** @var $template Contactlab_Template_Model_Newsletter_Template */
|
30 |
foreach ($templates as $template) {
|
31 |
/* @var $template Contactlab_Template_Model_Newsletter_Template */
|
32 |
$message .= $template->getTemplateSubject() . ", ";
|
69 |
/**
|
70 |
* Is this store enabled for sending in cron?
|
71 |
* @param Mage_Core_Model_Store $store
|
72 |
+
* @return boolean
|
73 |
*/
|
74 |
public function isStoreEnabled(Mage_Core_Model_Store $store) {
|
75 |
return Mage::getStoreConfigFlag('contactlab_template/global/enabled', $store);
|
83 |
* @param Contactlab_Commons_Model_Task $parentTask
|
84 |
* @param string $xmlFile
|
85 |
* @param string $storeId
|
86 |
+
* @param int $queueId
|
87 |
* @return string
|
88 |
+
* @throws Exception
|
89 |
+
* @throws Zend_Exception
|
90 |
*/
|
91 |
public function checkNewsletterQueueReport(Contactlab_Commons_Model_Task $task,
|
92 |
Contactlab_Commons_Model_Task $parentTask, $xmlFile, $storeId, $queueId) {
|
114 |
|
115 |
/**
|
116 |
* Add session message.
|
117 |
+
* @param String $message
|
118 |
*/
|
119 |
public function addSessionMessage($message) {
|
120 |
/* @var $session Mage_Adminhtml_Model_Session */
|
126 |
|
127 |
/**
|
128 |
* Add session message.
|
129 |
+
* @param String $message
|
130 |
*/
|
131 |
public function addSessionWarning($message) {
|
132 |
/* @var $session Mage_Adminhtml_Model_Session */
|
app/code/community/Contactlab/Template/Helper/SampleData.php
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/** Template sample data helper helper. */
|
4 |
+
class Contactlab_Template_Helper_SampleData extends Mage_Core_Helper_Abstract {
|
5 |
+
/**
|
6 |
+
* Create sample data record.
|
7 |
+
*/
|
8 |
+
public function createSampleData() {
|
9 |
+
if ($handle = opendir($this->_getSampleDataPath())) {
|
10 |
+
while (false !== ($entry = readdir($handle))) {
|
11 |
+
if (preg_match('|\.json$|', $entry)) {
|
12 |
+
$this->_createSampleData($entry);
|
13 |
+
}
|
14 |
+
}
|
15 |
+
}
|
16 |
+
return $this;
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Create sample data json files.
|
21 |
+
* @return Contactlab_Template_Helper_SampleData
|
22 |
+
*/
|
23 |
+
public function createSampleDataJSON() {
|
24 |
+
$this->_createSampleDataFromSubject("Subject WL");
|
25 |
+
$this->_createSampleDataFromSubject("Subject AC");
|
26 |
+
return $this;
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Create sample data from subject.
|
31 |
+
* @param string $subject
|
32 |
+
* @return Contactlab_Template_Helper_SampleData
|
33 |
+
*/
|
34 |
+
private function _createSampleDataFromSubject($subject)
|
35 |
+
{
|
36 |
+
/* @var $templateCollection Mage_Newsletter_Model_Resource_Template_Collection */
|
37 |
+
$templateCollection = Mage::getResourceModel('newsletter/template_collection');
|
38 |
+
$templateCollection->addFieldToFilter('template_subject', $subject);
|
39 |
+
foreach ($templateCollection as $template) {
|
40 |
+
/* @var $template Mage_Newsletter_Model_Template */
|
41 |
+
$this->_createSampleDataFromTemplate($template);
|
42 |
+
}
|
43 |
+
return $this;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
*
|
48 |
+
* @param Mage_Newsletter_Model_Template $template
|
49 |
+
* @return Contactlab_Template_Helper_SampleData
|
50 |
+
*/
|
51 |
+
private function _createSampleDataFromTemplate(Mage_Newsletter_Model_Template $template)
|
52 |
+
{
|
53 |
+
return $this->_writeToFile(
|
54 |
+
$this->_normalizeData($template->getData()),
|
55 |
+
$this->_getFileNameFor($template->getTemplateSubject())
|
56 |
+
);
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Write data.
|
61 |
+
* @param array $data
|
62 |
+
* @param string $file
|
63 |
+
* @return Contactlab_Template_Helper_SampleData
|
64 |
+
*/
|
65 |
+
private function _writeToFile(array $data, $file)
|
66 |
+
{
|
67 |
+
/* @var $helper Mage_Core_Helper_Data */
|
68 |
+
$helper = Mage::helper('core');
|
69 |
+
file_put_contents($file, $helper->jsonEncode($data));
|
70 |
+
return $this;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Normalize data.
|
75 |
+
* @param array $data
|
76 |
+
* @return array
|
77 |
+
*/
|
78 |
+
private function _normalizeData(array $data)
|
79 |
+
{
|
80 |
+
unset($data['template_id']);
|
81 |
+
return $data;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Get filename.
|
86 |
+
* @param string $subject
|
87 |
+
*/
|
88 |
+
private function _getFileNameFor($subject)
|
89 |
+
{
|
90 |
+
return $this->_getSampleDataPath()
|
91 |
+
. DS . $this->_normalizeFileName($subject);
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Get sample data path.
|
96 |
+
* @return string
|
97 |
+
*/
|
98 |
+
private function _getSampleDataPath()
|
99 |
+
{
|
100 |
+
return realpath(__DIR__ . DS . '..' . DS . 'docs' . DS . 'example-templates');
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Normalize file name.
|
105 |
+
* @param string $subject
|
106 |
+
* return string
|
107 |
+
*/
|
108 |
+
private function _normalizeFileName($subject)
|
109 |
+
{
|
110 |
+
return str_replace(' ', '_', strtolower($subject)) . '.json';
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Create sample data record
|
115 |
+
* @param type $fileName
|
116 |
+
* return Mage_Newsletter_Model_Template
|
117 |
+
*/
|
118 |
+
private function _createSampleData($fileName)
|
119 |
+
{
|
120 |
+
/* @var $helper Mage_Core_Helper_Data */
|
121 |
+
$helper = Mage::helper('core');
|
122 |
+
$data = $helper->jsonDecode(file_get_contents($this->_getSampleDataPath() . DS . $fileName));
|
123 |
+
if ($this->_findForExisting($data['template_subject'])) {
|
124 |
+
return false;
|
125 |
+
}
|
126 |
+
$template = Mage::getModel('newsletter/template');
|
127 |
+
$template->setData($data);
|
128 |
+
return $template->save();
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Find for existing records.
|
133 |
+
* @param string $subject
|
134 |
+
* @return boolean
|
135 |
+
*/
|
136 |
+
private function _findForExisting($subject)
|
137 |
+
{
|
138 |
+
/* @var $templateCollection Mage_Newsletter_Model_Resource_Template_Collection */
|
139 |
+
$templateCollection = Mage::getResourceModel('newsletter/template_collection');
|
140 |
+
$templateCollection->addFieldToFilter('template_subject', $subject);
|
141 |
+
foreach ($templateCollection as $template) {
|
142 |
+
return true;
|
143 |
+
}
|
144 |
+
return false;
|
145 |
+
}
|
146 |
+
|
147 |
+
}
|
app/code/community/Contactlab/Template/Model/Cron.php
CHANGED
@@ -8,17 +8,20 @@ class Contactlab_Template_Model_Cron {
|
|
8 |
|
9 |
/**
|
10 |
* Scan for template to be sent.
|
11 |
-
* @param string $storeId
|
12 |
*/
|
13 |
-
public function scan($storeId = -1) {
|
14 |
$this->logCronCall('scan', $storeId);
|
|
|
|
|
15 |
$h = Mage::helper('contactlab_template');
|
16 |
foreach ($h->getAvailableStores() as $store) {
|
|
|
17 |
if (!$h->isStoreEnabled($store)) {
|
18 |
continue;
|
19 |
}
|
20 |
// If a store id has been passed as argument,
|
21 |
-
// check before
|
22 |
try {
|
23 |
Mage::helper('contactlab_template')->scan($store->getStoreId());
|
24 |
} catch (Zend_Exception $e) {
|
@@ -30,7 +33,7 @@ class Contactlab_Template_Model_Cron {
|
|
30 |
/**
|
31 |
* Log function call.
|
32 |
* @param String $functionName
|
33 |
-
* @param String $storeId
|
34 |
*/
|
35 |
public function logCronCall($functionName, $storeId = false)
|
36 |
{
|
8 |
|
9 |
/**
|
10 |
* Scan for template to be sent.
|
11 |
+
* @param int|string $storeId
|
12 |
*/
|
13 |
+
public function scan($schedule = -1, $storeId = -1) {
|
14 |
$this->logCronCall('scan', $storeId);
|
15 |
+
|
16 |
+
/** @var $h Contactlab_Template_Helper_Data */
|
17 |
$h = Mage::helper('contactlab_template');
|
18 |
foreach ($h->getAvailableStores() as $store) {
|
19 |
+
/** @var $store Mage_Core_Model_Store */
|
20 |
if (!$h->isStoreEnabled($store)) {
|
21 |
continue;
|
22 |
}
|
23 |
// If a store id has been passed as argument,
|
24 |
+
// check before acl helper.
|
25 |
try {
|
26 |
Mage::helper('contactlab_template')->scan($store->getStoreId());
|
27 |
} catch (Zend_Exception $e) {
|
33 |
/**
|
34 |
* Log function call.
|
35 |
* @param String $functionName
|
36 |
+
* @param bool|String $storeId
|
37 |
*/
|
38 |
public function logCronCall($functionName, $storeId = false)
|
39 |
{
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Abstract.php
CHANGED
@@ -4,6 +4,26 @@
|
|
4 |
* Abstract processor.
|
5 |
* This abstract class and each implementing class is designed for
|
6 |
* search and filter subscribers for each template to be queued.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
*/
|
8 |
abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
9 |
extends Varien_Object
|
@@ -14,17 +34,17 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
14 |
$this->setFilters(array());
|
15 |
}
|
16 |
|
17 |
-
/* @var
|
18 |
private $_collection;
|
19 |
|
20 |
/**
|
21 |
* Load subscribers.
|
22 |
*
|
23 |
-
* @param
|
24 |
* @param boolean $onlyCustomers
|
25 |
-
* @return
|
26 |
*/
|
27 |
-
public final function loadSubscribers(
|
28 |
/* @var $rv Mage_Core_Model_Resource_Db_Collection_Abstract */
|
29 |
if ($onlyCustomers) {
|
30 |
$rv = $this->loadCustomers($template);
|
@@ -35,16 +55,23 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
35 |
return $rv;
|
36 |
}
|
37 |
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
$this->_collection = Mage::getResourceModel('newsletter/subscriber_collection');
|
40 |
if (!$onlyCustomers) {
|
41 |
$this->_collection->useOnlySubscribed();
|
42 |
}
|
|
|
43 |
$this->setIsTestMode($template->getIsTestMode());
|
44 |
if ($this->getIsTestMode()) {
|
45 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_testMode');
|
46 |
}
|
47 |
-
$this->setTemplate($template);
|
48 |
|
49 |
if ($template->hasDebugAddress() && $template->getDebugAddress() != '') {
|
50 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_emailLike',
|
@@ -69,10 +96,10 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
69 |
|
70 |
/**
|
71 |
* Load customers.
|
72 |
-
* @param
|
73 |
* @return Mage_Customer_Model_Resource_Customer_Collection
|
74 |
*/
|
75 |
-
protected final function loadCustomers(
|
76 |
/* @var $subscribers Mage_Core_Model_Resource_Db_Abstract */
|
77 |
$subscribers = Mage::getResourceModel("newsletter/subscriber");
|
78 |
$subscribersTable = $subscribers->getMainTable();
|
@@ -108,14 +135,18 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
108 |
/**
|
109 |
* Apply filter $filter withi $params array to the cached collection.
|
110 |
*
|
111 |
-
* @param
|
112 |
-
* @param $parameters = array()
|
113 |
* @return $this
|
|
|
114 |
*/
|
115 |
public function applyFilter($filter, $parameters = array()) {
|
116 |
if ($this->hasStop() && $this->getStop()) {
|
117 |
return $this;
|
118 |
}
|
|
|
|
|
|
|
119 |
$filterModel = Mage::getModel($filter);
|
120 |
if (!is_object($filterModel)) {
|
121 |
throw new Zend_Exception("Could not find $filter model");
|
@@ -126,6 +157,7 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
126 |
if ($this->getIsTestMode() && !$filterModel->doRunInTestMode()) {
|
127 |
return $this;
|
128 |
}
|
|
|
129 |
if ($this->doOutputRows()) {
|
130 |
$countBefore = $this->_collection->getRealSize();
|
131 |
}
|
@@ -160,10 +192,10 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
160 |
/**
|
161 |
* applySubscribersFilter: Load collection (abstract).
|
162 |
*
|
163 |
-
* @param
|
164 |
* @return void
|
165 |
*/
|
166 |
-
protected abstract function applySubscribersFilter(
|
167 |
|
168 |
/**
|
169 |
* Get processor code.
|
@@ -179,7 +211,7 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
179 |
* @return $this
|
180 |
*/
|
181 |
public function setStoreId($storeId) {
|
182 |
-
return parent::
|
183 |
}
|
184 |
|
185 |
/**
|
@@ -188,7 +220,7 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
|
188 |
* @return string
|
189 |
*/
|
190 |
public function getStoreId() {
|
191 |
-
return parent::
|
192 |
}
|
193 |
|
194 |
/**
|
4 |
* Abstract processor.
|
5 |
* This abstract class and each implementing class is designed for
|
6 |
* search and filter subscribers for each template to be queued.
|
7 |
+
*
|
8 |
+
* @method getSendToAllCustomers()
|
9 |
+
* @method getDebugInfo()
|
10 |
+
* @method array getFilters()
|
11 |
+
* @method bool getIsTestMode()
|
12 |
+
* @method Mage_Newsletter_Model_Template getTemplate()
|
13 |
+
* @method bool getStop()
|
14 |
+
*
|
15 |
+
* @method bool hasDebugInfo()
|
16 |
+
* @method bool hasTemplate()
|
17 |
+
* @method bool hasStop()
|
18 |
+
*
|
19 |
+
* @method unsStop()
|
20 |
+
*
|
21 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Abstract setSendToAllCustomers($value)
|
22 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Abstract setDebugInfo($value)
|
23 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Abstract setFilters($value)
|
24 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Abstract setIsTestMode($value)
|
25 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Abstract setTemplate(Mage_Newsletter_Model_Template $template)
|
26 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Abstract setStop($value)
|
27 |
*/
|
28 |
abstract class Contactlab_Template_Model_Newsletter_Processor_Abstract
|
29 |
extends Varien_Object
|
34 |
$this->setFilters(array());
|
35 |
}
|
36 |
|
37 |
+
/* @var Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection $_collection The collection. */
|
38 |
private $_collection;
|
39 |
|
40 |
/**
|
41 |
* Load subscribers.
|
42 |
*
|
43 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
44 |
* @param boolean $onlyCustomers
|
45 |
+
* @return Mage_Core_Model_Resource_Db_Collection_Abstract
|
46 |
*/
|
47 |
+
public final function loadSubscribers(Contactlab_Template_Model_Newsletter_Template $template, $onlyCustomers) {
|
48 |
/* @var $rv Mage_Core_Model_Resource_Db_Collection_Abstract */
|
49 |
if ($onlyCustomers) {
|
50 |
$rv = $this->loadCustomers($template);
|
55 |
return $rv;
|
56 |
}
|
57 |
|
58 |
+
/**
|
59 |
+
* Load newsletter subscribers.
|
60 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
61 |
+
* @param $onlyCustomers
|
62 |
+
* @return Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection|Mage_Newsletter_Model_Resource_Subscriber_Collection
|
63 |
+
* @throws Zend_Exception
|
64 |
+
*/
|
65 |
+
protected final function loadNewsletterSubscribers(Contactlab_Template_Model_Newsletter_Template $template, $onlyCustomers) {
|
66 |
$this->_collection = Mage::getResourceModel('newsletter/subscriber_collection');
|
67 |
if (!$onlyCustomers) {
|
68 |
$this->_collection->useOnlySubscribed();
|
69 |
}
|
70 |
+
$this->setTemplate($template);
|
71 |
$this->setIsTestMode($template->getIsTestMode());
|
72 |
if ($this->getIsTestMode()) {
|
73 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_testMode');
|
74 |
}
|
|
|
75 |
|
76 |
if ($template->hasDebugAddress() && $template->getDebugAddress() != '') {
|
77 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_emailLike',
|
96 |
|
97 |
/**
|
98 |
* Load customers.
|
99 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
100 |
* @return Mage_Customer_Model_Resource_Customer_Collection
|
101 |
*/
|
102 |
+
protected final function loadCustomers(Contactlab_Template_Model_Newsletter_Template $template) {
|
103 |
/* @var $subscribers Mage_Core_Model_Resource_Db_Abstract */
|
104 |
$subscribers = Mage::getResourceModel("newsletter/subscriber");
|
105 |
$subscribersTable = $subscribers->getMainTable();
|
135 |
/**
|
136 |
* Apply filter $filter withi $params array to the cached collection.
|
137 |
*
|
138 |
+
* @param $filter
|
139 |
+
* @param array $parameters = array()
|
140 |
* @return $this
|
141 |
+
* @throws Zend_Exception
|
142 |
*/
|
143 |
public function applyFilter($filter, $parameters = array()) {
|
144 |
if ($this->hasStop() && $this->getStop()) {
|
145 |
return $this;
|
146 |
}
|
147 |
+
/**
|
148 |
+
* @var $filterModel Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
149 |
+
*/
|
150 |
$filterModel = Mage::getModel($filter);
|
151 |
if (!is_object($filterModel)) {
|
152 |
throw new Zend_Exception("Could not find $filter model");
|
157 |
if ($this->getIsTestMode() && !$filterModel->doRunInTestMode()) {
|
158 |
return $this;
|
159 |
}
|
160 |
+
$countBefore = 0;
|
161 |
if ($this->doOutputRows()) {
|
162 |
$countBefore = $this->_collection->getRealSize();
|
163 |
}
|
192 |
/**
|
193 |
* applySubscribersFilter: Load collection (abstract).
|
194 |
*
|
195 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
196 |
* @return void
|
197 |
*/
|
198 |
+
protected abstract function applySubscribersFilter(Contactlab_Template_Model_Newsletter_Template $template);
|
199 |
|
200 |
/**
|
201 |
* Get processor code.
|
211 |
* @return $this
|
212 |
*/
|
213 |
public function setStoreId($storeId) {
|
214 |
+
return parent::setData('store_id', $storeId);
|
215 |
}
|
216 |
|
217 |
/**
|
220 |
* @return string
|
221 |
*/
|
222 |
public function getStoreId() {
|
223 |
+
return parent::getData('store_id');
|
224 |
}
|
225 |
|
226 |
/**
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Cart.php
CHANGED
@@ -17,10 +17,10 @@ class Contactlab_Template_Model_Newsletter_Processor_Cart extends Contactlab_Tem
|
|
17 |
/**
|
18 |
* Apply subscribers filter.
|
19 |
*
|
20 |
-
* @param
|
21 |
* @return $this
|
22 |
*/
|
23 |
-
public function applySubscribersFilter(
|
24 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_onlyCustomers');
|
25 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_cart_distinctByType');
|
26 |
|
17 |
/**
|
18 |
* Apply subscribers filter.
|
19 |
*
|
20 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
21 |
* @return $this
|
22 |
*/
|
23 |
+
public function applySubscribersFilter(Contactlab_Template_Model_Newsletter_Template $template) {
|
24 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_onlyCustomers');
|
25 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_cart_distinctByType');
|
26 |
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Abstract.php
CHANGED
@@ -3,6 +3,8 @@
|
|
3 |
/**
|
4 |
* Contactlab template model newsletter processor filter abstract.
|
5 |
*
|
|
|
|
|
6 |
* @abstract
|
7 |
*/
|
8 |
abstract class Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
@@ -10,18 +12,16 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
|
10 |
implements Contactlab_Template_Model_Newsletter_Processor_Filter_Interface {
|
11 |
|
12 |
/**
|
13 |
-
* Set
|
14 |
-
*
|
15 |
-
* @
|
16 |
-
* @return $this
|
17 |
*/
|
18 |
public function setStoreId($storeId) {
|
19 |
return parent::setStoreId($storeId);
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
-
* Get
|
24 |
-
*
|
25 |
* @return string
|
26 |
*/
|
27 |
public function getStoreId() {
|
@@ -41,6 +41,8 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
|
41 |
* Get offset where.
|
42 |
*
|
43 |
* @param array $parameters
|
|
|
|
|
44 |
* @return string
|
45 |
*/
|
46 |
public function getOffsetWhere(array $parameters, $min = 'min', $max = 'max') {
|
@@ -61,6 +63,8 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
|
61 |
* Get offset where.
|
62 |
*
|
63 |
* @param array $parameters
|
|
|
|
|
64 |
* @return string
|
65 |
*/
|
66 |
public function getOffsetWhereQty(array $parameters, $min = 'min', $max = 'max') {
|
@@ -98,9 +102,10 @@ abstract class Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
|
98 |
|
99 |
/**
|
100 |
* Is this collection a customer collection?
|
101 |
-
* @param
|
|
|
102 |
*/
|
103 |
-
public function isCustomerCollection($collection) {
|
104 |
return $collection instanceof Mage_Customer_Model_Resource_Customer_Collection;
|
105 |
}
|
106 |
|
3 |
/**
|
4 |
* Contactlab template model newsletter processor filter abstract.
|
5 |
*
|
6 |
+
* @method bool getSendToAllCustomers()
|
7 |
+
* @method Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract setSendToAllCustomers($value)
|
8 |
* @abstract
|
9 |
*/
|
10 |
abstract class Contactlab_Template_Model_Newsletter_Processor_Filter_Abstract
|
12 |
implements Contactlab_Template_Model_Newsletter_Processor_Filter_Interface {
|
13 |
|
14 |
/**
|
15 |
+
* Set Store Id.
|
16 |
+
* @param String $value
|
17 |
+
* @return mixed
|
|
|
18 |
*/
|
19 |
public function setStoreId($storeId) {
|
20 |
return parent::setStoreId($storeId);
|
21 |
}
|
22 |
|
23 |
/**
|
24 |
+
* Get Store Id.
|
|
|
25 |
* @return string
|
26 |
*/
|
27 |
public function getStoreId() {
|
41 |
* Get offset where.
|
42 |
*
|
43 |
* @param array $parameters
|
44 |
+
* @param string $min
|
45 |
+
* @param string $max
|
46 |
* @return string
|
47 |
*/
|
48 |
public function getOffsetWhere(array $parameters, $min = 'min', $max = 'max') {
|
63 |
* Get offset where.
|
64 |
*
|
65 |
* @param array $parameters
|
66 |
+
* @param string $min
|
67 |
+
* @param string $max
|
68 |
* @return string
|
69 |
*/
|
70 |
public function getOffsetWhereQty(array $parameters, $min = 'min', $max = 'max') {
|
102 |
|
103 |
/**
|
104 |
* Is this collection a customer collection?
|
105 |
+
* @param Varien_Data_Collection_Db $collection
|
106 |
+
* @return bool
|
107 |
*/
|
108 |
+
public function isCustomerCollection(Varien_Data_Collection_Db $collection) {
|
109 |
return $collection instanceof Mage_Customer_Model_Resource_Customer_Collection;
|
110 |
}
|
111 |
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Cart/Products.php
CHANGED
@@ -9,7 +9,7 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_Cart_Products
|
|
9 |
*
|
10 |
* @param Varien_Data_Collection_Db $collection
|
11 |
* @param array $parameters = array()
|
12 |
-
* @return $collection
|
13 |
*/
|
14 |
public function applyFilter(Varien_Data_Collection_Db $collection, $parameters = array()) {
|
15 |
$rs = $resource = Mage::getSingleton('core/resource');
|
9 |
*
|
10 |
* @param Varien_Data_Collection_Db $collection
|
11 |
* @param array $parameters = array()
|
12 |
+
* @return Varien_Data_Collection_Db $collection
|
13 |
*/
|
14 |
public function applyFilter(Varien_Data_Collection_Db $collection, $parameters = array()) {
|
15 |
$rs = $resource = Mage::getSingleton('core/resource');
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/TestMode.php
CHANGED
@@ -22,7 +22,6 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_TestMode
|
|
22 |
}
|
23 |
}
|
24 |
|
25 |
-
|
26 |
/**
|
27 |
* Do run in test mode?
|
28 |
*
|
@@ -34,11 +33,11 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_TestMode
|
|
34 |
|
35 |
/**
|
36 |
* Get test subscribers mail.
|
37 |
-
*
|
38 |
* @return array
|
|
|
39 |
*/
|
40 |
public function getTestSubscribersMail() {
|
41 |
-
$rv = explode('
|
42 |
if (count($rv) == 0) {
|
43 |
throw new Zend_Exception("Could not send test email, empty \"Test Recipients\" configuration!");
|
44 |
}
|
22 |
}
|
23 |
}
|
24 |
|
|
|
25 |
/**
|
26 |
* Do run in test mode?
|
27 |
*
|
33 |
|
34 |
/**
|
35 |
* Get test subscribers mail.
|
|
|
36 |
* @return array
|
37 |
+
* @throws Zend_Exception
|
38 |
*/
|
39 |
public function getTestSubscribersMail() {
|
40 |
+
$rv = explode(';', Mage::getStoreConfig('contactlab_template/global/test_recipients', $this->getStoreId()));
|
41 |
if (count($rv) == 0) {
|
42 |
throw new Zend_Exception("Could not send test email, empty \"Test Recipients\" configuration!");
|
43 |
}
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Wishlist/DistinctByType.php
CHANGED
@@ -16,6 +16,6 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_Wishlist_DistinctByT
|
|
16 |
* @return string
|
17 |
*/
|
18 |
public function getName() {
|
19 |
-
return "Filter only addresses that has not a mail in queue with the same template type (Wishlist
|
20 |
}
|
21 |
}
|
16 |
* @return string
|
17 |
*/
|
18 |
public function getName() {
|
19 |
+
return "Filter only addresses that has not a mail in queue with the same template type (Wishlist Reminder)";
|
20 |
}
|
21 |
}
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Wishlist/Products.php
CHANGED
@@ -9,9 +9,10 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_Wishlist_Products
|
|
9 |
*
|
10 |
* @param Varien_Data_Collection_Db $collection
|
11 |
* @param array $parameters = array()
|
12 |
-
* @return $collection
|
13 |
*/
|
14 |
public function applyFilter(Varien_Data_Collection_Db $collection, $parameters = array()) {
|
|
|
15 |
$rs = $resource = Mage::getSingleton('core/resource');
|
16 |
$wishlist = $rs->getTablename('wishlist/wishlist');
|
17 |
$wishlistItem = $rs->getTablename('wishlist/item');
|
9 |
*
|
10 |
* @param Varien_Data_Collection_Db $collection
|
11 |
* @param array $parameters = array()
|
12 |
+
* @return Varien_Data_Collection_Db $collection
|
13 |
*/
|
14 |
public function applyFilter(Varien_Data_Collection_Db $collection, $parameters = array()) {
|
15 |
+
/** @var $rs Mage_Core_Model_Resource */
|
16 |
$rs = $resource = Mage::getSingleton('core/resource');
|
17 |
$wishlist = $rs->getTablename('wishlist/wishlist');
|
18 |
$wishlistItem = $rs->getTablename('wishlist/item');
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Generic.php
CHANGED
@@ -7,10 +7,10 @@ class Contactlab_Template_Model_Newsletter_Processor_Generic extends Contactlab_
|
|
7 |
/**
|
8 |
* Apply subscribers filter.
|
9 |
*
|
10 |
-
* @param
|
11 |
* @return $this
|
12 |
*/
|
13 |
-
public function applySubscribersFilter(
|
14 |
// FIXME is it right?
|
15 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_onlyCustomers');
|
16 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_store',
|
7 |
/**
|
8 |
* Apply subscribers filter.
|
9 |
*
|
10 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
11 |
* @return $this
|
12 |
*/
|
13 |
+
public function applySubscribersFilter(Contactlab_Template_Model_Newsletter_Template $template) {
|
14 |
// FIXME is it right?
|
15 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_onlyCustomers');
|
16 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_store',
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Interface.php
CHANGED
@@ -6,11 +6,11 @@ interface Contactlab_Template_Model_Newsletter_Processor_Interface {
|
|
6 |
/**
|
7 |
* Load subscribers interface function.
|
8 |
*
|
9 |
-
* @param
|
10 |
* @param boolean $onlyCustomers
|
11 |
* @return $this
|
12 |
*/
|
13 |
-
function loadSubscribers(
|
14 |
|
15 |
/**
|
16 |
* Set store id.
|
6 |
/**
|
7 |
* Load subscribers interface function.
|
8 |
*
|
9 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
10 |
* @param boolean $onlyCustomers
|
11 |
* @return $this
|
12 |
*/
|
13 |
+
function loadSubscribers(Contactlab_Template_Model_Newsletter_Template $template, $onlyCustomers);
|
14 |
|
15 |
/**
|
16 |
* Set store id.
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Wishlist.php
CHANGED
@@ -17,10 +17,10 @@ class Contactlab_Template_Model_Newsletter_Processor_Wishlist extends Contactlab
|
|
17 |
/**
|
18 |
* Apply subscribers filter.
|
19 |
*
|
20 |
-
* @param
|
21 |
* @return $this
|
22 |
*/
|
23 |
-
public function applySubscribersFilter(
|
24 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_onlyCustomers');
|
25 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_wishlist_distinctByType');
|
26 |
|
17 |
/**
|
18 |
* Apply subscribers filter.
|
19 |
*
|
20 |
+
* @param Contactlab_Template_Model_Newsletter_Template $template
|
21 |
* @return $this
|
22 |
*/
|
23 |
+
public function applySubscribersFilter(Contactlab_Template_Model_Newsletter_Template $template) {
|
24 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_onlyCustomers');
|
25 |
$this->applyFilter('contactlab_template/newsletter_processor_filter_wishlist_distinctByType');
|
26 |
|
app/code/community/Contactlab/Template/Model/Newsletter/Queue.php
CHANGED
@@ -1,6 +1,17 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
class Contactlab_Template_Model_Newsletter_Queue extends Mage_Newsletter_Model_Queue {
|
5 |
/**
|
6 |
* Subscribers collection
|
@@ -175,9 +186,11 @@ class Contactlab_Template_Model_Newsletter_Queue extends Mage_Newsletter_Model_Q
|
|
175 |
'main_table.queue_id = link.queue_id',
|
176 |
array('letter_sent_at', 'product_ids', 'customer_id' => 'customer_id'));
|
177 |
/* @var $helper Contactlab_Commons_Helper_Data */
|
|
|
178 |
$helper = Mage::helper("contactlab_commons");
|
179 |
$helper->logWarn($this->_subscribersCustomerCollection
|
180 |
->getSelect()->assemble());
|
|
|
181 |
}
|
182 |
return $this->_subscribersCustomerCollection;
|
183 |
}
|
@@ -190,6 +203,7 @@ class Contactlab_Template_Model_Newsletter_Queue extends Mage_Newsletter_Model_Q
|
|
190 |
public function finishQueueAndLinks() {
|
191 |
$this->_finishQueue();
|
192 |
$this->_finishQueueLinks();
|
|
|
193 |
return $this;
|
194 |
}
|
195 |
|
1 |
<?php
|
2 |
|
3 |
+
/**
|
4 |
+
* Newsletter queue model rewrite.
|
5 |
+
*
|
6 |
+
* @method getQueueId()
|
7 |
+
* @method getTaskId()
|
8 |
+
*
|
9 |
+
* @method Contactlab_Template_Model_Newsletter_Queue setQueueId($value)
|
10 |
+
* @method Contactlab_Template_Model_Newsletter_Queue setTaskId($value)
|
11 |
+
* @method Contactlab_Template_Model_Newsletter_Queue setXmlDelivery(Contactlab_Template_Model_Newsletter_XmlDelivery $value)
|
12 |
+
*
|
13 |
+
* @method hasQueueId()
|
14 |
+
*/
|
15 |
class Contactlab_Template_Model_Newsletter_Queue extends Mage_Newsletter_Model_Queue {
|
16 |
/**
|
17 |
* Subscribers collection
|
186 |
'main_table.queue_id = link.queue_id',
|
187 |
array('letter_sent_at', 'product_ids', 'customer_id' => 'customer_id'));
|
188 |
/* @var $helper Contactlab_Commons_Helper_Data */
|
189 |
+
/*
|
190 |
$helper = Mage::helper("contactlab_commons");
|
191 |
$helper->logWarn($this->_subscribersCustomerCollection
|
192 |
->getSelect()->assemble());
|
193 |
+
*/
|
194 |
}
|
195 |
return $this->_subscribersCustomerCollection;
|
196 |
}
|
203 |
public function finishQueueAndLinks() {
|
204 |
$this->_finishQueue();
|
205 |
$this->_finishQueueLinks();
|
206 |
+
|
207 |
return $this;
|
208 |
}
|
209 |
|
app/code/community/Contactlab/Template/Model/Newsletter/Queue/Link.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Model_Newsletter_Queue_Link extends Mage_Core_Model_Abstract
|
4 |
+
{
|
5 |
+
|
6 |
+
protected function _construct()
|
7 |
+
{
|
8 |
+
$this->_init('contactlab_template/newsletter_queue_link');
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
app/code/community/Contactlab/Template/Model/Newsletter/Template.php
CHANGED
@@ -1,6 +1,65 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Model_Template {
|
5 |
/**
|
6 |
* Process template queue.
|
@@ -22,6 +81,7 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
22 |
$c = 0;
|
23 |
$queue = null;
|
24 |
foreach ($processor->loadSubscribers($this, false) as $item) {
|
|
|
25 |
if (is_null($queue)) {
|
26 |
$queue = Mage::getModel('newsletter/queue');
|
27 |
$queue->setTemplateId($this->getId());
|
@@ -40,7 +100,6 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
40 |
|
41 |
$c++;
|
42 |
}
|
43 |
-
|
44 |
if ($processor->getSendToAllCustomers()) {
|
45 |
foreach ($processor->loadSubscribers($this, true) as $item) {
|
46 |
if (is_null($queue)) {
|
@@ -92,6 +151,8 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
92 |
|
93 |
/**
|
94 |
* Get Template type model.
|
|
|
|
|
95 |
*/
|
96 |
public function getTemplateTypeModel() {
|
97 |
if (!$this->hasTemplateTypeId()) {
|
@@ -102,6 +163,7 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
102 |
Mage::getModel('contactlab_template/type')
|
103 |
->load($this->getTemplateTypeId()));
|
104 |
}
|
|
|
105 |
return parent::getTemplateTypeModel();
|
106 |
}
|
107 |
|
@@ -120,9 +182,13 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
120 |
*
|
121 |
* @param Mage_Newsletter_Model_Queue $queue
|
122 |
* @param string $storeId
|
|
|
123 |
* @return Contactlab_Commons_Model_Task
|
|
|
124 |
*/
|
125 |
private function _createTask(Mage_Newsletter_Model_Queue $queue, $storeId, $max) {
|
|
|
|
|
126 |
$rv = Mage::getModel("contactlab_commons/task")
|
127 |
->setDescription(sprintf('Process "%s" queue [%d]',
|
128 |
$this->getTemplateSubject(), $queue->getId()))
|
@@ -167,10 +233,11 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
167 |
* Send to all customers?
|
168 |
* @param string $code
|
169 |
* @param string $storeId
|
|
|
170 |
*/
|
171 |
public function doSendToAllCustomers($code, $storeId) {
|
172 |
if ($code !== 'CART' && $code !== 'WISHLIST') {
|
173 |
-
$code = '
|
174 |
}
|
175 |
$code = strtolower($code);
|
176 |
return Mage::getStoreConfigFlag("contactlab_template/$code/send_to_not_subscribed", $storeId);
|
@@ -218,7 +285,7 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
218 |
|
219 |
/**
|
220 |
* Validate min and max value
|
221 |
-
* @param
|
222 |
* @param array $labels
|
223 |
* @param Contactlab_Template_Helper_Data $helper
|
224 |
* @param array $errors
|
@@ -235,4 +302,18 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
235 |
$helper->__($labels['max']));
|
236 |
}
|
237 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
}
|
1 |
<?php
|
2 |
|
3 |
+
/**
|
4 |
+
* Newsletter template model rewrite.
|
5 |
+
* @method getAndOr()
|
6 |
+
* @method getMaxProducts()
|
7 |
+
* @method getMinProducts()
|
8 |
+
* @method getMaxValue()
|
9 |
+
* @method getMinValue()
|
10 |
+
* @method getMaxMinutesFromLastUpdate()
|
11 |
+
* @method getMinMinutesFromLastUpdate()
|
12 |
+
* @method getPriority()
|
13 |
+
* @method getQueueDelayTime()
|
14 |
+
* @method getCronDateRangeEnd()
|
15 |
+
* @method getCronDateRangeStart()
|
16 |
+
* @method getIsCronEnabled()
|
17 |
+
* @method getProductImageSize()
|
18 |
+
* @method getDefaultProductSnippet()
|
19 |
+
* @method getIsTestMode()
|
20 |
+
* @method getFlgHtmlTxt()
|
21 |
+
* @method getTemplateTextPlain()
|
22 |
+
* @method getTemplateTypeId()
|
23 |
+
* @method getReplyTo()
|
24 |
+
* @method getEnableXmlDelivery()
|
25 |
+
* @method getDontRunNow()
|
26 |
+
* @method getStoreId()
|
27 |
+
* @method getDebugAddress()
|
28 |
+
* @method getDebugInfo()
|
29 |
+
* @method getTemplateId()
|
30 |
+
*
|
31 |
+
* @method Contactlab_Template_Model_Newsletter_Template setAndOr($value)
|
32 |
+
* @method Contactlab_Template_Model_Newsletter_Template setMaxProducts($value)
|
33 |
+
* @method Contactlab_Template_Model_Newsletter_Template setMinProducts($value)
|
34 |
+
* @method Contactlab_Template_Model_Newsletter_Template setMaxValue($value)
|
35 |
+
* @method Contactlab_Template_Model_Newsletter_Template setMinValue($value)
|
36 |
+
* @method Contactlab_Template_Model_Newsletter_Template setMaxMinutesFromLastUpdate($value)
|
37 |
+
* @method Contactlab_Template_Model_Newsletter_Template setMinMinutesFromLastUpdate($value)
|
38 |
+
* @method Contactlab_Template_Model_Newsletter_Template setPriority($value)
|
39 |
+
* @method Contactlab_Template_Model_Newsletter_Template setQueueDelayTime($value)
|
40 |
+
* @method Contactlab_Template_Model_Newsletter_Template setCronDateRangeEnd($value)
|
41 |
+
* @method Contactlab_Template_Model_Newsletter_Template setCronDateRangeStart($value)
|
42 |
+
* @method Contactlab_Template_Model_Newsletter_Template setIsCronEnabled($value)
|
43 |
+
* @method Contactlab_Template_Model_Newsletter_Template setProductImageSize($value)
|
44 |
+
* @method Contactlab_Template_Model_Newsletter_Template setDefaultProductSnippet($value)
|
45 |
+
* @method Contactlab_Template_Model_Newsletter_Template setIsTestMode($value)
|
46 |
+
* @method Contactlab_Template_Model_Newsletter_Template setFlgHtmlTxt($value)
|
47 |
+
* @method Contactlab_Template_Model_Newsletter_Template setTemplateTextPlain($value)
|
48 |
+
* @method Contactlab_Template_Model_Newsletter_Template setTemplateTypeId($value)
|
49 |
+
* @method Contactlab_Template_Model_Newsletter_Template setReplyTo($value)
|
50 |
+
* @method Contactlab_Template_Model_Newsletter_Template setEnableXmlDelivery($value)
|
51 |
+
* @method Contactlab_Template_Model_Newsletter_Template setDebugInfo($value)
|
52 |
+
* @method Contactlab_Template_Model_Newsletter_Template setTemplateTypeModel($value)
|
53 |
+
* @method Contactlab_Template_Model_Newsletter_Template setDebugAddress($value)
|
54 |
+
*
|
55 |
+
* @method bool hasTemplateTypeId()
|
56 |
+
* @method bool hasTemplateTypeModel()
|
57 |
+
* @method bool hasQueueDelayTime()
|
58 |
+
* @method bool hasDebugAddress()
|
59 |
+
* @method bool hasDebugInfo()
|
60 |
+
* @method bool hasMinProducts()
|
61 |
+
* @method bool hasMaxProducts()
|
62 |
+
*/
|
63 |
class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Model_Template {
|
64 |
/**
|
65 |
* Process template queue.
|
81 |
$c = 0;
|
82 |
$queue = null;
|
83 |
foreach ($processor->loadSubscribers($this, false) as $item) {
|
84 |
+
/** @var $item Contactlab_Subscribers_Model_Newsletter_Subscriber */
|
85 |
if (is_null($queue)) {
|
86 |
$queue = Mage::getModel('newsletter/queue');
|
87 |
$queue->setTemplateId($this->getId());
|
100 |
|
101 |
$c++;
|
102 |
}
|
|
|
103 |
if ($processor->getSendToAllCustomers()) {
|
104 |
foreach ($processor->loadSubscribers($this, true) as $item) {
|
105 |
if (is_null($queue)) {
|
151 |
|
152 |
/**
|
153 |
* Get Template type model.
|
154 |
+
*
|
155 |
+
* @return Contactlab_Template_Model_Type
|
156 |
*/
|
157 |
public function getTemplateTypeModel() {
|
158 |
if (!$this->hasTemplateTypeId()) {
|
163 |
Mage::getModel('contactlab_template/type')
|
164 |
->load($this->getTemplateTypeId()));
|
165 |
}
|
166 |
+
/** @noinspection PhpUndefinedMethodInspection */
|
167 |
return parent::getTemplateTypeModel();
|
168 |
}
|
169 |
|
182 |
*
|
183 |
* @param Mage_Newsletter_Model_Queue $queue
|
184 |
* @param string $storeId
|
185 |
+
* @param int $max
|
186 |
* @return Contactlab_Commons_Model_Task
|
187 |
+
* @throws Exception
|
188 |
*/
|
189 |
private function _createTask(Mage_Newsletter_Model_Queue $queue, $storeId, $max) {
|
190 |
+
/** @var $queue Contactlab_Template_Model_Newsletter_Queue */
|
191 |
+
/** @var $rv Contactlab_Commons_Model_Task */
|
192 |
$rv = Mage::getModel("contactlab_commons/task")
|
193 |
->setDescription(sprintf('Process "%s" queue [%d]',
|
194 |
$this->getTemplateSubject(), $queue->getId()))
|
233 |
* Send to all customers?
|
234 |
* @param string $code
|
235 |
* @param string $storeId
|
236 |
+
* @return bool
|
237 |
*/
|
238 |
public function doSendToAllCustomers($code, $storeId) {
|
239 |
if ($code !== 'CART' && $code !== 'WISHLIST') {
|
240 |
+
$code = 'GENERIC';
|
241 |
}
|
242 |
$code = strtolower($code);
|
243 |
return Mage::getStoreConfigFlag("contactlab_template/$code/send_to_not_subscribed", $storeId);
|
285 |
|
286 |
/**
|
287 |
* Validate min and max value
|
288 |
+
* @param String $field
|
289 |
* @param array $labels
|
290 |
* @param Contactlab_Template_Helper_Data $helper
|
291 |
* @param array $errors
|
302 |
$helper->__($labels['max']));
|
303 |
}
|
304 |
}
|
305 |
+
|
306 |
+
/**
|
307 |
+
* Processing object before save data
|
308 |
+
*
|
309 |
+
* @return Mage_Newsletter_Model_Template
|
310 |
+
*/
|
311 |
+
protected function _beforeSave()
|
312 |
+
{
|
313 |
+
// manage "none" store value.
|
314 |
+
if ($this->getStoreId() == 'none') {
|
315 |
+
$this->setData('store_id', null);
|
316 |
+
}
|
317 |
+
return parent::_beforeSave();
|
318 |
+
}
|
319 |
}
|
app/code/community/Contactlab/Template/Model/Newsletter/XmlDelivery.php
CHANGED
@@ -1,7 +1,10 @@
|
|
1 |
<?php
|
2 |
|
3 |
|
4 |
-
/**
|
|
|
|
|
|
|
5 |
class Contactlab_Template_Model_Newsletter_XmlDelivery extends Mage_Core_Model_Abstract {
|
6 |
/**
|
7 |
* Send.
|
1 |
<?php
|
2 |
|
3 |
|
4 |
+
/**
|
5 |
+
* Newsletter XmlDelivery Model.
|
6 |
+
* @method Contactlab_Template_Model_Newsletter_XmlDelivery setTask($value)
|
7 |
+
*/
|
8 |
class Contactlab_Template_Model_Newsletter_XmlDelivery extends Mage_Core_Model_Abstract {
|
9 |
/**
|
10 |
* Send.
|
app/code/community/Contactlab/Template/Model/Newsletter/XmlDelivery/Check.php
CHANGED
@@ -2,15 +2,26 @@
|
|
2 |
|
3 |
/**
|
4 |
* XMLDelivery report file check.
|
|
|
|
|
|
|
|
|
|
|
5 |
*
|
|
|
|
|
|
|
|
|
|
|
6 |
*/
|
7 |
class Contactlab_Template_Model_Newsletter_XmlDelivery_Check extends Varien_Object {
|
8 |
/**
|
9 |
* Do check.
|
10 |
-
*
|
11 |
* @return string
|
|
|
12 |
*/
|
13 |
public function doCheck() {
|
|
|
14 |
$sftp = new Contactlab_Commons_Model_Ssh_Net_SFTP(
|
15 |
$this->_getConfig("contactlab_commons/connection/remote_server"));
|
16 |
if (!$sftp->login(
|
@@ -79,6 +90,7 @@ class Contactlab_Template_Model_Newsletter_XmlDelivery_Check extends Varien_Obje
|
|
79 |
* @return void
|
80 |
*/
|
81 |
public function finishQueueAndLinks() {
|
|
|
82 |
$queue = Mage::getModel('newsletter/queue')->load($this->getQueueId());
|
83 |
if ($queue->hasQueueId()) {
|
84 |
$queue->finishQueueAndLinks();
|
@@ -112,7 +124,7 @@ class Contactlab_Template_Model_Newsletter_XmlDelivery_Check extends Varien_Obje
|
|
112 |
* Get config.
|
113 |
*
|
114 |
* @param string $path
|
115 |
-
* @return
|
116 |
*/
|
117 |
private function _getConfig($path) {
|
118 |
return Mage::getStoreConfig($path, $this->getStoreId());
|
2 |
|
3 |
/**
|
4 |
* XMLDelivery report file check.
|
5 |
+
* @method Contactlab_Template_Model_Newsletter_XmlDelivery_Check setTask(Contactlab_Commons_Model_Task $task)
|
6 |
+
* @method Contactlab_Template_Model_Newsletter_XmlDelivery_Check setParentTask(Contactlab_Commons_Model_Task $task)
|
7 |
+
* @method Contactlab_Template_Model_Newsletter_XmlDelivery_Check setXmlFile(String $xmlFile)
|
8 |
+
* @method Contactlab_Template_Model_Newsletter_XmlDelivery_Check setStoreId(String $storeId)
|
9 |
+
* @method Contactlab_Template_Model_Newsletter_XmlDelivery_Check setQueueId(int $queueId)
|
10 |
*
|
11 |
+
* @method Contactlab_Commons_Model_Task getTask()
|
12 |
+
* @method Contactlab_Commons_Model_Task getParentTask()
|
13 |
+
* @method String getXmlFile()
|
14 |
+
* @method String getStoreId()
|
15 |
+
* @method int getQueueId()
|
16 |
*/
|
17 |
class Contactlab_Template_Model_Newsletter_XmlDelivery_Check extends Varien_Object {
|
18 |
/**
|
19 |
* Do check.
|
|
|
20 |
* @return string
|
21 |
+
* @throws Exception
|
22 |
*/
|
23 |
public function doCheck() {
|
24 |
+
$rv = false;
|
25 |
$sftp = new Contactlab_Commons_Model_Ssh_Net_SFTP(
|
26 |
$this->_getConfig("contactlab_commons/connection/remote_server"));
|
27 |
if (!$sftp->login(
|
90 |
* @return void
|
91 |
*/
|
92 |
public function finishQueueAndLinks() {
|
93 |
+
/** @var $queue Contactlab_Template_Model_Newsletter_Queue */
|
94 |
$queue = Mage::getModel('newsletter/queue')->load($this->getQueueId());
|
95 |
if ($queue->hasQueueId()) {
|
96 |
$queue->finishQueueAndLinks();
|
124 |
* Get config.
|
125 |
*
|
126 |
* @param string $path
|
127 |
+
* @return String
|
128 |
*/
|
129 |
private function _getConfig($path) {
|
130 |
return Mage::getStoreConfig($path, $this->getStoreId());
|
app/code/community/Contactlab/Template/Model/Resource/Newsletter/Queue/Collection.php
CHANGED
@@ -2,11 +2,12 @@
|
|
2 |
|
3 |
|
4 |
/** Newsletter queue collection. */
|
5 |
-
class Contactlab_Template_Model_Resource_Newsletter_Queue_Collection extends Mage_Newsletter_Model_Resource_Queue_Collection
|
|
|
6 |
private $_disableIdCheck = false;
|
7 |
|
8 |
/**
|
9 |
-
* Add filter by only ready fot sending item
|
10 |
*
|
11 |
* @return Mage_Newsletter_Model_Resource_Queue_Collection
|
12 |
*/
|
@@ -16,13 +17,15 @@ class Contactlab_Template_Model_Resource_Newsletter_Queue_Collection extends Mag
|
|
16 |
$this->getSelect()->where('main_table.task_id is null');
|
17 |
return $this;
|
18 |
}
|
|
|
19 |
/**
|
20 |
-
* Adding item to item array
|
21 |
*
|
22 |
* @param Varien_Object $item
|
23 |
* @return Varien_Data_Collection
|
24 |
*/
|
25 |
-
public function addItem(Varien_Object $item)
|
|
|
26 |
if ($this->_disableIdCheck) {
|
27 |
return $this->_addItem($item);
|
28 |
} else {
|
@@ -33,14 +36,43 @@ class Contactlab_Template_Model_Resource_Newsletter_Queue_Collection extends Mag
|
|
33 |
/**
|
34 |
* Disable id check.
|
35 |
*/
|
36 |
-
public function disableIdCheck()
|
|
|
37 |
$this->_disableIdCheck = true;
|
38 |
}
|
39 |
|
40 |
/**
|
41 |
* Enable id check.
|
42 |
*/
|
43 |
-
public function enableIdCheck()
|
|
|
44 |
$this->_disableIdCheck = false;
|
45 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
2 |
|
3 |
|
4 |
/** Newsletter queue collection. */
|
5 |
+
class Contactlab_Template_Model_Resource_Newsletter_Queue_Collection extends Mage_Newsletter_Model_Resource_Queue_Collection
|
6 |
+
{
|
7 |
private $_disableIdCheck = false;
|
8 |
|
9 |
/**
|
10 |
+
* Add filter by only ready fot sending item.
|
11 |
*
|
12 |
* @return Mage_Newsletter_Model_Resource_Queue_Collection
|
13 |
*/
|
17 |
$this->getSelect()->where('main_table.task_id is null');
|
18 |
return $this;
|
19 |
}
|
20 |
+
|
21 |
/**
|
22 |
+
* Adding item to item array.
|
23 |
*
|
24 |
* @param Varien_Object $item
|
25 |
* @return Varien_Data_Collection
|
26 |
*/
|
27 |
+
public function addItem(Varien_Object $item)
|
28 |
+
{
|
29 |
if ($this->_disableIdCheck) {
|
30 |
return $this->_addItem($item);
|
31 |
} else {
|
36 |
/**
|
37 |
* Disable id check.
|
38 |
*/
|
39 |
+
public function disableIdCheck()
|
40 |
+
{
|
41 |
$this->_disableIdCheck = true;
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
* Enable id check.
|
46 |
*/
|
47 |
+
public function enableIdCheck()
|
48 |
+
{
|
49 |
$this->_disableIdCheck = false;
|
50 |
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Get Tasks by Template Id
|
54 |
+
* @param int $templateId
|
55 |
+
* @return Contactlab_Template_Model_Resource_Newsletter_Queue_Collection
|
56 |
+
*/
|
57 |
+
public function getQueueByTemplateId($templateId)
|
58 |
+
{
|
59 |
+
return $this->addFieldToFilter('template_id', $templateId);
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Add task data.
|
64 |
+
* @return Contactlab_Template_Model_Resource_Newsletter_Queue_Collection
|
65 |
+
*/
|
66 |
+
public function addTaskData()
|
67 |
+
{
|
68 |
+
$this->join(array('task' => 'contactlab_commons/task'),
|
69 |
+
'main_table.task_id = task.task_id',
|
70 |
+
array(
|
71 |
+
'status' => 'status',
|
72 |
+
'task_created_at' => 'created_at',
|
73 |
+
'task_planned_at' => 'planned_at',
|
74 |
+
'task_description' => 'description'
|
75 |
+
));
|
76 |
+
return $this->addOrder('task_id', Varien_Data_Collection::SORT_ORDER_DESC);
|
77 |
+
}
|
78 |
}
|
app/code/community/Contactlab/Template/Model/Resource/Newsletter/Queue/Link.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Model_Resource_Newsletter_Queue_Link extends Mage_Core_Model_Resource_Db_Abstract
|
4 |
+
{
|
5 |
+
|
6 |
+
protected function _construct()
|
7 |
+
{
|
8 |
+
$this->_init('newsletter/queue_link', 'queue_link_id');
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
app/code/community/Contactlab/Template/Model/Resource/Newsletter/Queue/Link/Collection.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Model_Resource_Newsletter_Queue_Link_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
|
4 |
+
{
|
5 |
+
protected function _construct()
|
6 |
+
{
|
7 |
+
$this->_init('contactlab_template/newsletter_queue_link');
|
8 |
+
}
|
9 |
+
|
10 |
+
public function addCustomerInfo()
|
11 |
+
{
|
12 |
+
$this->getSelect()->joinLeft(
|
13 |
+
array('customer' => $this->getTable('customer/entity')),
|
14 |
+
'main_table.customer_id = customer.entity_id',
|
15 |
+
array('customer_email' => 'email'));
|
16 |
+
return $this;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function addSubscriberInfo()
|
20 |
+
{
|
21 |
+
$this->getSelect()->joinLeft(
|
22 |
+
array('newsletter_subscriber' => $this->getTable('newsletter/subscriber')),
|
23 |
+
'main_table.subscriber_id = newsletter_subscriber.subscriber_id',
|
24 |
+
array('subscriber_email' => 'subscriber_email'));
|
25 |
+
return $this;
|
26 |
+
}
|
27 |
+
}
|
app/code/community/Contactlab/Template/Model/Resource/Newsletter/Template/Collection.php
CHANGED
@@ -7,13 +7,22 @@ class Contactlab_Template_Model_Resource_Newsletter_Template_Collection extends
|
|
7 |
/**
|
8 |
* Load active templates for cron.
|
9 |
*
|
10 |
-
* @
|
|
|
|
|
11 |
*/
|
12 |
-
public function loadActiveTemplatesForCron() {
|
13 |
$this->getSelect()->where('(cron_date_range_start is null or cron_date_range_start <= date(now()))');
|
14 |
$this->getSelect()->where('(cron_date_range_start is null or cron_date_range_end >= date(now()))');
|
15 |
-
$
|
|
|
|
|
|
|
|
|
|
|
16 |
$this->getSelect()->order('priority desc');
|
17 |
-
|
|
|
|
|
18 |
}
|
19 |
}
|
7 |
/**
|
8 |
* Load active templates for cron.
|
9 |
*
|
10 |
+
* @param int $storeId
|
11 |
+
* @param bool $excludeTest Exclude test mode templates
|
12 |
+
* @return Contactlab_Template_Model_Resource_Newsletter_Template_Collection
|
13 |
*/
|
14 |
+
public function loadActiveTemplatesForCron($storeId = -1, $excludeTest = true) {
|
15 |
$this->getSelect()->where('(cron_date_range_start is null or cron_date_range_start <= date(now()))');
|
16 |
$this->getSelect()->where('(cron_date_range_start is null or cron_date_range_end >= date(now()))');
|
17 |
+
if ($excludeTest) {
|
18 |
+
$this->getSelect()->where('is_test_mode = 0');
|
19 |
+
}
|
20 |
+
if ($storeId >= 0) {
|
21 |
+
$this->getSelect()->where('store_id is null or store_id = ?', intval($storeId));
|
22 |
+
}
|
23 |
$this->getSelect()->order('priority desc');
|
24 |
+
$this->addFieldToFilter('is_cron_enabled', 1);
|
25 |
+
|
26 |
+
return $this;
|
27 |
}
|
28 |
}
|
app/code/community/Contactlab/Template/Model/Task/Observer.php
CHANGED
@@ -27,8 +27,9 @@ class Contactlab_Template_Model_Task_Observer {
|
|
27 |
* @return void
|
28 |
*/
|
29 |
public function loadOldTasks(Varien_Event_Observer $observer) {
|
30 |
-
|
31 |
-
|
|
|
32 |
Contactlab_Commons_Model_Task::STATUS_HIDDEN);
|
33 |
}
|
34 |
|
@@ -56,7 +57,7 @@ class Contactlab_Template_Model_Task_Observer {
|
|
56 |
* @return void
|
57 |
*/
|
58 |
private function _deleteNewsletterQueue(Contactlab_Commons_Model_Task $task) {
|
59 |
-
$
|
60 |
$adapter = Mage::getSingleton('core/resource')->getConnection('core_write');
|
61 |
|
62 |
$collection = Mage::getResourceModel('newsletter/queue_collection')
|
27 |
* @return void
|
28 |
*/
|
29 |
public function loadOldTasks(Varien_Event_Observer $observer) {
|
30 |
+
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
|
31 |
+
$collection = $observer->getCollection();
|
32 |
+
$collection->getSelect()->orWhere("status = ? and main_table.task_id not in (select task_id from {$tablePrefix}newsletter_queue)",
|
33 |
Contactlab_Commons_Model_Task::STATUS_HIDDEN);
|
34 |
}
|
35 |
|
57 |
* @return void
|
58 |
*/
|
59 |
private function _deleteNewsletterQueue(Contactlab_Commons_Model_Task $task) {
|
60 |
+
/* @var $adapter Varien_Db_Adapter_Pdo_Mysql */
|
61 |
$adapter = Mage::getSingleton('core/resource')->getConnection('core_write');
|
62 |
|
63 |
$collection = Mage::getResourceModel('newsletter/queue_collection')
|
app/code/community/Contactlab/Template/Model/Type.php
CHANGED
@@ -2,6 +2,25 @@
|
|
2 |
|
3 |
/**
|
4 |
* Template type model.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
class Contactlab_Template_Model_Type extends Mage_Core_Model_Abstract {
|
7 |
|
2 |
|
3 |
/**
|
4 |
* Template type model.
|
5 |
+
*
|
6 |
+
* @method String getTemplateTypeCode()
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* @method int getEntityId()
|
11 |
+
* @method Contactlab_Template_Model_Type setEntityId($value)
|
12 |
+
* @method string getName()
|
13 |
+
* @method Contactlab_Template_Model_Type setName($value)
|
14 |
+
* @method string getTemplateTypeCode()
|
15 |
+
* @method Contactlab_Template_Model_Type setTemplateTypeCode($value)
|
16 |
+
* @method int getIsSystem()
|
17 |
+
* @method Contactlab_Template_Model_Type setIsSystem($value)
|
18 |
+
* @method int getIsCronEnabled()
|
19 |
+
* @method Contactlab_Template_Model_Type setIsCronEnabled($value)
|
20 |
+
* @method int getDndPeriod()
|
21 |
+
* @method Contactlab_Template_Model_Type setDndPeriod($value)
|
22 |
+
* @method int getDndMailNumber()
|
23 |
+
* @method Contactlab_Template_Model_Type setDndMailNumber($value)
|
24 |
*/
|
25 |
class Contactlab_Template_Model_Type extends Mage_Core_Model_Abstract {
|
26 |
|
app/code/community/Contactlab/Template/controllers/Adminhtml/Contactlab/Template/TasksController.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Template_Adminhtml_Contactlab_Template_TasksController
|
4 |
+
extends Mage_Adminhtml_Controller_Action {
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Check is allowed access
|
8 |
+
*
|
9 |
+
* @return bool
|
10 |
+
*/
|
11 |
+
protected function _isAllowed ()
|
12 |
+
{
|
13 |
+
return Mage::getSingleton('admin/session')
|
14 |
+
->isAllowed('newsletter/template');
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* List tasks action.
|
19 |
+
*/
|
20 |
+
public function listAction() {
|
21 |
+
$this->_title($this->__('Newsletter Templates'))->_title($this->__('XML Delivery Status'));
|
22 |
+
$this->loadLayout();
|
23 |
+
$templateId = $this->getRequest()->getParam('template_id');
|
24 |
+
if (!$templateId) {
|
25 |
+
$this->_redirectError("Invalid template id parameter");
|
26 |
+
}
|
27 |
+
Mage::register('template_id', $templateId);
|
28 |
+
$this->_setActiveMenu('newsletter/template');
|
29 |
+
$this->_addBreadcrumb(Mage::helper('newsletter')->__('Newsletter Templates'),
|
30 |
+
Mage::helper('newsletter')->__('XML Delivery Status'));
|
31 |
+
|
32 |
+
$this->renderLayout();
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Queue detail action.
|
37 |
+
*/
|
38 |
+
public function detailAction() {
|
39 |
+
$this->_title($this->__('Newsletter Templates'))->_title($this->__('Queue Detail'));
|
40 |
+
$queueId = $this->getRequest()->getParam('queue_id');
|
41 |
+
if (!$queueId) {
|
42 |
+
$this->_redirectError("Invalid queue id parameter");
|
43 |
+
}
|
44 |
+
$templateId = $this->getRequest()->getParam('template_id');
|
45 |
+
if (!$templateId) {
|
46 |
+
$this->_redirectError("Invalid template id parameter");
|
47 |
+
}
|
48 |
+
Mage::register('queue_id', $queueId);
|
49 |
+
Mage::register('template_id', $templateId);
|
50 |
+
$this->loadLayout();
|
51 |
+
$this->_setActiveMenu('newsletter/template');
|
52 |
+
$this->_addBreadcrumb(Mage::helper('newsletter')->__('Newsletter Templates'),
|
53 |
+
Mage::helper('newsletter')->__('Queue Detail'));
|
54 |
+
|
55 |
+
$this->renderLayout();
|
56 |
+
}
|
57 |
+
}
|
app/code/community/Contactlab/Template/controllers/Adminhtml/{TypesController.php → Contactlab/Template/TypesController.php}
RENAMED
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
|
3 |
/** Template types controller. */
|
4 |
-
class
|
5 |
|
6 |
/** Index action. */
|
7 |
public function indexAction() {
|
8 |
-
$this->_title($this->__('Template
|
9 |
$this->loadLayout()->_setActiveMenu('newsletter/contactlab');
|
10 |
return $this->renderLayout();
|
11 |
}
|
1 |
<?php
|
2 |
|
3 |
/** Template types controller. */
|
4 |
+
class Contactlab_Template_Adminhtml_Contactlab_Template_TypesController extends Mage_Adminhtml_Controller_Action {
|
5 |
|
6 |
/** Index action. */
|
7 |
public function indexAction() {
|
8 |
+
$this->_title($this->__('Template Types'));
|
9 |
$this->loadLayout()->_setActiveMenu('newsletter/contactlab');
|
10 |
return $this->renderLayout();
|
11 |
}
|
app/code/community/Contactlab/Template/controllers/Adminhtml/{TemplateController.php → Contactlab/TemplateController.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
/** Template types controller. */
|
4 |
-
class
|
5 |
|
6 |
/**
|
7 |
* Scan for template in cron.
|
@@ -21,7 +21,7 @@ class Contactlab_Template_Adminhtml_TemplateController extends Mage_Adminhtml_Co
|
|
21 |
Mage::helper('contactlab_commons')->logEmerg($e);
|
22 |
$session->addError($e->getMessage());
|
23 |
}
|
24 |
-
$this->_redirect('
|
25 |
array('address' => $this->getRequest()->getParam('address')));
|
26 |
}
|
27 |
|
@@ -33,11 +33,20 @@ class Contactlab_Template_Adminhtml_TemplateController extends Mage_Adminhtml_Co
|
|
33 |
*/
|
34 |
private function _scanByStore($storeId, $debugAddress) {
|
35 |
$session = Mage::getSingleton('adminhtml/session');
|
36 |
-
$rv = Mage::helper('contactlab_template')->scan($storeId, $debugAddress);
|
37 |
if (is_array($rv)) {
|
38 |
foreach ($rv as $k => $v) {
|
39 |
$session->addSuccess(sprintf("%s: %s", $k, $v));
|
40 |
}
|
41 |
}
|
42 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
1 |
<?php
|
2 |
|
3 |
/** Template types controller. */
|
4 |
+
class Contactlab_Template_Adminhtml_Contactlab_TemplateController extends Mage_Adminhtml_Controller_Action {
|
5 |
|
6 |
/**
|
7 |
* Scan for template in cron.
|
21 |
Mage::helper('contactlab_commons')->logEmerg($e);
|
22 |
$session->addError($e->getMessage());
|
23 |
}
|
24 |
+
$this->_redirect('adminhtml/contactlab_commons_tasks',
|
25 |
array('address' => $this->getRequest()->getParam('address')));
|
26 |
}
|
27 |
|
33 |
*/
|
34 |
private function _scanByStore($storeId, $debugAddress) {
|
35 |
$session = Mage::getSingleton('adminhtml/session');
|
36 |
+
$rv = Mage::helper('contactlab_template')->scan($storeId, $debugAddress, false);
|
37 |
if (is_array($rv)) {
|
38 |
foreach ($rv as $k => $v) {
|
39 |
$session->addSuccess(sprintf("%s: %s", $k, $v));
|
40 |
}
|
41 |
}
|
42 |
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Is this controller allowed?
|
46 |
+
* @return bool
|
47 |
+
*/
|
48 |
+
protected function _isAllowed()
|
49 |
+
{
|
50 |
+
return Mage::getSingleton('admin/session')->isAllowed('newsletter/contactlab/template_scan');
|
51 |
+
}
|
52 |
}
|
app/code/community/Contactlab/Template/controllers/Adminhtml/Newsletter/QueueController.php
CHANGED
@@ -30,7 +30,7 @@ class Contactlab_Template_Adminhtml_Newsletter_QueueController
|
|
30 |
}
|
31 |
}
|
32 |
|
33 |
-
$this->_redirect('
|
34 |
} else {
|
35 |
return parent::editAction();
|
36 |
}
|
30 |
}
|
31 |
}
|
32 |
|
33 |
+
$this->_redirect('adminhtml/contactlab_commons_tasks');
|
34 |
} else {
|
35 |
return parent::editAction();
|
36 |
}
|
app/code/community/Contactlab/Template/controllers/SampleDataController.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/** Sample data controller. */
|
4 |
+
class Contactlab_Template_SampleDataController extends Mage_Core_Controller_Front_Action {
|
5 |
+
public function createAction() {
|
6 |
+
/* @var $helper Contactlab_Template_Helper_SampleData */
|
7 |
+
$helper = Mage::helper('contactlab_template/sampleData');
|
8 |
+
$helper->createSampleDataJSON();
|
9 |
+
return $this->_redirect('/');
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Contactlab/Template/data/contactlab_template_setup/data-upgrade-0.8.20-0.8.21.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/* @var $helper Contactlab_Template_Helper_SampleData */
|
4 |
+
$helper = Mage::helper('contactlab_template/sampleData');
|
5 |
+
$helper->createSampleData();
|
app/code/community/Contactlab/Template/docs/example-templates/subject_ac.json
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"template_code":"Abandoned Cart","template_text":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\">\r\n<html>\r\n<head>\r\n\r\n <title>Contactlab<\/title>\r\n\r\n <meta name=\"viewport\" content=\"height=device-height, width=device-width, minimum-scale=1.0, user-scalable=no\" \/>\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <style type=\"text\/css\">\r\n <!--\r\n html { -webkit-text-size-adjust:none; }\r\n body, .ReadMsgBody, .ExternalClass, .multi-col .column {width: 100%; width:100% !important; margin: 0px; padding: 0px; display: block;}\r\n .ExternalClass * {line-height: 100%;}\r\n table, tr, td {margin:0; padding: 0;border-collapse:collapse; mso-line-height-alt:0px; mso-margin-top-alt:0px; mso-table-lspace:0px; mso-table-rspace:0px; }\r\n td { vertical-align: top; }\r\n a img, img{margin: 0px; padding: 0px; display: block;}\r\n a[href^=\"tel\"], a[href^=\"sms\"] {color:inherit; cursor:default; text-decoration:none;}\r\n .preheader{display:none !important; visibility:hidden; opacity:0; color:transparent; height:0; width:0; color:#ffffff; font-size:1px; line-height:0; overflow:hidden; mso-hide:all;}\r\n .two-col .column { width: 300px; }\r\n .two-col .padded { width: 280px; }\r\n .three-col .column {width: 190px;}\r\n .three-col .padded {width: 280px;}\r\n .four-col .column {width: 145px;}\r\n .four-col .padded {width: 280px;}\r\n .five-col .column {width: 116px;}\r\n .five-col .padded {width: 280px;}\r\n .multi-col .padded {min-width: 65px;}\r\n @media only screen\r\n and (max-width: 568px)\r\n {\r\n [class*=mobileversion] {display:block !important; float:none !important; width:100% !important; height:auto !important; overflow:visible !important; line-height: normal !important; max-height:none !important; margin: 0; padding: 0px;}\r\n [class*=onlydesktop] {display:none !important; width:0 !important;}\r\n [class*=wrp] { min-width: 320px !important;}\r\n [class*=wrp] .padded320 { width: 320px !important; height:auto !important;}\r\n [class*=wrp] img { max-width: 100%; height: auto; }\r\n [class*=wrp] .image_responsive320 { -ms-interpolation-mode: bicubic; width:100%; width:320px; height:auto!important; }\r\n [class*=wrp] .image_responsive { -ms-interpolation-mode: bicubic; width:100%; width:280px; height:auto!important; }\r\n [class*=wrp] .columns, [class*=wrp] .column, [class*=wrp] .column-left, [class*=wrp] .column-right,\r\n [class*=wrp] .padded, [class*=wrp] .padded-left, [class*=wrp] .padded-right { width: 280px !important; height:auto !important;}\r\n [class*=wrp] .button { width: 260px !important; height:auto !important;}\r\n [class*=wrp] .padded-internal { width: 254px !important; height:auto !important;}\r\n [class*=wrp] .padding { width: 20px !important; }\r\n [class*=wrp] .center { text-align:center !important; margin: 0 auto;}\r\n [class*=wrp] .separator {border-bottom:1px solid #ffffff;}\r\n [class*=wrp] .separator_dark {border-bottom:1px solid #818181;}\r\n }\r\n -->\r\n <\/style>\r\n\r\n<\/head>\r\n<body style=\"margin: 0; padding: 0px; background: #FFFFFF; \">\r\n\r\n<table class=\"wrp\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; min-width:600px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" bgcolor=\"#FFFFFF\">\r\n<tr>\r\n <td class=\"wrp\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; min-width:600px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; color:#a0a0a0;\" class=\"padded\" align=\"center\">\r\n Ogni tuo desiderio è un ordine: noi ti aiutiamo ad esaudirlo.\r\n <\/td>\r\n <td class=\"padding\" style=\"padding: 0px; vertical-align:top; width:10px;\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; color:#a0a0a0;\" class=\"padded\" align=\"center\">\r\n <!-- init:ecovu -->\r\n <a href=\"${online_version_url}$\" style=\"font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; color:#a0a0a0;\">Web version<\/a> |\r\n <!-- end:ecovu -->\r\n <a href=\"{{var subscriber.getUnsubscriptionLink()}}\" style=\"font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; color:#a0a0a0;\">\r\n Unsubscribe\r\n <\/a>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; width:580px; font-size:0; line-height:1px; height: 1px; vertical-align: top\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"font-size:0; margin: 0px; padding: 0px; display: inline;\" src=\"http:\/\/static.contactlab.it\/contactlab\/responsive_2\/images\/logo.gif\" width=\"200\" height=\"68\" border=\"0\" alt=\"Your Logo Here\" class=\"image_responsive\">\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#FFFFFF\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"5\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"multi-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; min-width: 65px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; text-align: left;\" align=\"left\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\">\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\">\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\">\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\">\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\">\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\">\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"2\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n\r\n <span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 25px; line-height: 48px; color:#A0A0A0;\">\r\n Ciao {{var subscriber.getCustomerFirstname()}}!\r\n <\/span>\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n\r\n <span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 21px; line-height: 20px; color:#a0a0a0;\">\r\n hai dimenticato qualcosa nel tuo carello.\r\n <\/span>\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n\r\n <span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 20px; color:#4d4c4c;\">\r\n Vuoi completare il tuo acquisto?\r\n <\/span>\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n{{var products.getProduct1()}}\r\n{{var products.getProduct2()}}\r\n{{var products.getProduct3()}}\r\n{{var products.getProduct4()}}\r\n{{var products.getProduct5()}}\r\n","template_text_preprocessed":null,"template_styles":null,"template_type":"2","template_subject":"Subject AC","template_sender_name":"CustomerSupport","template_sender_email":"name.surname@example.com","template_actual":"1","added_at":"2015-03-23 16:08:24","modified_at":"2015-04-01 13:41:03","enable_xml_delivery":"1","template_type_id":"1","flg_html_txt":"H","template_text_plain":"","template_pr_txt_1":null,"template_pr_html_1":"<!-- prod -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#009688; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non sint temporibus commodi sed dignissimos dicta possimus repudiandae fuga nobis illum, saepe porro ut rerum expedita, voluptate dolor unde rem vitae.\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n<!-- \/prod -->\r\n","template_pr_txt_2":null,"template_pr_html_2":"<!-- prod -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#009688; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non sint temporibus commodi sed dignissimos dicta possimus repudiandae fuga nobis illum, saepe porro ut rerum expedita, voluptate dolor unde rem vitae.\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n<!-- \/prod -->\r\n","template_pr_txt_3":null,"template_pr_html_3":"<!-- prod -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#009688; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non sint temporibus commodi sed dignissimos dicta possimus repudiandae fuga nobis illum, saepe porro ut rerum expedita, voluptate dolor unde rem vitae.\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n<!-- \/prod -->\r\n","template_pr_txt_4":null,"template_pr_html_4":"<!-- prod -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#009688; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non sint temporibus commodi sed dignissimos dicta possimus repudiandae fuga nobis illum, saepe porro ut rerum expedita, voluptate dolor unde rem vitae.\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n<!-- \/prod -->\r\n","template_pr_txt_5":null,"template_pr_html_5":"<!-- prod -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\">\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#009688; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non sint temporibus commodi sed dignissimos dicta possimus repudiandae fuga nobis illum, saepe porro ut rerum expedita, voluptate dolor unde rem vitae.\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n<!-- \/prod -->\r\n","default_product_snippet":"1","is_cron_enabled":"1","cron_date_range_start":null,"cron_date_range_end":null,"queue_delay_time":"0","reply_to":null,"is_test_mode":"0","product_image_size":"180x90","priority":"1","min_minutes_from_last_update":"2","max_minutes_from_last_update":"2880","min_value":"1.0000","max_value":null,"min_products":"1","max_products":null,"and_or":"AND"}
|
app/code/community/Contactlab/Template/docs/example-templates/subject_wl.json
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"template_code":"Wish List","template_text":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\">\r\n<html>\r\n<head>\r\n\r\n <title>Wishlist<\/title>\r\n\r\n <meta name=\"viewport\" content=\"height=device-height, width=device-width, minimum-scale=1.0, user-scalable=no\" \/>\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <style type=\"text\/css\">\r\n <!--\r\n html { -webkit-text-size-adjust:none; }\r\n body, .ReadMsgBody, .ExternalClass, .multi-col .column {width: 100%; width:100% !important; margin: 0px; padding: 0px; display: block;}\r\n .ExternalClass * {line-height: 100%;}\r\n table, tr, td {margin:0; padding: 0;border-collapse:collapse; mso-line-height-alt:0px; mso-margin-top-alt:0px; mso-table-lspace:0px; mso-table-rspace:0px; }\r\n td { vertical-align: top; }\r\n a img, img{margin: 0px; padding: 0px; display: block;}\r\n a[href^=\"tel\"], a[href^=\"sms\"] {color:inherit; cursor:default; text-decoration:none;}\r\n .preheader{display:none !important; visibility:hidden; opacity:0; color:transparent; height:0; width:0; color:#ffffff; font-size:1px; line-height:0; overflow:hidden; mso-hide:all;}\r\n .two-col .column { width: 300px; }\r\n .two-col .padded { width: 280px; }\r\n .three-col .column {width: 190px;}\r\n .three-col .padded {width: 280px;}\r\n .four-col .column {width: 145px;}\r\n .four-col .padded {width: 280px;}\r\n .five-col .column {width: 116px;}\r\n .five-col .padded {width: 280px;}\r\n .multi-col .padded {min-width: 65px;}\r\n @media only screen\r\n and (max-width: 568px)\r\n {\r\n [class*=mobileversion] {display:block !important; float:none !important; width:100% !important; height:auto !important; overflow:visible !important; line-height: normal !important; max-height:none !important; margin: 0; padding: 0px;}\r\n [class*=onlydesktop] {display:none !important; width:0 !important;}\r\n [class*=wrp] { min-width: 320px !important;}\r\n [class*=wrp] .padded320 { width: 320px !important; height:auto !important;}\r\n [class*=wrp] img { max-width: 100%; height: auto; }\r\n [class*=wrp] .image_responsive320 { -ms-interpolation-mode: bicubic; width:100%; width:320px; height:auto!important; }\r\n [class*=wrp] .image_responsive { -ms-interpolation-mode: bicubic; width:100%; width:280px; height:auto!important; }\r\n [class*=wrp] .columns, [class*=wrp] .column, [class*=wrp] .column-left, [class*=wrp] .column-right,\r\n [class*=wrp] .padded, [class*=wrp] .padded-left, [class*=wrp] .padded-right { width: 280px !important; height:auto !important;}\r\n [class*=wrp] .button { width: 260px !important; height:auto !important;}\r\n [class*=wrp] .padded-internal { width: 254px !important; height:auto !important;}\r\n [class*=wrp] .padding { width: 20px !important; }\r\n [class*=wrp] .center { text-align:center !important; margin: 0 auto;}\r\n [class*=wrp] .separator {border-bottom:1px solid #ffffff;}\r\n [class*=wrp] .separator_dark {border-bottom:1px solid #818181;}\r\n }\r\n -->\r\n <\/style>\r\n\r\n<\/head>\r\n<body style=\"margin: 0; padding: 0px; background: url('http:\/\/static.contactlab.it\/magento\/images\/sfondo.jpg');\" background=\"http:\/\/static.contactlab.it\/magento\/images\/sfondo.jpg\">\r\n\r\n<table class=\"wrp\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; min-width:600px; background: url('http:\/\/static.contactlab.it\/magento\/images\/sfondo.jpg');\" background=\"http:\/\/static.contactlab.it\/magento\/images\/sfondo.jpg\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" bgcolor=\"#FFFFFF\">\r\n<tr>\r\n <td class=\"wrp\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; min-width:600px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; color:#a0a0a0;\" class=\"padded\" align=\"center\">\r\n Ogni tuo desiderio è un ordine: noi ti aiutiamo ad esaudirlo.\r\n <\/td>\r\n <td class=\"padding\" style=\"padding: 0px; vertical-align:top; width:10px;\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" ><\/td>\r\n <\/tr>\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; color:#a0a0a0;\" class=\"padded\" align=\"center\">\r\n <!-- init:ecovu -->\r\n <a href=\"${online_version_url}$\" style=\"font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; color:#a0a0a0;\">Web version<\/a> |\r\n <!-- end:ecovu -->\r\n <a href=\"{{var subscriber.getUnsubscriptionLink()}}\" style=\"font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; color:#a0a0a0;\">\r\n Unsubscribe\r\n <\/a>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; width:580px; font-size:0; line-height:1px; height: 1px; vertical-align: top\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\">\r\n <img style=\"font-size:0; margin: 0px; padding: 0px; display: inline;\" src=\"http:\/\/static.contactlab.it\/contactlab\/responsive_2\/images\/logo.gif\" width=\"200\" height=\"68\" border=\"0\" alt=\"Your Logo Here\" class=\"image_responsive\">\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#FFFFFF\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"5\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"multi-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; min-width: 65px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; text-align: left;\" align=\"left\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\" >\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\" >\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\" >\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\" >\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\" >\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" class=\"column separator_dark\">\r\n <table class=\"padded\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align: middle; width:19px; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" align=\"center\" class=\"onlydesktop\">\r\n |\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:3px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"3\" height=\"30\" border=\"0\"><\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:middle; height: 30px; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; color:#999999;\" height=\"30\" class=\"padded\" align=\"center\" >\r\n <a href=\"#\" style=\"color:#4D4C4C; font-family: Arial, Helvetica, sans-serif; font-size:12px; line-height:16px; text-decoration: none;\">link1<\/a>\r\n <\/td>\r\n\r\n <td style=\"padding: 0px; vertical-align:top; width:6px;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 30px;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"6\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"2\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n\r\n <span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 25px; line-height: 48px; color:#f9a825;\">\r\n Ciao {{var subscriber.getCustomerFirstname()}}!\r\n <\/span>\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n\r\n <span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 21px; line-height: 20px; color:#f9a825;\">\r\n ecco i prodotti che hai selezionato per la tua wishlist\r\n <\/span>\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" align=\"right\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#f9a825\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px; height: 30px;\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"30\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align: middle; font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 24px; color:#FFFFFF; text-decoration: none;\" class=\"button\" align=\"center\" valign=\"middle\">\r\n <a href=\"http:\/\/magento.contactlab.com\" target=\"_blank\" style=\"font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 24px; color:#FFFFFF; text-decoration: none;\">\r\n ACQUISTA ORA\r\n <\/a>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px; height: 30px;\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"30\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"left\">\r\n\r\n <span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 20px; color:#4d4c4c;\">\r\n I tuoi prodotti:\r\n <\/span>\r\n\r\n\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n\r\n{{var products.getProduct1()}}\r\n{{var products.getProduct2()}}\r\n{{var products.getProduct3()}}\r\n{{var products.getProduct4()}}\r\n{{var products.getProduct5()}}","template_text_preprocessed":null,"template_styles":null,"template_type":"2","template_subject":"Subject WL","template_sender_name":"CustomerSupport","template_sender_email":"name.surname@example.com","template_actual":"1","added_at":"2015-03-03 14:34:21","modified_at":"2015-05-18 11:41:40","enable_xml_delivery":"1","template_type_id":"2","flg_html_txt":"B","template_text_plain":"<!-- Start Template(text) -->\r\n\r\nWishlist Reminder in txt\r\n\r\nHi, {{var subscriber.getCustomerFirstname()}}!\r\nFollow this link to unsubscribe {{var subscriber.getUnsubscriptionLink()}}\r\nLorem ipsum dolor sit amet.\r\n\r\n{{var products.getProduct1()}}{{var products.getProduct2()}}{{var products.getProduct3()}}{{var products.getProduct4()}}{{var products.getProduct5()}}\r\n\r\nFine dei prodotti\r\n\r\n<!-- End Template(text) -->","template_pr_txt_1":"<!-- Start Template prodotto nr 1 (text) -->\r\n\r\n{{var product.getSku()}} {{var product.getName()}} [{{var product.getQty()}}]\r\n{{var price}}\r\n\r\n<!-- End Template prodotto nr 1 (text) -->","template_pr_html_1":"<!-- prod init -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\" >\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#f9a825; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>{{var product.getDescription()}}\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n<!-- prod end -->","template_pr_txt_2":"<!-- Start Template prodotto nr 2 (text) -->\r\n\r\n{{var product.getSku()}} {{var product.getName()}} [{{var product.getQty()}}]\r\n{{var price}}\r\n\r\n<!-- End Template prodotto nr 2 (text) -->","template_pr_html_2":"<!-- prod init -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\" >\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#f9a825; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>{{var product.getDescription()}}\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n<!-- prod end -->","template_pr_txt_3":"<!-- Start Template prodotto nr 3 (text) -->\r\n\r\n{{var product.getSku()}} {{var product.getName()}} [{{var product.getQty()}}]\r\n{{var price}}\r\n\r\n<!-- End Template prodotto nr 3 (text) -->","template_pr_html_3":"<!-- prod init -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\" >\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#f9a825; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>{{var product.getDescription()}}\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n<!-- prod end -->","template_pr_txt_4":"<!-- Start Template prodotto nr 4 (text) -->\r\n\r\n{{var product.getSku()}} {{var product.getName()}} [{{var product.getQty()}}]\r\n{{var price}}\r\n\r\n<!-- End Template prodotto nr 4 (text) -->","template_pr_html_4":"<!-- prod init -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\" >\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#f9a825; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>{{var product.getDescription()}}\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n<!-- prod end -->","template_pr_txt_5":"<!-- Start Template prodotto nr 5 (text) -->\r\n\r\n{{var product.getSku()}} {{var product.getName()}} [{{var product.getQty()}}]\r\n{{var price}}\r\n\r\n<!-- End Template prodotto nr 5 (text) -->","template_pr_html_5":"<!-- prod init -->\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table class=\"two-col\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\" >\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\">\r\n <table class=\"columns\" style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none; width:580px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\">\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:188px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\" align=\"left\">\r\n <a href=\"#\" target=\"_blank\" >\r\n <img style=\"margin:0px; padding:0px; display:inline;\" src=\"{{var product.getThumbnail()}}\" width=\"180\" height=\"90\" alt=\"Testo Alternativo\" border=\"0\" class=\"image_responsive\" \/>\r\n <\/a>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:180px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <!--[if mso]>\r\n <\/td>\r\n <td style=\"padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;vertical-align:top;\" >\r\n <![endif]-->\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:388px;\" class=\"column\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#4d4c4c; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px; font-weight: bold;\" class=\"padded\" align=\"left\">\r\n <span style=\"color:#f9a825; font-family: Arial, Helvetica, sans-serif; font-size:18px; line-height:20px;\">x{{var product.getQty()}}<\/span> {{var product.getName()}}\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px; color:#a0a0a0; font-family: Arial, Helvetica, sans-serif; font-size:15px; line-height:20px;\" class=\"padded\" align=\"left\">\r\n {{var product.getSku()}}<br>{{var product.getDescription()}}\r\n <br \/>\r\n <b style=\"color:#4d4c4c\">{{var price}}\u00e2\u201a\u00ac<\/b>\r\n <\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:380px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 5px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"5\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <\/tr>\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n <\/table>\r\n\r\n\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#ffffff\">\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\" align=\"center\">\r\n <table style=\"border-collapse:collapse; border-spacing:0; -webkit-text-size-adjust:none;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\r\n\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top;\" bgcolor=\"#D2D2D2\"><img style=\"margin: 0px; padding: 0px; display: block; height: 2px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"2\" border=\"0\"><\/td>\r\n <\/tr>\r\n <tr>\r\n <td style=\"padding: 0px; vertical-align:top; width:580px;\" class=\"padded\"><img style=\"margin: 0px; padding: 0px; display: block; height: 10px;\" src=\"http:\/\/static.contactlab.it\/spacer.gif\" width=\"1\" height=\"10\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n\r\n\r\n <\/table>\r\n <\/td>\r\n <td style=\"padding: 0px; vertical-align:top; width:10px;\" class=\"padding\"><img style=\"margin: 0px; padding: 0px; display: block;\" src=\"http:\/\/static.contactlab.it\/img\/spacer.gif\" width=\"10\" height=\"1\" border=\"0\"><\/td>\r\n <\/tr>\r\n\r\n <\/table>\r\n<!-- prod end -->","default_product_snippet":"1","is_cron_enabled":"1","cron_date_range_start":null,"cron_date_range_end":null,"queue_delay_time":"0","reply_to":null,"is_test_mode":"0","product_image_size":"180x90","priority":"0","min_minutes_from_last_update":"1","max_minutes_from_last_update":"5000","min_value":"1.0000","max_value":null,"min_products":"1","max_products":null,"and_or":"AND"}
|
app/code/community/Contactlab/Template/docs/release-notes/0.8.18.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<ul>
|
2 |
-
<li><del>
|
3 |
<li>Removed <del>_prepareColumns</del> debug echo</li>
|
4 |
</ul>
|
1 |
<ul>
|
2 |
+
<li><del>Attempts</del> <strong>label</strong> fixed to <q>Attempts</q></li>
|
3 |
<li>Removed <del>_prepareColumns</del> debug echo</li>
|
4 |
</ul>
|
app/code/community/Contactlab/Template/docs/release-notes/0.8.20.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<ul>
|
2 |
<li><strong>Fixed</strong> removed redundant system template types added during extension install process.</li>
|
3 |
-
<li><strong>Feature</strong> sort products by row value in abandoned cart and by qty in
|
4 |
</ul>
|
1 |
<ul>
|
2 |
<li><strong>Fixed</strong> removed redundant system template types added during extension install process.</li>
|
3 |
+
<li><strong>Feature</strong> sort products by row value in abandoned cart and by qty in Wishlist Reminder.</li>
|
4 |
</ul>
|
app/code/community/Contactlab/Template/docs/release-notes/0.8.21.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Feature</strong> created two sample templates during upgrade process</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Template/docs/release-notes/0.8.22.html
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Removed default values from <code>config.xml</code>.</li>
|
3 |
+
<li>XML Delivery status, shows now all hidden tasks.</li>
|
4 |
+
</ul>
|
app/code/community/Contactlab/Template/docs/release-notes/0.8.23.html
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Altered <code style="font-weight: bold">template_text</code>,
|
3 |
+
<code style="font-weight: bold">template_text_preprocessed</code>
|
4 |
+
and <code style="font-weight: bold">template_text_plain</code> columns type
|
5 |
+
in <code style="font-weight: bold">mediumtext</code>.</li>
|
6 |
+
</ul>
|
app/code/community/Contactlab/Template/docs/release-notes/0.8.24.html
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Feature</strong> Added store view attribute to Newsletter Template table.</li>
|
3 |
+
<li><strong>Feature</strong> Scan of newsletter templates by store view.</li>
|
4 |
+
<li><strong>Fix</strong> Restored some missing validation on Template edit form.</li>
|
5 |
+
</ul>
|
app/code/community/Contactlab/Template/docs/release-notes/0.9.0.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Modified adminhtml controllers due to SUPEE-6788 Magento patch.</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Template/etc/adminhtml.xml
CHANGED
@@ -6,9 +6,9 @@
|
|
6 |
<contactlab>
|
7 |
<children>
|
8 |
<template_types translate="title" module="contactlab_template">
|
9 |
-
<title>Template
|
10 |
<sort_order>50</sort_order>
|
11 |
-
<action>
|
12 |
</template_types>
|
13 |
</children>
|
14 |
</contactlab>
|
@@ -24,9 +24,13 @@
|
|
24 |
<contactlab>
|
25 |
<children>
|
26 |
<template_types translate="title" module="contactlab_template">
|
27 |
-
<title>Template
|
28 |
<sort_order>50</sort_order>
|
29 |
</template_types>
|
|
|
|
|
|
|
|
|
30 |
</children>
|
31 |
</contactlab>
|
32 |
</children>
|
@@ -44,7 +48,7 @@
|
|
44 |
<sort_order>110</sort_order>
|
45 |
</contactlab_template_cart>
|
46 |
<contactlab_template_wishlist translate="title" module="contactlab_template">
|
47 |
-
<title><![CDATA[Recurring Email — Wishlist
|
48 |
<sort_order>120</sort_order>
|
49 |
</contactlab_template_wishlist>
|
50 |
</children>
|
6 |
<contactlab>
|
7 |
<children>
|
8 |
<template_types translate="title" module="contactlab_template">
|
9 |
+
<title>Template Types</title>
|
10 |
<sort_order>50</sort_order>
|
11 |
+
<action>adminhtml/contactlab_template_types</action>
|
12 |
</template_types>
|
13 |
</children>
|
14 |
</contactlab>
|
24 |
<contactlab>
|
25 |
<children>
|
26 |
<template_types translate="title" module="contactlab_template">
|
27 |
+
<title>Template Types</title>
|
28 |
<sort_order>50</sort_order>
|
29 |
</template_types>
|
30 |
+
<template_scan translate="title" module="contactlab_template">
|
31 |
+
<title>Template scan</title>
|
32 |
+
<sort_order>55</sort_order>
|
33 |
+
</template_scan>
|
34 |
</children>
|
35 |
</contactlab>
|
36 |
</children>
|
48 |
<sort_order>110</sort_order>
|
49 |
</contactlab_template_cart>
|
50 |
<contactlab_template_wishlist translate="title" module="contactlab_template">
|
51 |
+
<title><![CDATA[Recurring Email — Wishlist Reminder]]></title>
|
52 |
<sort_order>120</sort_order>
|
53 |
</contactlab_template_wishlist>
|
54 |
</children>
|
app/code/community/Contactlab/Template/etc/config.xml
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Template>
|
5 |
-
<version>0.
|
6 |
-
<description>Abandoned
|
7 |
</Contactlab_Template>
|
8 |
</modules>
|
9 |
<global>
|
@@ -90,15 +90,19 @@
|
|
90 |
</contactlab_commons_task_collection_load_old_tasks>
|
91 |
</events>
|
92 |
</global>
|
93 |
-
<
|
94 |
<routers>
|
95 |
<contactlab_template>
|
96 |
-
<use>
|
97 |
<args>
|
98 |
<module>Contactlab_Template</module>
|
99 |
<frontName>contactlab_template</frontName>
|
100 |
</args>
|
101 |
</contactlab_template>
|
|
|
|
|
|
|
|
|
102 |
<adminhtml>
|
103 |
<args>
|
104 |
<modules>
|
@@ -143,36 +147,36 @@
|
|
143 |
<default>
|
144 |
<contactlab_template>
|
145 |
<global>
|
146 |
-
|
147 |
</global>
|
148 |
<queue>
|
149 |
-
|
150 |
<export_remote_path>xmld</export_remote_path>
|
151 |
<contactlab_template_model_task_processnewsletterqueuerunner_interval>10</contactlab_template_model_task_processnewsletterqueuerunner_interval>
|
152 |
<contactlab_template_model_task_processnewsletterqueuerunner_retries>3</contactlab_template_model_task_processnewsletterqueuerunner_retries>
|
153 |
<contactlab_template_model_task_checknewsletterqueuerunner_interval>2</contactlab_template_model_task_checknewsletterqueuerunner_interval>
|
154 |
-
<contactlab_template_model_task_checknewsletterqueuerunner_retries>30</contactlab_template_model_task_checknewsletterqueuerunner_retries
|
155 |
</queue>
|
156 |
<generic>
|
157 |
-
|
158 |
</generic>
|
159 |
<wishlist>
|
160 |
-
|
161 |
<send_to_not_subscribed>0</send_to_not_subscribed>
|
162 |
<min_minutes_from_last_update>120</min_minutes_from_last_update>
|
163 |
<min_value>5</min_value>
|
164 |
<max_value></max_value>
|
165 |
<min_products>1</min_products>
|
166 |
-
<and_or>AND</and_or
|
167 |
</wishlist>
|
168 |
<cart>
|
169 |
-
|
170 |
<send_to_not_subscribed>0</send_to_not_subscribed>
|
171 |
<min_minutes_from_last_update>120</min_minutes_from_last_update>
|
172 |
<min_value>5</min_value>
|
173 |
<max_value></max_value>
|
174 |
<min_products>1</min_products>
|
175 |
-
<and_or>AND</and_or
|
176 |
</cart>
|
177 |
</contactlab_template>
|
178 |
</default>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Template>
|
5 |
+
<version>0.9.1</version>
|
6 |
+
<description>Abandoned Cart, Wishlist Reminder and generic emails sent using ContactLab XML Delivery.</description>
|
7 |
</Contactlab_Template>
|
8 |
</modules>
|
9 |
<global>
|
90 |
</contactlab_commons_task_collection_load_old_tasks>
|
91 |
</events>
|
92 |
</global>
|
93 |
+
<frontend>
|
94 |
<routers>
|
95 |
<contactlab_template>
|
96 |
+
<use>default</use>
|
97 |
<args>
|
98 |
<module>Contactlab_Template</module>
|
99 |
<frontName>contactlab_template</frontName>
|
100 |
</args>
|
101 |
</contactlab_template>
|
102 |
+
</routers>
|
103 |
+
</frontend>
|
104 |
+
<admin>
|
105 |
+
<routers>
|
106 |
<adminhtml>
|
107 |
<args>
|
108 |
<modules>
|
147 |
<default>
|
148 |
<contactlab_template>
|
149 |
<global>
|
150 |
+
<!--enabled>0</enabled-->
|
151 |
</global>
|
152 |
<queue>
|
153 |
+
<!--delivery_method>manual</delivery_method>
|
154 |
<export_remote_path>xmld</export_remote_path>
|
155 |
<contactlab_template_model_task_processnewsletterqueuerunner_interval>10</contactlab_template_model_task_processnewsletterqueuerunner_interval>
|
156 |
<contactlab_template_model_task_processnewsletterqueuerunner_retries>3</contactlab_template_model_task_processnewsletterqueuerunner_retries>
|
157 |
<contactlab_template_model_task_checknewsletterqueuerunner_interval>2</contactlab_template_model_task_checknewsletterqueuerunner_interval>
|
158 |
+
<contactlab_template_model_task_checknewsletterqueuerunner_retries>30</contactlab_template_model_task_checknewsletterqueuerunner_retries-->
|
159 |
</queue>
|
160 |
<generic>
|
161 |
+
<!--send_to_not_subscribed>0</send_to_not_subscribed-->
|
162 |
</generic>
|
163 |
<wishlist>
|
164 |
+
<!--enabled>0</enabled>
|
165 |
<send_to_not_subscribed>0</send_to_not_subscribed>
|
166 |
<min_minutes_from_last_update>120</min_minutes_from_last_update>
|
167 |
<min_value>5</min_value>
|
168 |
<max_value></max_value>
|
169 |
<min_products>1</min_products>
|
170 |
+
<and_or>AND</and_or-->
|
171 |
</wishlist>
|
172 |
<cart>
|
173 |
+
<!--enabled>0</enabled>
|
174 |
<send_to_not_subscribed>0</send_to_not_subscribed>
|
175 |
<min_minutes_from_last_update>120</min_minutes_from_last_update>
|
176 |
<min_value>5</min_value>
|
177 |
<max_value></max_value>
|
178 |
<min_products>1</min_products>
|
179 |
+
<and_or>AND</and_or-->
|
180 |
</cart>
|
181 |
</contactlab_template>
|
182 |
</default>
|
app/code/community/Contactlab/Template/etc/system.xml
CHANGED
@@ -20,7 +20,7 @@
|
|
20 |
<expanded>0</expanded>
|
21 |
<fields>
|
22 |
<enabled translate="label">
|
23 |
-
<label>Enable
|
24 |
<frontend_type>select</frontend_type>
|
25 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
26 |
<sort_order>10</sort_order>
|
@@ -35,7 +35,7 @@
|
|
35 |
<show_in_default>1</show_in_default>
|
36 |
<show_in_website>1</show_in_website>
|
37 |
<show_in_store>1</show_in_store>
|
38 |
-
<comment>
|
39 |
</test_recipients>
|
40 |
</fields>
|
41 |
</global>
|
@@ -58,7 +58,7 @@
|
|
58 |
<show_in_store>1</show_in_store>
|
59 |
</enabled>
|
60 |
<send_to_not_subscribed translate="label">
|
61 |
-
<label>Send generic campaign to
|
62 |
<frontend_type>select</frontend_type>
|
63 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
64 |
<sort_order>20</sort_order>
|
@@ -128,17 +128,17 @@
|
|
128 |
|
129 |
|
130 |
<queue translate="label">
|
131 |
-
<label>XML Delivery
|
132 |
<frontend_type>text</frontend_type>
|
133 |
<sort_order>70</sort_order>
|
134 |
<show_in_default>1</show_in_default>
|
135 |
<show_in_website>1</show_in_website>
|
136 |
<show_in_store>1</show_in_store>
|
137 |
<expanded>0</expanded>
|
138 |
-
<comment><![CDATA[All values are specified in <strong>minutes</strong>.]]></comment>
|
139 |
<fields>
|
140 |
<contactlab_template_model_task_processnewsletterqueuerunner_interval translate="label">
|
141 |
-
<label>Interval between
|
142 |
<frontend_type>text</frontend_type>
|
143 |
<sort_order>200</sort_order>
|
144 |
<show_in_default>1</show_in_default>
|
@@ -146,7 +146,7 @@
|
|
146 |
<show_in_store>1</show_in_store>
|
147 |
</contactlab_template_model_task_processnewsletterqueuerunner_interval>
|
148 |
<contactlab_template_model_task_processnewsletterqueuerunner_retries translate="label">
|
149 |
-
<label>Number of
|
150 |
<frontend_type>text</frontend_type>
|
151 |
<sort_order>210</sort_order>
|
152 |
<show_in_default>1</show_in_default>
|
@@ -209,7 +209,7 @@
|
|
209 |
<config_path>contactlab_template/cart/enabled</config_path>
|
210 |
</enabled>
|
211 |
<send_to_not_subscribed translate="label">
|
212 |
-
<label>Send
|
213 |
<frontend_type>select</frontend_type>
|
214 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
215 |
<sort_order>20</sort_order>
|
@@ -219,7 +219,7 @@
|
|
219 |
<config_path>contactlab_template/cart/send_to_not_subscribed</config_path>
|
220 |
</send_to_not_subscribed>
|
221 |
<min_minutes_from_last_update translate="label">
|
222 |
-
<label>Minimum minutes
|
223 |
<frontend_type>text</frontend_type>
|
224 |
<sort_order>30</sort_order>
|
225 |
<show_in_default>1</show_in_default>
|
@@ -229,7 +229,7 @@
|
|
229 |
<config_path>contactlab_template/cart/min_minutes_from_last_update</config_path>
|
230 |
</min_minutes_from_last_update>
|
231 |
<max_minutes_from_last_update translate="label">
|
232 |
-
<label>Maximum minutes
|
233 |
<frontend_type>text</frontend_type>
|
234 |
<sort_order>40</sort_order>
|
235 |
<show_in_default>1</show_in_default>
|
@@ -239,7 +239,7 @@
|
|
239 |
<config_path>contactlab_template/cart/max_minutes_from_last_update</config_path>
|
240 |
</max_minutes_from_last_update>
|
241 |
<min_value translate="label">
|
242 |
-
<label>Cart minimum
|
243 |
<frontend_type>text</frontend_type>
|
244 |
<sort_order>50</sort_order>
|
245 |
<show_in_default>1</show_in_default>
|
@@ -249,7 +249,7 @@
|
|
249 |
<config_path>contactlab_template/cart/min_value</config_path>
|
250 |
</min_value>
|
251 |
<max_value translate="label">
|
252 |
-
<label>Cart maximum
|
253 |
<frontend_type>text</frontend_type>
|
254 |
<sort_order>60</sort_order>
|
255 |
<show_in_default>1</show_in_default>
|
@@ -279,7 +279,7 @@
|
|
279 |
<config_path>contactlab_template/cart/max_products</config_path>
|
280 |
</max_products>
|
281 |
<and_or translate="label">
|
282 |
-
<label>And
|
283 |
<frontend_type>select</frontend_type>
|
284 |
<source_model>contactlab_template/system_config_source_andOr</source_model>
|
285 |
<sort_order>90</sort_order>
|
@@ -295,7 +295,7 @@
|
|
295 |
|
296 |
|
297 |
<contactlab_template_wishlist translate="label" module="contactlab_template">
|
298 |
-
<label><![CDATA[Recurring Email — Wishlist
|
299 |
<tab>contactlab</tab>
|
300 |
<frontend_type>text</frontend_type>
|
301 |
<sort_order>70</sort_order>
|
@@ -304,7 +304,7 @@
|
|
304 |
<show_in_store>1</show_in_store>
|
305 |
<groups>
|
306 |
<wishlist translate="label">
|
307 |
-
<label>Wishlist
|
308 |
<frontend_type>text</frontend_type>
|
309 |
<sort_order>10</sort_order>
|
310 |
<show_in_default>1</show_in_default>
|
@@ -313,7 +313,7 @@
|
|
313 |
<expanded>0</expanded>
|
314 |
<fields>
|
315 |
<enabled translate="label">
|
316 |
-
<label>Enable Wishlist
|
317 |
<frontend_type>select</frontend_type>
|
318 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
319 |
<sort_order>10</sort_order>
|
@@ -323,7 +323,7 @@
|
|
323 |
<config_path>contactlab_template/wishlist/enabled</config_path>
|
324 |
</enabled>
|
325 |
<send_to_not_subscribed translate="label">
|
326 |
-
<label>Send
|
327 |
<frontend_type>select</frontend_type>
|
328 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
329 |
<sort_order>20</sort_order>
|
@@ -333,7 +333,7 @@
|
|
333 |
<config_path>contactlab_template/wishlist/send_to_not_subscribed</config_path>
|
334 |
</send_to_not_subscribed>
|
335 |
<min_minutes_from_last_update translate="label">
|
336 |
-
<label>Minimum minutes
|
337 |
<frontend_type>text</frontend_type>
|
338 |
<sort_order>30</sort_order>
|
339 |
<show_in_default>1</show_in_default>
|
@@ -343,7 +343,7 @@
|
|
343 |
<config_path>contactlab_template/wishlist/min_minutes_from_last_update</config_path>
|
344 |
</min_minutes_from_last_update>
|
345 |
<max_minutes_from_last_update translate="label">
|
346 |
-
<label>Maximum minutes
|
347 |
<frontend_type>text</frontend_type>
|
348 |
<sort_order>40</sort_order>
|
349 |
<show_in_default>1</show_in_default>
|
@@ -353,7 +353,7 @@
|
|
353 |
<config_path>contactlab_template/wishlist/max_minutes_from_last_update</config_path>
|
354 |
</max_minutes_from_last_update>
|
355 |
<min_value translate="label">
|
356 |
-
<label>Wishlist minimum
|
357 |
<frontend_type>text</frontend_type>
|
358 |
<sort_order>50</sort_order>
|
359 |
<show_in_default>1</show_in_default>
|
@@ -363,7 +363,7 @@
|
|
363 |
<config_path>contactlab_template/wishlist/min_value</config_path>
|
364 |
</min_value>
|
365 |
<max_value translate="label">
|
366 |
-
<label>Wishlist maximum
|
367 |
<frontend_type>text</frontend_type>
|
368 |
<sort_order>60</sort_order>
|
369 |
<show_in_default>1</show_in_default>
|
@@ -373,7 +373,7 @@
|
|
373 |
<config_path>contactlab_template/wishlist/max_value</config_path>
|
374 |
</max_value>
|
375 |
<min_products translate="label">
|
376 |
-
<label>
|
377 |
<frontend_type>text</frontend_type>
|
378 |
<sort_order>70</sort_order>
|
379 |
<show_in_default>1</show_in_default>
|
@@ -383,7 +383,7 @@
|
|
383 |
<config_path>contactlab_template/wishlist/min_products</config_path>
|
384 |
</min_products>
|
385 |
<max_products translate="label">
|
386 |
-
<label>
|
387 |
<frontend_type>text</frontend_type>
|
388 |
<sort_order>80</sort_order>
|
389 |
<show_in_default>1</show_in_default>
|
@@ -393,7 +393,7 @@
|
|
393 |
<config_path>contactlab_template/wishlist/max_products</config_path>
|
394 |
</max_products>
|
395 |
<and_or translate="label">
|
396 |
-
<label>And
|
397 |
<frontend_type>select</frontend_type>
|
398 |
<source_model>contactlab_template/system_config_source_andOr</source_model>
|
399 |
<sort_order>90</sort_order>
|
20 |
<expanded>0</expanded>
|
21 |
<fields>
|
22 |
<enabled translate="label">
|
23 |
+
<label>Enable Cron to send from this store</label>
|
24 |
<frontend_type>select</frontend_type>
|
25 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
26 |
<sort_order>10</sort_order>
|
35 |
<show_in_default>1</show_in_default>
|
36 |
<show_in_website>1</show_in_website>
|
37 |
<show_in_store>1</show_in_store>
|
38 |
+
<comment>Use ; as the delimiter to separate recipients.</comment>
|
39 |
</test_recipients>
|
40 |
</fields>
|
41 |
</global>
|
58 |
<show_in_store>1</show_in_store>
|
59 |
</enabled>
|
60 |
<send_to_not_subscribed translate="label">
|
61 |
+
<label>Send generic campaign to non-subscribed customers</label>
|
62 |
<frontend_type>select</frontend_type>
|
63 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
64 |
<sort_order>20</sort_order>
|
128 |
|
129 |
|
130 |
<queue translate="label">
|
131 |
+
<label>XML Delivery queue</label>
|
132 |
<frontend_type>text</frontend_type>
|
133 |
<sort_order>70</sort_order>
|
134 |
<show_in_default>1</show_in_default>
|
135 |
<show_in_website>1</show_in_website>
|
136 |
<show_in_store>1</show_in_store>
|
137 |
<expanded>0</expanded>
|
138 |
+
<comment><![CDATA[All time values are specified in <strong>minutes</strong>.]]></comment>
|
139 |
<fields>
|
140 |
<contactlab_template_model_task_processnewsletterqueuerunner_interval translate="label">
|
141 |
+
<label>Interval between send attempts</label>
|
142 |
<frontend_type>text</frontend_type>
|
143 |
<sort_order>200</sort_order>
|
144 |
<show_in_default>1</show_in_default>
|
146 |
<show_in_store>1</show_in_store>
|
147 |
</contactlab_template_model_task_processnewsletterqueuerunner_interval>
|
148 |
<contactlab_template_model_task_processnewsletterqueuerunner_retries translate="label">
|
149 |
+
<label>Number of send attempts</label>
|
150 |
<frontend_type>text</frontend_type>
|
151 |
<sort_order>210</sort_order>
|
152 |
<show_in_default>1</show_in_default>
|
209 |
<config_path>contactlab_template/cart/enabled</config_path>
|
210 |
</enabled>
|
211 |
<send_to_not_subscribed translate="label">
|
212 |
+
<label>Send Abandoned Cart email to non-subscribed customers</label>
|
213 |
<frontend_type>select</frontend_type>
|
214 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
215 |
<sort_order>20</sort_order>
|
219 |
<config_path>contactlab_template/cart/send_to_not_subscribed</config_path>
|
220 |
</send_to_not_subscribed>
|
221 |
<min_minutes_from_last_update translate="label">
|
222 |
+
<label>Minimum number of minutes before sending an Abandoned Cart email</label>
|
223 |
<frontend_type>text</frontend_type>
|
224 |
<sort_order>30</sort_order>
|
225 |
<show_in_default>1</show_in_default>
|
229 |
<config_path>contactlab_template/cart/min_minutes_from_last_update</config_path>
|
230 |
</min_minutes_from_last_update>
|
231 |
<max_minutes_from_last_update translate="label">
|
232 |
+
<label>Maximum number of minutes before sending an Abandoned Cart email</label>
|
233 |
<frontend_type>text</frontend_type>
|
234 |
<sort_order>40</sort_order>
|
235 |
<show_in_default>1</show_in_default>
|
239 |
<config_path>contactlab_template/cart/max_minutes_from_last_update</config_path>
|
240 |
</max_minutes_from_last_update>
|
241 |
<min_value translate="label">
|
242 |
+
<label>Cart minimum value</label>
|
243 |
<frontend_type>text</frontend_type>
|
244 |
<sort_order>50</sort_order>
|
245 |
<show_in_default>1</show_in_default>
|
249 |
<config_path>contactlab_template/cart/min_value</config_path>
|
250 |
</min_value>
|
251 |
<max_value translate="label">
|
252 |
+
<label>Cart maximum value</label>
|
253 |
<frontend_type>text</frontend_type>
|
254 |
<sort_order>60</sort_order>
|
255 |
<show_in_default>1</show_in_default>
|
279 |
<config_path>contactlab_template/cart/max_products</config_path>
|
280 |
</max_products>
|
281 |
<and_or translate="label">
|
282 |
+
<label>And/or condition values</label>
|
283 |
<frontend_type>select</frontend_type>
|
284 |
<source_model>contactlab_template/system_config_source_andOr</source_model>
|
285 |
<sort_order>90</sort_order>
|
295 |
|
296 |
|
297 |
<contactlab_template_wishlist translate="label" module="contactlab_template">
|
298 |
+
<label><![CDATA[Recurring Email — Wishlist Reminder]]></label>
|
299 |
<tab>contactlab</tab>
|
300 |
<frontend_type>text</frontend_type>
|
301 |
<sort_order>70</sort_order>
|
304 |
<show_in_store>1</show_in_store>
|
305 |
<groups>
|
306 |
<wishlist translate="label">
|
307 |
+
<label>Wishlist Reminder</label>
|
308 |
<frontend_type>text</frontend_type>
|
309 |
<sort_order>10</sort_order>
|
310 |
<show_in_default>1</show_in_default>
|
313 |
<expanded>0</expanded>
|
314 |
<fields>
|
315 |
<enabled translate="label">
|
316 |
+
<label>Enable Wishlist Reminder</label>
|
317 |
<frontend_type>select</frontend_type>
|
318 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
319 |
<sort_order>10</sort_order>
|
323 |
<config_path>contactlab_template/wishlist/enabled</config_path>
|
324 |
</enabled>
|
325 |
<send_to_not_subscribed translate="label">
|
326 |
+
<label>Send Wishlist Reminder email to non-subscribed customers</label>
|
327 |
<frontend_type>select</frontend_type>
|
328 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
329 |
<sort_order>20</sort_order>
|
333 |
<config_path>contactlab_template/wishlist/send_to_not_subscribed</config_path>
|
334 |
</send_to_not_subscribed>
|
335 |
<min_minutes_from_last_update translate="label">
|
336 |
+
<label>Minimum number of minutes before sending a Wishlist Reminder email</label>
|
337 |
<frontend_type>text</frontend_type>
|
338 |
<sort_order>30</sort_order>
|
339 |
<show_in_default>1</show_in_default>
|
343 |
<config_path>contactlab_template/wishlist/min_minutes_from_last_update</config_path>
|
344 |
</min_minutes_from_last_update>
|
345 |
<max_minutes_from_last_update translate="label">
|
346 |
+
<label>Maximum number of minutes before sending a Wishlist Reminder email</label>
|
347 |
<frontend_type>text</frontend_type>
|
348 |
<sort_order>40</sort_order>
|
349 |
<show_in_default>1</show_in_default>
|
353 |
<config_path>contactlab_template/wishlist/max_minutes_from_last_update</config_path>
|
354 |
</max_minutes_from_last_update>
|
355 |
<min_value translate="label">
|
356 |
+
<label>Wishlist minimum value</label>
|
357 |
<frontend_type>text</frontend_type>
|
358 |
<sort_order>50</sort_order>
|
359 |
<show_in_default>1</show_in_default>
|
363 |
<config_path>contactlab_template/wishlist/min_value</config_path>
|
364 |
</min_value>
|
365 |
<max_value translate="label">
|
366 |
+
<label>Wishlist maximum value</label>
|
367 |
<frontend_type>text</frontend_type>
|
368 |
<sort_order>60</sort_order>
|
369 |
<show_in_default>1</show_in_default>
|
373 |
<config_path>contactlab_template/wishlist/max_value</config_path>
|
374 |
</max_value>
|
375 |
<min_products translate="label">
|
376 |
+
<label>Minimum number of items in wishlist</label>
|
377 |
<frontend_type>text</frontend_type>
|
378 |
<sort_order>70</sort_order>
|
379 |
<show_in_default>1</show_in_default>
|
383 |
<config_path>contactlab_template/wishlist/min_products</config_path>
|
384 |
</min_products>
|
385 |
<max_products translate="label">
|
386 |
+
<label>Maximum number of items in wishlist</label>
|
387 |
<frontend_type>text</frontend_type>
|
388 |
<sort_order>80</sort_order>
|
389 |
<show_in_default>1</show_in_default>
|
393 |
<config_path>contactlab_template/wishlist/max_products</config_path>
|
394 |
</max_products>
|
395 |
<and_or translate="label">
|
396 |
+
<label>And/or condition values</label>
|
397 |
<frontend_type>select</frontend_type>
|
398 |
<source_model>contactlab_template/system_config_source_andOr</source_model>
|
399 |
<sort_order>90</sort_order>
|
app/code/community/Contactlab/Template/sql/contactlab_template_setup/old/mysql4-install-0.8.0.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$installer = $this;
|
4 |
-
$installer->startSetup();
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
$installer->run(<<<EOT
|
9 |
-
|
10 |
-
DROP TABLE IF EXISTS `contactlab_template_type_entity`;
|
11 |
-
EOT
|
12 |
-
);
|
13 |
-
|
14 |
-
$installer->run(<<<EOT
|
15 |
-
CREATE TABLE `contactlab_template_type_entity` (
|
16 |
-
`entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Template type Id',
|
17 |
-
`name` varchar(255) NOT NULL COMMENT 'Template type name',
|
18 |
-
`template_type_code` varchar(32) NOT NULL COMMENT 'Code of template type',
|
19 |
-
`is_system` smallint(6) NOT NULL COMMENT 'Is a system defined type',
|
20 |
-
`is_cron_enabled` smallint(6) NOT NULL COMMENT 'Enable for cron execution (default for new templates)',
|
21 |
-
PRIMARY KEY (`entity_id`)
|
22 |
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Template types';
|
23 |
-
EOT
|
24 |
-
);
|
25 |
-
|
26 |
-
$installer->endSetup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Template/sql/contactlab_template_setup/upgrade-0.8.22-0.8.23.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
/* @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
7 |
+
$connection = $installer->getConnection();
|
8 |
+
|
9 |
+
/* @var $table newsletter template table name */
|
10 |
+
$table = $installer->getTable('newsletter/template');
|
11 |
+
|
12 |
+
/** @var $columns array with column name => comment*/
|
13 |
+
$columns = array(
|
14 |
+
'template_text' => 'Template Text',
|
15 |
+
'template_text_preprocessed' => 'Template Text Preprocessed',
|
16 |
+
'template_text_plain' => 'Template Text (txt)',
|
17 |
+
);
|
18 |
+
|
19 |
+
// Alter each column table
|
20 |
+
foreach ($columns as $columnName => $comment) {
|
21 |
+
$connection->modifyColumn($table, $columnName, "mediumtext comment '$comment'");
|
22 |
+
}
|
23 |
+
|
24 |
+
$installer->endSetup();
|
app/code/community/Contactlab/Template/sql/contactlab_template_setup/upgrade-0.8.23-0.8.24.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
/* @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
7 |
+
$connection = $installer->getConnection();
|
8 |
+
|
9 |
+
$tableName = $installer->getTable('newsletter/template');
|
10 |
+
|
11 |
+
$connection->addColumn($tableName, 'store_id', array(
|
12 |
+
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
13 |
+
'unsigned' => true,
|
14 |
+
'nullable' => true,
|
15 |
+
'comment' => 'Store id'
|
16 |
+
));
|
17 |
+
|
18 |
+
$connection->addForeignKey(
|
19 |
+
$installer->getFkName('newsletter/template',
|
20 |
+
'store_id', 'core/store',
|
21 |
+
'store_id'),
|
22 |
+
$tableName, 'store_id',
|
23 |
+
$installer->getTable('core/store'),
|
24 |
+
'store_id',
|
25 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE,
|
26 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE);
|
27 |
+
|
28 |
+
$installer->endSetup();
|
app/code/community/Contactlab/Template/sql/contactlab_template_setup/upgrade-0.9.0-0.9.1.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
/* @var $connection Varien_Db_Adapter_Pdo_Mysql */
|
7 |
+
$connection = $installer->getConnection();
|
8 |
+
|
9 |
+
/* @var $table newsletter template table name */
|
10 |
+
$table = $installer->getTable('newsletter/template');
|
11 |
+
|
12 |
+
/** @var $columns array with column name => comment*/
|
13 |
+
$columns = array(
|
14 |
+
'template_text' => 'Template Text',
|
15 |
+
'template_text_preprocessed' => 'Template Text Preprocessed',
|
16 |
+
'template_text_plain' => 'Template Text (txt)',
|
17 |
+
);
|
18 |
+
|
19 |
+
// Alter each column table
|
20 |
+
foreach ($columns as $columnName => $comment) {
|
21 |
+
$connection->modifyColumn($table, $columnName, "blob comment '$comment'");
|
22 |
+
}
|
23 |
+
|
24 |
+
$installer->endSetup();
|
app/code/community/Contactlab/Transactional/Model/Email/Queue.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Contactlab_Transactional_Model_Email_Queue extends Mage_Core_Model_Email_Queue
|
4 |
+
{
|
5 |
+
public function send() {
|
6 |
+
/** @var $collection Mage_Core_Model_Resource_Email_Queue_Collection */
|
7 |
+
$collection = Mage::getModel('core/email_queue')->getCollection()
|
8 |
+
->addOnlyForSendingFilter()
|
9 |
+
->setPageSize(self::MESSAGES_LIMIT_PER_CRON_RUN)
|
10 |
+
->setCurPage(1)
|
11 |
+
->load();
|
12 |
+
|
13 |
+
|
14 |
+
ini_set('SMTP', Mage::getStoreConfig('system/smtp/host'));
|
15 |
+
ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port'));
|
16 |
+
|
17 |
+
/** @var $message Mage_Core_Model_Email_Queue */
|
18 |
+
foreach ($collection as $message) {
|
19 |
+
if ($message->getId()) {
|
20 |
+
$parameters = new Varien_Object($message->getMessageParameters());
|
21 |
+
if ($parameters->getReturnPathEmail() !== null) {
|
22 |
+
$mailTransport = new Zend_Mail_Transport_Sendmail("-f" . $parameters->getReturnPathEmail());
|
23 |
+
Zend_Mail::setDefaultTransport($mailTransport);
|
24 |
+
}
|
25 |
+
|
26 |
+
// SMART RELAY
|
27 |
+
if ($this->_isEnabled()) {
|
28 |
+
$mailer = Mage::getModel('contactlab_transactional/zend_mail', 'utf-8');
|
29 |
+
} else {
|
30 |
+
$mailer = new Zend_Mail('utf-8');
|
31 |
+
}
|
32 |
+
|
33 |
+
foreach ($message->getRecipients() as $recipient) {
|
34 |
+
list($email, $name, $type) = $recipient;
|
35 |
+
switch ($type) {
|
36 |
+
case self::EMAIL_TYPE_BCC:
|
37 |
+
$mailer->addBcc($email, '=?utf-8?B?' . base64_encode($name) . '?=');
|
38 |
+
break;
|
39 |
+
case self::EMAIL_TYPE_TO:
|
40 |
+
case self::EMAIL_TYPE_CC:
|
41 |
+
default:
|
42 |
+
$mailer->addTo($email, '=?utf-8?B?' . base64_encode($name) . '?=');
|
43 |
+
break;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
if ($parameters->getIsPlain()) {
|
48 |
+
$mailer->setBodyText($message->getMessageBody());
|
49 |
+
} else {
|
50 |
+
$mailer->setBodyHTML($message->getMessageBody());
|
51 |
+
}
|
52 |
+
|
53 |
+
$mailer->setSubject('=?utf-8?B?' . base64_encode($parameters->getSubject()) . '?=');
|
54 |
+
$mailer->setFrom($parameters->getFromEmail(), $parameters->getFromName());
|
55 |
+
if ($parameters->getReplyTo() !== null) {
|
56 |
+
$mailer->setReplyTo($parameters->getReplyTo());
|
57 |
+
}
|
58 |
+
if ($parameters->getReturnTo() !== null) {
|
59 |
+
$mailer->setReturnPath($parameters->getReturnTo());
|
60 |
+
}
|
61 |
+
|
62 |
+
try {
|
63 |
+
$mailer->send();
|
64 |
+
unset($mailer);
|
65 |
+
$message->setProcessedAt(Varien_Date::formatDate(true));
|
66 |
+
$message->save();
|
67 |
+
}
|
68 |
+
catch (Exception $e) {
|
69 |
+
unset($mailer);
|
70 |
+
$oldDevMode = Mage::getIsDeveloperMode();
|
71 |
+
Mage::setIsDeveloperMode(true);
|
72 |
+
Mage::logException($e);
|
73 |
+
Mage::setIsDeveloperMode($oldDevMode);
|
74 |
+
|
75 |
+
return false;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
return $this;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Is sending with Smart Realy abled?
|
85 |
+
*/
|
86 |
+
private function _isEnabled() {
|
87 |
+
return Mage::getStoreConfigFlag("contactlab_transactional/global/enabled");
|
88 |
+
}
|
89 |
+
}
|
app/code/community/Contactlab/Transactional/Model/Email/Template.php
CHANGED
@@ -3,29 +3,29 @@
|
|
3 |
/**
|
4 |
* Transactional email data helper.
|
5 |
*/
|
6 |
-
class Contactlab_Transactional_Model_Email_Template extends Mage_Core_Model_Email_Template
|
|
|
7 |
/**
|
8 |
* Retrieve mail object instance
|
9 |
* @return Contactlab_Transactional_Model_Zend_Mail
|
10 |
*/
|
11 |
-
public function getMail()
|
12 |
-
{
|
13 |
if (is_null($this->_mail)) {
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
}
|
20 |
return $this->_mail;
|
21 |
}
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
|
30 |
/**
|
31 |
* Load default email template from locale translate
|
@@ -33,8 +33,7 @@ class Contactlab_Transactional_Model_Email_Template extends Mage_Core_Model_Emai
|
|
33 |
* @param string $templateId
|
34 |
* @param string $locale
|
35 |
*/
|
36 |
-
public function loadDefault($templateId, $locale=null)
|
37 |
-
{
|
38 |
$rv = parent::loadDefault($templateId, $locale);
|
39 |
if ($this->_isEnabled()) {
|
40 |
$code = $this->_getHtmlFileName($templateId);
|
@@ -62,8 +61,7 @@ class Contactlab_Transactional_Model_Email_Template extends Mage_Core_Model_Emai
|
|
62 |
* @param integer $id
|
63 |
* @return Mage_Core_Model_Abstract
|
64 |
*/
|
65 |
-
public function load($id, $field=null)
|
66 |
-
{
|
67 |
$rv = parent::load($id, $field);
|
68 |
if ($this->_isEnabled()) {
|
69 |
$code = $this->getTemplateId();
|
@@ -71,7 +69,7 @@ class Contactlab_Transactional_Model_Email_Template extends Mage_Core_Model_Emai
|
|
71 |
$code = $this->_getHtmlFileName($id);
|
72 |
} else if ($this->hasTemplateCode()) {
|
73 |
$code = $this->getTemplateCode();
|
74 |
-
}
|
75 |
$this->getMail()->setTemplateCode($code);
|
76 |
$this->getMail()->setTemplateId($this->getTemplateType());
|
77 |
}
|
3 |
/**
|
4 |
* Transactional email data helper.
|
5 |
*/
|
6 |
+
class Contactlab_Transactional_Model_Email_Template extends Mage_Core_Model_Email_Template
|
7 |
+
{
|
8 |
/**
|
9 |
* Retrieve mail object instance
|
10 |
* @return Contactlab_Transactional_Model_Zend_Mail
|
11 |
*/
|
12 |
+
public function getMail() {
|
|
|
13 |
if (is_null($this->_mail)) {
|
14 |
+
if ($this->_isEnabled()) {
|
15 |
+
$this->_mail = Mage::getModel('contactlab_transactional/zend_mail', 'utf-8');
|
16 |
+
} else {
|
17 |
+
$this->_mail = new Zend_Mail('utf-8');
|
18 |
+
}
|
19 |
}
|
20 |
return $this->_mail;
|
21 |
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Is sending with Smart Realy abled?
|
25 |
+
*/
|
26 |
+
private function _isEnabled() {
|
27 |
+
return Mage::getStoreConfigFlag("contactlab_transactional/global/enabled");
|
28 |
+
}
|
29 |
|
30 |
/**
|
31 |
* Load default email template from locale translate
|
33 |
* @param string $templateId
|
34 |
* @param string $locale
|
35 |
*/
|
36 |
+
public function loadDefault($templateId, $locale = null) {
|
|
|
37 |
$rv = parent::loadDefault($templateId, $locale);
|
38 |
if ($this->_isEnabled()) {
|
39 |
$code = $this->_getHtmlFileName($templateId);
|
61 |
* @param integer $id
|
62 |
* @return Mage_Core_Model_Abstract
|
63 |
*/
|
64 |
+
public function load($id, $field = null) {
|
|
|
65 |
$rv = parent::load($id, $field);
|
66 |
if ($this->_isEnabled()) {
|
67 |
$code = $this->getTemplateId();
|
69 |
$code = $this->_getHtmlFileName($id);
|
70 |
} else if ($this->hasTemplateCode()) {
|
71 |
$code = $this->getTemplateCode();
|
72 |
+
}
|
73 |
$this->getMail()->setTemplateCode($code);
|
74 |
$this->getMail()->setTemplateId($this->getTemplateType());
|
75 |
}
|
app/code/community/Contactlab/Transactional/Model/Zend/Mail.php
CHANGED
@@ -3,24 +3,23 @@
|
|
3 |
/**
|
4 |
* Transactional email data helper.
|
5 |
*/
|
6 |
-
class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail
|
7 |
-
|
|
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
|
13 |
private $_templateCode = "";
|
14 |
private $_templateId = "";
|
15 |
|
16 |
-
|
17 |
* Public constructor
|
18 |
*
|
19 |
* @param string $charset
|
20 |
-
* @return void
|
21 |
*/
|
22 |
-
public function __construct($charset = null)
|
23 |
-
{
|
24 |
parent::__construct($charset);
|
25 |
}
|
26 |
|
@@ -29,15 +28,15 @@ class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail {
|
|
29 |
* set DefaultTransport or the internal mail function if no
|
30 |
* default transport had been set.
|
31 |
*
|
32 |
-
* @param
|
33 |
-
* @return Zend_Mail
|
|
|
34 |
*/
|
35 |
-
public function reallySend(Contactlab_Commons_Model_Task $task)
|
36 |
-
{
|
37 |
$transport = new Zend_Mail_Transport_Smtp(
|
38 |
-
$task->getConfig("contactlab_transactional/global/smtp"));
|
39 |
-
|
40 |
-
|
41 |
|
42 |
/**
|
43 |
* Sends this email using the given transport or a previously
|
@@ -47,25 +46,23 @@ class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail {
|
|
47 |
* @param Zend_Mail_Transport_Abstract $transport
|
48 |
* @return Zend_Mail Provides fluent interface
|
49 |
*/
|
50 |
-
public function send($transport = null)
|
51 |
-
|
52 |
-
$this->_addCustomHeaders();
|
53 |
// TODO always store id 0?
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
|
58 |
/**
|
59 |
* Adds Bcc recipient, $email can be an array, or a single string address
|
60 |
*
|
61 |
-
* @param string|array
|
62 |
* @return Zend_Mail Provides fluent interface
|
63 |
*/
|
64 |
-
public function addBcc($email)
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
}
|
69 |
|
70 |
/**
|
71 |
* Adds To-header and recipient, $email can be an array, or a single string address
|
@@ -74,10 +71,9 @@ class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail {
|
|
74 |
* @param string $name
|
75 |
* @return Zend_Mail Provides fluent interface
|
76 |
*/
|
77 |
-
public function reallyAddTo($email, $name='')
|
78 |
-
|
79 |
-
|
80 |
-
}
|
81 |
|
82 |
/**
|
83 |
* Adds To-header and recipient, $email can be an array, or a single string address
|
@@ -86,79 +82,80 @@ class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail {
|
|
86 |
* @param string $name
|
87 |
* @return Zend_Mail Provides fluent interface
|
88 |
*/
|
89 |
-
public function addTo($email, $name='')
|
90 |
-
|
91 |
-
|
92 |
-
}
|
93 |
|
94 |
/**
|
95 |
* Adds Bcc recipient, $email can be an array, or a single string address
|
96 |
*
|
97 |
-
* @param string|array
|
98 |
* @return Zend_Mail Provides fluent interface
|
99 |
*/
|
100 |
-
public function addCc($email, $name='')
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
*
|
109 |
* @return Zend_Mail Provides fluent interface
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
* @return Zend_Mail Provides fluent interface
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
* @return Zend_Mail Provides fluent interface
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
Mage::getModel("contactlab_commons/task")
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
|
|
|
|
|
|
162 |
|
163 |
private function _crc16($string) {
|
164 |
$crc = 0xFFFF;
|
@@ -175,19 +172,19 @@ class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail {
|
|
175 |
return $crc;
|
176 |
}
|
177 |
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
//$this->addHeader("X-Clab-SmartRelay-External", $this->_templateId);
|
184 |
//$this->addHeader("X-Clab-SmartRelay-ExternalDesc", $this->_templateCode);
|
185 |
|
186 |
-
$this->addHeader("X-Clab-SmartRelay-DeliveryId",
|
187 |
$this->addHeader("X-Clab-SmartRelay-DeliveryLabel", $this->_templateCode);
|
188 |
// Mage::log("Template code is: ". $this->_templateCode, null, null, true);
|
189 |
-
|
190 |
-
|
191 |
public function setTemplateCode($value) {
|
192 |
$this->_templateCode = $value;
|
193 |
}
|
3 |
/**
|
4 |
* Transactional email data helper.
|
5 |
*/
|
6 |
+
class Contactlab_Transactional_Model_Zend_Mail extends Zend_Mail
|
7 |
+
{
|
8 |
+
public $enqueue = true;
|
9 |
|
10 |
+
private $_bccTmp = array();
|
11 |
+
private $_ccTmp = array();
|
12 |
+
private $_toTmp = array();
|
13 |
|
14 |
private $_templateCode = "";
|
15 |
private $_templateId = "";
|
16 |
|
17 |
+
/**
|
18 |
* Public constructor
|
19 |
*
|
20 |
* @param string $charset
|
|
|
21 |
*/
|
22 |
+
public function __construct($charset = null) {
|
|
|
23 |
parent::__construct($charset);
|
24 |
}
|
25 |
|
28 |
* set DefaultTransport or the internal mail function if no
|
29 |
* default transport had been set.
|
30 |
*
|
31 |
+
* @param Contactlab_Commons_Model_Task $task
|
32 |
+
* @return Zend_Mail Provides fluent interface
|
33 |
+
* @internal param Zend_Mail_Transport_Abstract $transport
|
34 |
*/
|
35 |
+
public function reallySend(Contactlab_Commons_Model_Task $task) {
|
|
|
36 |
$transport = new Zend_Mail_Transport_Smtp(
|
37 |
+
$task->getConfig("contactlab_transactional/global/smtp"));
|
38 |
+
parent::send($transport);
|
39 |
+
}
|
40 |
|
41 |
/**
|
42 |
* Sends this email using the given transport or a previously
|
46 |
* @param Zend_Mail_Transport_Abstract $transport
|
47 |
* @return Zend_Mail Provides fluent interface
|
48 |
*/
|
49 |
+
public function send($transport = null) {
|
50 |
+
$this->_addCustomHeaders();
|
|
|
51 |
// TODO always store id 0?
|
52 |
+
$this->_queueCcAndBcc(Mage::app()->getStore()->getStoreId());
|
53 |
+
return $this;
|
54 |
+
}
|
55 |
|
56 |
/**
|
57 |
* Adds Bcc recipient, $email can be an array, or a single string address
|
58 |
*
|
59 |
+
* @param string|array $email
|
60 |
* @return Zend_Mail Provides fluent interface
|
61 |
*/
|
62 |
+
public function addBcc($email) {
|
63 |
+
$this->_bccTmp[] = $email;
|
64 |
+
return $this;
|
65 |
+
}
|
|
|
66 |
|
67 |
/**
|
68 |
* Adds To-header and recipient, $email can be an array, or a single string address
|
71 |
* @param string $name
|
72 |
* @return Zend_Mail Provides fluent interface
|
73 |
*/
|
74 |
+
public function reallyAddTo($email, $name = '') {
|
75 |
+
parent::addTo($email, $name);
|
76 |
+
}
|
|
|
77 |
|
78 |
/**
|
79 |
* Adds To-header and recipient, $email can be an array, or a single string address
|
82 |
* @param string $name
|
83 |
* @return Zend_Mail Provides fluent interface
|
84 |
*/
|
85 |
+
public function addTo($email, $name = '') {
|
86 |
+
$this->_toTmp[] = array('email' => $email, 'name' => $name);
|
87 |
+
}
|
|
|
88 |
|
89 |
/**
|
90 |
* Adds Bcc recipient, $email can be an array, or a single string address
|
91 |
*
|
92 |
+
* @param string|array $email
|
93 |
* @return Zend_Mail Provides fluent interface
|
94 |
*/
|
95 |
+
public function addCc($email, $name = '') {
|
96 |
+
$this->_ccTmp[] = array('email' => $email, 'name' => $name);
|
97 |
+
return $this;
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Queue Cc and Bcc recipients emails.
|
102 |
+
*
|
|
|
103 |
* @return Zend_Mail Provides fluent interface
|
104 |
+
*/
|
105 |
+
protected function _queueCcAndBcc($storeId) {
|
106 |
+
// Copy to local variables
|
107 |
+
$to = $this->_toTmp;
|
108 |
+
$cc = $this->_ccTmp;
|
109 |
+
$bcc = $this->_bccTmp;
|
110 |
+
|
111 |
+
// Empty variables
|
112 |
+
$this->_toTmp = array();
|
113 |
+
$this->_ccTmp = array();
|
114 |
+
$this->_bccTmp = array();
|
115 |
+
|
116 |
+
$this->_queueArray($to, $storeId);
|
117 |
+
$this->_queueArray($cc, $storeId);
|
118 |
+
$this->_queueArray($bcc, $storeId);
|
119 |
+
|
120 |
+
return $this;
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Queue array of emails.
|
125 |
+
*
|
126 |
* @return Zend_Mail Provides fluent interface
|
127 |
+
*/
|
128 |
+
protected function _queueArray(array &$emails, $storeId) {
|
129 |
+
foreach ($emails as $email) {
|
130 |
+
$this->_queueEmail($email, $storeId);
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Queue array of emails.
|
136 |
+
*
|
137 |
* @return Zend_Mail Provides fluent interface
|
138 |
+
*/
|
139 |
+
protected function _queueEmail($email, $storeId) {
|
140 |
+
$newMail = clone $this;
|
141 |
+
if (is_array($email)) {
|
142 |
+
$newMail->reallyAddTo($email['email'], $email['name']);
|
143 |
+
$emailDescription = $email['email'];
|
144 |
+
} else {
|
145 |
+
$newMail->reallyAddTo($email);
|
146 |
+
$emailDescription = $email;
|
147 |
+
}
|
148 |
+
$task = Mage::getModel("contactlab_commons/task")
|
149 |
+
->setStoreId($storeId)
|
150 |
+
->setTaskCode("Transactional email to $emailDescription")
|
151 |
+
->setModelName('contactlab_transactional/task_sendEmailRunner')
|
152 |
+
->setDescription("Send transactional email to $emailDescription")
|
153 |
+
->setTaskData(serialize($newMail))
|
154 |
+
->save();
|
155 |
+
if (Mage::getStoreConfigFlag('contactlab_transactional/global/runtask')) {
|
156 |
+
$task->runTask()->save();
|
157 |
+
}
|
158 |
+
}
|
159 |
|
160 |
private function _crc16($string) {
|
161 |
$crc = 0xFFFF;
|
172 |
return $crc;
|
173 |
}
|
174 |
|
175 |
+
/**
|
176 |
+
* Adds Contactlab Custom Headers
|
177 |
+
*/
|
178 |
+
protected function _addCustomHeaders() {
|
179 |
+
// FIXME ExternalDesc is not into the mail..
|
180 |
//$this->addHeader("X-Clab-SmartRelay-External", $this->_templateId);
|
181 |
//$this->addHeader("X-Clab-SmartRelay-ExternalDesc", $this->_templateCode);
|
182 |
|
183 |
+
$this->addHeader("X-Clab-SmartRelay-DeliveryId", sprintf("%u", $this->_crc16($this->_templateCode)));
|
184 |
$this->addHeader("X-Clab-SmartRelay-DeliveryLabel", $this->_templateCode);
|
185 |
// Mage::log("Template code is: ". $this->_templateCode, null, null, true);
|
186 |
+
}
|
187 |
+
|
188 |
public function setTemplateCode($value) {
|
189 |
$this->_templateCode = $value;
|
190 |
}
|
app/code/community/Contactlab/Transactional/docs/release-notes/0.8.2.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<ul>
|
2 |
-
<li><del>
|
3 |
-
<li><del>
|
4 |
</ul>
|
1 |
<ul>
|
2 |
+
<li><del>Betweenen</del> <strong>label</strong> fixed to <q>Between</q></li>
|
3 |
+
<li><del>Attempts</del> <strong>label</strong> fixed to <q>Attempts</q></li>
|
4 |
</ul>
|
app/code/community/Contactlab/Transactional/docs/release-notes/0.8.3.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li>Removed default values from <code>config.xml</code>.</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Transactional/docs/release-notes/0.8.31.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>FIX</strong>: <code>Magento 1.9</code> cron based email will be sent via Contactlab.</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Transactional/docs/release-notes/0.9.0.html
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<ul>
|
2 |
+
<li><strong>Feature</strong>: transactional communications may now be immediately delivered (you may control this from the configuration section)</li>
|
3 |
+
</ul>
|
app/code/community/Contactlab/Transactional/etc/config.xml
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Transactional>
|
5 |
-
<version>0.
|
6 |
-
<description>Magento transactional
|
7 |
</Contactlab_Transactional>
|
8 |
</modules>
|
9 |
<global>
|
@@ -19,6 +19,7 @@
|
|
19 |
<core>
|
20 |
<rewrite>
|
21 |
<email_template>Contactlab_Transactional_Model_Email_Template</email_template>
|
|
|
22 |
</rewrite>
|
23 |
</core>
|
24 |
</models>
|
@@ -37,11 +38,11 @@
|
|
37 |
<default>
|
38 |
<contactlab_transactional>
|
39 |
<global>
|
40 |
-
|
41 |
</global>
|
42 |
<queue>
|
43 |
-
|
44 |
-
<contactlab_transactional_model_task_sendemailrunner_retries>10</contactlab_transactional_model_task_sendemailrunner_retries
|
45 |
</queue>
|
46 |
</contactlab_transactional>
|
47 |
</default>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Contactlab_Transactional>
|
5 |
+
<version>0.9.0</version>
|
6 |
+
<description>Magento transactional emails sent using ContactLab Smart Relay.</description>
|
7 |
</Contactlab_Transactional>
|
8 |
</modules>
|
9 |
<global>
|
19 |
<core>
|
20 |
<rewrite>
|
21 |
<email_template>Contactlab_Transactional_Model_Email_Template</email_template>
|
22 |
+
<email_queue>Contactlab_Transactional_Model_Email_Queue</email_queue>
|
23 |
</rewrite>
|
24 |
</core>
|
25 |
</models>
|
38 |
<default>
|
39 |
<contactlab_transactional>
|
40 |
<global>
|
41 |
+
<!--enabled>0</enabled-->
|
42 |
</global>
|
43 |
<queue>
|
44 |
+
<!--contactlab_transactional_model_task_sendemailrunner_interval>1</contactlab_transactional_model_task_sendemailrunner_interval>
|
45 |
+
<contactlab_transactional_model_task_sendemailrunner_retries>10</contactlab_transactional_model_task_sendemailrunner_retries-->
|
46 |
</queue>
|
47 |
</contactlab_transactional>
|
48 |
</default>
|
app/code/community/Contactlab/Transactional/etc/system.xml
CHANGED
@@ -27,7 +27,7 @@
|
|
27 |
<show_in_default>1</show_in_default>
|
28 |
<show_in_website>0</show_in_website>
|
29 |
<show_in_store>0</show_in_store>
|
30 |
-
<comment>Enable or disable
|
31 |
</enabled>
|
32 |
<smtp translate="label">
|
33 |
<label>SMTP Server</label>
|
@@ -37,6 +37,15 @@
|
|
37 |
<show_in_website>1</show_in_website>
|
38 |
<show_in_store>1</show_in_store>
|
39 |
</smtp>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
</fields>
|
41 |
</global>
|
42 |
<queue translate="label">
|
@@ -47,6 +56,7 @@
|
|
47 |
<show_in_website>1</show_in_website>
|
48 |
<show_in_store>1</show_in_store>
|
49 |
<expanded>0</expanded>
|
|
|
50 |
<fields>
|
51 |
<contactlab_transactional_model_task_sendemailrunner_interval translate="label">
|
52 |
<label>Interval between email send attempts</label>
|
@@ -57,7 +67,7 @@
|
|
57 |
<show_in_store>1</show_in_store>
|
58 |
</contactlab_transactional_model_task_sendemailrunner_interval>
|
59 |
<contactlab_transactional_model_task_sendemailrunner_retries translate="label">
|
60 |
-
<label>
|
61 |
<frontend_type>text</frontend_type>
|
62 |
<sort_order>120</sort_order>
|
63 |
<show_in_default>1</show_in_default>
|
27 |
<show_in_default>1</show_in_default>
|
28 |
<show_in_website>0</show_in_website>
|
29 |
<show_in_store>0</show_in_store>
|
30 |
+
<comment>Enable or disable ContactLab Transactional emails module.</comment>
|
31 |
</enabled>
|
32 |
<smtp translate="label">
|
33 |
<label>SMTP Server</label>
|
37 |
<show_in_website>1</show_in_website>
|
38 |
<show_in_store>1</show_in_store>
|
39 |
</smtp>
|
40 |
+
<runtask translate="label">
|
41 |
+
<label>Run task immediately after the insertion.</label>
|
42 |
+
<frontend_type>select</frontend_type>
|
43 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
44 |
+
<sort_order>30</sort_order>
|
45 |
+
<show_in_default>1</show_in_default>
|
46 |
+
<show_in_website>1</show_in_website>
|
47 |
+
<show_in_store>1</show_in_store>
|
48 |
+
</runtask>
|
49 |
</fields>
|
50 |
</global>
|
51 |
<queue translate="label">
|
56 |
<show_in_website>1</show_in_website>
|
57 |
<show_in_store>1</show_in_store>
|
58 |
<expanded>0</expanded>
|
59 |
+
<comment><![CDATA[All time values are specified in <strong>minutes</strong>.]]></comment>
|
60 |
<fields>
|
61 |
<contactlab_transactional_model_task_sendemailrunner_interval translate="label">
|
62 |
<label>Interval between email send attempts</label>
|
67 |
<show_in_store>1</show_in_store>
|
68 |
</contactlab_transactional_model_task_sendemailrunner_interval>
|
69 |
<contactlab_transactional_model_task_sendemailrunner_retries translate="label">
|
70 |
+
<label>Number of email send attempts</label>
|
71 |
<frontend_type>text</frontend_type>
|
72 |
<sort_order>120</sort_order>
|
73 |
<show_in_default>1</show_in_default>
|
app/design/adminhtml/default/default/layout/contactlab/commons.xml
CHANGED
@@ -1,56 +1,56 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout version="0.1.0">
|
3 |
-
<
|
4 |
-
<reference name="content">
|
5 |
-
<block type="contactlab_commons/adminhtml_logs" name="contactlab.commons.log" />
|
6 |
-
</reference>
|
7 |
-
</
|
8 |
-
<
|
9 |
-
<reference name="content">
|
10 |
-
<block type="contactlab_commons/adminhtml_logs_grid" name="contactlab.commons.logs.grid" output="toHtml"/>
|
11 |
-
</reference>
|
12 |
-
</
|
13 |
-
<
|
14 |
-
<reference name="content">
|
15 |
-
<block type="contactlab_commons/adminhtml_tasks" name="contactlab.commons.tasks" as="tasks" />
|
16 |
-
<block type="contactlab_commons/adminhtml_tasks_js" name="contactlab.commons.tasks.js" as="tasks.js" />
|
17 |
-
<block type="contactlab_commons/adminhtml_tasks_status" name="contactlab.commons.tasks.status" as="tasks.status" />
|
18 |
-
<block type="contactlab_commons/adminhtml_version" name="contactlab.commons.version" as="version" after="-" />
|
19 |
-
</reference>
|
20 |
-
<reference name="head">
|
21 |
-
<action method="addJs"><file>contactlab_commons/adminhtml/tasks.js</file></action>
|
22 |
-
</reference>
|
23 |
-
</
|
24 |
-
<
|
25 |
-
<reference name="content">
|
26 |
-
<block type="contactlab_commons/adminhtml_tasks_grid" name="contactlab.commons.tasks.grid" output="toHtml"/>
|
27 |
-
</reference>
|
28 |
-
</
|
29 |
-
<
|
30 |
-
<reference name="content">
|
31 |
-
<block type="contactlab_commons/adminhtml_events" name="contactlab.commons.events" />
|
32 |
-
</reference>
|
33 |
-
</
|
34 |
-
<
|
35 |
-
<reference name="content">
|
36 |
-
<block type="contactlab_commons/adminhtml_events_grid" name="contactlab.commons.events.grid" output="toHtml"/>
|
37 |
-
</reference>
|
38 |
-
</
|
39 |
-
<
|
40 |
-
<reference name="content">
|
41 |
-
<block type="contactlab_commons/adminhtml_test" name="contactlab.commons.test" />
|
42 |
-
</reference>
|
43 |
-
</
|
44 |
-
<
|
45 |
-
<reference name="content">
|
46 |
-
<block type="contactlab_commons/adminhtml_releaseNotes" name="contactlab_commons_adminhtml_releasenotes"
|
47 |
-
template="contactlab/commons/releasenotes.phtml"/>
|
48 |
-
</reference>
|
49 |
-
</
|
50 |
-
<
|
51 |
-
<reference name="content">
|
52 |
-
<block type="contactlab_commons/adminhtml_configurationCheck" name="contactlab_commons_adminhtml_configurationcheck"
|
53 |
-
template="contactlab/commons/configurationcheck.phtml"/>
|
54 |
-
</reference>
|
55 |
-
</
|
56 |
-
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<adminhtml_contactlab_commons_logs_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="contactlab_commons/adminhtml_logs" name="contactlab.commons.log" />
|
6 |
+
</reference>
|
7 |
+
</adminhtml_contactlab_commons_logs_index>
|
8 |
+
<adminhtml_contactlab_commons_logs_grid>
|
9 |
+
<reference name="content">
|
10 |
+
<block type="contactlab_commons/adminhtml_logs_grid" name="contactlab.commons.logs.grid" output="toHtml"/>
|
11 |
+
</reference>
|
12 |
+
</adminhtml_contactlab_commons_logs_grid>
|
13 |
+
<adminhtml_contactlab_commons_tasks_index>
|
14 |
+
<reference name="content">
|
15 |
+
<block type="contactlab_commons/adminhtml_tasks" name="contactlab.commons.tasks" as="tasks" />
|
16 |
+
<block type="contactlab_commons/adminhtml_tasks_js" name="contactlab.commons.tasks.js" as="tasks.js" />
|
17 |
+
<block type="contactlab_commons/adminhtml_tasks_status" name="contactlab.commons.tasks.status" as="tasks.status" />
|
18 |
+
<block type="contactlab_commons/adminhtml_version" name="contactlab.commons.version" as="version" after="-" />
|
19 |
+
</reference>
|
20 |
+
<reference name="head">
|
21 |
+
<action method="addJs"><file>contactlab_commons/adminhtml/tasks.js</file></action>
|
22 |
+
</reference>
|
23 |
+
</adminhtml_contactlab_commons_tasks_index>
|
24 |
+
<adminhtml_contactlab_commons_tasks_grid>
|
25 |
+
<reference name="content">
|
26 |
+
<block type="contactlab_commons/adminhtml_tasks_grid" name="contactlab.commons.tasks.grid" output="toHtml"/>
|
27 |
+
</reference>
|
28 |
+
</adminhtml_contactlab_commons_tasks_grid>
|
29 |
+
<adminhtml_contactlab_commons_events_index>
|
30 |
+
<reference name="content">
|
31 |
+
<block type="contactlab_commons/adminhtml_events" name="contactlab.commons.events" />
|
32 |
+
</reference>
|
33 |
+
</adminhtml_contactlab_commons_events_index>
|
34 |
+
<adminhtml_contactlab_commons_events_grid>
|
35 |
+
<reference name="content">
|
36 |
+
<block type="contactlab_commons/adminhtml_events_grid" name="contactlab.commons.events.grid" output="toHtml"/>
|
37 |
+
</reference>
|
38 |
+
</adminhtml_contactlab_commons_events_grid>
|
39 |
+
<adminhtml_contactlab_commons_test_index>
|
40 |
+
<reference name="content">
|
41 |
+
<block type="contactlab_commons/adminhtml_test" name="contactlab.commons.test" />
|
42 |
+
</reference>
|
43 |
+
</adminhtml_contactlab_commons_test_index>
|
44 |
+
<adminhtml_contactlab_commons_releasenotes_index>
|
45 |
+
<reference name="content">
|
46 |
+
<block type="contactlab_commons/adminhtml_releaseNotes" name="contactlab_commons_adminhtml_releasenotes"
|
47 |
+
template="contactlab/commons/releasenotes.phtml"/>
|
48 |
+
</reference>
|
49 |
+
</adminhtml_contactlab_commons_releasenotes_index>
|
50 |
+
<adminhtml_contactlab_commons_configurationcheck_index>
|
51 |
+
<reference name="content">
|
52 |
+
<block type="contactlab_commons/adminhtml_configurationCheck" name="contactlab_commons_adminhtml_configurationcheck"
|
53 |
+
template="contactlab/commons/configurationcheck.phtml"/>
|
54 |
+
</reference>
|
55 |
+
</adminhtml_contactlab_commons_configurationcheck_index>
|
56 |
+
</layout>
|
app/design/adminhtml/default/default/layout/contactlab/subscribers.xml
CHANGED
@@ -1,86 +1,81 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout version="0.1.0">
|
3 |
-
<
|
4 |
-
<reference name="content">
|
5 |
-
<block type="
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
<action method="
|
17 |
-
<
|
18 |
-
</action>
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
<
|
27 |
-
</action>
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
</block>
|
83 |
-
</block>
|
84 |
-
</reference>
|
85 |
-
</contactlab_commons_adminhtml_tasks_index>
|
86 |
-
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<adminhtml_contactlab_commons_tasks_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="adminhtml/template" name="contactlab.commons.uk" before="contactlab.commons.version"
|
6 |
+
template="contactlab/subscribers/uk.phtml">
|
7 |
+
<block type="contactlab_commons/adminhtml_widget_button" name="contactlab.commons.uk.check" as="contactlab.commons.uk.check">
|
8 |
+
<action method="setLabel" translate="label">
|
9 |
+
<label>Check unique Keys</label>
|
10 |
+
</action>
|
11 |
+
<action method="setUrl">
|
12 |
+
<url>adminhtml/contactlab_subscribers_uk/update</url>
|
13 |
+
</action>
|
14 |
+
</block>
|
15 |
+
<block type="contactlab_commons/adminhtml_widget_button" name="contactlab.commons.uk.update" as="contactlab.commons.uk.update">
|
16 |
+
<action method="setLabel" translate="label">
|
17 |
+
<label>Update unique Keys</label>
|
18 |
+
</action>
|
19 |
+
<action method="setUrl">
|
20 |
+
<url>adminhtml/contactlab_subscribers_uk/update</url>
|
21 |
+
<params><![CDATA[doit=yes]]></params>
|
22 |
+
</action>
|
23 |
+
</block>
|
24 |
+
<block type="contactlab_commons/adminhtml_widget_button" name="contactlab.commons.uk.truncate" as="contactlab.commons.uk.truncate">
|
25 |
+
<action method="setLabel" translate="label">
|
26 |
+
<label>Truncate unique Keys</label>
|
27 |
+
</action>
|
28 |
+
<action method="setUrl">
|
29 |
+
<url>adminhtml/contactlab_subscribers_uk/truncate</url>
|
30 |
+
</action>
|
31 |
+
<action method="setConfirm" translate="confirm">
|
32 |
+
<confirm>Are you sure to truncate the UK table?</confirm>
|
33 |
+
</action>
|
34 |
+
</block>
|
35 |
+
</block>
|
36 |
+
|
37 |
+
<block type="adminhtml/template" name="contactlab.commons.subscribers" before="contactlab.commons.uk"
|
38 |
+
template="contactlab/subscribers/subscribers.phtml">
|
39 |
+
<block type="contactlab_commons/adminhtml_widget_button"
|
40 |
+
name="contactlab.commons.subscribe.export"
|
41 |
+
as="contactlab.commons.subscribe.export">
|
42 |
+
<action method="setLabel" translate="label">
|
43 |
+
<label>Queue Subscribers export job</label>
|
44 |
+
</action>
|
45 |
+
<action method="setUrl">
|
46 |
+
<url>adminhtml/contactlab_subscribers_export/queue</url>
|
47 |
+
</action>
|
48 |
+
<action method="setConfirm" translate="confirm">
|
49 |
+
<confirm>Are you sure you want to do this?</confirm>
|
50 |
+
</action>
|
51 |
+
</block>
|
52 |
+
<block type="contactlab_commons/adminhtml_widget_button"
|
53 |
+
name="contactlab.commons.subscribe.import"
|
54 |
+
as="contactlab.commons.subscribe.import">
|
55 |
+
<action method="setLabel" translate="label">
|
56 |
+
<label>Queue Subscribers import job</label>
|
57 |
+
</action>
|
58 |
+
<action method="setUrl">
|
59 |
+
<url>adminhtml/contactlab_subscribers_import/queue</url>
|
60 |
+
</action>
|
61 |
+
<action method="setConfirm" translate="confirm">
|
62 |
+
<confirm>Are you sure you want to do this?</confirm>
|
63 |
+
</action>
|
64 |
+
</block>
|
65 |
+
<block type="contactlab_commons/adminhtml_widget_button"
|
66 |
+
name="contactlab.commons.subscribe.stats"
|
67 |
+
as="contactlab.commons.subscribe.stats">
|
68 |
+
<action method="setLabel" translate="label">
|
69 |
+
<label>Fill statistics</label>
|
70 |
+
</action>
|
71 |
+
<action method="setUrl">
|
72 |
+
<url>adminhtml/contactlab_subscribers_stats/fill</url>
|
73 |
+
</action>
|
74 |
+
<action method="setConfirm" translate="confirm">
|
75 |
+
<confirm>Are you sure you want to do this?</confirm>
|
76 |
+
</action>
|
77 |
+
</block>
|
78 |
+
</block>
|
79 |
+
</reference>
|
80 |
+
</adminhtml_contactlab_commons_tasks_index>
|
81 |
+
</layout>
|
|
|
|
|
|
|
|
|
|
app/design/adminhtml/default/default/layout/contactlab/template.xml
CHANGED
@@ -1,50 +1,64 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout version="0.1.0">
|
3 |
-
<
|
4 |
-
<reference name="content">
|
5 |
-
<block type="contactlab_template/adminhtml_type" name="contactlab_template_type"
|
6 |
-
</reference>
|
7 |
-
</
|
8 |
-
<
|
9 |
-
<reference name="content">
|
10 |
-
<block type="contactlab_template/adminhtml_type_grid" name="contactlab_template_type_grid" output="toHtml"/>
|
11 |
-
</reference>
|
12 |
-
</
|
13 |
-
<
|
14 |
-
<update handle="editor"/>
|
15 |
-
<reference name="content">
|
16 |
-
<block type="contactlab_template/adminhtml_type_edit" name="contactlab_template_edit"
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
<block type="contactlab_template/
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<adminhtml_contactlab_template_types_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="contactlab_template/adminhtml_type" name="contactlab_template_type"/>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_contactlab_template_types_index>
|
8 |
+
<adminhtml_contactlab_template_types_grid>
|
9 |
+
<reference name="content">
|
10 |
+
<block type="contactlab_template/adminhtml_type_grid" name="contactlab_template_type_grid" output="toHtml"/>
|
11 |
+
</reference>
|
12 |
+
</adminhtml_contactlab_template_types_grid>
|
13 |
+
<adminhtml_contactlab_template_types_edit>
|
14 |
+
<update handle="editor"/>
|
15 |
+
<reference name="content">
|
16 |
+
<block type="contactlab_template/adminhtml_type_edit" name="contactlab_template_edit"
|
17 |
+
template="contactlab/template/type/edit.phtml"/>
|
18 |
+
</reference>
|
19 |
+
</adminhtml_contactlab_template_types_edit>
|
20 |
+
<adminhtml_contactlab_template_edit>
|
21 |
+
<reference name="content">
|
22 |
+
<block type="contactlab_template/adminhtml_newsletter_template_edit_js" name="template_edit_js"
|
23 |
+
template="contactlab/template/edit/js.phtml" after="-"/>
|
24 |
+
<block type="core/template"
|
25 |
+
name="template_edit_validation" template="contactlab/template/edit/validation.phtml" after="-"/>
|
26 |
+
</reference>
|
27 |
+
</adminhtml_contactlab_template_edit>
|
28 |
+
<adminhtml_system_config_edit>
|
29 |
+
<reference name="content">
|
30 |
+
<block type="core/template" name="adminhtml_system_config_edit_validation_min_max"
|
31 |
+
template="contactlab/template/edit/validation.phtml" after="-"/>
|
32 |
+
</reference>
|
33 |
+
</adminhtml_system_config_edit>
|
34 |
+
<adminhtml_contactlab_commons_tasks_index>
|
35 |
+
<reference name="content">
|
36 |
+
<block type="adminhtml/template" name="contactlab.template" after="contactlab.commons.uk"
|
37 |
+
template="contactlab/template/tasks/buttons.phtml">
|
38 |
+
<block type="contactlab_template/adminhtml_widget_button_queue"
|
39 |
+
name="contactlab.template.queue"
|
40 |
+
as="contactlab.template.queue">
|
41 |
+
<action method="setLabel" translate="label">
|
42 |
+
<label>Scan templates</label>
|
43 |
+
</action>
|
44 |
+
<action method="setUrl">
|
45 |
+
<url>adminhtml/contactlab_template/scan</url>
|
46 |
+
</action>
|
47 |
+
</block>
|
48 |
+
<block type="adminhtml/template"
|
49 |
+
name="contactlab.template.email"
|
50 |
+
template="contactlab/template/tasks/debugemail.phtml"/>
|
51 |
+
</block>
|
52 |
+
</reference>
|
53 |
+
</adminhtml_contactlab_commons_tasks_index>
|
54 |
+
<adminhtml_contactlab_template_tasks_list>
|
55 |
+
<reference name="content">
|
56 |
+
<block type="contactlab_template/adminhtml_newsletter_template_tasks_list" name="contactlab_template_adminhtml_newsletter_template_tasks_list"/>
|
57 |
+
</reference>
|
58 |
+
</adminhtml_contactlab_template_tasks_list>
|
59 |
+
<adminhtml_contactlab_template_tasks_detail>
|
60 |
+
<reference name="content">
|
61 |
+
<block type="contactlab_template/adminhtml_newsletter_template_tasks_detail" name="contactlab_template_adminhtml_newsletter_template_tasks_detail"/>
|
62 |
+
</reference>
|
63 |
+
</adminhtml_contactlab_template_tasks_detail>
|
64 |
+
</layout>
|
app/design/adminhtml/default/default/template/contactlab/commons/configurationcheck.phtml
CHANGED
@@ -1,14 +1,33 @@
|
|
1 |
-
<div class="content-header">
|
2 |
-
<h1 class="<?php echo $this->getHeaderHtmlProperty() ?>"><?php echo $this->getHeaderHtml() ?></h1>
|
3 |
-
</div>
|
4 |
-
|
5 |
-
|
6 |
-
<?php
|
7 |
-
<
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="content-header">
|
2 |
+
<h1 class="<?php echo $this->getHeaderHtmlProperty() ?>"><?php echo $this->getHeaderHtml() ?></h1>
|
3 |
+
</div>
|
4 |
+
<div class="box-left">
|
5 |
+
<?php /** @var $check Contactlab_Subscribers_Model_Checks_CheckInterface */ ?>
|
6 |
+
<?php foreach ($this->getSubscribersChecks() as $check): ?>
|
7 |
+
<h3 <?php echo $check->getExitCode() === Contactlab_Subscribers_Model_Checks_CheckInterface::ERROR ? 'class="error"' : '' ?>><?php echo $check->getDescription(); ?></h3>
|
8 |
+
<ul class="messages">
|
9 |
+
<?php foreach ($check->getErrors() as $error): ?>
|
10 |
+
<li class="error-msg"><?php echo $error ?></li>
|
11 |
+
<?php endforeach; ?>
|
12 |
+
</ul>
|
13 |
+
<ul class="messages">
|
14 |
+
<?php foreach ($check->getSuccess() as $success): ?>
|
15 |
+
<li class="success-msg"><?php echo $success ?></li>
|
16 |
+
<?php endforeach; ?>
|
17 |
+
</ul>
|
18 |
+
<?php endforeach; ?>
|
19 |
+
</div>
|
20 |
+
<div class="box-right">
|
21 |
+
<h2><?php echo $this->__('Crontab scheduled tasks') ?></h2>
|
22 |
+
<?php foreach ($this->getCronConfiguration() as $item): ?>
|
23 |
+
<h3><?php echo $item->getModule() ?> - <?php echo $item->getName() ?></h3>
|
24 |
+
<?php if ($item->hasDescription()): ?>
|
25 |
+
<p><em><?php echo $item->getDescription() ?></em></p>
|
26 |
+
<?php endif; ?>
|
27 |
+
<?php if ($item->getSchedule()): ?>
|
28 |
+
<p>Scheduled: <code><?php echo $item->getSchedule() ?></code></p>
|
29 |
+
<?php else: ?>
|
30 |
+
<p> Scheduled: <code class="error">Never</code></p>
|
31 |
+
<?php endif; ?>
|
32 |
+
<?php endforeach; ?>
|
33 |
+
</div>
|
app/design/adminhtml/default/default/template/contactlab/commons/releasenotes.phtml
CHANGED
@@ -1,33 +1,33 @@
|
|
1 |
-
<style type="text/css">
|
2 |
-
.rn-content {
|
3 |
-
margin-bottom: 30px;
|
4 |
-
}
|
5 |
-
.rn-content q {
|
6 |
-
font-weight: bold;
|
7 |
-
}
|
8 |
-
.rn-content q {
|
9 |
-
quotes: "“" "”" "‘" "’";
|
10 |
-
}
|
11 |
-
.rn-content q:before {
|
12 |
-
content: open-quote;
|
13 |
-
}
|
14 |
-
.rn-content q:after {
|
15 |
-
content: close-quote;
|
16 |
-
}
|
17 |
-
.rn-content ul, .rn-content ol {
|
18 |
-
list-style-type: inherit;
|
19 |
-
list-style: inherit;
|
20 |
-
padding-left: 40px;
|
21 |
-
}
|
22 |
-
</style>
|
23 |
-
<div class="content-header">
|
24 |
-
<h3 class="<?php echo $this->getHeaderHtmlProperty() ?>"><?php echo $this->getHeaderHtml() ?></h3>
|
25 |
-
</div>
|
26 |
-
<h3><?php echo $this->__('Installed version: %s', $this->getPlatformVersion()); ?></h3>
|
27 |
-
<?php foreach ($this->getReleaseNotes() as $releaseNotes): ?>
|
28 |
-
<h2><?php echo $releaseNotes->getTitle() ?></h2>
|
29 |
-
<p><em><?php echo $releaseNotes->getDescription() ?></em></p>
|
30 |
-
<div class="rn-content">
|
31 |
-
<?php echo $releaseNotes->getText() ?>
|
32 |
-
</div>
|
33 |
-
<?php endforeach; ?>
|
1 |
+
<style type="text/css">
|
2 |
+
.rn-content {
|
3 |
+
margin-bottom: 30px;
|
4 |
+
}
|
5 |
+
.rn-content q {
|
6 |
+
font-weight: bold;
|
7 |
+
}
|
8 |
+
.rn-content q {
|
9 |
+
quotes: "“" "”" "‘" "’";
|
10 |
+
}
|
11 |
+
.rn-content q:before {
|
12 |
+
content: open-quote;
|
13 |
+
}
|
14 |
+
.rn-content q:after {
|
15 |
+
content: close-quote;
|
16 |
+
}
|
17 |
+
.rn-content ul, .rn-content ol {
|
18 |
+
list-style-type: inherit;
|
19 |
+
list-style: inherit;
|
20 |
+
padding-left: 40px;
|
21 |
+
}
|
22 |
+
</style>
|
23 |
+
<div class="content-header">
|
24 |
+
<h3 class="<?php echo $this->getHeaderHtmlProperty() ?>"><?php echo $this->getHeaderHtml() ?></h3>
|
25 |
+
</div>
|
26 |
+
<h3><?php echo $this->__('Installed version: %s', $this->getPlatformVersion()); ?></h3>
|
27 |
+
<?php foreach ($this->getReleaseNotes() as $releaseNotes): ?>
|
28 |
+
<h2><?php echo $releaseNotes->getTitle() ?></h2>
|
29 |
+
<p><em><?php echo $releaseNotes->getDescription() ?></em></p>
|
30 |
+
<div class="rn-content">
|
31 |
+
<?php echo $releaseNotes->getText() ?>
|
32 |
+
</div>
|
33 |
+
<?php endforeach; ?>
|
app/design/adminhtml/default/default/template/contactlab/commons/send_mail.phtml
CHANGED
@@ -1,33 +1,33 @@
|
|
1 |
-
<?php $h = Mage::helper('contactlab_commons'); ?>
|
2 |
-
<table cellpadding="0" cellspacing="0" border="0" style="font-family: arial; font-size: 12px; color: #666666; border-left: 1px solid #999999; border-top: 1px solid #999999">
|
3 |
-
<tr>
|
4 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task code'); ?></td>
|
5 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Created
|
6 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Planned
|
7 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Description'); ?></td>
|
8 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task data'); ?></td>
|
9 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Number of retries'); ?></td>
|
10 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Max retries'); ?></td>
|
11 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Retries interval'); ?></td>
|
12 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task status'); ?></td>
|
13 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Created
|
14 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Description'); ?></td>
|
15 |
-
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task status'); ?></td>
|
16 |
-
</tr>
|
17 |
-
<?php
|
18 |
-
foreach ($this->getErrorTasks() as $item) {
|
19 |
-
$row = $item->getData();
|
20 |
-
$cell = '';
|
21 |
-
foreach ($row as $key => $value) {
|
22 |
-
if ($key == 'task_event_id') {
|
23 |
-
continue;
|
24 |
-
}
|
25 |
-
if (preg_match('/....\-..\-../', $value)) {
|
26 |
-
$row[$key] = date('d/m/Y H:i:s', strtotime($value));
|
27 |
-
}
|
28 |
-
$cell .= '<td valign="top" style="padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999">'.(empty($row[$key]) ? ' ' : $row[$key]).'</td>';
|
29 |
-
}
|
30 |
-
print '<tr>' . $cell . '</tr>';
|
31 |
-
}
|
32 |
-
?>
|
33 |
-
</table>
|
1 |
+
<?php $h = Mage::helper('contactlab_commons'); ?>
|
2 |
+
<table cellpadding="0" cellspacing="0" border="0" style="font-family: arial; font-size: 12px; color: #666666; border-left: 1px solid #999999; border-top: 1px solid #999999">
|
3 |
+
<tr>
|
4 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task code'); ?></td>
|
5 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Created'); ?></td>
|
6 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Planned'); ?></td>
|
7 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Description'); ?></td>
|
8 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task data'); ?></td>
|
9 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Number of retries'); ?></td>
|
10 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Max retries'); ?></td>
|
11 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Retries interval'); ?></td>
|
12 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task status'); ?></td>
|
13 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Created'); ?></td>
|
14 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Description'); ?></td>
|
15 |
+
<td valign="top" style="background-color: #dddddd; padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999; font-weight: bold"><?php print $h->__('Task status'); ?></td>
|
16 |
+
</tr>
|
17 |
+
<?php
|
18 |
+
foreach ($this->getErrorTasks() as $item) {
|
19 |
+
$row = $item->getData();
|
20 |
+
$cell = '';
|
21 |
+
foreach ($row as $key => $value) {
|
22 |
+
if ($key == 'task_event_id') {
|
23 |
+
continue;
|
24 |
+
}
|
25 |
+
if (preg_match('/....\-..\-../', $value)) {
|
26 |
+
$row[$key] = date('d/m/Y H:i:s', strtotime($value));
|
27 |
+
}
|
28 |
+
$cell .= '<td valign="top" style="padding: 3px 10px 3px 10px; border-right: 1px solid #999999; border-bottom: 1px solid #999999">'.(empty($row[$key]) ? ' ' : $row[$key]).'</td>';
|
29 |
+
}
|
30 |
+
print '<tr>' . $cell . '</tr>';
|
31 |
+
}
|
32 |
+
?>
|
33 |
+
</table>
|
app/design/adminhtml/default/default/template/contactlab/commons/tasks/js.phtml
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<script type="text/javascript">
|
2 |
-
contactLabTaskUpdateManager = new ContactLabTaskUpdateManager();
|
3 |
-
contactLabTaskUpdateManager.setUrls({"getStatus": "<?php echo $this->getStatusUrl() ?>"});
|
4 |
-
</script>
|
1 |
+
<script type="text/javascript">
|
2 |
+
contactLabTaskUpdateManager = new ContactLabTaskUpdateManager();
|
3 |
+
contactLabTaskUpdateManager.setUrls({"getStatus": "<?php echo $this->getStatusUrl() ?>"});
|
4 |
+
</script>
|
app/design/adminhtml/default/default/template/contactlab/commons/tasks/status.phtml
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
<script type="text/javascript">
|
2 |
-
contactLabTaskUpdateManager.setRequestStatusUrl("<?php echo $this->getRequestStatus() ?>");
|
3 |
-
</script>
|
1 |
+
<script type="text/javascript">
|
2 |
+
contactLabTaskUpdateManager.setRequestStatusUrl("<?php echo $this->getRequestStatus() ?>");
|
3 |
+
</script>
|
app/design/adminhtml/default/default/template/contactlab/commons/test.phtml
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<div class="content-header">
|
2 |
-
<?php echo $this->getHeaderHtml() ?>
|
3 |
-
<p class="content-buttons form-buttons"><?php echo $this->getButtonsHtml() ?></p>
|
4 |
-
</div>
|
5 |
-
|
6 |
<?php echo $this->getChildHtml() ?>
|
1 |
+
<div class="content-header">
|
2 |
+
<?php echo $this->getHeaderHtml() ?>
|
3 |
+
<p class="content-buttons form-buttons"><?php echo $this->getButtonsHtml() ?></p>
|
4 |
+
</div>
|
5 |
+
|
6 |
<?php echo $this->getChildHtml() ?>
|
app/design/adminhtml/default/default/template/contactlab/commons/version.phtml
CHANGED
@@ -1,26 +1,26 @@
|
|
1 |
-
<?php /* @var $this Contactlab_Commons_Block_Adminhtml_Version */ ?>
|
2 |
-
<?php if ($this->doPrintVersion()): ?>
|
3 |
-
<div class="grid" style="padding-top: 50px; clear: both">
|
4 |
-
<div class="hor-scroll">
|
5 |
-
<h3><?php echo $this->__('Installed version: %s', $this->getPlatformVersion()); ?></h3>
|
6 |
-
<table class="data" cellspacing="0" style="width: 40%">
|
7 |
-
<thead>
|
8 |
-
<tr class="headings">
|
9 |
-
<th><?php echo $this->__('Plugin') ?></th>
|
10 |
-
<th><?php echo $this->__('Description') ?></th>
|
11 |
-
<th><?php echo $this->__('Version') ?></th>
|
12 |
-
</tr>
|
13 |
-
</thead>
|
14 |
-
<tbody>
|
15 |
-
<?php foreach ($this->getModulesVersion() as $module): ?>
|
16 |
-
<tr class="<?php echo $module->getClass() ?>">
|
17 |
-
<td><strong><?php echo $module->getName() ?></strong></td>
|
18 |
-
<td><?php echo $module->getDescription() ?></td>
|
19 |
-
<td class="a-right"><code><?php echo $module->getVersion() ?></code></td>
|
20 |
-
</tr>
|
21 |
-
<?php endforeach; ?>
|
22 |
-
</tbody>
|
23 |
-
</table>
|
24 |
-
</div>
|
25 |
-
</div>
|
26 |
-
<?php endif; ?>
|
1 |
+
<?php /* @var $this Contactlab_Commons_Block_Adminhtml_Version */ ?>
|
2 |
+
<?php if ($this->doPrintVersion()): ?>
|
3 |
+
<div class="grid" style="padding-top: 50px; clear: both">
|
4 |
+
<div class="hor-scroll">
|
5 |
+
<h3><?php echo $this->__('Installed version: %s', $this->getPlatformVersion()); ?></h3>
|
6 |
+
<table class="data" cellspacing="0" style="width: 40%">
|
7 |
+
<thead>
|
8 |
+
<tr class="headings">
|
9 |
+
<th><?php echo $this->__('Plugin') ?></th>
|
10 |
+
<th><?php echo $this->__('Description') ?></th>
|
11 |
+
<th><?php echo $this->__('Version') ?></th>
|
12 |
+
</tr>
|
13 |
+
</thead>
|
14 |
+
<tbody>
|
15 |
+
<?php foreach ($this->getModulesVersion() as $module): ?>
|
16 |
+
<tr class="<?php echo $module->getClass() ?>">
|
17 |
+
<td><strong><?php echo $module->getName() ?></strong></td>
|
18 |
+
<td><?php echo $module->getDescription() ?></td>
|
19 |
+
<td class="a-right"><code><?php echo $module->getVersion() ?></code></td>
|
20 |
+
</tr>
|
21 |
+
<?php endforeach; ?>
|
22 |
+
</tbody>
|
23 |
+
</table>
|
24 |
+
</div>
|
25 |
+
</div>
|
26 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/contactlab/subscribers/export.phtml
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<div class="content-header">
|
2 |
-
<?php echo $this->getHeaderHtml() ?>
|
3 |
-
<p class="content-buttons form-buttons"><?php echo $this->getButtonsHtml() ?></p>
|
4 |
-
</div>
|
5 |
-
|
6 |
<?php echo $this->getChildHtml() ?>
|
1 |
+
<div class="content-header">
|
2 |
+
<?php echo $this->getHeaderHtml() ?>
|
3 |
+
<p class="content-buttons form-buttons"><?php echo $this->getButtonsHtml() ?></p>
|
4 |
+
</div>
|
5 |
+
|
6 |
<?php echo $this->getChildHtml() ?>
|
app/design/adminhtml/default/default/template/contactlab/subscribers/subscribers.phtml
CHANGED
@@ -1,26 +1,29 @@
|
|
1 |
-
<div class="grid box-left" style="margin-top: 50px">
|
2 |
-
<div class="hor-scroll">
|
3 |
-
<h3 style="margin-top: 30px">Import/export subscribers</h3>
|
4 |
-
<table class="data" cellspacing="0">
|
5 |
-
<thead>
|
6 |
-
<tr class="headings">
|
7 |
-
<th colspan="
|
8 |
-
</tr>
|
9 |
-
</thead>
|
10 |
-
<tbody>
|
11 |
-
<tr class="even">
|
12 |
-
<td><?php echo $this->__('Queue <strong>import subscribers</strong> task') ?></td>
|
13 |
-
<td><?php echo $this->getChildHtml('contactlab.commons.subscribe.import') ?></td>
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
<td><?php echo $this->
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
26 |
</div>
|
1 |
+
<div class="grid box-left" style="margin-top: 50px">
|
2 |
+
<div class="hor-scroll">
|
3 |
+
<h3 style="margin-top: 30px">Import/export subscribers</h3>
|
4 |
+
<table class="data" cellspacing="0">
|
5 |
+
<thead>
|
6 |
+
<tr class="headings">
|
7 |
+
<th colspan="3"><?php echo $this->__('Use this panel to manually queue import, export and statistics reset tasks') ?></th>
|
8 |
+
</tr>
|
9 |
+
</thead>
|
10 |
+
<tbody>
|
11 |
+
<tr class="even">
|
12 |
+
<td><?php echo $this->__('Queue <strong>import subscribers</strong> task') ?></td>
|
13 |
+
<td><?php echo $this->getChildHtml('contactlab.commons.subscribe.import') ?></td>
|
14 |
+
<td><a href="<?php echo $this->getUrl('adminhtml/system_config/edit', array('section' => 'contactlab_subscribers_2')) ?>"><?php echo $this->__('Configure') ?></a></td>
|
15 |
+
</tr>
|
16 |
+
<tr class="even">
|
17 |
+
<td><?php echo $this->__('Queue <strong>export subscribers</strong> task') ?></td>
|
18 |
+
<td><?php echo $this->getChildHtml('contactlab.commons.subscribe.export') ?></td>
|
19 |
+
<td><a href="<?php echo $this->getUrl('adminhtml/system_config/edit', array('section' => 'contactlab_subscribers')) ?>"><?php echo $this->__('Configure') ?></a></td>
|
20 |
+
</tr>
|
21 |
+
<tr class="even">
|
22 |
+
<td><?php echo $this->__('Queue <strong>statistics update</strong> task') ?></td>
|
23 |
+
<td><?php echo $this->getChildHtml('contactlab.commons.subscribe.stats') ?></td>
|
24 |
+
<td><a href="<?php echo $this->getUrl('adminhtml/system_config/edit', array('section' => 'contactlab_subscribers')) ?>"><?php echo $this->__('Configure') ?></a></td>
|
25 |
+
</tr>
|
26 |
+
</tbody>
|
27 |
+
</table>
|
28 |
+
</div>
|
29 |
</div>
|
app/design/adminhtml/default/default/template/contactlab/subscribers/uk.phtml
CHANGED
@@ -1,28 +1,28 @@
|
|
1 |
-
<div class="grid box-right" style="margin-top: 50px">
|
2 |
-
<div class="hor-scroll">
|
3 |
-
<h3 style="margin-top: 30px">
|
4 |
-
<table class="data" cellspacing="0">
|
5 |
-
<thead>
|
6 |
-
<tr class="headings">
|
7 |
-
<th colspan="2"><?php echo $this->__('Use
|
8 |
-
</tr>
|
9 |
-
</thead>
|
10 |
-
<tbody>
|
11 |
-
<tr class="even">
|
12 |
-
<td><?php echo $this->__('Use this
|
13 |
-
<td><?php echo $this->getChildHtml('contactlab.commons.uk.truncate') ?></td>
|
14 |
-
</tr>
|
15 |
-
<tr class="even">
|
16 |
-
<td><?php echo $this->__('Use this
|
17 |
-
<td><?php echo $this->getChildHtml('contactlab.commons.uk.check') ?></td>
|
18 |
-
</tr>
|
19 |
-
<tr>
|
20 |
-
<td><?php echo $this->__('Use this
|
21 |
-
<td><?php echo $this->getChildHtml('contactlab.commons.uk.update') ?></td>
|
22 |
-
</tr>
|
23 |
-
</tbody>
|
24 |
-
</table>
|
25 |
-
<p><em><?php echo $this->__('UK table contains ContactLab Identifiers that are associated with Magento Customers and Newsletter Subscribers') ?>.</em></p>
|
26 |
-
<p><strong><?php echo $this->__('Every reset operation
|
27 |
-
</div>
|
28 |
</div>
|
1 |
+
<div class="grid box-right" style="margin-top: 50px">
|
2 |
+
<div class="hor-scroll">
|
3 |
+
<h3 style="margin-top: 30px">UK table</h3>
|
4 |
+
<table class="data" cellspacing="0">
|
5 |
+
<thead>
|
6 |
+
<tr class="headings">
|
7 |
+
<th colspan="2"><?php echo $this->__('Use this panel to reset, check and update the UK table') ?></th>
|
8 |
+
</tr>
|
9 |
+
</thead>
|
10 |
+
<tbody>
|
11 |
+
<tr class="even">
|
12 |
+
<td><?php echo $this->__('Use this to completely remove all the associated UK records.<br/>After this operation, you need to queue a UK table update task.') ?></td>
|
13 |
+
<td><?php echo $this->getChildHtml('contactlab.commons.uk.truncate') ?></td>
|
14 |
+
</tr>
|
15 |
+
<tr class="even">
|
16 |
+
<td><?php echo $this->__('Use this to check the integrity of the UK table.<br/>If some errors are found, please queue a UK table update task.') ?></td>
|
17 |
+
<td><?php echo $this->getChildHtml('contactlab.commons.uk.check') ?></td>
|
18 |
+
</tr>
|
19 |
+
<tr>
|
20 |
+
<td><?php echo $this->__('Use this to queue a UK table update task.') ?></td>
|
21 |
+
<td><?php echo $this->getChildHtml('contactlab.commons.uk.update') ?></td>
|
22 |
+
</tr>
|
23 |
+
</tbody>
|
24 |
+
</table>
|
25 |
+
<p><em><?php echo $this->__('UK table contains ContactLab Identifiers that are associated with Magento Customers and Newsletter Subscribers') ?>.</em></p>
|
26 |
+
<p><strong><?php echo $this->__('Every reset operation needs to be agreed with ContactLab customer care.') ?></strong></p>
|
27 |
+
</div>
|
28 |
</div>
|
app/design/adminhtml/default/default/template/contactlab/template/edit/js.phtml
CHANGED
@@ -1,172 +1,178 @@
|
|
1 |
-
<script type="text/javascript">
|
2 |
-
var templateTypeOptionsUpdater = (function ($) {
|
3 |
-
var my = {}, that = {};
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|| $('
|
23 |
-
|
24 |
-
$('
|
25 |
-
$('
|
26 |
-
$('
|
27 |
-
$('
|
28 |
-
|
29 |
-
$('
|
30 |
-
$('
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
}
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
my.
|
55 |
-
my.updateDefault('
|
56 |
-
my.updateDefault('
|
57 |
-
my.
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
$('
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
$('customer_filter_fieldset').previous().
|
76 |
-
$('customer_filter_fieldset').
|
77 |
-
$('product_fieldset').previous().
|
78 |
-
$('product_fieldset').
|
79 |
-
}
|
80 |
-
|
81 |
-
$('
|
82 |
-
$('
|
83 |
-
$('
|
84 |
-
|
85 |
-
|
86 |
-
$('cron_date_range_start').up().up().
|
87 |
-
$('cron_date_range_end').up().up().
|
88 |
-
$('queue_delay_time').up().up().
|
89 |
-
$('priority').up().up().
|
90 |
-
}
|
91 |
-
|
92 |
-
$('
|
93 |
-
$('
|
94 |
-
$('
|
95 |
-
|
96 |
-
|
97 |
-
$('
|
98 |
-
$('
|
99 |
-
|
100 |
-
$('
|
101 |
-
$('
|
102 |
-
$('
|
103 |
-
$('
|
104 |
-
|
105 |
-
$('
|
106 |
-
$('
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
$('
|
111 |
-
$('
|
112 |
-
}
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
$('
|
129 |
-
}
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
}
|
140 |
-
|
141 |
-
|
142 |
-
if (
|
143 |
-
my.
|
144 |
-
} else {
|
145 |
-
my.
|
146 |
-
}
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
my.
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
my.
|
164 |
-
my.
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script type="text/javascript">
|
2 |
+
var templateTypeOptionsUpdater = (function ($) {
|
3 |
+
var my = {}, that = {};
|
4 |
+
|
5 |
+
|
6 |
+
my.getTemplateTypeId = function () {
|
7 |
+
return $("template_type_id").getValue() || 'undefined';
|
8 |
+
};
|
9 |
+
|
10 |
+
my.updateTemplateTypeOptions = function () {
|
11 |
+
var options = my.templateTypeOptions[my.getTemplateTypeId()],
|
12 |
+
showFilterProducts = options.visible,
|
13 |
+
isXmlEnabled = $('enable_xml_delivery').getValue() === '1';
|
14 |
+
if ($('is_cron_enabled').getValue() !== (options.useCron ? '1' : '0')) {
|
15 |
+
if (confirm(options.alertCronChange)) {
|
16 |
+
$('is_cron_enabled').setValue(options.useCron ? '1' : '0');
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
if (showFilterProducts && isXmlEnabled
|
21 |
+
&& ($('min_minutes_from_last_update').getValue() !== options.min_minutes_from_last_update
|
22 |
+
|| $('max_minutes_from_last_update').getValue() !== options.max_minutes_from_last_update
|
23 |
+
|| $('min_value').getValue() !== options.min_value
|
24 |
+
|| $('max_value').getValue() !== options.max_value
|
25 |
+
|| $('min_products').getValue() !== options.min_products
|
26 |
+
|| $('max_products').getValue() !== options.max_products
|
27 |
+
|| $('and_or').getValue() !== options.and_or)) {
|
28 |
+
if (confirm(options.alertOptionChange)) {
|
29 |
+
$('min_minutes_from_last_update').setValue(options.min_minutes_from_last_update || '');
|
30 |
+
$('max_minutes_from_last_update').setValue(options.max_minutes_from_last_update || '');
|
31 |
+
$('min_value').setValue(options.min_value || '');
|
32 |
+
$('max_value').setValue(options.max_value || '');
|
33 |
+
$('min_products').setValue(options.min_products || '');
|
34 |
+
$('max_products').setValue(options.max_products || '');
|
35 |
+
$('and_or').setValue(options.and_or);
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
39 |
+
my.recalcVisible();
|
40 |
+
};
|
41 |
+
|
42 |
+
my.updateDefault = function (el, value) {
|
43 |
+
if ($('default-' + el)) {
|
44 |
+
$('default-' + el).remove();
|
45 |
+
}
|
46 |
+
if (value) {
|
47 |
+
$(el).insert({
|
48 |
+
after: new Element('span', {'style': 'margin-left: 20px'})
|
49 |
+
.update("Default value: \"" + value + "\"")});
|
50 |
+
}
|
51 |
+
};
|
52 |
+
|
53 |
+
my.updateTemplateTypeOptionsDefaults = function () {
|
54 |
+
var options = my.templateTypeOptions[my.getTemplateTypeId()];
|
55 |
+
my.updateDefault('min_minutes_from_last_update', options.min_minutes_from_last_update);
|
56 |
+
my.updateDefault('max_minutes_from_last_update', options.max_minutes_from_last_update);
|
57 |
+
my.updateDefault('min_value', options.min_value);
|
58 |
+
my.updateDefault('max_value', options.max_value);
|
59 |
+
my.updateDefault('min_products', options.min_products);
|
60 |
+
my.updateDefault('max_products', options.max_products);
|
61 |
+
my.updateDefault('and_or', options.and_or);
|
62 |
+
my.recalcVisible();
|
63 |
+
};
|
64 |
+
|
65 |
+
my.recalcVisible = function () {
|
66 |
+
var options = my.templateTypeOptions[my.getTemplateTypeId()],
|
67 |
+
showFilterProducts = options.visible,
|
68 |
+
isXmlEnabled = $('enable_xml_delivery').getValue() === '1',
|
69 |
+
isCronEnabled = $('is_cron_enabled').getValue() === '1',
|
70 |
+
mode = $('flg_html_txt').getValue(),
|
71 |
+
isTxtMode = mode === 'T' || mode === 'B',
|
72 |
+
isHtmlMode = mode === 'H' || mode === 'B';
|
73 |
+
|
74 |
+
if (showFilterProducts && isXmlEnabled) {
|
75 |
+
$('customer_filter_fieldset').previous().show();
|
76 |
+
$('customer_filter_fieldset').show();
|
77 |
+
$('product_fieldset').previous().show();
|
78 |
+
$('product_fieldset').show();
|
79 |
+
} else {
|
80 |
+
$('customer_filter_fieldset').previous().hide();
|
81 |
+
$('customer_filter_fieldset').hide();
|
82 |
+
$('product_fieldset').previous().hide();
|
83 |
+
$('product_fieldset').hide();
|
84 |
+
}
|
85 |
+
if (isCronEnabled && isXmlEnabled) {
|
86 |
+
$('cron_date_range_start').up().up().show();
|
87 |
+
$('cron_date_range_end').up().up().show();
|
88 |
+
$('queue_delay_time').up().up().show();
|
89 |
+
$('priority').up().up().show();
|
90 |
+
} else {
|
91 |
+
$('cron_date_range_start').up().up().hide();
|
92 |
+
$('cron_date_range_end').up().up().hide();
|
93 |
+
$('queue_delay_time').up().up().hide();
|
94 |
+
$('priority').up().up().hide();
|
95 |
+
}
|
96 |
+
if (isXmlEnabled) {
|
97 |
+
$('cron_fieldset').previous().show();
|
98 |
+
$('cron_fieldset').show();
|
99 |
+
$('reply_to').up().up().show();
|
100 |
+
$('template_type_id').up().up().show();
|
101 |
+
$('template_text_plain').up().up().show();
|
102 |
+
$('flg_html_txt').up().up().show();
|
103 |
+
$('is_test_mode').up().up().show();
|
104 |
+
} else {
|
105 |
+
$('cron_fieldset').previous().hide();
|
106 |
+
$('cron_fieldset').hide();
|
107 |
+
$('reply_to').up().up().hide();
|
108 |
+
$('template_type_id').up().up().hide();
|
109 |
+
$('template_text_plain').up().up().hide();
|
110 |
+
$('flg_html_txt').up().up().hide();
|
111 |
+
$('is_test_mode').up().up().hide();
|
112 |
+
}
|
113 |
+
|
114 |
+
if (isHtmlMode || !isXmlEnabled) {
|
115 |
+
$('text').up().up().show();
|
116 |
+
$('text').addClassName('required-entry');
|
117 |
+
} else {
|
118 |
+
$('text').up().up().hide();
|
119 |
+
$('text').removeClassName('required-entry');
|
120 |
+
}
|
121 |
+
|
122 |
+
if (isXmlEnabled) {
|
123 |
+
if (isTxtMode) {
|
124 |
+
$('template_text_plain').up().up().show();
|
125 |
+
$('template_text_plain').addClassName('required-entry');
|
126 |
+
} else {
|
127 |
+
$('template_text_plain').up().up().hide();
|
128 |
+
$('template_text_plain').removeClassName('required-entry');
|
129 |
+
}
|
130 |
+
if (isHtmlMode) {
|
131 |
+
$('template_styles').up().up().show();
|
132 |
+
} else {
|
133 |
+
$('template_styles').up().up().hide();
|
134 |
+
}
|
135 |
+
} else {
|
136 |
+
$('template_text_plain').removeClassName('required-entry');
|
137 |
+
$('template_text_plain').up().up().hide();
|
138 |
+
$('template_styles').up().up().hide();
|
139 |
+
}
|
140 |
+
|
141 |
+
|
142 |
+
if (isHtmlMode) {
|
143 |
+
my.onlyHtml.each(function (item) { item.up().up().show(); });
|
144 |
+
} else {
|
145 |
+
my.onlyHtml.each(function (item) { item.up().up().hide(); });
|
146 |
+
}
|
147 |
+
if (isTxtMode) {
|
148 |
+
my.onlyTxt.each(function (item) { item.up().up().show(); });
|
149 |
+
} else {
|
150 |
+
my.onlyTxt.each(function (item) { item.up().up().hide(); });
|
151 |
+
}
|
152 |
+
};
|
153 |
+
|
154 |
+
|
155 |
+
my.init = function () {
|
156 |
+
my.templateTypeOptions = <?php echo $this->getTemplateTypeOptionsJson() ?>;
|
157 |
+
my.templateTypeOptions['undefined'] = {};
|
158 |
+
Event.observe('template_type_id', 'change', my.updateTemplateTypeOptions);
|
159 |
+
Event.observe('is_cron_enabled', 'change', my.recalcVisible);
|
160 |
+
Event.observe('flg_html_txt', 'change', my.recalcVisible);
|
161 |
+
Event.observe('enable_xml_delivery', 'change', my.recalcVisible);
|
162 |
+
|
163 |
+
my.onlyTxt = [];
|
164 |
+
my.onlyHtml = [];
|
165 |
+
[1, 2, 3, 4, 5].each(function (item) {
|
166 |
+
my.onlyHtml.push($('template_pr_html_' + item));
|
167 |
+
my.onlyTxt.push($('template_pr_txt_' + item));
|
168 |
+
});
|
169 |
+
my.recalcVisible();
|
170 |
+
my.updateTemplateTypeOptionsDefaults();
|
171 |
+
};
|
172 |
+
|
173 |
+
my.init();
|
174 |
+
|
175 |
+
return that;
|
176 |
+
}($));
|
177 |
+
|
178 |
+
</script>
|
app/design/adminhtml/default/default/template/contactlab/template/edit/validation.phtml
CHANGED
@@ -1,45 +1,45 @@
|
|
1 |
-
<script type="text/javascript">
|
2 |
-
|
3 |
-
var getOppositeElement = function (elId) {
|
4 |
-
var oppositeId;
|
5 |
-
if (elId.replace(/[_-]/g, ' ').match(/\bmax\b/)) {
|
6 |
-
oppositeId = elId.replace(/max/, 'min');
|
7 |
-
} else if (elId.replace(/[_-]/g, ' ').match(/\bmin\b/)) {
|
8 |
-
oppositeId = elId.replace(/min/, 'max');
|
9 |
-
}
|
10 |
-
return $(oppositeId);
|
11 |
-
};
|
12 |
-
|
13 |
-
// Custom validation
|
14 |
-
Validation.add('validate-is-min-of-range', 'Minor value cannot be greater than maximum value', function (value, minEl) {
|
15 |
-
var minValue = parseNumber(value), maxEl, maxValue;
|
16 |
-
if (isNaN(minValue)) {
|
17 |
-
return true;
|
18 |
-
}
|
19 |
-
maxEl = getOppositeElement(minEl.id);
|
20 |
-
if (!maxEl) {
|
21 |
-
return true;
|
22 |
-
}
|
23 |
-
maxValue = parseNumber(maxEl.value);
|
24 |
-
if (isNaN(maxValue)) {
|
25 |
-
return true;
|
26 |
-
}
|
27 |
-
return maxValue >= minValue;
|
28 |
-
});
|
29 |
-
|
30 |
-
Validation.add('validate-is-max-of-range', 'Maximum value cannot be lower than minimum value', function (value, maxEl) {
|
31 |
-
var maxValue = parseNumber(value), minEl, minValue;
|
32 |
-
if (isNaN(maxValue)) {
|
33 |
-
return true;
|
34 |
-
}
|
35 |
-
minEl = getOppositeElement(maxEl.id);
|
36 |
-
if (!minEl) {
|
37 |
-
return true;
|
38 |
-
}
|
39 |
-
minValue = parseNumber(minEl.value);
|
40 |
-
if (isNaN(minValue)) {
|
41 |
-
return true;
|
42 |
-
}
|
43 |
-
return maxValue >= minValue;
|
44 |
-
});
|
45 |
-
</script>
|
1 |
+
<script type="text/javascript">
|
2 |
+
|
3 |
+
var getOppositeElement = function (elId) {
|
4 |
+
var oppositeId;
|
5 |
+
if (elId.replace(/[_-]/g, ' ').match(/\bmax\b/)) {
|
6 |
+
oppositeId = elId.replace(/max/, 'min');
|
7 |
+
} else if (elId.replace(/[_-]/g, ' ').match(/\bmin\b/)) {
|
8 |
+
oppositeId = elId.replace(/min/, 'max');
|
9 |
+
}
|
10 |
+
return $(oppositeId);
|
11 |
+
};
|
12 |
+
|
13 |
+
// Custom validation
|
14 |
+
Validation.add('validate-is-min-of-range', 'Minor value cannot be greater than maximum value', function (value, minEl) {
|
15 |
+
var minValue = parseNumber(value), maxEl, maxValue;
|
16 |
+
if (isNaN(minValue)) {
|
17 |
+
return true;
|
18 |
+
}
|
19 |
+
maxEl = getOppositeElement(minEl.id);
|
20 |
+
if (!maxEl) {
|
21 |
+
return true;
|
22 |
+
}
|
23 |
+
maxValue = parseNumber(maxEl.value);
|
24 |
+
if (isNaN(maxValue)) {
|
25 |
+
return true;
|
26 |
+
}
|
27 |
+
return maxValue >= minValue;
|
28 |
+
});
|
29 |
+
|
30 |
+
Validation.add('validate-is-max-of-range', 'Maximum value cannot be lower than minimum value', function (value, maxEl) {
|
31 |
+
var maxValue = parseNumber(value), minEl, minValue;
|
32 |
+
if (isNaN(maxValue)) {
|
33 |
+
return true;
|
34 |
+
}
|
35 |
+
minEl = getOppositeElement(maxEl.id);
|
36 |
+
if (!minEl) {
|
37 |
+
return true;
|
38 |
+
}
|
39 |
+
minValue = parseNumber(minEl.value);
|
40 |
+
if (isNaN(minValue)) {
|
41 |
+
return true;
|
42 |
+
}
|
43 |
+
return maxValue >= minValue;
|
44 |
+
});
|
45 |
+
</script>
|
app/design/adminhtml/default/default/template/contactlab/template/tasks/buttons.phtml
CHANGED
@@ -1,13 +1,16 @@
|
|
1 |
-
<div class="grid box-left" style="margin-top: 5px">
|
2 |
-
<div class="hor-scroll">
|
3 |
-
<h3 style="margin-top: 10px">Recurring email</h3>
|
4 |
-
<table style="border-collapse: collapse">
|
5 |
-
<colgroup>
|
6 |
-
<col style="width: 200px"/>
|
7 |
-
<col/>
|
8 |
-
|
9 |
-
|
10 |
-
<tr><?php echo $this->getChildHtml('contactlab.template.
|
11 |
-
|
12 |
-
|
13 |
-
</
|
|
|
|
|
|
1 |
+
<div class="grid box-left" style="margin-top: 5px">
|
2 |
+
<div class="hor-scroll">
|
3 |
+
<h3 style="margin-top: 10px">Recurring email</h3>
|
4 |
+
<table style="border-collapse: collapse">
|
5 |
+
<colgroup>
|
6 |
+
<col style="width: 200px"/>
|
7 |
+
<col/>
|
8 |
+
<col/>
|
9 |
+
</colgroup>
|
10 |
+
<tr><td/><td colspan="2"><?php echo $this->getChildHtml('contactlab.template.queue') ?></td></tr>
|
11 |
+
<tr><?php echo $this->getChildHtml('contactlab.template.email') ?>
|
12 |
+
<td><a href="<?php echo $this->getUrl('adminhtml/system_config/edit', array('section' => 'contactlab_template')) ?>"><?php echo $this->__('Configure') ?></a></td>
|
13 |
+
</tr>
|
14 |
+
</table>
|
15 |
+
</div>
|
16 |
+
</div>
|
app/design/adminhtml/default/default/template/contactlab/template/tasks/debugemail.phtml
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
<td><label for="email-address-debug"><?php echo $this->__('Debug an email address') ?>:</label></td>
|
2 |
-
<td><input type="text" name="email-address-debug" id="email-address-debug" value="<?php
|
3 |
-
echo filter_var(Mage::app()->getRequest()->getParam('address'), FILTER_VALIDATE_EMAIL) ?>" class="input-text"></td>
|
1 |
+
<td><label for="email-address-debug"><?php echo $this->__('Debug an email address') ?>:</label></td>
|
2 |
+
<td><input type="text" name="email-address-debug" id="email-address-debug" value="<?php
|
3 |
+
echo filter_var(Mage::app()->getRequest()->getParam('address'), FILTER_VALIDATE_EMAIL) ?>" class="input-text"></td>
|
app/design/adminhtml/default/default/template/contactlab/template/type/edit.phtml
CHANGED
@@ -1,69 +1,69 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Magento
|
4 |
-
*
|
5 |
-
* NOTICE OF LICENSE
|
6 |
-
*
|
7 |
-
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
-
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
-
* It is also available through the world-wide-web at this URL:
|
10 |
-
* http://opensource.org/licenses/afl-3.0.php
|
11 |
-
* If you did not receive a copy of the license and are unable to
|
12 |
-
* obtain it through the world-wide-web, please send an email
|
13 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
-
*
|
15 |
-
* DISCLAIMER
|
16 |
-
*
|
17 |
-
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
-
* versions in the future. If you wish to customize Magento for your
|
19 |
-
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
-
*
|
21 |
-
* @category design
|
22 |
-
* @package default_default
|
23 |
-
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
-
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
-
*/
|
26 |
-
/* @var $this Mage_Adminhtml_Block_Newsletter_Template_Edit */
|
27 |
-
?>
|
28 |
-
<div class="content-header">
|
29 |
-
<h3 class="icon-head head-newsletter-list"><?php echo $this->getHeaderText() ?></h3>
|
30 |
-
<p class="content-buttons form-buttons">
|
31 |
-
<?php echo $this->getBackButtonHtml(); ?>
|
32 |
-
<?php echo $this->getResetButtonHtml(); ?>
|
33 |
-
<?php if($this->getEditMode()): ?>
|
34 |
-
<?php echo $this->getDeleteButtonHtml(); ?>
|
35 |
-
<?php endif ?>
|
36 |
-
<?php echo $this->getSaveButtonHtml(); ?>
|
37 |
-
</p>
|
38 |
-
</div>
|
39 |
-
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="contactlab_template_type_edit_form">
|
40 |
-
<?php echo $this->getBlockHtml('formkey')?>
|
41 |
-
<div class="no-display">
|
42 |
-
<input type="hidden" id="change_flag_element" name="_change_type_flag" value="" />
|
43 |
-
</div>
|
44 |
-
<?php echo $this->getForm() ?>
|
45 |
-
</form>
|
46 |
-
<form action="<?php echo $this->getPreviewUrl() ?>" method="post" id="contactlab_template_type_edit_form" target="_blank">
|
47 |
-
<?php echo $this->getBlockHtml('formkey')?>
|
48 |
-
<div class="no-display">
|
49 |
-
<input type="hidden" id="preview_text" name="text" value="" />
|
50 |
-
<input type="hidden" id="preview_styles" name="styles" value="" />
|
51 |
-
<input type="hidden" id="preview_id" name="id" value="" />
|
52 |
-
</div>
|
53 |
-
</form>
|
54 |
-
<script type="text/javascript">
|
55 |
-
//<![CDATA[
|
56 |
-
var templateForm = new varienForm('contactlab_template_type_edit_form');
|
57 |
-
var templateControl = {
|
58 |
-
save: function() {
|
59 |
-
templateForm.submit();
|
60 |
-
return false;
|
61 |
-
},
|
62 |
-
deleteTemplate: function() {
|
63 |
-
if (window.confirm("<?php echo Mage::helper('newsletter')->__('Are you sure that you want to delete this template type?') ?>")) {
|
64 |
-
window.location.href = '<?php echo $this->getDeleteUrl() ?>';
|
65 |
-
}
|
66 |
-
},
|
67 |
-
};
|
68 |
-
//]]>
|
69 |
-
</script>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
/* @var $this Mage_Adminhtml_Block_Newsletter_Template_Edit */
|
27 |
+
?>
|
28 |
+
<div class="content-header">
|
29 |
+
<h3 class="icon-head head-newsletter-list"><?php echo $this->getHeaderText() ?></h3>
|
30 |
+
<p class="content-buttons form-buttons">
|
31 |
+
<?php echo $this->getBackButtonHtml(); ?>
|
32 |
+
<?php echo $this->getResetButtonHtml(); ?>
|
33 |
+
<?php if($this->getEditMode()): ?>
|
34 |
+
<?php echo $this->getDeleteButtonHtml(); ?>
|
35 |
+
<?php endif ?>
|
36 |
+
<?php echo $this->getSaveButtonHtml(); ?>
|
37 |
+
</p>
|
38 |
+
</div>
|
39 |
+
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="contactlab_template_type_edit_form">
|
40 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
41 |
+
<div class="no-display">
|
42 |
+
<input type="hidden" id="change_flag_element" name="_change_type_flag" value="" />
|
43 |
+
</div>
|
44 |
+
<?php echo $this->getForm() ?>
|
45 |
+
</form>
|
46 |
+
<form action="<?php echo $this->getPreviewUrl() ?>" method="post" id="contactlab_template_type_edit_form" target="_blank">
|
47 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
48 |
+
<div class="no-display">
|
49 |
+
<input type="hidden" id="preview_text" name="text" value="" />
|
50 |
+
<input type="hidden" id="preview_styles" name="styles" value="" />
|
51 |
+
<input type="hidden" id="preview_id" name="id" value="" />
|
52 |
+
</div>
|
53 |
+
</form>
|
54 |
+
<script type="text/javascript">
|
55 |
+
//<![CDATA[
|
56 |
+
var templateForm = new varienForm('contactlab_template_type_edit_form');
|
57 |
+
var templateControl = {
|
58 |
+
save: function() {
|
59 |
+
templateForm.submit();
|
60 |
+
return false;
|
61 |
+
},
|
62 |
+
deleteTemplate: function() {
|
63 |
+
if (window.confirm("<?php echo Mage::helper('newsletter')->__('Are you sure that you want to delete this template type?') ?>")) {
|
64 |
+
window.location.href = '<?php echo $this->getDeleteUrl() ?>';
|
65 |
+
}
|
66 |
+
},
|
67 |
+
};
|
68 |
+
//]]>
|
69 |
+
</script>
|
app/design/frontend/base/default/layout/contactlab/layout.xml
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<catalog_product_view>
|
4 |
+
<reference name="head">
|
5 |
+
<block type="core/text" name="your_external_file">
|
6 |
+
<action method="setText"><text><![CDATA[<script>console.log("ContactHub EventTracker loaded.");</script>]]></text></action>
|
7 |
+
</block>
|
8 |
+
</reference>
|
9 |
+
</catalog_product_view>
|
10 |
+
</layout>
|
app/design/frontend/base/default/layout/contactlab/subscribers.xml
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<default>
|
4 |
+
<reference name="footer">
|
5 |
+
<action method="unsetChild" ifconfig="contactlab_subscribers/newsletter/enable">
|
6 |
+
<name>newsletter</name>
|
7 |
+
</action>
|
8 |
+
<block type="contactlab_subscribers/newsletter_subscribers_subscribe" name="contactlab.newsletter"
|
9 |
+
template="contactlab/subscribers/newsletter/subscribers/subscribe.phtml"/>
|
10 |
+
<block type="contactlab_subscribers/newsletter_subscribers_modify" name="contactlab.newsletter.modify"
|
11 |
+
template="contactlab/subscribers/newsletter/subscribers/modify.phtml"/>
|
12 |
+
</reference>
|
13 |
+
<reference name="left">
|
14 |
+
<action method="unsetChild" ifconfig="contactlab_subscribers/newsletter/enable">
|
15 |
+
<name>left.newsletter</name>
|
16 |
+
</action>
|
17 |
+
<block type="contactlab_subscribers/newsletter_subscribers_subscribe" name="contactlab.newsletter"
|
18 |
+
template="contactlab/subscribers/newsletter/subscribers/subscribe.phtml"/>
|
19 |
+
<block type="contactlab_subscribers/newsletter_subscribers_modify" name="contactlab.newsletter.modify"
|
20 |
+
template="contactlab/subscribers/newsletter/subscribers/modify.phtml"/>
|
21 |
+
</reference>
|
22 |
+
</default>
|
23 |
+
<contactlab_subscribers_edit_index>
|
24 |
+
<reference name="root">
|
25 |
+
<action method="setTemplate"><template>page/empty.phtml</template></action>
|
26 |
+
<reference name="content">
|
27 |
+
<block type="contactlab_subscribers/newsletter_subscribers_update" name="contactlab.newsletter"
|
28 |
+
template="contactlab/subscribers/newsletter/subscribers/update.phtml"/>
|
29 |
+
</reference>
|
30 |
+
</reference>
|
31 |
+
</contactlab_subscribers_edit_index>
|
32 |
+
</layout>
|
app/design/frontend/base/default/template/contactlab/subscribers/newsletter/subscribers/modify.phtml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="block block-subscribe">
|
2 |
+
<div class="block-title">
|
3 |
+
<strong><span><?php echo $this->__('Subscribed users') ?></span></strong>
|
4 |
+
</div>
|
5 |
+
<form action="<?php echo $this->getFormActionUrl() ?>" method="post" id="newsletter-validate-detail">
|
6 |
+
<div class="block-content">
|
7 |
+
<div class="form-subscribe-header">
|
8 |
+
<label for="newsletter"><?php echo $this->__('Modify your data?') ?></label>
|
9 |
+
</div>
|
10 |
+
<div class="input-box">
|
11 |
+
<input type="<?php echo $this->getInputType()?>" name="email" id="newsletter" value="<?php echo $this->getCustomerEmail()?>" title="<?php echo $this->__('Your email') ?>" class="input-text required-entry validate-email" />
|
12 |
+
</div>
|
13 |
+
<div class="actions">
|
14 |
+
<button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
</form>
|
18 |
+
<script type="text/javascript">
|
19 |
+
//<![CDATA[
|
20 |
+
var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail');
|
21 |
+
//]]>
|
22 |
+
</script>
|
23 |
+
</div>
|
app/design/frontend/base/default/template/contactlab/subscribers/newsletter/subscribers/subscribe.phtml
ADDED
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="block block-subscribe">
|
2 |
+
<div class="block-title">
|
3 |
+
<strong><span><?php echo $this->__('Newsletter') ?></span></strong>
|
4 |
+
</div>
|
5 |
+
<form action="<?php echo $this->getFormActionUrl() ?>" method="post" id="newsletter-validate-detail">
|
6 |
+
<div class="block-content">
|
7 |
+
<div class="input-box">
|
8 |
+
<label for="newsletter"><?php echo $this->fieldLabel('email') ?></label>
|
9 |
+
<?php if($this->fieldChoices('email') < 1 ):?>
|
10 |
+
<input type="<?php echo $this->fieldInputType('email') ?>" name="email" id="newsletter" title="<?php echo $this->fieldTitle('email') ?>" class="input-text required-entry validate-email" />
|
11 |
+
<?php else: foreach (range(1, $this->fieldChoices('email')) as $choice) :?>
|
12 |
+
<input type="<?php echo $this->fieldInputType('email') ?>" name="email" id="newsletter" class="input-text required-entry validate-email"><?php echo $this->fieldChoice('email',$choice) ?><br>
|
13 |
+
<?php endforeach; endif;?>
|
14 |
+
</div>
|
15 |
+
|
16 |
+
<div class="input-box">
|
17 |
+
<label for="first-name"><?php echo $this->fieldLabel('fname') ?></label>
|
18 |
+
<?php if($this->fieldChoices('fname') < 1 ):?>
|
19 |
+
<input type="<?php echo $this->fieldInputType('fname') ?>" name="first_name" id="first-name" title="<?php echo $this->fieldTitle('fname') ?>" class="input-text" />
|
20 |
+
<?php else: foreach (range(1, $this->fieldChoices('fname')) as $choice) :?>
|
21 |
+
<input type="<?php echo $this->fieldInputType('fname') ?>" name="first_name" id="first-name" class="input-text"><?php echo $this->fieldChoice('fname',$choice) ?><br>
|
22 |
+
<?php endforeach; endif;?>
|
23 |
+
</div>
|
24 |
+
|
25 |
+
<div class="input-box">
|
26 |
+
<label for="last-name"><?php echo $this->fieldLabel('lname') ?></label>
|
27 |
+
<?php if($this->fieldChoices('lname') < 1 ):?>
|
28 |
+
<input type="<?php echo $this->fieldInputType('lname') ?>" name='last_name' id="last-name" title="<?php echo $this->fieldTitle('lname') ?>" class="input-text" />
|
29 |
+
<?php else: foreach (range(1, $this->fieldChoices('lname')) as $choice) :?>
|
30 |
+
<input type="<?php echo $this->fieldInputType('lname') ?>" name='last_name' id="last-name" class="input-text"><?php echo $this->fieldChoice('lname',$choice) ?><br>
|
31 |
+
<?php endforeach; endif;?>
|
32 |
+
</div>
|
33 |
+
|
34 |
+
<div class="input-box">
|
35 |
+
<label for="id-company"><?php echo $this->fieldLabel('company') ?></label>
|
36 |
+
<?php if($this->fieldChoices('company') < 1 ):?>
|
37 |
+
<input type="<?php echo $this->fieldInputType('company') ?>" name='company' id="id-company" title="<?php echo $this->fieldTitle('company') ?>" class="input-text" />
|
38 |
+
<?php else: foreach (range(1, $this->fieldChoices('company')) as $choice) :?>
|
39 |
+
<input type="<?php echo $this->fieldInputType('company') ?>" name='company' id="id-company" class="input-text"><?php echo $this->fieldChoice('company',$choice) ?><br>
|
40 |
+
<?php endforeach; endif;?>
|
41 |
+
</div>
|
42 |
+
|
43 |
+
<div class="input-box">
|
44 |
+
<label for="id-gender"><?php echo $this->fieldLabel('gender') ?></label><br>
|
45 |
+
<?php if($this->fieldChoices('gender') < 1 ):?>
|
46 |
+
<input type="<?php echo $this->fieldInputType('gender') ?>" name='gender' id="id-gender" title="<?php echo $this->fieldTitle('gender') ?>" class="radio"/>
|
47 |
+
<?php else: foreach (range(1, $this->fieldChoices('gender')) as $choice) :?>
|
48 |
+
<input type="<?php echo $this->fieldInputType('gender') ?>" name='gender' id="id-gender" value="<?php echo $this->fieldValue('gender',$choice) ?>" class="radio"/><?php echo $this->fieldChoice('gender',$choice) ?><br>
|
49 |
+
<?php endforeach; endif;?>
|
50 |
+
</div>
|
51 |
+
|
52 |
+
<div class="input-box">
|
53 |
+
<label for="id-dob"><?php echo $this->fieldLabel('dob') ?></label><br>
|
54 |
+
<?php if($this->fieldChoices('dob') < 1 ):?>
|
55 |
+
<input type="<?php echo $this->fieldInputType('dob') ?>" name='dob' id="id-dob" title="<?php echo $this->fieldTitle('dob') ?>" class="input-text"/>
|
56 |
+
<?php else: foreach (range(1, $this->fieldChoices('dob')) as $choice) :?>
|
57 |
+
<input type="<?php echo $this->fieldInputType('dob') ?>" name='dob' id="id-dob" value="<?php echo $this->fieldValue('dob',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('dob',$choice) ?><br>
|
58 |
+
<?php endforeach; endif;?>
|
59 |
+
</div>
|
60 |
+
|
61 |
+
<div class="input-box">
|
62 |
+
<label for="id-privacy"><?php echo $this->fieldLabel('privacy') ?></label><br>
|
63 |
+
<?php if($this->fieldChoices('privacy') < 1 ):?>
|
64 |
+
<input type="<?php echo $this->fieldInputType('privacy') ?>" name='privacy' id="id-privacy" title="<?php echo $this->fieldTitle('privacy') ?>" class="radio"/>
|
65 |
+
<?php else: foreach (range(1, $this->fieldChoices('privacy')) as $choice) :?>
|
66 |
+
<input type="<?php echo $this->fieldInputType('privacy') ?>" name='privacy' id="id-privacy" value="<?php echo $this->fieldValue('privacy',$choice) ?>" class="radio"/><?php echo $this->fieldChoice('privacy',$choice) ?><br>
|
67 |
+
<?php endforeach; endif;?>
|
68 |
+
</div>
|
69 |
+
|
70 |
+
<div class="input-box">
|
71 |
+
<label for="id-custom1"><?php echo $this->fieldLabel('custom1') ?></label><br>
|
72 |
+
<?php if($this->fieldChoices('custom1') < 1 ):?>
|
73 |
+
<input type="<?php echo $this->fieldInputType('custom1') ?>" name='custom_1' id="id-custom1" title="<?php echo $this->fieldTitle('custom1') ?>" class="input-text"/>
|
74 |
+
<?php else: foreach (range(1, $this->fieldChoices('custom1')) as $choice) :?>
|
75 |
+
<input type="<?php echo $this->fieldInputType('custom1') ?>" name='custom_1' id="id-custom1" value="<?php echo $this->fieldValue('custom1',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('custom1',$choice) ?><br>
|
76 |
+
<?php endforeach; endif;?>
|
77 |
+
</div>
|
78 |
+
|
79 |
+
<div class="input-box">
|
80 |
+
<label for="id-custom2"><?php echo $this->fieldLabel('custom2') ?></label><br>
|
81 |
+
<?php if($this->fieldChoices('custom2') < 1 ):?>
|
82 |
+
<input type="<?php echo $this->fieldInputType('custom2') ?>" name='custom_2' id="id-custom2" title="<?php echo $this->fieldTitle('custom2') ?>" class="input-text"/>
|
83 |
+
<?php else: foreach (range(1, $this->fieldChoices('custom2')) as $choice) :?>
|
84 |
+
<input type="<?php echo $this->fieldInputType('custom2') ?>" name='custom_2' id="id-custom2" value="<?php echo $this->fieldValue('custom2',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('custom2',$choice) ?><br>
|
85 |
+
<?php endforeach; endif;?>
|
86 |
+
</div>
|
87 |
+
|
88 |
+
<div class="input-box">
|
89 |
+
<label for="id-country"><?php echo $this->fieldLabel('country') ?></label><br>
|
90 |
+
<?php if($this->fieldChoices('country') < 1 ):?>
|
91 |
+
<input type="<?php echo $this->fieldInputType('country') ?>" name='country' id="id-country" title="<?php echo $this->fieldTitle('country') ?>" class="input-text"/>
|
92 |
+
<?php else: foreach (range(1, $this->fieldChoices('country')) as $choice) :?>
|
93 |
+
<input type="<?php echo $this->fieldInputType('country') ?>" name='country' id="id-country" value="<?php echo $this->fieldValue('country',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('country',$choice) ?><br>
|
94 |
+
<?php endforeach; endif;?>
|
95 |
+
</div>
|
96 |
+
|
97 |
+
<div class="input-box">
|
98 |
+
<label for="id-city"><?php echo $this->fieldLabel('city') ?></label><br>
|
99 |
+
<?php if($this->fieldChoices('city') < 1 ):?>
|
100 |
+
<input type="<?php echo $this->fieldInputType('city') ?>" name='city' id="id-city" title="<?php echo $this->fieldTitle('city') ?>" class="input-text"/>
|
101 |
+
<?php else: foreach (range(1, $this->fieldChoices('city')) as $choice) :?>
|
102 |
+
<input type="<?php echo $this->fieldInputType('city') ?>" name='city' id="id-city" value="<?php echo $this->fieldValue('city',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('city',$choice) ?><br>
|
103 |
+
<?php endforeach; endif;?>
|
104 |
+
</div>
|
105 |
+
|
106 |
+
<div class="input-box">
|
107 |
+
<label for="id-address"><?php echo $this->fieldLabel('address') ?></label><br>
|
108 |
+
<?php if($this->fieldChoices('address') < 1 ):?>
|
109 |
+
<input type="<?php echo $this->fieldInputType('address') ?>" name='address' id="id-address" title="<?php echo $this->fieldTitle('address') ?>" class="input-text"/>
|
110 |
+
<?php else: foreach (range(1, $this->fieldChoices('address')) as $choice) :?>
|
111 |
+
<input type="<?php echo $this->fieldInputType('address') ?>" name='address' id="id-address" value="<?php echo $this->fieldValue('address',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('address',$choice) ?><br>
|
112 |
+
<?php endforeach; endif;?>
|
113 |
+
</div>
|
114 |
+
|
115 |
+
<div class="input-box">
|
116 |
+
<label for="id-zip"><?php echo $this->fieldLabel('zipcode') ?></label><br>
|
117 |
+
<?php if($this->fieldChoices('zipcode') < 1 ):?>
|
118 |
+
<input type="<?php echo $this->fieldInputType('zipcode') ?>" name='zip_code' id="id-zip" title="<?php echo $this->fieldTitle('zipcode') ?>" class="input-text"/>
|
119 |
+
<?php else: foreach (range(1, $this->fieldChoices('zipcode')) as $choice) :?>
|
120 |
+
<input type="<?php echo $this->fieldInputType('zipcode') ?>" name='zip_code' id="id-zip" value="<?php echo $this->fieldValue('zipcode',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('zipcode',$choice) ?><br>
|
121 |
+
<?php endforeach; endif;?>
|
122 |
+
</div>
|
123 |
+
|
124 |
+
<div class="input-box">
|
125 |
+
<label for="id-phone1"><?php echo $this->fieldLabel('landphone') ?></label><br>
|
126 |
+
<?php if($this->fieldChoices('landphone') < 1 ):?>
|
127 |
+
<input type="<?php echo $this->fieldInputType('landphone') ?>" name='phone' id="id-phone1" title="<?php echo $this->fieldTitle('landphone') ?>" class="input-text"/>
|
128 |
+
<?php else: foreach (range(1, $this->fieldChoices('landphone')) as $choice) :?>
|
129 |
+
<input type="<?php echo $this->fieldInputType('landphone') ?>" name='phone' id="id-phone1" value="<?php echo $this->fieldValue('landphone',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('landphone',$choice) ?><br>
|
130 |
+
<?php endforeach; endif;?>
|
131 |
+
</div>
|
132 |
+
|
133 |
+
<div class="input-box">
|
134 |
+
<label for="id-phone2"><?php echo $this->fieldLabel('mobilephone') ?></label><br>
|
135 |
+
<?php if($this->fieldChoices('mobilephone') < 1 ):?>
|
136 |
+
<input type="<?php echo $this->fieldInputType('mobilephone') ?>" name='cell_phone' id="id-phone2" title="<?php echo $this->fieldTitle('mobilephone') ?>" class="input-text"/>
|
137 |
+
<?php else: foreach (range(1, $this->fieldChoices('mobilephone')) as $choice) :?>
|
138 |
+
<input type="<?php echo $this->fieldInputType('mobilephone') ?>" name='cell_phone' id="id-phone2" value="<?php echo $this->fieldValue('mobilephone',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('mobilephone',$choice) ?><br>
|
139 |
+
<?php endforeach; endif;?>
|
140 |
+
</div>
|
141 |
+
|
142 |
+
<div class="input-box">
|
143 |
+
<label for="id-notes"><?php echo $this->fieldLabel('notes') ?></label><br>
|
144 |
+
<textarea name="notes" id="id-notes" title="<?php echo $this->fieldTitle('notes') ?>" class="input-text"></textarea>
|
145 |
+
</div>
|
146 |
+
|
147 |
+
<div class="actions">
|
148 |
+
<button type="submit" title="<?php echo $this->__('Subscribe') ?>" class="button"><span><span><?php echo $this->__('Subscribe') ?></span></span></button>
|
149 |
+
</div>
|
150 |
+
</div>
|
151 |
+
</form>
|
152 |
+
<script type="text/javascript">
|
153 |
+
//<![CDATA[
|
154 |
+
var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail');
|
155 |
+
//]]>
|
156 |
+
</script>
|
157 |
+
</div>
|
158 |
+
|
app/design/frontend/base/default/template/contactlab/subscribers/newsletter/subscribers/update.phtml
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="block block-subscribe">
|
2 |
+
<div class="block-title">
|
3 |
+
<strong><span><?php echo $this->__('Modify your data') ?></span></strong>
|
4 |
+
</div>
|
5 |
+
<form action="<?php echo $this->getModifyFormActionUrl() ?>" method="post" id="newsletter-validate-detail">
|
6 |
+
<div class="block-content">
|
7 |
+
|
8 |
+
<input type="hidden" name="chkid" value="<?php echo $this->getSubsId();?>" />
|
9 |
+
<input type="hidden" name="chkhash" value="<?php echo $this->getSubsHash();?>" />
|
10 |
+
|
11 |
+
<div class="input-box">
|
12 |
+
<label for="first-name"><?php echo $this->fieldLabel('fname') ?></label>
|
13 |
+
<?php if($this->fieldChoices('fname') < 1 ):?>
|
14 |
+
<input <?php echo $this->fieldActualValue('fname') ?> type="<?php echo $this->fieldInputType('fname') ?>" name="first_name" id="first-name" title="<?php echo $this->fieldTitle('fname') ?>" class="input-text" />
|
15 |
+
<?php else: foreach (range(1, $this->fieldChoices('fname')) as $choice) :?>
|
16 |
+
<input type="<?php echo $this->fieldInputType('fname') ?>" name="first_name" id="first-name" class="input-text"><?php echo $this->fieldChoice('fname',$choice) ?><br>
|
17 |
+
<?php endforeach; endif;?>
|
18 |
+
</div>
|
19 |
+
|
20 |
+
<div class="input-box">
|
21 |
+
<label for="last-name"><?php echo $this->fieldLabel('lname') ?></label>
|
22 |
+
<?php if($this->fieldChoices('lname') < 1 ):?>
|
23 |
+
<input <?php echo $this->fieldActualValue('lname') ?> type="<?php echo $this->fieldInputType('lname') ?>" name='last_name' id="last-name" title="<?php echo $this->fieldTitle('lname') ?>" class="input-text" />
|
24 |
+
<?php else: foreach (range(1, $this->fieldChoices('lname')) as $choice) :?>
|
25 |
+
<input type="<?php echo $this->fieldInputType('lname') ?>" name='last_name' id="last-name" class="input-text"><?php echo $this->fieldChoice('lname',$choice) ?><br>
|
26 |
+
<?php endforeach; endif;?>
|
27 |
+
</div>
|
28 |
+
|
29 |
+
<div class="input-box">
|
30 |
+
<label for="id-company"><?php echo $this->fieldLabel('company') ?></label>
|
31 |
+
<?php if($this->fieldChoices('company') < 1 ):?>
|
32 |
+
<input <?php echo $this->fieldActualValue('company') ?> type="<?php echo $this->fieldInputType('company') ?>" name='company' id="id-company" title="<?php echo $this->fieldTitle('company') ?>" class="input-text" />
|
33 |
+
<?php else: foreach (range(1, $this->fieldChoices('company')) as $choice) :?>
|
34 |
+
<input type="<?php echo $this->fieldInputType('company') ?>" name='company' id="id-company" class="input-text"><?php echo $this->fieldChoice('company',$choice) ?><br>
|
35 |
+
<?php endforeach; endif;?>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<div class="input-box">
|
39 |
+
<label for="id-gender"><?php echo $this->fieldLabel('gender') ?></label><br>
|
40 |
+
<?php if($this->fieldChoices('gender') < 1 ):?>
|
41 |
+
<input type="<?php echo $this->fieldInputType('gender') ?>" name='gender' id="id-gender" title="<?php echo $this->fieldTitle('gender') ?>" class="radio"/>
|
42 |
+
<?php else: foreach (range(1, $this->fieldChoices('gender')) as $choice) :?>
|
43 |
+
<input <?php echo $this->fieldActualValue('gender',$choice) ?> type="<?php echo $this->fieldInputType('gender') ?>" name='gender' id="id-gender" value="<?php echo $this->fieldValue('gender',$choice) ?>" class="radio"/><?php echo $this->fieldChoice('gender',$choice) ?><br>
|
44 |
+
<?php endforeach; endif;?>
|
45 |
+
</div>
|
46 |
+
|
47 |
+
<div class="input-box">
|
48 |
+
<label for="id-dob"><?php echo $this->fieldLabel('dob') ?></label><br>
|
49 |
+
<?php if($this->fieldChoices('dob') < 1 ):?>
|
50 |
+
<input <?php echo $this->fieldActualValue('dob') ?> type="<?php echo $this->fieldInputType('dob') ?>" name='dob' id="id-dob" title="<?php echo $this->fieldTitle('dob') ?>" class="input-text"/>
|
51 |
+
<?php else: foreach (range(1, $this->fieldChoices('dob')) as $choice) :?>
|
52 |
+
<input type="<?php echo $this->fieldInputType('dob') ?>" name='dob' id="id-dob" value="<?php echo $this->fieldValue('dob',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('dob',$choice) ?><br>
|
53 |
+
<?php endforeach; endif;?>
|
54 |
+
</div>
|
55 |
+
|
56 |
+
<div class="input-box">
|
57 |
+
<label for="id-privacy"><?php echo $this->fieldLabel('privacy') ?></label><br>
|
58 |
+
<?php if($this->fieldChoices('privacy') < 1 ):?>
|
59 |
+
<input <?php echo $this->fieldActualValue('privacy') ?> type="<?php echo $this->fieldInputType('privacy') ?>" name='privacy' id="id-privacy" title="<?php echo $this->fieldTitle('privacy') ?>" class="radio"/>
|
60 |
+
<?php else: foreach (range(1, $this->fieldChoices('privacy')) as $choice) :?>
|
61 |
+
<input type="<?php echo $this->fieldInputType('privacy') ?>" name='privacy' id="id-privacy" value="<?php echo $this->fieldValue('privacy',$choice) ?>" class="radio"/><?php echo $this->fieldChoice('privacy',$choice) ?><br>
|
62 |
+
<?php endforeach; endif;?>
|
63 |
+
</div>
|
64 |
+
|
65 |
+
<div class="input-box">
|
66 |
+
<label for="id-custom1"><?php echo $this->fieldLabel('custom1') ?></label><br>
|
67 |
+
<?php if($this->fieldChoices('custom1') < 1 ):?>
|
68 |
+
<input <?php echo $this->fieldActualValue('custom1') ?> type="<?php echo $this->fieldInputType('custom1') ?>" name='custom_1' id="id-custom1" title="<?php echo $this->fieldTitle('custom1') ?>" class="input-text"/>
|
69 |
+
<?php else: foreach (range(1, $this->fieldChoices('custom1')) as $choice) :?>
|
70 |
+
<input type="<?php echo $this->fieldInputType('custom1') ?>" name='custom_1' id="id-custom1" value="<?php echo $this->fieldValue('custom1',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('custom1',$choice) ?><br>
|
71 |
+
<?php endforeach; endif;?>
|
72 |
+
</div>
|
73 |
+
|
74 |
+
<div class="input-box">
|
75 |
+
<label for="id-custom2"><?php echo $this->fieldLabel('custom2') ?></label><br>
|
76 |
+
<?php if($this->fieldChoices('custom2') < 1 ):?>
|
77 |
+
<input <?php echo $this->fieldActualValue('custom2') ?> type="<?php echo $this->fieldInputType('custom2') ?>" name='custom_2' id="id-custom2" title="<?php echo $this->fieldTitle('custom2') ?>" class="input-text"/>
|
78 |
+
<?php else: foreach (range(1, $this->fieldChoices('custom2')) as $choice) :?>
|
79 |
+
<input type="<?php echo $this->fieldInputType('custom2') ?>" name='custom_2' id="id-custom2" value="<?php echo $this->fieldValue('custom2',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('custom2',$choice) ?><br>
|
80 |
+
<?php endforeach; endif;?>
|
81 |
+
</div>
|
82 |
+
|
83 |
+
<div class="input-box">
|
84 |
+
<label for="id-country"><?php echo $this->fieldLabel('country') ?></label><br>
|
85 |
+
<?php if($this->fieldChoices('country') < 1 ):?>
|
86 |
+
<input <?php echo $this->fieldActualValue('country') ?> type="<?php echo $this->fieldInputType('country') ?>" name='country' id="id-country" title="<?php echo $this->fieldTitle('country') ?>" class="input-text"/>
|
87 |
+
<?php else: foreach (range(1, $this->fieldChoices('country')) as $choice) :?>
|
88 |
+
<input type="<?php echo $this->fieldInputType('country') ?>" name='country' id="id-country" value="<?php echo $this->fieldValue('country',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('country',$choice) ?><br>
|
89 |
+
<?php endforeach; endif;?>
|
90 |
+
</div>
|
91 |
+
|
92 |
+
<div class="input-box">
|
93 |
+
<label for="id-city"><?php echo $this->fieldLabel('city') ?></label><br>
|
94 |
+
<?php if($this->fieldChoices('city') < 1 ):?>
|
95 |
+
<input <?php echo $this->fieldActualValue('city') ?> type="<?php echo $this->fieldInputType('city') ?>" name='city' id="id-city" title="<?php echo $this->fieldTitle('city') ?>" class="input-text"/>
|
96 |
+
<?php else: foreach (range(1, $this->fieldChoices('city')) as $choice) :?>
|
97 |
+
<input type="<?php echo $this->fieldInputType('city') ?>" name='city' id="id-city" value="<?php echo $this->fieldValue('city',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('city',$choice) ?><br>
|
98 |
+
<?php endforeach; endif;?>
|
99 |
+
</div>
|
100 |
+
|
101 |
+
<div class="input-box">
|
102 |
+
<label for="id-address"><?php echo $this->fieldLabel('address') ?></label><br>
|
103 |
+
<?php if($this->fieldChoices('address') < 1 ):?>
|
104 |
+
<input <?php echo $this->fieldActualValue('address') ?> type="<?php echo $this->fieldInputType('address') ?>" name='address' id="id-address" title="<?php echo $this->fieldTitle('address') ?>" class="input-text"/>
|
105 |
+
<?php else: foreach (range(1, $this->fieldChoices('address')) as $choice) :?>
|
106 |
+
<input type="<?php echo $this->fieldInputType('address') ?>" name='address' id="id-address" value="<?php echo $this->fieldValue('address',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('address',$choice) ?><br>
|
107 |
+
<?php endforeach; endif;?>
|
108 |
+
</div>
|
109 |
+
|
110 |
+
<div class="input-box">
|
111 |
+
<label for="id-zip"><?php echo $this->fieldLabel('zipcode') ?></label><br>
|
112 |
+
<?php if($this->fieldChoices('zipcode') < 1 ):?>
|
113 |
+
<input <?php echo $this->fieldActualValue('zipcode') ?> type="<?php echo $this->fieldInputType('zipcode') ?>" name='zip_code' id="id-zip" title="<?php echo $this->fieldTitle('zipcode') ?>" class="input-text"/>
|
114 |
+
<?php else: foreach (range(1, $this->fieldChoices('zipcode')) as $choice) :?>
|
115 |
+
<input type="<?php echo $this->fieldInputType('zipcode') ?>" name='zip_code' id="id-zip" value="<?php echo $this->fieldValue('zipcode',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('zipcode',$choice) ?><br>
|
116 |
+
<?php endforeach; endif;?>
|
117 |
+
</div>
|
118 |
+
|
119 |
+
<div class="input-box">
|
120 |
+
<label for="id-phone1"><?php echo $this->fieldLabel('landphone') ?></label><br>
|
121 |
+
<?php if($this->fieldChoices('landphone') < 1 ):?>
|
122 |
+
<input <?php echo $this->fieldActualValue('landphone') ?> type="<?php echo $this->fieldInputType('landphone') ?>" name='phone' id="id-phone1" title="<?php echo $this->fieldTitle('landphone') ?>" class="input-text"/>
|
123 |
+
<?php else: foreach (range(1, $this->fieldChoices('landphone')) as $choice) :?>
|
124 |
+
<input type="<?php echo $this->fieldInputType('landphone') ?>" name='phone' id="id-phone1" value="<?php echo $this->fieldValue('landphone',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('landphone',$choice) ?><br>
|
125 |
+
<?php endforeach; endif;?>
|
126 |
+
</div>
|
127 |
+
|
128 |
+
<div class="input-box">
|
129 |
+
<label for="id-phone2"><?php echo $this->fieldLabel('mobilephone') ?></label><br>
|
130 |
+
<?php if($this->fieldChoices('mobilephone') < 1 ):?>
|
131 |
+
<input <?php echo $this->fieldActualValue('mobilephone') ?> type="<?php echo $this->fieldInputType('mobilephone') ?>" name='cell_phone' id="id-phone2" title="<?php echo $this->fieldTitle('mobilephone') ?>" class="input-text"/>
|
132 |
+
<?php else: foreach (range(1, $this->fieldChoices('mobilephone')) as $choice) :?>
|
133 |
+
<input type="<?php echo $this->fieldInputType('mobilephone') ?>" name='cell_phone' id="id-phone2" value="<?php echo $this->fieldValue('mobilephone',$choice) ?>" class="input-text"/><?php echo $this->fieldChoice('mobilephone',$choice) ?><br>
|
134 |
+
<?php endforeach; endif;?>
|
135 |
+
</div>
|
136 |
+
|
137 |
+
<div class="input-box">
|
138 |
+
<label for="id-notes"><?php echo $this->fieldLabel('notes') ?></label><br>
|
139 |
+
<textarea name="notes" id="id-notes" title="<?php echo $this->fieldTitle('notes') ?>" class="input-text"><?php echo $this->fieldActualValue('notes'); ?></textarea>
|
140 |
+
</div>
|
141 |
+
|
142 |
+
<div class="actions">
|
143 |
+
<button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Modify') ?></span></span></button>
|
144 |
+
</div>
|
145 |
+
</div>
|
146 |
+
</form>
|
147 |
+
</div>
|
148 |
+
|
app/etc/modules/Contactlab_Commons.xml
CHANGED
@@ -1,26 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
-
GNU General Public License for more details.
|
15 |
-
|
16 |
-
You should have received a copy of the GNU General Public License
|
17 |
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
18 |
-
-->
|
19 |
-
<config>
|
20 |
-
<modules>
|
21 |
-
<Contactlab_Commons>
|
22 |
-
<active>true</active>
|
23 |
-
<codePool>community</codePool>
|
24 |
-
</Contactlab_Commons>
|
25 |
-
</modules>
|
26 |
-
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Contactlab_Commons>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
<depends>
|
8 |
+
<Mage_AdminNotification />
|
9 |
+
</depends>
|
10 |
+
</Contactlab_Commons>
|
11 |
+
</modules>
|
12 |
+
</config>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/etc/modules/Contactlab_Subscribers.xml
CHANGED
@@ -1,29 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
-
GNU General Public License for more details.
|
15 |
-
|
16 |
-
You should have received a copy of the GNU General Public License
|
17 |
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
18 |
-
-->
|
19 |
-
<config>
|
20 |
-
<modules>
|
21 |
-
<Contactlab_Subscribers>
|
22 |
-
<active>true</active>
|
23 |
-
<codePool>community</codePool>
|
24 |
-
<depends>
|
25 |
-
<Contactlab_Commons/>
|
26 |
-
</depends>
|
27 |
-
</Contactlab_Subscribers>
|
28 |
-
</modules>
|
29 |
-
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Contactlab_Subscribers>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
<depends>
|
8 |
+
<Contactlab_Commons/>
|
9 |
+
</depends>
|
10 |
+
</Contactlab_Subscribers>
|
11 |
+
</modules>
|
12 |
+
</config>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/etc/modules/Contactlab_Template.xml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<config>
|
3 |
-
<modules>
|
4 |
-
<Contactlab_Template>
|
5 |
-
<active>true</active>
|
6 |
-
<codePool>community</codePool>
|
7 |
-
<depends>
|
8 |
-
<Contactlab_Commons />
|
9 |
-
</depends>
|
10 |
-
</Contactlab_Template>
|
11 |
-
</modules>
|
12 |
-
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Contactlab_Template>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
<depends>
|
8 |
+
<Contactlab_Commons />
|
9 |
+
</depends>
|
10 |
+
</Contactlab_Template>
|
11 |
+
</modules>
|
12 |
+
</config>
|
app/etc/modules/Contactlab_Transactional.xml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<config>
|
3 |
-
<modules>
|
4 |
-
<Contactlab_Transactional>
|
5 |
-
<active>true</active>
|
6 |
-
<codePool>community</codePool>
|
7 |
-
<depends>
|
8 |
-
<Contactlab_Commons />
|
9 |
-
</depends>
|
10 |
-
</Contactlab_Transactional>
|
11 |
-
</modules>
|
12 |
-
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Contactlab_Transactional>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
<depends>
|
8 |
+
<Contactlab_Commons />
|
9 |
+
</depends>
|
10 |
+
</Contactlab_Transactional>
|
11 |
+
</modules>
|
12 |
+
</config>
|
app/locale/en_US/contactlab/Contactlab_Commons.csv
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
"Backend Page Title","Backend Page Title"
|
2 |
-
"Enable","Enable"
|
3 |
-
"Enable or disable
|
4 |
-
"Configuration","Configuration"
|
5 |
-
"Global configuration","Global configuration"
|
6 |
-
"Contactlab","ContactLab"
|
1 |
+
"Backend Page Title","Backend Page Title"
|
2 |
+
"Enable","Enable"
|
3 |
+
"Enable or disable ContactLab module","Enable or disable ContactLab module"
|
4 |
+
"Configuration","Configuration"
|
5 |
+
"Global configuration","Global configuration"
|
6 |
+
"Contactlab","ContactLab"
|
app/locale/en_US/template/email/contactlab_commons/send_mail.html
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
<!--@subject ContactLab Tasks Error@-->
|
2 |
-
{{block type='contactlab_commons/adminhtml_email_template' area='adminhtml' template='contactlab/commons/send_mail.phtml'}}
|
|
|
|
app/locale/it_IT/contactlab/Contactlab_Commons.csv
CHANGED
@@ -1,129 +1,136 @@
|
|
1 |
-
"Actions","Azioni"
|
2 |
-
"An error occurred while cancelling task.","C'è stato un errore durante l'annullamento del task."
|
3 |
-
"An error occurred while changing the status %1$s to %2$s.","Errore durante il cambiamento di stato %1$s del task %2$s."
|
4 |
-
"An error occurred while changing the status %s of task nr. %d","Errore durante il cambiamento di stato in "%s" del task nr. %d"
|
5 |
-
"An error occurred while clearing queue.","C'è stato un errore durante la pulizia della coda."
|
6 |
-
"An error occurred while retrying task.","C'è stato un errore durante il reset del task."
|
7 |
-
"An error occurred while running task.","C'è stato un errore durante l'esecuzione del task."
|
8 |
-
"An error occurred while running the task %d","Errore durante l'esecuzione del task %d"
|
9 |
-
"An error occurred while suspending task.","C'è stato un errore durante la sospesione del task."
|
10 |
-
"An error occurred while unsuspending task.","C'è stato un errore durante la ripresa del task."
|
11 |
-
"Are you sure?","Si è sicuri?"
|
12 |
-
"Are you sure to empty log table?","Sicuro di voler svuotare la tabella di log?"
|
13 |
-
"cancelled","Annullato"
|
14 |
-
"Cancel task","Annulla il task"
|
15 |
-
"Cancel task","Annulla task"
|
16 |
-
"Cancel task is not allowed.","Annullamento non consentito."
|
17 |
-
"Cancel tasks","Annulla task"
|
18 |
-
"Clear old tasks","Rimuovi task obsoleti"
|
19 |
-
"Clear queue is not allowed.","Pulizia della coda non consentita."
|
20 |
-
"Clear Queue","Pulisci la coda dei task"
|
21 |
-
"closed","Chiuso"
|
22 |
-
"Code","Codice"
|
23 |
-
"Configuration","Configurazione"
|
24 |
-
"Connection","Connessione"
|
25 |
-
"File Transfer
|
26 |
-
"Contactlab","ContactLab"
|
27 |
-
"Created
|
28 |
-
"
|
29 |
-
"
|
30 |
-
"
|
31 |
-
"Enable","Abilita"
|
32 |
-
"Enable
|
33 |
-
"
|
34 |
-
"
|
35 |
-
"
|
36 |
-
"
|
37 |
-
"
|
38 |
-
"
|
39 |
-
"
|
40 |
-
"
|
41 |
-
"Local or remote connection","Connessione remota o locale"
|
42 |
-
"Local path for export","Path locale per l'export"
|
43 |
-
"Local path for import","Path locale per l'import"
|
44 |
-
"Local server","Server locale"
|
45 |
-
"Log level","Livello di log"
|
46 |
-
"Logs","Logs del sistema"
|
47 |
-
"new","Nuovo"
|
48 |
-
"New task","Nuovo task"
|
49 |
-
"No","No"
|
50 |
-
"
|
51 |
-
"Planned
|
52 |
-
"Remote path for export","Path server remoto per l'export"
|
53 |
-
"Remote path for import","Path server remoto per l'import"
|
54 |
-
"Remote server","Host remoto"
|
55 |
-
"Remote server (SFTP)","Server remoto (SFTP)"
|
56 |
-
"Retries","Tentativi"
|
57 |
-
"Retry is not allowed.","Reset del task non consentito."
|
58 |
-
"Retry","Reset"
|
59 |
-
"Retry","Retry"
|
60 |
-
"Retry tasks","Retry dei task"
|
61 |
-
"running","In esecuzione"
|
62 |
-
"Running","In esecuzione"
|
63 |
-
"Run now","Esegui"
|
64 |
-
"Run task","Esegui task"
|
65 |
-
"Run task is not allowed.","Esecuzione del task non consentito."
|
66 |
-
"Run tasks","Esegui task"
|
67 |
-
"SFTP Password","SFTP Password"
|
68 |
-
"SFTP Username","SFTP Username"
|
69 |
-
"Show as alert","Allarme"
|
70 |
-
"Status","Stato"
|
71 |
-
"Success","Chiuso con successo"
|
72 |
-
"suspended","Sospeso"
|
73 |
-
"Suspend task is not allowed.","Sospensione del task non consentita."
|
74 |
-
"Suspend task","Sospendi"
|
75 |
-
"Suspend task","Sospendi task"
|
76 |
-
"Suspend tasks","Sospendi task"
|
77 |
-
"Task event description","Descrizione dell'evento"
|
78 |
-
"Task Id","Task"
|
79 |
-
"Tasks","Tasks"
|
80 |
-
"Task status","Stato"
|
81 |
-
"Task","Task"
|
82 |
-
"Total of %1$s record(s) have been marked as %2$s.","Lo stato di %1$s record(s) è stato modificato in "%2$s"."
|
83 |
-
"Truncate log table","Svuota la tabella di log"
|
84 |
-
"Type","Tipo"
|
85 |
-
"Unsuspend task is not allowed.","Ripresa dei task non consentita."
|
86 |
-
"Unsuspend task","Riprendi"
|
87 |
-
"Unsuspend task","Riprendi task"
|
88 |
-
"Unsuspend tasks","Riprendi task"
|
89 |
-
"User cancelled execution","L'utente ha annullato l'esecuzione"
|
90 |
-
"User id","Utente"
|
91 |
-
"User suspended execution","L'utente ha sospeso l'esecuzione"
|
92 |
-
"User","Utente"
|
93 |
-
"waiting_for_retry","In attesa"
|
94 |
-
"Yes","Sì"
|
95 |
-
"SOAP options", "Opzioni SOAP"
|
96 |
-
"SOAP configuration", "Configurazione SOAP"
|
97 |
-
"Behavior", "Comportamento"
|
98 |
-
"Enable SOAP calls","Abilita chiamate SOAP a ContactLab"
|
99 |
-
"
|
100 |
-
"Data exporter config identifier","ID Configurazione Data exporter"
|
101 |
-
"<strong>Subscriber DataExchange is in Status <em>%s</em></stong>","<strong>DataExchange è <em>%s</em></stong>"
|
102 |
-
"<strong>Subscriber DataExchange is in Status <em>%s</em></stong>","<strong>DataExchange è <em>%s</em></stong>"
|
103 |
-
"INREQUEST","inserito ma non ancora preso in carico"
|
104 |
-
"RUNNING","in esecuzione"
|
105 |
-
"COMPLETED","completato con successo"
|
106 |
-
"FAILED","fallito"
|
107 |
-
"TIMED_OUT","in timeout"
|
108 |
-
"RETRY","in attesa di essere nuovamente eseguito"
|
109 |
-
"Error email", "Email di errore"
|
110 |
-
"Enable email", "Abilitazione email di errore"
|
111 |
-
"Sender email", "Email del mittente"
|
112 |
-
"Sender name", "Nome del mittente"
|
113 |
-
"Recipients", "Destinatari"
|
114 |
-
"Use ; delimiter
|
115 |
-
"Email Template", "Template email"
|
116 |
-
"Cron configuration example", "Esempio configurazione Cron"
|
117 |
-
"Error
|
118 |
-
"Enable error
|
119 |
-
"
|
120 |
-
"API Soap service up and running", "Servizio API Soap up and running"
|
121 |
-
"Plugin
|
122 |
-
"
|
123 |
-
"Check unique Keys", "Check integrità tabella UK"
|
124 |
-
"Update unique Keys", "Aggiornamento tabella UK"
|
125 |
-
"Truncate unique Keys", "Reset tabella UK"
|
126 |
-
"Scan templates", "Accodamento email ricorrenti"
|
127 |
-
"Debug an email address", "Test di invio su una mail di test"
|
128 |
-
"Installed version: %s", "Versione installata: %s"
|
129 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"Actions","Azioni"
|
2 |
+
"An error occurred while cancelling task.","C'è stato un errore durante l'annullamento del task."
|
3 |
+
"An error occurred while changing the status %1$s to %2$s.","Errore durante il cambiamento di stato %1$s del task %2$s."
|
4 |
+
"An error occurred while changing the status %s of task nr. %d","Errore durante il cambiamento di stato in "%s" del task nr. %d"
|
5 |
+
"An error occurred while clearing queue.","C'è stato un errore durante la pulizia della coda."
|
6 |
+
"An error occurred while retrying task.","C'è stato un errore durante il reset del task."
|
7 |
+
"An error occurred while running task.","C'è stato un errore durante l'esecuzione del task."
|
8 |
+
"An error occurred while running the task %d","Errore durante l'esecuzione del task %d"
|
9 |
+
"An error occurred while suspending task.","C'è stato un errore durante la sospesione del task."
|
10 |
+
"An error occurred while unsuspending task.","C'è stato un errore durante la ripresa del task."
|
11 |
+
"Are you sure?","Si è sicuri?"
|
12 |
+
"Are you sure to empty log table?","Sicuro di voler svuotare la tabella di log?"
|
13 |
+
"cancelled","Annullato"
|
14 |
+
"Cancel task","Annulla il task"
|
15 |
+
"Cancel task","Annulla task"
|
16 |
+
"Cancel task is not allowed.","Annullamento non consentito."
|
17 |
+
"Cancel tasks","Annulla task"
|
18 |
+
"Clear old tasks","Rimuovi task obsoleti"
|
19 |
+
"Clear queue is not allowed.","Pulizia della coda non consentita."
|
20 |
+
"Clear Queue","Pulisci la coda dei task"
|
21 |
+
"closed","Chiuso"
|
22 |
+
"Code","Codice"
|
23 |
+
"Configuration","Configurazione"
|
24 |
+
"Connection","Connessione"
|
25 |
+
"File Transfer configuration", "Configurazione trasferimento file"
|
26 |
+
"Contactlab","ContactLab"
|
27 |
+
"Created","Creato"
|
28 |
+
"Description","Descrizione"
|
29 |
+
"Delete task","Elimina task"
|
30 |
+
"Enable","Abilita"
|
31 |
+
"Enable debug","Abilita debug"
|
32 |
+
"Enable or disable ContactLab module","Abilita/Disabilita il modulo ContactLab"
|
33 |
+
"Error occured after all retries","Errore dopo tutti i tentativi"
|
34 |
+
"Events","Eventi dei task"
|
35 |
+
"failed","Fallito"
|
36 |
+
"Failed, waiting for a new retry","In attesa di un nuovo tentativo"
|
37 |
+
"General","Generale"
|
38 |
+
"hidden","Nascosto"
|
39 |
+
"Id","Id"
|
40 |
+
"ID","ID"
|
41 |
+
"Local or remote connection","Connessione remota o locale"
|
42 |
+
"Local path for export","Path locale per l'export"
|
43 |
+
"Local path for import","Path locale per l'import"
|
44 |
+
"Local server","Server locale"
|
45 |
+
"Log level","Livello di log"
|
46 |
+
"Logs","Logs del sistema"
|
47 |
+
"new","Nuovo"
|
48 |
+
"New task","Nuovo task"
|
49 |
+
"No","No"
|
50 |
+
"Days before a task is regarded as obsolete","Numero di giorni prima di considerare un task obsoleto"
|
51 |
+
"Planned","Pianificazione"
|
52 |
+
"Remote path for export","Path server remoto per l'export"
|
53 |
+
"Remote path for import","Path server remoto per l'import"
|
54 |
+
"Remote server","Host remoto"
|
55 |
+
"Remote server (SFTP)","Server remoto (SFTP)"
|
56 |
+
"Retries","Tentativi"
|
57 |
+
"Retry is not allowed.","Reset del task non consentito."
|
58 |
+
"Retry","Reset"
|
59 |
+
"Retry","Retry"
|
60 |
+
"Retry tasks","Retry dei task"
|
61 |
+
"running","In esecuzione"
|
62 |
+
"Running","In esecuzione"
|
63 |
+
"Run now","Esegui"
|
64 |
+
"Run task","Esegui task"
|
65 |
+
"Run task is not allowed.","Esecuzione del task non consentito."
|
66 |
+
"Run tasks","Esegui task"
|
67 |
+
"SFTP Password","SFTP Password"
|
68 |
+
"SFTP Username","SFTP Username"
|
69 |
+
"Show as alert","Allarme"
|
70 |
+
"Status","Stato"
|
71 |
+
"Success","Chiuso con successo"
|
72 |
+
"suspended","Sospeso"
|
73 |
+
"Suspend task is not allowed.","Sospensione del task non consentita."
|
74 |
+
"Suspend task","Sospendi"
|
75 |
+
"Suspend task","Sospendi task"
|
76 |
+
"Suspend tasks","Sospendi task"
|
77 |
+
"Task event description","Descrizione dell'evento"
|
78 |
+
"Task Id","Task"
|
79 |
+
"Tasks","Tasks"
|
80 |
+
"Task status","Stato"
|
81 |
+
"Task","Task"
|
82 |
+
"Total of %1$s record(s) have been marked as %2$s.","Lo stato di %1$s record(s) è stato modificato in "%2$s"."
|
83 |
+
"Truncate log table","Svuota la tabella di log"
|
84 |
+
"Type","Tipo"
|
85 |
+
"Unsuspend task is not allowed.","Ripresa dei task non consentita."
|
86 |
+
"Unsuspend task","Riprendi"
|
87 |
+
"Unsuspend task","Riprendi task"
|
88 |
+
"Unsuspend tasks","Riprendi task"
|
89 |
+
"User cancelled execution","L'utente ha annullato l'esecuzione"
|
90 |
+
"User id","Utente"
|
91 |
+
"User suspended execution","L'utente ha sospeso l'esecuzione"
|
92 |
+
"User","Utente"
|
93 |
+
"waiting_for_retry","In attesa"
|
94 |
+
"Yes","Sì"
|
95 |
+
"SOAP options", "Opzioni SOAP"
|
96 |
+
"SOAP configuration", "Configurazione SOAP"
|
97 |
+
"Behavior", "Comportamento"
|
98 |
+
"Enable SOAP calls","Abilita chiamate SOAP a ContactLab"
|
99 |
+
"DataUpdater configuration ID","ID configurazione DataUpdater"
|
100 |
+
"Data exporter config identifier","ID Configurazione Data exporter"
|
101 |
+
"<strong>Subscriber DataExchange is in Status <em>%s</em></stong>","<strong>DataExchange è <em>%s</em></stong>"
|
102 |
+
"<strong>Subscriber DataExchange is in Status <em>%s</em></stong>","<strong>DataExchange è <em>%s</em></stong>"
|
103 |
+
"INREQUEST","inserito ma non ancora preso in carico"
|
104 |
+
"RUNNING","in esecuzione"
|
105 |
+
"COMPLETED","completato con successo"
|
106 |
+
"FAILED","fallito"
|
107 |
+
"TIMED_OUT","in timeout"
|
108 |
+
"RETRY","in attesa di essere nuovamente eseguito"
|
109 |
+
"Error email", "Email di errore"
|
110 |
+
"Enable email", "Abilitazione email di errore"
|
111 |
+
"Sender email", "Email del mittente"
|
112 |
+
"Sender name", "Nome del mittente"
|
113 |
+
"Recipients", "Destinatari"
|
114 |
+
"Use ; as the delimiter to separate recipients.", "Utilizzare il carattere ; per separare destinatari multipli"
|
115 |
+
"Email Template", "Template email"
|
116 |
+
"Cron configuration example", "Esempio configurazione Cron"
|
117 |
+
"Error notification email", "Email di errore"
|
118 |
+
"Enable error notification email", "Abilitazione email di errore"
|
119 |
+
"Recipient email", "Destinatari"
|
120 |
+
"API Soap service up and running", "Servizio API Soap up and running"
|
121 |
+
"Plugin version", "Versione del plugin installata"
|
122 |
+
"Run tasks", "Esecuzione dei task accodati"
|
123 |
+
"Check unique Keys", "Check integrità tabella UK"
|
124 |
+
"Update unique Keys", "Aggiornamento tabella UK"
|
125 |
+
"Truncate unique Keys", "Reset tabella UK"
|
126 |
+
"Scan templates", "Accodamento email ricorrenti"
|
127 |
+
"Debug an email address", "Test di invio su una mail di test"
|
128 |
+
"Installed version: %s", "Versione installata: %s"
|
129 |
+
"Configuration Check", "Check configurazione"
|
130 |
+
"Closed / Hidden", "Chiuso / Nascosto"
|
131 |
+
"hidden/close", "Chiuso / Nascosto"
|
132 |
+
"Enable multi-website subscription", "Abilita iscrizione alla newsletter multi-website"
|
133 |
+
"Enable multi-website newsletter subscription", "Abilita iscrizione alla newsletter multi-website"
|
134 |
+
"Queue status", "Stato coda"
|
135 |
+
"Queue Detail", "Dettagli coda"
|
136 |
+
"Crontab scheduled tasks", "Task schedulati"
|
app/locale/it_IT/contactlab/Contactlab_Subscribers.csv
CHANGED
@@ -1,88 +1,91 @@
|
|
1 |
-
"All subscribers only for the next export","Tutti i subscribers limitatamente alla prossima esportazione"
|
2 |
-
"All values are specified in <strong>minutes</strong>.","Tutti i valori sono da intendersi in <strong>minuti</strong>."
|
3 |
-
"All values are in <strong>
|
4 |
-
"Always all subscribers","Sempre tutti i subscribers"
|
5 |
-
"Always export
|
6 |
-
"
|
7 |
-
"Check UK
|
8 |
-
"Clear statistics","Rimuovi statistiche"
|
9 |
-
"Custom fields","Campi personalizzati"
|
10 |
-
"Enable field 1 (text)","Abilita il campo custom 1<br><strong>Tipo testo</strong>"
|
11 |
-
"Enable field 2 (text)","Abilita il campo custom 2<br><strong>tipo testo</strong>"
|
12 |
-
"Enable field 3 (text)","Abilita il campo custom 3<br><strong>tipo testo</strong>"
|
13 |
-
"Enable field 4 (text)","Abilita il campo custom 4<br><strong>tipo testo</strong>"
|
14 |
-
"Enable field 5 (text)","Abilita il campo custom 5<br><strong>tipo testo</strong>"
|
15 |
-
"Enable field 6 (date/time)","Abilita il campo custom 6<br><strong>tipo data/ora</strong>"
|
16 |
-
"Enable field 7 (date/time)","Abilita il campo custom 7<br><strong>tipo data/ora</strong>"
|
17 |
-
"Enable or disable
|
18 |
-
"Enable import execution after export","Abilita esecuzione Importer dopo l'export"
|
19 |
-
"
|
20 |
-
"
|
21 |
-
"Export billing address","Esporta indirizzo di fatturazione"
|
22 |
-
"Export filename (
|
23 |
-
"Export
|
24 |
-
"Export shipping address","Esporta indirizzo di spedizione"
|
25 |
-
"Export subscribers","Esporta iscritti"
|
26 |
-
"Field 1 name","Nome del campo 1"
|
27 |
-
"Field 2 name","Nome del campo 2"
|
28 |
-
"Field 3 name","Nome del campo 3"
|
29 |
-
"Field 4 name","Nome del campo 4"
|
30 |
-
"Field 5 name","Nome del campo 5"
|
31 |
-
"Field 6 name","Nome del campo 6"
|
32 |
-
"Field 7 name","Nome del campo 7"
|
33 |
-
"Fill statistics","Calcola statistiche"
|
34 |
-
"First period length in days","Lunghezza del primo periodo in giorni"
|
35 |
-
"First period length","Lunghezza del primo periodo"
|
36 |
-
"Import filename (
|
37 |
-
"Interval between export attempts","Intervallo tra tentativi di export"
|
38 |
-
"Interval between import attempts","Intervallo tra tentativi di import"
|
39 |
-
"Interval between StartSubscriberDataExchangeRunner SOAP
|
40 |
-
"Interval between
|
41 |
-
"Interval between
|
42 |
-
"Interval between
|
43 |
-
"Last export
|
44 |
-
"Newsletter subscriber to customer operation","Operazione di iscrizione cliente già subscriber"
|
45 |
-
"Number of export attempts","Numero di tentativi di export"
|
46 |
-
"
|
47 |
-
"Number of StartSubscriberDataExchangeRunner SOAP
|
48 |
-
"Number of
|
49 |
-
"Number of
|
50 |
-
"Total number of
|
51 |
-
"Only modified subscribers since last export","Solo i subscribers modificati dall'ultima esportazione"
|
52 |
-
"Queue parameters","Parametri gestione della coda"
|
53 |
-
"Manage
|
54 |
-
"Queue Subscribers export job","Esporta iscritti"
|
55 |
-
"Queue Subscribers import job","Importa disiscrizioni"
|
56 |
-
"Reset export dates before next export","Annulla la data di export prima del prossimo export"
|
57 |
-
"Second period length in days","Lunghezza del secondo periodo in giorni"
|
58 |
-
"Second period length","Lunghezza del secondo periodo"
|
59 |
-
"Send
|
60 |
-
"Specify
|
61 |
-
"Statistics","Statistiche"
|
62 |
-
"Subscribed flag name","
|
63 |
-
"Subscribers configuration","Configurazione iscritti alla newsletter"
|
64 |
-
"Subscribers","Iscritti alla newsletter"
|
65 |
-
"The fields enabled in this section will be <strong>included</strong> during the subscribers export.","I campi abilitati in questa sezione saranno <strong>inclusi</strong> nell'export dei subscribers."
|
66 |
-
"Delete
|
67 |
-
"Unsubscribe the customer
|
68 |
-
"
|
69 |
-
|
70 |
-
"Magento ⇒ ContactLab Configuration", "Configurazione Magento ⇒ ContactLab"
|
71 |
-
"ContactLab ⇒ Magento Configuration", "Configurazione ContactLab ⇒ Magento"
|
72 |
-
|
73 |
-
"Aggregated fields (Statistics)", "Campi Aggregati (Statistiche)"
|
74 |
-
"
|
75 |
-
"DataExporter
|
76 |
-
"Leave
|
77 |
-
"Are you sure to truncate the UK table?", "Si è sicuri di voler troncare i dati della tabella UK?"
|
78 |
-
"UK table contains ContactLab Identifiers that are associated with Magento Customers and Newsletter Subscribers", "La tabella UK contiene gli ID ContactLab associati ai Customers Magento ed ai Newsletter Subscribers"
|
79 |
-
"Use
|
80 |
-
"Unique keys truncation successfully queued.", "Reset della Tabella UK accodato."
|
81 |
-
"Use this
|
82 |
-
"Use this
|
83 |
-
"Use this
|
84 |
-
"Every reset operation
|
85 |
-
"Queue <strong>statistics update</strong> task", "Accoda manualmente un task di <strong>aggiornamento delle statistiche</strong> da esportare"
|
86 |
-
"Queue <strong>export subscribers</strong> task", "Accoda manualmente un task di <strong>esportazione</strong>"
|
87 |
-
"Queue <strong>import subscribers</strong> task", "Accoda manualmente un task di <strong>importazione</strong>"
|
88 |
-
"Use this panel to manually queue import, export and statistics reset tasks", "Utilizzare le funzioni di questo pannello per<br>accodare manualmente i task di import, export e ricalcolo delle statistiche"
|
|
|
|
|
|
1 |
+
"All subscribers only for the next export","Tutti i subscribers limitatamente alla prossima esportazione"
|
2 |
+
"All time values are specified in <strong>minutes</strong>.","Tutti i valori sono da intendersi in <strong>minuti</strong>."
|
3 |
+
"All time values are specified in <strong>minutes</strong>.","Tutti i valori sono da intendersi in <strong>minuti</strong>."
|
4 |
+
"Always all subscribers","Sempre tutti i subscribers"
|
5 |
+
"Always export non-subscribed users","Esporta sempre anche gli account che non hanno sottoscritto la newsletter"
|
6 |
+
"Note: This can slow down the export process.","Attenzione: il processo di export potrebbe rallentare notevolmente"
|
7 |
+
"Check UK table consistency before every export","Controlla consistenza della tabella UK prima dell'export"
|
8 |
+
"Clear statistics","Rimuovi statistiche"
|
9 |
+
"Custom fields","Campi personalizzati"
|
10 |
+
"Enable field 1 (text)","Abilita il campo custom 1<br><strong>Tipo testo</strong>"
|
11 |
+
"Enable field 2 (text)","Abilita il campo custom 2<br><strong>tipo testo</strong>"
|
12 |
+
"Enable field 3 (text)","Abilita il campo custom 3<br><strong>tipo testo</strong>"
|
13 |
+
"Enable field 4 (text)","Abilita il campo custom 4<br><strong>tipo testo</strong>"
|
14 |
+
"Enable field 5 (text)","Abilita il campo custom 5<br><strong>tipo testo</strong>"
|
15 |
+
"Enable field 6 (date/time)","Abilita il campo custom 6<br><strong>tipo data/ora</strong>"
|
16 |
+
"Enable field 7 (date/time)","Abilita il campo custom 7<br><strong>tipo data/ora</strong>"
|
17 |
+
"Enable or disable ContactLab Subscribers module", "Abilita o disabilita l'esportazione degli iscritti"
|
18 |
+
"Enable import execution after export","Abilita esecuzione Importer dopo l'export"
|
19 |
+
"Receive subscription states using SOAP calls","Abilita chiamata SOAP per la ricezione dello stato iscrizione"
|
20 |
+
"Set subscription states using SOAP calls","Abilita chiamata SOAP per l'impostazione dello stato iscrizione"
|
21 |
+
"Export billing address","Esporta indirizzo di fatturazione"
|
22 |
+
"Export filename (for example: subscribers_{Ymd}.xml)<br>Use {Ymd} syntax to replace the date.<br>The <a href='http://php.net/manual/en/function.date.php'>PHP date() function</a>'s format is used.","Nome del file di export (es, subscribers_{Ymd}.xml)<br>Utilizzare la sintassi {Ymd} per specificare la data corrente.<br>Fare riferimento alla sintassi della <a href='http://php.net/manual/it/function.date.php'>funzione php date()</a>."
|
23 |
+
"Export policy","Modalità di export"
|
24 |
+
"Export shipping address","Esporta indirizzo di spedizione"
|
25 |
+
"Export subscribers","Esporta iscritti"
|
26 |
+
"Field 1 name","Nome del campo 1"
|
27 |
+
"Field 2 name","Nome del campo 2"
|
28 |
+
"Field 3 name","Nome del campo 3"
|
29 |
+
"Field 4 name","Nome del campo 4"
|
30 |
+
"Field 5 name","Nome del campo 5"
|
31 |
+
"Field 6 name","Nome del campo 6"
|
32 |
+
"Field 7 name","Nome del campo 7"
|
33 |
+
"Fill statistics","Calcola statistiche"
|
34 |
+
"First period length in days","Lunghezza del primo periodo in giorni"
|
35 |
+
"First period length","Lunghezza del primo periodo"
|
36 |
+
"Import filename (for example: event_info_{Ymd}.xml)<br>Use {Ymd} syntax to replace the date.<br>The <a href='http://php.net/manual/en/function.date.php'>PHP date() function</a>'s format is used.","Nome del file di import (es, event_info_{Ymd}.xml)<br>Utilizzare la sintassi {Ymd} per specificare la data corrente.<br>Fare riferimento alla sintassi della <a href='http://php.net/manual/it/function.date.php'>funzione php date()</a>."
|
37 |
+
"Interval between export attempts","Intervallo tra tentativi di export"
|
38 |
+
"Interval between import attempts","Intervallo tra tentativi di import"
|
39 |
+
"Interval between StartSubscriberDataExchangeRunner SOAP calls","Intervallo tra tentativi di chiamata SOAP StartSubscriberDataExchangeRunner"
|
40 |
+
"Interval between clear statistics attempts","Intervallo tra tentativi di pulizia delle statistiche"
|
41 |
+
"Interval between fill statistics attempts","Intervallo tra tentativi di calcolo delle statistiche"
|
42 |
+
"Interval between synchronous subscription state update attempts","Intervallo tra successivi tentativi di aggiornamento sincrono stato iscrizione"
|
43 |
+
"Last export date and time","Data ultima esportazione"
|
44 |
+
"Newsletter subscriber to customer operation","Operazione di iscrizione cliente già subscriber"
|
45 |
+
"Number of export attempts","Numero di tentativi di export"
|
46 |
+
"Number of import attempts","Numero di tentativi di import"
|
47 |
+
"Number of StartSubscriberDataExchangeRunner SOAP calls attempts","Numero di tentativi di chiamata SOAP StartSubscriberDataExchangeRunner"
|
48 |
+
"Number of clear statistics attempts","Numero di tentativi di pulizia delle statistiche"
|
49 |
+
"Number of fill statistics attempts","Numero di tentativi di calcolo delle statistiche"
|
50 |
+
"Total number of synchronous subscription state update attempts","Numero di tentativi di aggiornamento sincrono stato iscrizione"
|
51 |
+
"Only modified subscribers since last export","Solo i subscribers modificati dall'ultima esportazione"
|
52 |
+
"Queue parameters","Parametri gestione della coda"
|
53 |
+
"Manage queue", "Opzioni della coda"
|
54 |
+
"Queue Subscribers export job","Esporta iscritti"
|
55 |
+
"Queue Subscribers import job","Importa disiscrizioni"
|
56 |
+
"Reset export dates before next export","Annulla la data di export prima del prossimo export"
|
57 |
+
"Second period length in days","Lunghezza del secondo periodo in giorni"
|
58 |
+
"Second period length","Lunghezza del secondo periodo"
|
59 |
+
"Send unsubscribed notification email","Manda l'email di conferma disiscrizione"
|
60 |
+
"Specify the field that contains the subscription flag in ContactLab database (for example: _cls1).","Specificare qui il nome del campo che contiene il flag di sottoscrizione nel database ContactLab (es. __cls1)."
|
61 |
+
"Statistics","Statistiche"
|
62 |
+
"Subscribed flag name","Nome del campo "__clsX""
|
63 |
+
"Subscribers configuration","Configurazione iscritti alla newsletter"
|
64 |
+
"Subscribers","Iscritti alla newsletter"
|
65 |
+
"The fields enabled in this section will be <strong>included</strong> during the subscribers export.","I campi abilitati in questa sezione saranno <strong>inclusi</strong> nell'export dei subscribers."
|
66 |
+
"Delete subscription if user does not confirm","Togliere iscrizione se l'utente non conferma"
|
67 |
+
"Unsubscribe the customer from the Newsletter if they do not select the subscription checkbox.","Togliere l'iscrizione alla newsletter se l'utente lascia vuota la casella dell'iscrizione in fase di registrazione"
|
68 |
+
"To ensure that all customer statistics are updated in ContactLab, select <strong>All subscribers only for the next export</strong> in the <strong>Export policy</strong> field of the <strong>Magento to ContactLab Configuration > Setup</strong> dialog.","Ricalcolare le <strong>Statistiche clienti</strong> dalla pagina dei <strong>Tasks</strong> dopo aver modificato la lunghezza di uno o di entrambi i periodi. Per garantire che tutte le statistiche vengano esportate durante la prossima esportazione, selezionare il valore <strong>Tutti i subscribers limitatamente alla prossima esportazione</strong> nell'opzione <strong>Modalità di export</strong>"
|
69 |
+
|
70 |
+
"Magento ⇒ ContactLab Configuration", "Configurazione Magento ⇒ ContactLab"
|
71 |
+
"ContactLab ⇒ Magento Configuration", "Configurazione ContactLab ⇒ Magento"
|
72 |
+
|
73 |
+
"Aggregated fields (Statistics)", "Campi Aggregati (Statistiche)"
|
74 |
+
"Server importer path", "Percorso file importazione"
|
75 |
+
"DataExporter configuration ID", "ID Configurazione Data exporter"
|
76 |
+
"Leave blank to use the memory limit of your environment (follow <a href=""http://php.net/manual/en/faq.using.php#faq.using.shorthandbytes"">this link</a> for more about the correct syntax)", "Lasciare vuoto per usare il memory limit di default (fare riferimento a <a href=""http://php.net/manual/en/faq.using.php#faq.using.shorthandbytes"">questa pagina</a> per maggiori informazioni sulla corretta sintassi del parametro)"
|
77 |
+
"Are you sure to truncate the UK table?", "Si è sicuri di voler troncare i dati della tabella UK?"
|
78 |
+
"UK table contains ContactLab Identifiers that are associated with Magento Customers and Newsletter Subscribers", "La tabella UK contiene gli ID ContactLab associati ai Customers Magento ed ai Newsletter Subscribers"
|
79 |
+
"Use this panel to reset, check and update the UK table", "Usare questo pannello per resettare, controllare ed aggiornare la tabella UK"
|
80 |
+
"Unique keys truncation successfully queued.", "Reset della Tabella UK accodato."
|
81 |
+
"Use this to queue a UK table update task.", Usare questa funzionalità per accodare un task di aggiornamento della tabella UK."
|
82 |
+
"Use this to check the integrity of the UK table.<br/>If some errors are found, please queue a UK table update task.", "Usare questa funzionalità per fare un check di integrità della tabella UK. Se sono stati riportati degli errori, accodare un task di aggiornamento della tabella."
|
83 |
+
"Use this to completely remove all the associated UK records.<br/>After this operation, you need to queue a UK table update task.", "Usare questa funzionalità per rimuovere ogni riga dalla tabella UK.<br/>Dopo che questa operazione è stata eseguita, sarà neccesario accodare un task di aggiornamento della tabella."
|
84 |
+
"Every reset operation needs to be agreed with ContactLab customer care.", "Ogni operazione di reset della tabella dovrà essere eseguito solo dopo aver contattato il customer care Contaclab."
|
85 |
+
"Queue <strong>statistics update</strong> task", "Accoda manualmente un task di <strong>aggiornamento delle statistiche</strong> da esportare"
|
86 |
+
"Queue <strong>export subscribers</strong> task", "Accoda manualmente un task di <strong>esportazione</strong>"
|
87 |
+
"Queue <strong>import subscribers</strong> task", "Accoda manualmente un task di <strong>importazione</strong>"
|
88 |
+
"Use this panel to manually queue import, export and statistics reset tasks", "Utilizzare le funzioni di questo pannello per<br>accodare manualmente i task di import, export e ricalcolo delle statistiche"
|
89 |
+
"ContactLab <code>WebFormCode</code>. Multiple comma separated values are also permitted.", "ContactLab <code>WebFormCode</code>. Sono permessi anche valori multipli, separati da virgola."
|
90 |
+
"Only check", "Controlla solamente"
|
91 |
+
"Check and repair", "Controlla e ripara eventuali errori"
|
app/locale/it_IT/contactlab/Contactlab_Template.csv
CHANGED
@@ -1,115 +1,120 @@
|
|
1 |
-
"Template Type Information","Imformazioni sul tipo di template"
|
2 |
-
"Template type name","Nome del tipo di template"
|
3 |
-
"Code of template type","Codice del tipo template"
|
4 |
-
"Is a system defined type","Tipo template di sistema"
|
5 |
-
"Enable for
|
6 |
-
"Default for new templates","Valore di default per i nuovi template"
|
7 |
-
"Back","Indietro"
|
8 |
-
"Reset","Annulla"
|
9 |
-
"Save Template Type","Salva"
|
10 |
-
"Delete Template Type","Elimina"
|
11 |
-
"Edit Template Type","Modifica"
|
12 |
-
"New Template Type","Nuovo"
|
13 |
-
"Create Template Type","Nuovo"
|
14 |
-
"An error occurred while saving this template type.","Errore durante il salvataggio"
|
15 |
-
"Can't delete a system defined template!","Impossibile eliminare un tipo di template di sistema!"
|
16 |
-
"An error occurred while deleting this template type.","Errore durante l'eliminazione"
|
17 |
-
"Activate for
|
18 |
-
"An error occurred while saving this template.","Errore durante il salvataggio del template."
|
19 |
-
"Both HTML and Text/Plain","HTML e Testo"
|
20 |
-
"Cron Information","Informazioni esecuzione in
|
21 |
-
"Default product snippet (1-5)","Snippet prodotto di default"
|
22 |
-
"Default product snippet number","Snippet prodotto di default"
|
23 |
-
"Delete Template Type","Elimina il tipo di template"
|
24 |
-
"Does the template is active for
|
25 |
-
"Email format type","Formato email"
|
26 |
-
"Enabled end date","Data inizio abilitazione"
|
27 |
-
"Enabled start date","Data fine abilitazione"
|
28 |
-
"End date for
|
29 |
-
"HTML only","Solo HTML"
|
30 |
-
"Newsletter Templates Types","Tipi di template"
|
31 |
-
"XML Delivery
|
32 |
-
"Optional queue delay time","Delay di esecuzion (opzionale)"
|
33 |
-
"Product template nr %d (html)","Template prodotto nr %d (html)"
|
34 |
-
"Product template nr %d (text)","Template prodotto nr %d (text)"
|
35 |
-
"Product templates","Template prodotti"
|
36 |
-
"Queue delay time","Ritardo esecuzione in coda"
|
37 |
-
"Start date for
|
38 |
-
"Template (html format)","Template (html)"
|
39 |
-
"Template nr %d for product (html)","Template prodotto nr %d (html)"
|
40 |
-
"Template nr %d for product (text/plain)","Template prodotto nr %d (testo)"
|
41 |
-
"Template Styles","Stile template"
|
42 |
-
"Template (text format)","Template (text)"
|
43 |
-
"Template type","Tipo di template"
|
44 |
-
"Template
|
45 |
-
"
|
46 |
-
"Text
|
47 |
-
"
|
48 |
-
"
|
49 |
-
"
|
50 |
-
"
|
51 |
-
"
|
52 |
-
"
|
53 |
-
"
|
54 |
-
"
|
55 |
-
"
|
56 |
-
"
|
57 |
-
"
|
58 |
-
"
|
59 |
-
"Cart
|
60 |
-
"
|
61 |
-
"
|
62 |
-
"
|
63 |
-
|
64 |
-
|
65 |
-
"
|
66 |
-
"
|
67 |
-
"Wishlist
|
68 |
-
"Wishlist
|
69 |
-
"Wishlist
|
70 |
-
"
|
71 |
-
|
72 |
-
|
73 |
-
"
|
74 |
-
"API Authentication
|
75 |
-
"
|
76 |
-
"
|
77 |
-
"
|
78 |
-
"
|
79 |
-
"
|
80 |
-
"
|
81 |
-
|
82 |
-
|
83 |
-
"
|
84 |
-
|
85 |
-
|
86 |
-
"
|
87 |
-
|
88 |
-
|
89 |
-
"
|
90 |
-
"
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
"
|
96 |
-
"
|
97 |
-
"
|
98 |
-
"
|
99 |
-
"
|
100 |
-
|
101 |
-
|
102 |
-
"Send
|
103 |
-
"Send
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
"
|
109 |
-
"
|
110 |
-
|
111 |
-
|
112 |
-
"Recurring Email —
|
113 |
-
|
114 |
-
|
115 |
-
"
|
|
|
|
|
|
|
|
|
|
1 |
+
"Template Type Information","Imformazioni sul tipo di template"
|
2 |
+
"Template type name","Nome del tipo di template"
|
3 |
+
"Code of template type","Codice del tipo template"
|
4 |
+
"Is a system defined type","Tipo template di sistema"
|
5 |
+
"Enable for Cron execution","Abilita all'esecuzione in Cron"
|
6 |
+
"Default for new templates","Valore di default per i nuovi template"
|
7 |
+
"Back","Indietro"
|
8 |
+
"Reset","Annulla"
|
9 |
+
"Save Template Type","Salva"
|
10 |
+
"Delete Template Type","Elimina"
|
11 |
+
"Edit Template Type","Modifica"
|
12 |
+
"New Template Type","Nuovo"
|
13 |
+
"Create Template Type","Nuovo"
|
14 |
+
"An error occurred while saving this template type.","Errore durante il salvataggio"
|
15 |
+
"Can't delete a system defined template!","Impossibile eliminare un tipo di template di sistema!"
|
16 |
+
"An error occurred while deleting this template type.","Errore durante l'eliminazione"
|
17 |
+
"Activate for Cron execution","Abilita esecuzione in Cron"
|
18 |
+
"An error occurred while saving this template.","Errore durante il salvataggio del template."
|
19 |
+
"Both HTML and Text/Plain","HTML e Testo"
|
20 |
+
"Cron Information","Informazioni esecuzione in Cron"
|
21 |
+
"Default product snippet (1-5)","Snippet prodotto di default"
|
22 |
+
"Default product snippet number","Snippet prodotto di default"
|
23 |
+
"Delete Template Type","Elimina il tipo di template"
|
24 |
+
"Does the template is active for Cron?","Questo tipo di template è attivo per l'esecuzione in Cron?"
|
25 |
+
"Email format type","Formato email"
|
26 |
+
"Enabled end date","Data inizio abilitazione"
|
27 |
+
"Enabled start date","Data fine abilitazione"
|
28 |
+
"End date for Cron","Data fine per l'esecuzione in Cron"
|
29 |
+
"HTML only","Solo HTML"
|
30 |
+
"Newsletter Templates Types","Tipi di template"
|
31 |
+
"XML Delivery queue", "Coda XML Delivery"
|
32 |
+
"Optional queue delay time","Delay di esecuzion (opzionale)"
|
33 |
+
"Product template nr %d (html)","Template prodotto nr %d (html)"
|
34 |
+
"Product template nr %d (text)","Template prodotto nr %d (text)"
|
35 |
+
"Product templates","Template prodotti"
|
36 |
+
"Queue delay time","Ritardo esecuzione in coda"
|
37 |
+
"Start date for Cron","Data inizio per l'esecuzione in Cron"
|
38 |
+
"Template (html format)","Template (html)"
|
39 |
+
"Template nr %d for product (html)","Template prodotto nr %d (html)"
|
40 |
+
"Template nr %d for product (text/plain)","Template prodotto nr %d (testo)"
|
41 |
+
"Template Styles","Stile template"
|
42 |
+
"Template (text format)","Template (text)"
|
43 |
+
"Template type","Tipo di template"
|
44 |
+
"Template Type","Tipo di template"
|
45 |
+
"Template Types","Tipi di template"
|
46 |
+
"Text, html or both","Testo, HTML o entrambi"
|
47 |
+
"Text/Plain only","Solo testo"
|
48 |
+
"Use XML Delivery","Abilita XMLDelivery"
|
49 |
+
"Templates configuration","Configurazione template"
|
50 |
+
"DND period length","Periodo DND"
|
51 |
+
"DND max mail number","Numero di email DND"
|
52 |
+
"Do not disturb values","Impostazioni politiche di non disturbo (DND)"
|
53 |
+
"Enable Cron to send from this store", "Abilitare invio in Cron per questo Store"
|
54 |
+
"Test recipients", "Indirizzi email di test"
|
55 |
+
"Abandoned cart","Carrello abbandonato"
|
56 |
+
"Enable Abandoned Cart","Abilita invio Abandoned Cart"
|
57 |
+
"Minimum number of minutes before sending an Abandoned Cart email","Numero minimo di minuti perché un carrello sia considerato <em>abbandonato</em>"
|
58 |
+
"Maximum number of minutes before sending an Abandoned Cart email","Numero massimo di minuti perché un carrello sia considerato <em>abbandonato</em>"
|
59 |
+
"Cart minimum value","Valore minimo del carrello"
|
60 |
+
"Cart maximum value","Valore massimo del carrello"
|
61 |
+
"Minimum number of products in cart","Numero di prodotti minimo nel carrello"
|
62 |
+
"Maximum number of products in cart","Numero di prodotti massimo nel carrello"
|
63 |
+
"And/or condition values","Considerare le condizioni numero/valore in and/or?"
|
64 |
+
|
65 |
+
"Enable Wishlist Reminder","Abilita invio Wishlist Reminder"
|
66 |
+
"Minimum number of minutes before sending a Wishlist Reminder email","Numero minimo di minuti per considerare una wishlist nell'invio dell'email"
|
67 |
+
"Maximum number of minutes before sending a Wishlist Reminder email","Numero massimo di minuti per considerare una wishlist nell'invio dell'email"
|
68 |
+
"Wishlist minimum value","Valore minimo wishlist"
|
69 |
+
"Wishlist maximum value","Valore massimo wishlist"
|
70 |
+
"Minimum number of items in wishlist","Numero minimo di prodotti in wishlist"
|
71 |
+
"Maximum number of items in wishlist","Numero massimo di prodotti in wishlist"
|
72 |
+
|
73 |
+
"XML Delivery parameters", "Parametri XML Delivery"
|
74 |
+
"API Authentication UID", "UID Autenticazione API"
|
75 |
+
"API Authentication key", "Chiave Autenticazione API"
|
76 |
+
"Delivery method", "Metodo di delivery"
|
77 |
+
"Email group ID", "ID Gruppo email"
|
78 |
+
"Interval between send attempts", "Intervallo tra tentativi di invio"
|
79 |
+
"Number of send attempts", "Numero di tentativi di invio"
|
80 |
+
"Interval between check attempts", "Intervallo tra check report invio"
|
81 |
+
"Number of check attempts", "Numero di tentativi di check report invio"
|
82 |
+
|
83 |
+
"Automatic", "Automatico"
|
84 |
+
"Manual", "Manuale"
|
85 |
+
|
86 |
+
"Send to test recipients","Invio di test"
|
87 |
+
"Product image size (width x height)","Dimensione immagine prodotti (larghezza x altezza)"
|
88 |
+
|
89 |
+
"Generic email campaign","Campagna di email generica"
|
90 |
+
"Enable generic campaign email","Abilita invio campagne generiche"
|
91 |
+
"Recurring Email","Email ricorrenti"
|
92 |
+
|
93 |
+
"Customer filter options", "Opzioni di selezione dei destinatari"
|
94 |
+
|
95 |
+
"Minimum number of minutes", "Numero minimo di minuti"
|
96 |
+
"Maximum number of minutes", "Numero massimo di minuti"
|
97 |
+
"Minimum value", "Valore minimo"
|
98 |
+
"Maximum value", "Valore massimo"
|
99 |
+
"Minimum number of products", "Numero minimo di prodotti"
|
100 |
+
"Maximum number of products", "Numero massimo di prodotti"
|
101 |
+
|
102 |
+
"Send generic campaign to non-subscribed customers", "Invia campagne generiche ai clienti non iscritti alla newsletter"
|
103 |
+
"Send Abandoned Cart email to non-subscribed customers", "Invia il Carrello Abbandonato ai clienti non iscritti"
|
104 |
+
"Send Wishlist Reminder email to non-subscribed customers", "Invia la Wishlist Reminder ai clienti non iscritti"
|
105 |
+
|
106 |
+
|
107 |
+
|
108 |
+
"Priority", "Priorità"
|
109 |
+
"Content Type", "Tipo di contenuto"
|
110 |
+
"XML Delivery Status", "Stato XML Delivery"
|
111 |
+
|
112 |
+
"Recurring Email — Abandoned Cart", "Email ricorrenti — Carrello Abbandonato"
|
113 |
+
"Recurring Email — Wishlist Reminder", "Email ricorrenti — Wishlist Reminder"
|
114 |
+
|
115 |
+
"Show all", "Mostra tutti"
|
116 |
+
"Hide", "Nascondi"
|
117 |
+
"Show full XML Delivery status information for this template","Dettaglio dello stato XML Delivery per questo template"
|
118 |
+
"Full XML Delivery status","Dettaglio XML Delivery"
|
119 |
+
"Any", "Tutti"
|
120 |
+
"Use ; as the delimiter to separate recipients.", "Utilizzare il carattere ; per separare destinatari multipli"
|
app/locale/it_IT/contactlab/Contactlab_Transactional.csv
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
"Interval between email send attempts","Intervallo tra tentativi di invio email"
|
2 |
-
"
|
3 |
-
"Transactional emails","Email transazionali"
|
4 |
-
"Transactional email configuration","Configurazione email transazionali"
|
5 |
-
"Enable or disable
|
6 |
-
"Configure default values", "Configura valori di default"
|
7 |
-
"Configure", "Configura"
|
1 |
+
"Interval between email send attempts","Intervallo tra tentativi di invio email"
|
2 |
+
"Number of email send attempts","Numero di tentativi di invio email"
|
3 |
+
"Transactional emails","Email transazionali"
|
4 |
+
"Transactional email configuration","Configurazione email transazionali"
|
5 |
+
"Enable or disable ContactLab Transactional emails module.","Abilita o disabilita il modulo Contactlab Transactional Emails"
|
6 |
+
"Configure default values", "Configura valori di default"
|
7 |
+
"Configure", "Configura"
|
js/contactlab_commons/adminhtml/tasks.js
CHANGED
@@ -1,82 +1,82 @@
|
|
1 |
-
/** Ajax task update manager. */
|
2 |
-
|
3 |
-
/*global jQuery,alert*/
|
4 |
-
|
5 |
-
var ContactLabTaskUpdateManager = function () {
|
6 |
-
// my and that
|
7 |
-
var my = {}, that = {};
|
8 |
-
|
9 |
-
// Init.
|
10 |
-
my.init = function () {
|
11 |
-
Event.observe(document, 'dom:loaded', my.onLoad);
|
12 |
-
};
|
13 |
-
|
14 |
-
// Onload.
|
15 |
-
my.onLoad = function () {
|
16 |
-
var tasks = $$('span.task-status-running, span.task-status-new');
|
17 |
-
if (tasks) {
|
18 |
-
new PeriodicalExecuter(function (pe) {
|
19 |
-
my.updateTasks(tasks);
|
20 |
-
}, 5);
|
21 |
-
}
|
22 |
-
};
|
23 |
-
|
24 |
-
my.updateTasks = function (tasks) {
|
25 |
-
var ids = [];
|
26 |
-
tasks.each(function (el) {
|
27 |
-
var id = parseInt(el.id.replace(/[a-z-]*/, ''));
|
28 |
-
if (id) {
|
29 |
-
ids.push(id);
|
30 |
-
}
|
31 |
-
});
|
32 |
-
var sf = JSON.stringify(ids).replace(/"/g, '');
|
33 |
-
new Ajax.Request(my.urls.getStatus, {
|
34 |
-
method: 'post',
|
35 |
-
parameters: 'ids=' + sf,
|
36 |
-
loaderArea: false,
|
37 |
-
onSuccess: function(response) {
|
38 |
-
my.updateTasksSuccess(JSON.parse(response.responseText));
|
39 |
-
}
|
40 |
-
});
|
41 |
-
};
|
42 |
-
|
43 |
-
my.updateTasksSuccess = function (tasks) {
|
44 |
-
tasks.each(function(item) {
|
45 |
-
$(item.id).replace(item.html);
|
46 |
-
$(item.id2).replace(item.statusHtml);
|
47 |
-
$(item.id3).replace(item.actionsHtml);
|
48 |
-
});
|
49 |
-
};
|
50 |
-
|
51 |
-
// Set urls
|
52 |
-
that.setUrls = function (urls) {
|
53 |
-
my.urls = urls;
|
54 |
-
};
|
55 |
-
|
56 |
-
that.setRequestStatusUrl = function (url) {
|
57 |
-
my.updateRequestStatusUrl = url;
|
58 |
-
|
59 |
-
$$('#task_id .pager')[0].insert('<div style="display: inline-block; margin-left: 50px" id="get-subscriber-data-exchange-status"/>');
|
60 |
-
|
61 |
-
new PeriodicalExecuter(my.updateRequestStatus, 20);
|
62 |
-
my.updateRequestStatus();
|
63 |
-
};
|
64 |
-
|
65 |
-
my.updateRequestStatus = function () {
|
66 |
-
new Ajax.Request(my.updateRequestStatusUrl, {
|
67 |
-
loaderArea: false,
|
68 |
-
onSuccess: my.doUpdateRequestStatus
|
69 |
-
});
|
70 |
-
};
|
71 |
-
|
72 |
-
my.doUpdateRequestStatus = function (response) {
|
73 |
-
response = JSON.parse(response.responseText);
|
74 |
-
$('get-subscriber-data-exchange-status').innerHTML = response.label;
|
75 |
-
};
|
76 |
-
|
77 |
-
// Calls init.
|
78 |
-
my.init();
|
79 |
-
|
80 |
-
return that;
|
81 |
-
};
|
82 |
-
|
1 |
+
/** Ajax task update manager. */
|
2 |
+
|
3 |
+
/*global jQuery,alert*/
|
4 |
+
|
5 |
+
var ContactLabTaskUpdateManager = function () {
|
6 |
+
// my and that
|
7 |
+
var my = {}, that = {};
|
8 |
+
|
9 |
+
// Init.
|
10 |
+
my.init = function () {
|
11 |
+
Event.observe(document, 'dom:loaded', my.onLoad);
|
12 |
+
};
|
13 |
+
|
14 |
+
// Onload.
|
15 |
+
my.onLoad = function () {
|
16 |
+
var tasks = $$('span.task-status-running, span.task-status-new');
|
17 |
+
if (tasks) {
|
18 |
+
new PeriodicalExecuter(function (pe) {
|
19 |
+
my.updateTasks(tasks);
|
20 |
+
}, 5);
|
21 |
+
}
|
22 |
+
};
|
23 |
+
|
24 |
+
my.updateTasks = function (tasks) {
|
25 |
+
var ids = [];
|
26 |
+
tasks.each(function (el) {
|
27 |
+
var id = parseInt(el.id.replace(/[a-z-]*/, ''));
|
28 |
+
if (id) {
|
29 |
+
ids.push(id);
|
30 |
+
}
|
31 |
+
});
|
32 |
+
var sf = JSON.stringify(ids).replace(/"/g, '');
|
33 |
+
new Ajax.Request(my.urls.getStatus, {
|
34 |
+
method: 'post',
|
35 |
+
parameters: 'ids=' + sf,
|
36 |
+
loaderArea: false,
|
37 |
+
onSuccess: function(response) {
|
38 |
+
my.updateTasksSuccess(JSON.parse(response.responseText));
|
39 |
+
}
|
40 |
+
});
|
41 |
+
};
|
42 |
+
|
43 |
+
my.updateTasksSuccess = function (tasks) {
|
44 |
+
tasks.each(function(item) {
|
45 |
+
$(item.id).replace(item.html);
|
46 |
+
$(item.id2).replace(item.statusHtml);
|
47 |
+
$(item.id3).replace(item.actionsHtml);
|
48 |
+
});
|
49 |
+
};
|
50 |
+
|
51 |
+
// Set urls
|
52 |
+
that.setUrls = function (urls) {
|
53 |
+
my.urls = urls;
|
54 |
+
};
|
55 |
+
|
56 |
+
that.setRequestStatusUrl = function (url) {
|
57 |
+
my.updateRequestStatusUrl = url;
|
58 |
+
|
59 |
+
$$('#task_id .pager')[0].insert('<div style="display: inline-block; margin-left: 50px" id="get-subscriber-data-exchange-status"/>');
|
60 |
+
|
61 |
+
new PeriodicalExecuter(my.updateRequestStatus, 20);
|
62 |
+
my.updateRequestStatus();
|
63 |
+
};
|
64 |
+
|
65 |
+
my.updateRequestStatus = function () {
|
66 |
+
new Ajax.Request(my.updateRequestStatusUrl, {
|
67 |
+
loaderArea: false,
|
68 |
+
onSuccess: my.doUpdateRequestStatus
|
69 |
+
});
|
70 |
+
};
|
71 |
+
|
72 |
+
my.doUpdateRequestStatus = function (response) {
|
73 |
+
response = JSON.parse(response.responseText);
|
74 |
+
$('get-subscriber-data-exchange-status').innerHTML = response.label;
|
75 |
+
};
|
76 |
+
|
77 |
+
// Calls init.
|
78 |
+
my.init();
|
79 |
+
|
80 |
+
return that;
|
81 |
+
};
|
82 |
+
|
lib/contactlab/Attachment.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Attachment
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $name
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $name;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var MimeType $mimeType
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $mimeType;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var base64Binary $content
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $content;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Attachment
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $name
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $name;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var MimeType $mimeType
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $mimeType;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var base64Binary $content
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $content;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/AuthToken.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class AuthToken
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $content
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $content;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class AuthToken
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $content
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $content;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/BounceDetail.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class BounceDetail
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $code
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $code;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $description
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $description;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $count
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $count;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class BounceDetail
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $code
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $code;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $description
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $description;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $count
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $count;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/Campaign.php
CHANGED
@@ -1,90 +1,90 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Campaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $name
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $name;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $alias
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $alias;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Message $message
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $message;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var CampaignType $modifier
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $modifier;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var boolean $isDeferred
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $isDeferred;
|
47 |
-
|
48 |
-
/**
|
49 |
-
*
|
50 |
-
* @var dateTime $deferredTo
|
51 |
-
* @access public
|
52 |
-
*/
|
53 |
-
public $deferredTo;
|
54 |
-
|
55 |
-
/**
|
56 |
-
*
|
57 |
-
* @var dateTime $startDate
|
58 |
-
* @access public
|
59 |
-
*/
|
60 |
-
public $startDate;
|
61 |
-
|
62 |
-
/**
|
63 |
-
*
|
64 |
-
* @var dateTime $endDate
|
65 |
-
* @access public
|
66 |
-
*/
|
67 |
-
public $endDate;
|
68 |
-
|
69 |
-
/**
|
70 |
-
*
|
71 |
-
* @var boolean $executeTestRender
|
72 |
-
* @access public
|
73 |
-
*/
|
74 |
-
public $executeTestRender;
|
75 |
-
|
76 |
-
/**
|
77 |
-
*
|
78 |
-
* @var int $parentId
|
79 |
-
* @access public
|
80 |
-
*/
|
81 |
-
public $parentId;
|
82 |
-
|
83 |
-
/**
|
84 |
-
*
|
85 |
-
* @var deliveryRoleType $roleType
|
86 |
-
* @access public
|
87 |
-
*/
|
88 |
-
public $roleType;
|
89 |
-
|
90 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Campaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $name
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $name;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $alias
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $alias;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Message $message
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $message;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var CampaignType $modifier
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $modifier;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var boolean $isDeferred
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $isDeferred;
|
47 |
+
|
48 |
+
/**
|
49 |
+
*
|
50 |
+
* @var dateTime $deferredTo
|
51 |
+
* @access public
|
52 |
+
*/
|
53 |
+
public $deferredTo;
|
54 |
+
|
55 |
+
/**
|
56 |
+
*
|
57 |
+
* @var dateTime $startDate
|
58 |
+
* @access public
|
59 |
+
*/
|
60 |
+
public $startDate;
|
61 |
+
|
62 |
+
/**
|
63 |
+
*
|
64 |
+
* @var dateTime $endDate
|
65 |
+
* @access public
|
66 |
+
*/
|
67 |
+
public $endDate;
|
68 |
+
|
69 |
+
/**
|
70 |
+
*
|
71 |
+
* @var boolean $executeTestRender
|
72 |
+
* @access public
|
73 |
+
*/
|
74 |
+
public $executeTestRender;
|
75 |
+
|
76 |
+
/**
|
77 |
+
*
|
78 |
+
* @var int $parentId
|
79 |
+
* @access public
|
80 |
+
*/
|
81 |
+
public $parentId;
|
82 |
+
|
83 |
+
/**
|
84 |
+
*
|
85 |
+
* @var deliveryRoleType $roleType
|
86 |
+
* @access public
|
87 |
+
*/
|
88 |
+
public $roleType;
|
89 |
+
|
90 |
+
}
|
lib/contactlab/CampaignFeedback.php
CHANGED
@@ -1,174 +1,174 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class CampaignFeedback
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $campaignIdentifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $campaignIdentifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignSize
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignSize;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $views
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $views;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var int $uniqueViews
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $uniqueViews;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var int $hiddenViews
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $hiddenViews;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var int $webMailViews
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $webMailViews;
|
47 |
-
|
48 |
-
/**
|
49 |
-
*
|
50 |
-
* @var int $clicks
|
51 |
-
* @access public
|
52 |
-
*/
|
53 |
-
public $clicks;
|
54 |
-
|
55 |
-
/**
|
56 |
-
*
|
57 |
-
* @var int $uniqueClicks
|
58 |
-
* @access public
|
59 |
-
*/
|
60 |
-
public $uniqueClicks;
|
61 |
-
|
62 |
-
/**
|
63 |
-
*
|
64 |
-
* @var int $bounces
|
65 |
-
* @access public
|
66 |
-
*/
|
67 |
-
public $bounces;
|
68 |
-
|
69 |
-
/**
|
70 |
-
*
|
71 |
-
* @var int $fblComplaints
|
72 |
-
* @access public
|
73 |
-
*/
|
74 |
-
public $fblComplaints;
|
75 |
-
|
76 |
-
/**
|
77 |
-
*
|
78 |
-
* @var int $tafClicks
|
79 |
-
* @access public
|
80 |
-
*/
|
81 |
-
public $tafClicks;
|
82 |
-
|
83 |
-
/**
|
84 |
-
*
|
85 |
-
* @var int $uniqueTafClicks
|
86 |
-
* @access public
|
87 |
-
*/
|
88 |
-
public $uniqueTafClicks;
|
89 |
-
|
90 |
-
/**
|
91 |
-
*
|
92 |
-
* @var int $blacklistMatches
|
93 |
-
* @access public
|
94 |
-
*/
|
95 |
-
public $blacklistMatches;
|
96 |
-
|
97 |
-
/**
|
98 |
-
*
|
99 |
-
* @var int $listunsubscribe
|
100 |
-
* @access public
|
101 |
-
*/
|
102 |
-
public $listunsubscribe;
|
103 |
-
|
104 |
-
/**
|
105 |
-
*
|
106 |
-
* @var int $delivered
|
107 |
-
* @access public
|
108 |
-
*/
|
109 |
-
public $delivered;
|
110 |
-
|
111 |
-
/**
|
112 |
-
*
|
113 |
-
* @var int $cancelled
|
114 |
-
* @access public
|
115 |
-
*/
|
116 |
-
public $cancelled;
|
117 |
-
|
118 |
-
/**
|
119 |
-
*
|
120 |
-
* @var int $temporaryBlacklistMatches
|
121 |
-
* @access public
|
122 |
-
*/
|
123 |
-
public $temporaryBlacklistMatches;
|
124 |
-
|
125 |
-
/**
|
126 |
-
*
|
127 |
-
* @var int $errors
|
128 |
-
* @access public
|
129 |
-
*/
|
130 |
-
public $errors;
|
131 |
-
|
132 |
-
/**
|
133 |
-
*
|
134 |
-
* @var int $unsubscribed
|
135 |
-
* @access public
|
136 |
-
*/
|
137 |
-
public $unsubscribed;
|
138 |
-
|
139 |
-
/**
|
140 |
-
*
|
141 |
-
* @var int $updates
|
142 |
-
* @access public
|
143 |
-
*/
|
144 |
-
public $updates;
|
145 |
-
|
146 |
-
/**
|
147 |
-
*
|
148 |
-
* @var int $temporaryBlacklisted
|
149 |
-
* @access public
|
150 |
-
*/
|
151 |
-
public $temporaryBlacklisted;
|
152 |
-
|
153 |
-
/**
|
154 |
-
*
|
155 |
-
* @var int $blacklisted
|
156 |
-
* @access public
|
157 |
-
*/
|
158 |
-
public $blacklisted;
|
159 |
-
|
160 |
-
/**
|
161 |
-
*
|
162 |
-
* @var TrackedLink $trackingDetails
|
163 |
-
* @access public
|
164 |
-
*/
|
165 |
-
public $trackingDetails;
|
166 |
-
|
167 |
-
/**
|
168 |
-
*
|
169 |
-
* @var BounceDetail $bounceDetails
|
170 |
-
* @access public
|
171 |
-
*/
|
172 |
-
public $bounceDetails;
|
173 |
-
|
174 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CampaignFeedback
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $campaignIdentifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $campaignIdentifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignSize
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignSize;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $views
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $views;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var int $uniqueViews
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $uniqueViews;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var int $hiddenViews
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $hiddenViews;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var int $webMailViews
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $webMailViews;
|
47 |
+
|
48 |
+
/**
|
49 |
+
*
|
50 |
+
* @var int $clicks
|
51 |
+
* @access public
|
52 |
+
*/
|
53 |
+
public $clicks;
|
54 |
+
|
55 |
+
/**
|
56 |
+
*
|
57 |
+
* @var int $uniqueClicks
|
58 |
+
* @access public
|
59 |
+
*/
|
60 |
+
public $uniqueClicks;
|
61 |
+
|
62 |
+
/**
|
63 |
+
*
|
64 |
+
* @var int $bounces
|
65 |
+
* @access public
|
66 |
+
*/
|
67 |
+
public $bounces;
|
68 |
+
|
69 |
+
/**
|
70 |
+
*
|
71 |
+
* @var int $fblComplaints
|
72 |
+
* @access public
|
73 |
+
*/
|
74 |
+
public $fblComplaints;
|
75 |
+
|
76 |
+
/**
|
77 |
+
*
|
78 |
+
* @var int $tafClicks
|
79 |
+
* @access public
|
80 |
+
*/
|
81 |
+
public $tafClicks;
|
82 |
+
|
83 |
+
/**
|
84 |
+
*
|
85 |
+
* @var int $uniqueTafClicks
|
86 |
+
* @access public
|
87 |
+
*/
|
88 |
+
public $uniqueTafClicks;
|
89 |
+
|
90 |
+
/**
|
91 |
+
*
|
92 |
+
* @var int $blacklistMatches
|
93 |
+
* @access public
|
94 |
+
*/
|
95 |
+
public $blacklistMatches;
|
96 |
+
|
97 |
+
/**
|
98 |
+
*
|
99 |
+
* @var int $listunsubscribe
|
100 |
+
* @access public
|
101 |
+
*/
|
102 |
+
public $listunsubscribe;
|
103 |
+
|
104 |
+
/**
|
105 |
+
*
|
106 |
+
* @var int $delivered
|
107 |
+
* @access public
|
108 |
+
*/
|
109 |
+
public $delivered;
|
110 |
+
|
111 |
+
/**
|
112 |
+
*
|
113 |
+
* @var int $cancelled
|
114 |
+
* @access public
|
115 |
+
*/
|
116 |
+
public $cancelled;
|
117 |
+
|
118 |
+
/**
|
119 |
+
*
|
120 |
+
* @var int $temporaryBlacklistMatches
|
121 |
+
* @access public
|
122 |
+
*/
|
123 |
+
public $temporaryBlacklistMatches;
|
124 |
+
|
125 |
+
/**
|
126 |
+
*
|
127 |
+
* @var int $errors
|
128 |
+
* @access public
|
129 |
+
*/
|
130 |
+
public $errors;
|
131 |
+
|
132 |
+
/**
|
133 |
+
*
|
134 |
+
* @var int $unsubscribed
|
135 |
+
* @access public
|
136 |
+
*/
|
137 |
+
public $unsubscribed;
|
138 |
+
|
139 |
+
/**
|
140 |
+
*
|
141 |
+
* @var int $updates
|
142 |
+
* @access public
|
143 |
+
*/
|
144 |
+
public $updates;
|
145 |
+
|
146 |
+
/**
|
147 |
+
*
|
148 |
+
* @var int $temporaryBlacklisted
|
149 |
+
* @access public
|
150 |
+
*/
|
151 |
+
public $temporaryBlacklisted;
|
152 |
+
|
153 |
+
/**
|
154 |
+
*
|
155 |
+
* @var int $blacklisted
|
156 |
+
* @access public
|
157 |
+
*/
|
158 |
+
public $blacklisted;
|
159 |
+
|
160 |
+
/**
|
161 |
+
*
|
162 |
+
* @var TrackedLink $trackingDetails
|
163 |
+
* @access public
|
164 |
+
*/
|
165 |
+
public $trackingDetails;
|
166 |
+
|
167 |
+
/**
|
168 |
+
*
|
169 |
+
* @var BounceDetail $bounceDetails
|
170 |
+
* @access public
|
171 |
+
*/
|
172 |
+
public $bounceDetails;
|
173 |
+
|
174 |
+
}
|
lib/contactlab/CampaignLookupPreferences.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('LookupPreferences.php');
|
4 |
-
|
5 |
-
class CampaignLookupPreferences extends LookupPreferences
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var CampaignSortingOption $sortingBy
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $sortingBy;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('LookupPreferences.php');
|
4 |
+
|
5 |
+
class CampaignLookupPreferences extends LookupPreferences
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var CampaignSortingOption $sortingBy
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $sortingBy;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/CampaignNote.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class CampaignNote
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $name
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $name;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $content
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $content;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CampaignNote
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $name
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $name;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $content
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $content;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/CampaignNotes.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class CampaignNotes extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var CampaignNote $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class CampaignNotes extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var CampaignNote $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/Campaigns.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class Campaigns extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var Campaign $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class Campaigns extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var Campaign $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/ClabService.php
CHANGED
@@ -1,1128 +1,1128 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('AuthToken.php');
|
4 |
-
include_once('CommunicationCategory.php');
|
5 |
-
include_once('SubscriberSourceFilter.php');
|
6 |
-
include_once('LookupPreferences.php');
|
7 |
-
include_once('CampaignLookupPreferences.php');
|
8 |
-
include_once('XMLDeliveryInfos.php');
|
9 |
-
include_once('SlicedDataSet.php');
|
10 |
-
include_once('Campaigns.php');
|
11 |
-
include_once('Campaign.php');
|
12 |
-
include_once('Message.php');
|
13 |
-
include_once('Recipients.php');
|
14 |
-
include_once('Sender.php');
|
15 |
-
include_once('TextMessage.php');
|
16 |
-
include_once('EmailMessage.php');
|
17 |
-
include_once('FaxMessage.php');
|
18 |
-
include_once('SubscriberSources.php');
|
19 |
-
include_once('SubscriberSource.php');
|
20 |
-
include_once('SubscriberSourceField.php');
|
21 |
-
include_once('MessageModels.php');
|
22 |
-
include_once('SubscriberSourceFilters.php');
|
23 |
-
include_once('CampaignNotes.php');
|
24 |
-
include_once('CampaignNote.php');
|
25 |
-
include_once('TrackedLinks.php');
|
26 |
-
include_once('TrackedLink.php');
|
27 |
-
include_once('Subscribers.php');
|
28 |
-
include_once('Subscriber.php');
|
29 |
-
include_once('SubscriberAttribute.php');
|
30 |
-
include_once('Attachment.php');
|
31 |
-
include_once('CampaignFeedback.php');
|
32 |
-
include_once('BounceDetail.php');
|
33 |
-
include_once('keepaliveToken.php');
|
34 |
-
include_once('keepaliveTokenResponse.php');
|
35 |
-
include_once('triggerDeliveryByAlias.php');
|
36 |
-
include_once('triggerDeliveryByAliasResponse.php');
|
37 |
-
include_once('getAvailableCommunicationCategories.php');
|
38 |
-
include_once('getAvailableCommunicationCategoriesResponse.php');
|
39 |
-
include_once('addSubscriberSourceFilter.php');
|
40 |
-
include_once('addSubscriberSourceFilterResponse.php');
|
41 |
-
include_once('getArchivedSubscriberSourceFilter.php');
|
42 |
-
include_once('getArchivedSubscriberSourceFilterResponse.php');
|
43 |
-
include_once('getXMLDeliveries.php');
|
44 |
-
include_once('getXMLDeliveriesResponse.php');
|
45 |
-
include_once('xmlDeliveryInfo.php');
|
46 |
-
include_once('sendCampaign.php');
|
47 |
-
include_once('sendCampaignResponse.php');
|
48 |
-
include_once('findCampaignsSentBetween.php');
|
49 |
-
include_once('findCampaignsSentBetweenResponse.php');
|
50 |
-
include_once('countSubscribers.php');
|
51 |
-
include_once('countSubscribersResponse.php');
|
52 |
-
include_once('sendImmediateMessageSdataCAlCA.php');
|
53 |
-
include_once('sendImmediateMessageSdataCAlCAResponse.php');
|
54 |
-
include_once('getXMLDeliveryTransitions.php');
|
55 |
-
include_once('getXMLDeliveryTransitionsResponse.php');
|
56 |
-
include_once('xmlDeliveryTransitionInfo.php');
|
57 |
-
include_once('findCampaignsByNameOrSubject.php');
|
58 |
-
include_once('findCampaignsByNameOrSubjectResponse.php');
|
59 |
-
include_once('sendImmediateMessageSidCAlCA.php');
|
60 |
-
include_once('sendImmediateMessageSidCAlCAResponse.php');
|
61 |
-
include_once('addCampaignNote.php');
|
62 |
-
include_once('addCampaignNoteResponse.php');
|
63 |
-
include_once('triggerDeliveryById.php');
|
64 |
-
include_once('triggerDeliveryByIdResponse.php');
|
65 |
-
include_once('getRequestStatus.php');
|
66 |
-
include_once('getRequestStatusResponse.php');
|
67 |
-
include_once('findCampaigns.php');
|
68 |
-
include_once('findCampaignsResponse.php');
|
69 |
-
include_once('updateSubscriber.php');
|
70 |
-
include_once('updateSubscriberResponse.php');
|
71 |
-
include_once('getCryptoKey.php');
|
72 |
-
include_once('getCryptoKeyResponse.php');
|
73 |
-
include_once('archiveSubscriberSourceFilter.php');
|
74 |
-
include_once('archiveSubscriberSourceFilterResponse.php');
|
75 |
-
include_once('cloneAndSendCampaign.php');
|
76 |
-
include_once('cloneAndSendCampaignResponse.php');
|
77 |
-
include_once('uploadMediaContent.php');
|
78 |
-
include_once('uploadMediaContentResponse.php');
|
79 |
-
include_once('findMessageModels.php');
|
80 |
-
include_once('findMessageModelsResponse.php');
|
81 |
-
include_once('sendImmediateMessageSDataCDataCA.php');
|
82 |
-
include_once('sendImmediateMessageSDataCDataCAResponse.php');
|
83 |
-
include_once('getCampaign.php');
|
84 |
-
include_once('getCampaignResponse.php');
|
85 |
-
include_once('addSubscribers.php');
|
86 |
-
include_once('addSubscribersResponse.php');
|
87 |
-
include_once('sendImmediateMessageSidCid.php');
|
88 |
-
include_once('sendImmediateMessageSidCidResponse.php');
|
89 |
-
include_once('sendImmediateMessageSDataCIdCA.php');
|
90 |
-
include_once('sendImmediateMessageSDataCIdCAResponse.php');
|
91 |
-
include_once('getSubscriberSourceFilter.php');
|
92 |
-
include_once('getSubscriberSourceFilterResponse.php');
|
93 |
-
include_once('findArchivedFiltersBySubscriberSource.php');
|
94 |
-
include_once('findArchivedFiltersBySubscriberSourceResponse.php');
|
95 |
-
include_once('getMessageModelById.php');
|
96 |
-
include_once('getMessageModelByIdResponse.php');
|
97 |
-
include_once('getAttachmentByCampaignId.php');
|
98 |
-
include_once('getAttachmentByCampaignIdResponse.php');
|
99 |
-
include_once('getSubscriber.php');
|
100 |
-
include_once('getSubscriberResponse.php');
|
101 |
-
include_once('findPeriodicCampaigns.php');
|
102 |
-
include_once('findPeriodicCampaignsResponse.php');
|
103 |
-
include_once('modifySubscriberSubscriptionStatus.php');
|
104 |
-
include_once('modifySubscriberSubscriptionStatusResponse.php');
|
105 |
-
include_once('borrowToken.php');
|
106 |
-
include_once('borrowTokenResponse.php');
|
107 |
-
include_once('findNotesByCampaign.php');
|
108 |
-
include_once('findNotesByCampaignResponse.php');
|
109 |
-
include_once('modifySubscriberSubscriptionStatusByMailqId.php');
|
110 |
-
include_once('modifySubscriberSubscriptionStatusByMailqIdResponse.php');
|
111 |
-
include_once('startSubscriberDataExchange.php');
|
112 |
-
include_once('startSubscriberDataExchangeResponse.php');
|
113 |
-
include_once('getCampaignDeliveryStatus.php');
|
114 |
-
include_once('getCampaignDeliveryStatusResponse.php');
|
115 |
-
include_once('removeSubscriber.php');
|
116 |
-
include_once('removeSubscriberResponse.php');
|
117 |
-
include_once('addAttachment.php');
|
118 |
-
include_once('addAttachmentResponse.php');
|
119 |
-
include_once('setCampaignRecurrency.php');
|
120 |
-
include_once('setCampaignRecurrencyResponse.php');
|
121 |
-
include_once('findFiltersBySubscriberSource.php');
|
122 |
-
include_once('findFiltersBySubscriberSourceResponse.php');
|
123 |
-
include_once('countSubscribersIncludedInFilter.php');
|
124 |
-
include_once('countSubscribersIncludedInFilterResponse.php');
|
125 |
-
include_once('sendImmediateMessageSidCidCA.php');
|
126 |
-
include_once('sendImmediateMessageSidCidCAResponse.php');
|
127 |
-
include_once('findSubscriberSources.php');
|
128 |
-
include_once('findSubscriberSourcesResponse.php');
|
129 |
-
include_once('addSubscriberSource.php');
|
130 |
-
include_once('addSubscriberSourceResponse.php');
|
131 |
-
include_once('findMessageModelsBySubscriberSource.php');
|
132 |
-
include_once('findMessageModelsBySubscriberSourceResponse.php');
|
133 |
-
include_once('sendImmediateMessageSdataCAl.php');
|
134 |
-
include_once('sendImmediateMessageSdataCAlResponse.php');
|
135 |
-
include_once('findCampaignsByModel.php');
|
136 |
-
include_once('findCampaignsByModelResponse.php');
|
137 |
-
include_once('sendImmediateMessageSDataCData.php');
|
138 |
-
include_once('sendImmediateMessageSDataCDataResponse.php');
|
139 |
-
include_once('getSubscriberDataExchangeStatus.php');
|
140 |
-
include_once('getSubscriberDataExchangeStatusResponse.php');
|
141 |
-
include_once('sendImmediateMessageSIdCDataCA.php');
|
142 |
-
include_once('sendImmediateMessageSIdCDataCAResponse.php');
|
143 |
-
include_once('sendImmediateMessage.php');
|
144 |
-
include_once('sendImmediateMessageResponse.php');
|
145 |
-
include_once('sendImmediateMessageSIdCData.php');
|
146 |
-
include_once('sendImmediateMessageSIdCDataResponse.php');
|
147 |
-
include_once('sendImmediateMessageSidCAl.php');
|
148 |
-
include_once('sendImmediateMessageSidCAlResponse.php');
|
149 |
-
include_once('findCampaignsByStatus.php');
|
150 |
-
include_once('findCampaignsByStatusResponse.php');
|
151 |
-
include_once('getSubscriberSource.php');
|
152 |
-
include_once('getSubscriberSourceResponse.php');
|
153 |
-
include_once('findSubscribers.php');
|
154 |
-
include_once('findSubscribersResponse.php');
|
155 |
-
include_once('findTriggerableCampaigns.php');
|
156 |
-
include_once('findTriggerableCampaignsResponse.php');
|
157 |
-
include_once('findCampaignsByNote.php');
|
158 |
-
include_once('findCampaignsByNoteResponse.php');
|
159 |
-
include_once('publishOnWeb.php');
|
160 |
-
include_once('publishOnWebResponse.php');
|
161 |
-
include_once('invalidateToken.php');
|
162 |
-
include_once('invalidateTokenResponse.php');
|
163 |
-
include_once('reuseSubscriberSourceFilter.php');
|
164 |
-
include_once('reuseSubscriberSourceFilterResponse.php');
|
165 |
-
include_once('createCampaign.php');
|
166 |
-
include_once('createCampaignResponse.php');
|
167 |
-
include_once('addSubscriber.php');
|
168 |
-
include_once('addSubscriberResponse.php');
|
169 |
-
include_once('getTrackedLinks.php');
|
170 |
-
include_once('getTrackedLinksResponse.php');
|
171 |
-
include_once('getCampaignFeedback.php');
|
172 |
-
include_once('getCampaignFeedbackResponse.php');
|
173 |
-
include_once('requestCampaignFeedbackReport.php');
|
174 |
-
include_once('requestCampaignFeedbackReportResponse.php');
|
175 |
-
include_once('createMessageModel.php');
|
176 |
-
include_once('createMessageModelResponse.php');
|
177 |
-
include_once('cancelCampaign.php');
|
178 |
-
include_once('cancelCampaignResponse.php');
|
179 |
-
include_once('findSubscribersIncludedInFilter.php');
|
180 |
-
include_once('findSubscribersIncludedInFilterResponse.php');
|
181 |
-
|
182 |
-
|
183 |
-
/**
|
184 |
-
*
|
185 |
-
*/
|
186 |
-
class ClabService extends SoapClient
|
187 |
-
{
|
188 |
-
|
189 |
-
/**
|
190 |
-
*
|
191 |
-
* @var array $classmap The defined classes
|
192 |
-
* @access private
|
193 |
-
*/
|
194 |
-
private static $classmap = array(
|
195 |
-
'AuthToken' => 'AuthToken',
|
196 |
-
'CommunicationCategory' => 'CommunicationCategory',
|
197 |
-
'SubscriberSourceFilter' => 'SubscriberSourceFilter',
|
198 |
-
'LookupPreferences' => 'LookupPreferences',
|
199 |
-
'CampaignLookupPreferences' => 'CampaignLookupPreferences',
|
200 |
-
'XMLDeliveryInfos' => 'XMLDeliveryInfos',
|
201 |
-
'SlicedDataSet' => 'SlicedDataSet',
|
202 |
-
'Campaigns' => 'Campaigns',
|
203 |
-
'Campaign' => 'Campaign',
|
204 |
-
'Message' => 'Message',
|
205 |
-
'Recipients' => 'Recipients',
|
206 |
-
'Sender' => 'Sender',
|
207 |
-
'TextMessage' => 'TextMessage',
|
208 |
-
'EmailMessage' => 'EmailMessage',
|
209 |
-
'FaxMessage' => 'FaxMessage',
|
210 |
-
'SubscriberSources' => 'SubscriberSources',
|
211 |
-
'SubscriberSource' => 'SubscriberSource',
|
212 |
-
'SubscriberSourceField' => 'SubscriberSourceField',
|
213 |
-
'MessageModels' => 'MessageModels',
|
214 |
-
'SubscriberSourceFilters' => 'SubscriberSourceFilters',
|
215 |
-
'CampaignNotes' => 'CampaignNotes',
|
216 |
-
'CampaignNote' => 'CampaignNote',
|
217 |
-
'TrackedLinks' => 'TrackedLinks',
|
218 |
-
'TrackedLink' => 'TrackedLink',
|
219 |
-
'Subscribers' => 'Subscribers',
|
220 |
-
'Subscriber' => 'Subscriber',
|
221 |
-
'SubscriberAttribute' => 'SubscriberAttribute',
|
222 |
-
'Attachment' => 'Attachment',
|
223 |
-
'CampaignFeedback' => 'CampaignFeedback',
|
224 |
-
'BounceDetail' => 'BounceDetail',
|
225 |
-
'keepaliveToken' => 'keepaliveToken',
|
226 |
-
'keepaliveTokenResponse' => 'keepaliveTokenResponse',
|
227 |
-
'triggerDeliveryByAlias' => 'triggerDeliveryByAlias',
|
228 |
-
'triggerDeliveryByAliasResponse' => 'triggerDeliveryByAliasResponse',
|
229 |
-
'getAvailableCommunicationCategories' => 'getAvailableCommunicationCategories',
|
230 |
-
'getAvailableCommunicationCategoriesResponse' => 'getAvailableCommunicationCategoriesResponse',
|
231 |
-
'addSubscriberSourceFilter' => 'addSubscriberSourceFilter',
|
232 |
-
'addSubscriberSourceFilterResponse' => 'addSubscriberSourceFilterResponse',
|
233 |
-
'getArchivedSubscriberSourceFilter' => 'getArchivedSubscriberSourceFilter',
|
234 |
-
'getArchivedSubscriberSourceFilterResponse' => 'getArchivedSubscriberSourceFilterResponse',
|
235 |
-
'getXMLDeliveries' => 'getXMLDeliveries',
|
236 |
-
'getXMLDeliveriesResponse' => 'getXMLDeliveriesResponse',
|
237 |
-
'xmlDeliveryInfo' => 'xmlDeliveryInfo',
|
238 |
-
'sendCampaign' => 'sendCampaign',
|
239 |
-
'sendCampaignResponse' => 'sendCampaignResponse',
|
240 |
-
'findCampaignsSentBetween' => 'findCampaignsSentBetween',
|
241 |
-
'findCampaignsSentBetweenResponse' => 'findCampaignsSentBetweenResponse',
|
242 |
-
'countSubscribers' => 'countSubscribers',
|
243 |
-
'countSubscribersResponse' => 'countSubscribersResponse',
|
244 |
-
'sendImmediateMessageSdataCAlCA' => 'sendImmediateMessageSdataCAlCA',
|
245 |
-
'sendImmediateMessageSdataCAlCAResponse' => 'sendImmediateMessageSdataCAlCAResponse',
|
246 |
-
'getXMLDeliveryTransitions' => 'getXMLDeliveryTransitions',
|
247 |
-
'getXMLDeliveryTransitionsResponse' => 'getXMLDeliveryTransitionsResponse',
|
248 |
-
'xmlDeliveryTransitionInfo' => 'xmlDeliveryTransitionInfo',
|
249 |
-
'findCampaignsByNameOrSubject' => 'findCampaignsByNameOrSubject',
|
250 |
-
'findCampaignsByNameOrSubjectResponse' => 'findCampaignsByNameOrSubjectResponse',
|
251 |
-
'sendImmediateMessageSidCAlCA' => 'sendImmediateMessageSidCAlCA',
|
252 |
-
'sendImmediateMessageSidCAlCAResponse' => 'sendImmediateMessageSidCAlCAResponse',
|
253 |
-
'addCampaignNote' => 'addCampaignNote',
|
254 |
-
'addCampaignNoteResponse' => 'addCampaignNoteResponse',
|
255 |
-
'triggerDeliveryById' => 'triggerDeliveryById',
|
256 |
-
'triggerDeliveryByIdResponse' => 'triggerDeliveryByIdResponse',
|
257 |
-
'getRequestStatus' => 'getRequestStatus',
|
258 |
-
'getRequestStatusResponse' => 'getRequestStatusResponse',
|
259 |
-
'findCampaigns' => 'findCampaigns',
|
260 |
-
'findCampaignsResponse' => 'findCampaignsResponse',
|
261 |
-
'updateSubscriber' => 'updateSubscriber',
|
262 |
-
'updateSubscriberResponse' => 'updateSubscriberResponse',
|
263 |
-
'getCryptoKey' => 'getCryptoKey',
|
264 |
-
'getCryptoKeyResponse' => 'getCryptoKeyResponse',
|
265 |
-
'archiveSubscriberSourceFilter' => 'archiveSubscriberSourceFilter',
|
266 |
-
'archiveSubscriberSourceFilterResponse' => 'archiveSubscriberSourceFilterResponse',
|
267 |
-
'cloneAndSendCampaign' => 'cloneAndSendCampaign',
|
268 |
-
'cloneAndSendCampaignResponse' => 'cloneAndSendCampaignResponse',
|
269 |
-
'uploadMediaContent' => 'uploadMediaContent',
|
270 |
-
'uploadMediaContentResponse' => 'uploadMediaContentResponse',
|
271 |
-
'findMessageModels' => 'findMessageModels',
|
272 |
-
'findMessageModelsResponse' => 'findMessageModelsResponse',
|
273 |
-
'sendImmediateMessageSDataCDataCA' => 'sendImmediateMessageSDataCDataCA',
|
274 |
-
'sendImmediateMessageSDataCDataCAResponse' => 'sendImmediateMessageSDataCDataCAResponse',
|
275 |
-
'getCampaign' => 'getCampaign',
|
276 |
-
'getCampaignResponse' => 'getCampaignResponse',
|
277 |
-
'addSubscribers' => 'addSubscribers',
|
278 |
-
'addSubscribersResponse' => 'addSubscribersResponse',
|
279 |
-
'sendImmediateMessageSidCid' => 'sendImmediateMessageSidCid',
|
280 |
-
'sendImmediateMessageSidCidResponse' => 'sendImmediateMessageSidCidResponse',
|
281 |
-
'sendImmediateMessageSDataCIdCA' => 'sendImmediateMessageSDataCIdCA',
|
282 |
-
'sendImmediateMessageSDataCIdCAResponse' => 'sendImmediateMessageSDataCIdCAResponse',
|
283 |
-
'getSubscriberSourceFilter' => 'getSubscriberSourceFilter',
|
284 |
-
'getSubscriberSourceFilterResponse' => 'getSubscriberSourceFilterResponse',
|
285 |
-
'findArchivedFiltersBySubscriberSource' => 'findArchivedFiltersBySubscriberSource',
|
286 |
-
'findArchivedFiltersBySubscriberSourceResponse' => 'findArchivedFiltersBySubscriberSourceResponse',
|
287 |
-
'getMessageModelById' => 'getMessageModelById',
|
288 |
-
'getMessageModelByIdResponse' => 'getMessageModelByIdResponse',
|
289 |
-
'getAttachmentByCampaignId' => 'getAttachmentByCampaignId',
|
290 |
-
'getAttachmentByCampaignIdResponse' => 'getAttachmentByCampaignIdResponse',
|
291 |
-
'getSubscriber' => 'getSubscriber',
|
292 |
-
'getSubscriberResponse' => 'getSubscriberResponse',
|
293 |
-
'findPeriodicCampaigns' => 'findPeriodicCampaigns',
|
294 |
-
'findPeriodicCampaignsResponse' => 'findPeriodicCampaignsResponse',
|
295 |
-
'modifySubscriberSubscriptionStatus' => 'modifySubscriberSubscriptionStatus',
|
296 |
-
'modifySubscriberSubscriptionStatusResponse' => 'modifySubscriberSubscriptionStatusResponse',
|
297 |
-
'borrowToken' => 'borrowToken',
|
298 |
-
'borrowTokenResponse' => 'borrowTokenResponse',
|
299 |
-
'findNotesByCampaign' => 'findNotesByCampaign',
|
300 |
-
'findNotesByCampaignResponse' => 'findNotesByCampaignResponse',
|
301 |
-
'modifySubscriberSubscriptionStatusByMailqId' => 'modifySubscriberSubscriptionStatusByMailqId',
|
302 |
-
'modifySubscriberSubscriptionStatusByMailqIdResponse' => 'modifySubscriberSubscriptionStatusByMailqIdResponse',
|
303 |
-
'startSubscriberDataExchange' => 'startSubscriberDataExchange',
|
304 |
-
'startSubscriberDataExchangeResponse' => 'startSubscriberDataExchangeResponse',
|
305 |
-
'getCampaignDeliveryStatus' => 'getCampaignDeliveryStatus',
|
306 |
-
'getCampaignDeliveryStatusResponse' => 'getCampaignDeliveryStatusResponse',
|
307 |
-
'removeSubscriber' => 'removeSubscriber',
|
308 |
-
'removeSubscriberResponse' => 'removeSubscriberResponse',
|
309 |
-
'addAttachment' => 'addAttachment',
|
310 |
-
'addAttachmentResponse' => 'addAttachmentResponse',
|
311 |
-
'setCampaignRecurrency' => 'setCampaignRecurrency',
|
312 |
-
'setCampaignRecurrencyResponse' => 'setCampaignRecurrencyResponse',
|
313 |
-
'findFiltersBySubscriberSource' => 'findFiltersBySubscriberSource',
|
314 |
-
'findFiltersBySubscriberSourceResponse' => 'findFiltersBySubscriberSourceResponse',
|
315 |
-
'countSubscribersIncludedInFilter' => 'countSubscribersIncludedInFilter',
|
316 |
-
'countSubscribersIncludedInFilterResponse' => 'countSubscribersIncludedInFilterResponse',
|
317 |
-
'sendImmediateMessageSidCidCA' => 'sendImmediateMessageSidCidCA',
|
318 |
-
'sendImmediateMessageSidCidCAResponse' => 'sendImmediateMessageSidCidCAResponse',
|
319 |
-
'findSubscriberSources' => 'findSubscriberSources',
|
320 |
-
'findSubscriberSourcesResponse' => 'findSubscriberSourcesResponse',
|
321 |
-
'addSubscriberSource' => 'addSubscriberSource',
|
322 |
-
'addSubscriberSourceResponse' => 'addSubscriberSourceResponse',
|
323 |
-
'findMessageModelsBySubscriberSource' => 'findMessageModelsBySubscriberSource',
|
324 |
-
'findMessageModelsBySubscriberSourceResponse' => 'findMessageModelsBySubscriberSourceResponse',
|
325 |
-
'sendImmediateMessageSdataCAl' => 'sendImmediateMessageSdataCAl',
|
326 |
-
'sendImmediateMessageSdataCAlResponse' => 'sendImmediateMessageSdataCAlResponse',
|
327 |
-
'findCampaignsByModel' => 'findCampaignsByModel',
|
328 |
-
'findCampaignsByModelResponse' => 'findCampaignsByModelResponse',
|
329 |
-
'sendImmediateMessageSDataCData' => 'sendImmediateMessageSDataCData',
|
330 |
-
'sendImmediateMessageSDataCDataResponse' => 'sendImmediateMessageSDataCDataResponse',
|
331 |
-
'getSubscriberDataExchangeStatus' => 'getSubscriberDataExchangeStatus',
|
332 |
-
'getSubscriberDataExchangeStatusResponse' => 'getSubscriberDataExchangeStatusResponse',
|
333 |
-
'sendImmediateMessageSIdCDataCA' => 'sendImmediateMessageSIdCDataCA',
|
334 |
-
'sendImmediateMessageSIdCDataCAResponse' => 'sendImmediateMessageSIdCDataCAResponse',
|
335 |
-
'sendImmediateMessage' => 'sendImmediateMessage',
|
336 |
-
'sendImmediateMessageResponse' => 'sendImmediateMessageResponse',
|
337 |
-
'sendImmediateMessageSIdCData' => 'sendImmediateMessageSIdCData',
|
338 |
-
'sendImmediateMessageSIdCDataResponse' => 'sendImmediateMessageSIdCDataResponse',
|
339 |
-
'sendImmediateMessageSidCAl' => 'sendImmediateMessageSidCAl',
|
340 |
-
'sendImmediateMessageSidCAlResponse' => 'sendImmediateMessageSidCAlResponse',
|
341 |
-
'findCampaignsByStatus' => 'findCampaignsByStatus',
|
342 |
-
'findCampaignsByStatusResponse' => 'findCampaignsByStatusResponse',
|
343 |
-
'getSubscriberSource' => 'getSubscriberSource',
|
344 |
-
'getSubscriberSourceResponse' => 'getSubscriberSourceResponse',
|
345 |
-
'findSubscribers' => 'findSubscribers',
|
346 |
-
'findSubscribersResponse' => 'findSubscribersResponse',
|
347 |
-
'findTriggerableCampaigns' => 'findTriggerableCampaigns',
|
348 |
-
'findTriggerableCampaignsResponse' => 'findTriggerableCampaignsResponse',
|
349 |
-
'findCampaignsByNote' => 'findCampaignsByNote',
|
350 |
-
'findCampaignsByNoteResponse' => 'findCampaignsByNoteResponse',
|
351 |
-
'publishOnWeb' => 'publishOnWeb',
|
352 |
-
'publishOnWebResponse' => 'publishOnWebResponse',
|
353 |
-
'invalidateToken' => 'invalidateToken',
|
354 |
-
'invalidateTokenResponse' => 'invalidateTokenResponse',
|
355 |
-
'reuseSubscriberSourceFilter' => 'reuseSubscriberSourceFilter',
|
356 |
-
'reuseSubscriberSourceFilterResponse' => 'reuseSubscriberSourceFilterResponse',
|
357 |
-
'createCampaign' => 'createCampaign',
|
358 |
-
'createCampaignResponse' => 'createCampaignResponse',
|
359 |
-
'addSubscriber' => 'addSubscriber',
|
360 |
-
'addSubscriberResponse' => 'addSubscriberResponse',
|
361 |
-
'getTrackedLinks' => 'getTrackedLinks',
|
362 |
-
'getTrackedLinksResponse' => 'getTrackedLinksResponse',
|
363 |
-
'getCampaignFeedback' => 'getCampaignFeedback',
|
364 |
-
'getCampaignFeedbackResponse' => 'getCampaignFeedbackResponse',
|
365 |
-
'requestCampaignFeedbackReport' => 'requestCampaignFeedbackReport',
|
366 |
-
'requestCampaignFeedbackReportResponse' => 'requestCampaignFeedbackReportResponse',
|
367 |
-
'createMessageModel' => 'createMessageModel',
|
368 |
-
'createMessageModelResponse' => 'createMessageModelResponse',
|
369 |
-
'cancelCampaign' => 'cancelCampaign',
|
370 |
-
'cancelCampaignResponse' => 'cancelCampaignResponse',
|
371 |
-
'findSubscribersIncludedInFilter' => 'findSubscribersIncludedInFilter',
|
372 |
-
'findSubscribersIncludedInFilterResponse' => 'findSubscribersIncludedInFilterResponse');
|
373 |
-
|
374 |
-
/**
|
375 |
-
*
|
376 |
-
* @param array $config A array of config values
|
377 |
-
* @param string $wsdl The wsdl file to use
|
378 |
-
* @access public
|
379 |
-
*/
|
380 |
-
public function __construct(array $options = array('soap_version' => SOAP_1_2,'connection_timeout' => 30,'trace'=>true,'keep_alive' => true), $wsdl = 'https://soap.contactlab.it/soap/services?wsdl')
|
381 |
-
{
|
382 |
-
foreach(self::$classmap as $key => $value)
|
383 |
-
{
|
384 |
-
if(!isset($options['classmap'][$key]))
|
385 |
-
{
|
386 |
-
$options['classmap'][$key] = $value;
|
387 |
-
}
|
388 |
-
}
|
389 |
-
|
390 |
-
if (isset($options['features']) == false)
|
391 |
-
{
|
392 |
-
$options['features'] = 2 | 30 | 1 | 1;
|
393 |
-
}
|
394 |
-
|
395 |
-
parent::__construct($wsdl, $options);
|
396 |
-
}
|
397 |
-
|
398 |
-
/**
|
399 |
-
*
|
400 |
-
* @param getAvailableCommunicationCategories $parameters
|
401 |
-
* @access public
|
402 |
-
*/
|
403 |
-
public function getAvailableCommunicationCategories(getAvailableCommunicationCategories $parameters)
|
404 |
-
{
|
405 |
-
return $this->__soapCall('getAvailableCommunicationCategories', array($parameters));
|
406 |
-
}
|
407 |
-
|
408 |
-
/**
|
409 |
-
*
|
410 |
-
* @param getCampaignDeliveryStatus $parameters
|
411 |
-
* @access public
|
412 |
-
*/
|
413 |
-
public function getCampaignDeliveryStatus(getCampaignDeliveryStatus $parameters)
|
414 |
-
{
|
415 |
-
return $this->__soapCall('getCampaignDeliveryStatus', array($parameters));
|
416 |
-
}
|
417 |
-
|
418 |
-
/**
|
419 |
-
*
|
420 |
-
* @param publishOnWeb $parameters
|
421 |
-
* @access public
|
422 |
-
*/
|
423 |
-
public function publishOnWeb(publishOnWeb $parameters)
|
424 |
-
{
|
425 |
-
return $this->__soapCall('publishOnWeb', array($parameters));
|
426 |
-
}
|
427 |
-
|
428 |
-
/**
|
429 |
-
*
|
430 |
-
* @param updateSubscriber $parameters
|
431 |
-
* @access public
|
432 |
-
*/
|
433 |
-
public function updateSubscriber(updateSubscriber $parameters)
|
434 |
-
{
|
435 |
-
return $this->__soapCall('updateSubscriber', array($parameters));
|
436 |
-
}
|
437 |
-
|
438 |
-
/**
|
439 |
-
*
|
440 |
-
* @param modifySubscriberSubscriptionStatus $parameters
|
441 |
-
* @access public
|
442 |
-
*/
|
443 |
-
public function modifySubscriberSubscriptionStatus(modifySubscriberSubscriptionStatus $parameters)
|
444 |
-
{
|
445 |
-
return $this->__soapCall('modifySubscriberSubscriptionStatus', array($parameters));
|
446 |
-
}
|
447 |
-
|
448 |
-
/**
|
449 |
-
*
|
450 |
-
* @param countSubscribers $parameters
|
451 |
-
* @access public
|
452 |
-
*/
|
453 |
-
public function countSubscribers(countSubscribers $parameters)
|
454 |
-
{
|
455 |
-
return $this->__soapCall('countSubscribers', array($parameters));
|
456 |
-
}
|
457 |
-
|
458 |
-
/**
|
459 |
-
*
|
460 |
-
* @param addCampaignNote $parameters
|
461 |
-
* @access public
|
462 |
-
*/
|
463 |
-
public function addCampaignNote(addCampaignNote $parameters)
|
464 |
-
{
|
465 |
-
return $this->__soapCall('addCampaignNote', array($parameters));
|
466 |
-
}
|
467 |
-
|
468 |
-
/**
|
469 |
-
*
|
470 |
-
* @param findNotesByCampaign $parameters
|
471 |
-
* @access public
|
472 |
-
*/
|
473 |
-
public function findNotesByCampaign(findNotesByCampaign $parameters)
|
474 |
-
{
|
475 |
-
return $this->__soapCall('findNotesByCampaign', array($parameters));
|
476 |
-
}
|
477 |
-
|
478 |
-
/**
|
479 |
-
*
|
480 |
-
* @param addAttachment $parameters
|
481 |
-
* @access public
|
482 |
-
*/
|
483 |
-
public function addAttachment(addAttachment $parameters)
|
484 |
-
{
|
485 |
-
return $this->__soapCall('addAttachment', array($parameters));
|
486 |
-
}
|
487 |
-
|
488 |
-
/**
|
489 |
-
*
|
490 |
-
* @param getCampaignFeedback $parameters
|
491 |
-
* @access public
|
492 |
-
*/
|
493 |
-
public function getCampaignFeedback(getCampaignFeedback $parameters)
|
494 |
-
{
|
495 |
-
return $this->__soapCall('getCampaignFeedback', array($parameters));
|
496 |
-
}
|
497 |
-
|
498 |
-
/**
|
499 |
-
*
|
500 |
-
* @param requestCampaignFeedbackReport $parameters
|
501 |
-
* @access public
|
502 |
-
*/
|
503 |
-
public function requestCampaignFeedbackReport(requestCampaignFeedbackReport $parameters)
|
504 |
-
{
|
505 |
-
return $this->__soapCall('requestCampaignFeedbackReport', array($parameters));
|
506 |
-
}
|
507 |
-
|
508 |
-
/**
|
509 |
-
*
|
510 |
-
* @param uploadMediaContent $parameters
|
511 |
-
* @access public
|
512 |
-
*/
|
513 |
-
public function uploadMediaContent(uploadMediaContent $parameters)
|
514 |
-
{
|
515 |
-
return $this->__soapCall('uploadMediaContent', array($parameters));
|
516 |
-
}
|
517 |
-
|
518 |
-
/**
|
519 |
-
*
|
520 |
-
* @param getCampaign $parameters
|
521 |
-
* @access public
|
522 |
-
*/
|
523 |
-
public function getCampaign(getCampaign $parameters)
|
524 |
-
{
|
525 |
-
return $this->__soapCall('getCampaign', array($parameters));
|
526 |
-
}
|
527 |
-
|
528 |
-
/**
|
529 |
-
*
|
530 |
-
* @param findCampaignsByNameOrSubject $parameters
|
531 |
-
* @access public
|
532 |
-
*/
|
533 |
-
public function findCampaignsByNameOrSubject(findCampaignsByNameOrSubject $parameters)
|
534 |
-
{
|
535 |
-
return $this->__soapCall('findCampaignsByNameOrSubject', array($parameters));
|
536 |
-
}
|
537 |
-
|
538 |
-
/**
|
539 |
-
*
|
540 |
-
* @param findCampaignsByStatus $parameters
|
541 |
-
* @access public
|
542 |
-
*/
|
543 |
-
public function findCampaignsByStatus(findCampaignsByStatus $parameters)
|
544 |
-
{
|
545 |
-
return $this->__soapCall('findCampaignsByStatus', array($parameters));
|
546 |
-
}
|
547 |
-
|
548 |
-
/**
|
549 |
-
*
|
550 |
-
* @param findCampaignsSentBetween $parameters
|
551 |
-
* @access public
|
552 |
-
*/
|
553 |
-
public function findCampaignsSentBetween(findCampaignsSentBetween $parameters)
|
554 |
-
{
|
555 |
-
return $this->__soapCall('findCampaignsSentBetween', array($parameters));
|
556 |
-
}
|
557 |
-
|
558 |
-
/**
|
559 |
-
*
|
560 |
-
* @param findCampaignsByNote $parameters
|
561 |
-
* @access public
|
562 |
-
*/
|
563 |
-
public function findCampaignsByNote(findCampaignsByNote $parameters)
|
564 |
-
{
|
565 |
-
return $this->__soapCall('findCampaignsByNote', array($parameters));
|
566 |
-
}
|
567 |
-
|
568 |
-
/**
|
569 |
-
*
|
570 |
-
* @param findCampaignsByModel $parameters
|
571 |
-
* @access public
|
572 |
-
*/
|
573 |
-
public function findCampaignsByModel(findCampaignsByModel $parameters)
|
574 |
-
{
|
575 |
-
return $this->__soapCall('findCampaignsByModel', array($parameters));
|
576 |
-
}
|
577 |
-
|
578 |
-
/**
|
579 |
-
*
|
580 |
-
* @param findTriggerableCampaigns $parameters
|
581 |
-
* @access public
|
582 |
-
*/
|
583 |
-
public function findTriggerableCampaigns(findTriggerableCampaigns $parameters)
|
584 |
-
{
|
585 |
-
return $this->__soapCall('findTriggerableCampaigns', array($parameters));
|
586 |
-
}
|
587 |
-
|
588 |
-
/**
|
589 |
-
*
|
590 |
-
* @param findPeriodicCampaigns $parameters
|
591 |
-
* @access public
|
592 |
-
*/
|
593 |
-
public function findPeriodicCampaigns(findPeriodicCampaigns $parameters)
|
594 |
-
{
|
595 |
-
return $this->__soapCall('findPeriodicCampaigns', array($parameters));
|
596 |
-
}
|
597 |
-
|
598 |
-
/**
|
599 |
-
*
|
600 |
-
* @param startSubscriberDataExchange $parameters
|
601 |
-
* @access public
|
602 |
-
*/
|
603 |
-
public function startSubscriberDataExchange(startSubscriberDataExchange $parameters)
|
604 |
-
{
|
605 |
-
return $this->__soapCall('startSubscriberDataExchange', array($parameters));
|
606 |
-
}
|
607 |
-
|
608 |
-
/**
|
609 |
-
*
|
610 |
-
* @param getSubscriberDataExchangeStatus $parameters
|
611 |
-
* @access public
|
612 |
-
*/
|
613 |
-
public function getSubscriberDataExchangeStatus(getSubscriberDataExchangeStatus $parameters)
|
614 |
-
{
|
615 |
-
return $this->__soapCall('getSubscriberDataExchangeStatus', array($parameters));
|
616 |
-
}
|
617 |
-
|
618 |
-
/**
|
619 |
-
*
|
620 |
-
* @param setCampaignRecurrency $parameters
|
621 |
-
* @access public
|
622 |
-
*/
|
623 |
-
public function setCampaignRecurrency(setCampaignRecurrency $parameters)
|
624 |
-
{
|
625 |
-
return $this->__soapCall('setCampaignRecurrency', array($parameters));
|
626 |
-
}
|
627 |
-
|
628 |
-
/**
|
629 |
-
*
|
630 |
-
* @param sendCampaign $parameters
|
631 |
-
* @access public
|
632 |
-
*/
|
633 |
-
public function sendCampaign(sendCampaign $parameters)
|
634 |
-
{
|
635 |
-
return $this->__soapCall('sendCampaign', array($parameters));
|
636 |
-
}
|
637 |
-
|
638 |
-
/**
|
639 |
-
*
|
640 |
-
* @param cloneAndSendCampaign $parameters
|
641 |
-
* @access public
|
642 |
-
*/
|
643 |
-
public function cloneAndSendCampaign(cloneAndSendCampaign $parameters)
|
644 |
-
{
|
645 |
-
return $this->__soapCall('cloneAndSendCampaign', array($parameters));
|
646 |
-
}
|
647 |
-
|
648 |
-
/**
|
649 |
-
*
|
650 |
-
* @param getRequestStatus $parameters
|
651 |
-
* @access public
|
652 |
-
*/
|
653 |
-
public function getRequestStatus(getRequestStatus $parameters)
|
654 |
-
{
|
655 |
-
return $this->__soapCall('getRequestStatus', array($parameters));
|
656 |
-
}
|
657 |
-
|
658 |
-
/**
|
659 |
-
*
|
660 |
-
* @param createCampaign $parameters
|
661 |
-
* @access public
|
662 |
-
*/
|
663 |
-
public function createCampaign(createCampaign $parameters)
|
664 |
-
{
|
665 |
-
return $this->__soapCall('createCampaign', array($parameters));
|
666 |
-
}
|
667 |
-
|
668 |
-
/**
|
669 |
-
*
|
670 |
-
* @param getXMLDeliveries $parameters
|
671 |
-
* @access public
|
672 |
-
*/
|
673 |
-
public function getXMLDeliveries(getXMLDeliveries $parameters)
|
674 |
-
{
|
675 |
-
return $this->__soapCall('getXMLDeliveries', array($parameters));
|
676 |
-
}
|
677 |
-
|
678 |
-
/**
|
679 |
-
*
|
680 |
-
* @param getXMLDeliveryTransitions $parameters
|
681 |
-
* @access public
|
682 |
-
*/
|
683 |
-
public function getXMLDeliveryTransitions(getXMLDeliveryTransitions $parameters)
|
684 |
-
{
|
685 |
-
return $this->__soapCall('getXMLDeliveryTransitions', array($parameters));
|
686 |
-
}
|
687 |
-
|
688 |
-
/**
|
689 |
-
*
|
690 |
-
* @param cancelCampaign $parameters
|
691 |
-
* @access public
|
692 |
-
*/
|
693 |
-
public function cancelCampaign(cancelCampaign $parameters)
|
694 |
-
{
|
695 |
-
return $this->__soapCall('cancelCampaign', array($parameters));
|
696 |
-
}
|
697 |
-
|
698 |
-
/**
|
699 |
-
*
|
700 |
-
* @param getMessageModelById $parameters
|
701 |
-
* @access public
|
702 |
-
*/
|
703 |
-
public function getMessageModelById(getMessageModelById $parameters)
|
704 |
-
{
|
705 |
-
return $this->__soapCall('getMessageModelById', array($parameters));
|
706 |
-
}
|
707 |
-
|
708 |
-
/**
|
709 |
-
*
|
710 |
-
* @param createMessageModel $parameters
|
711 |
-
* @access public
|
712 |
-
*/
|
713 |
-
public function createMessageModel(createMessageModel $parameters)
|
714 |
-
{
|
715 |
-
return $this->__soapCall('createMessageModel', array($parameters));
|
716 |
-
}
|
717 |
-
|
718 |
-
/**
|
719 |
-
*
|
720 |
-
* @param findMessageModels $parameters
|
721 |
-
* @access public
|
722 |
-
*/
|
723 |
-
public function findMessageModels(findMessageModels $parameters)
|
724 |
-
{
|
725 |
-
return $this->__soapCall('findMessageModels', array($parameters));
|
726 |
-
}
|
727 |
-
|
728 |
-
/**
|
729 |
-
*
|
730 |
-
* @param findMessageModelsBySubscriberSource $parameters
|
731 |
-
* @access public
|
732 |
-
*/
|
733 |
-
public function findMessageModelsBySubscriberSource(findMessageModelsBySubscriberSource $parameters)
|
734 |
-
{
|
735 |
-
return $this->__soapCall('findMessageModelsBySubscriberSource', array($parameters));
|
736 |
-
}
|
737 |
-
|
738 |
-
/**
|
739 |
-
*
|
740 |
-
* @param getSubscriberSourceFilter $parameters
|
741 |
-
* @access public
|
742 |
-
*/
|
743 |
-
public function getSubscriberSourceFilter(getSubscriberSourceFilter $parameters)
|
744 |
-
{
|
745 |
-
return $this->__soapCall('getSubscriberSourceFilter', array($parameters));
|
746 |
-
}
|
747 |
-
|
748 |
-
/**
|
749 |
-
*
|
750 |
-
* @param addSubscriberSourceFilter $parameters
|
751 |
-
* @access public
|
752 |
-
*/
|
753 |
-
public function addSubscriberSourceFilter(addSubscriberSourceFilter $parameters)
|
754 |
-
{
|
755 |
-
return $this->__soapCall('addSubscriberSourceFilter', array($parameters));
|
756 |
-
}
|
757 |
-
|
758 |
-
/**
|
759 |
-
*
|
760 |
-
* @param findFiltersBySubscriberSource $parameters
|
761 |
-
* @access public
|
762 |
-
*/
|
763 |
-
public function findFiltersBySubscriberSource(findFiltersBySubscriberSource $parameters)
|
764 |
-
{
|
765 |
-
return $this->__soapCall('findFiltersBySubscriberSource', array($parameters));
|
766 |
-
}
|
767 |
-
|
768 |
-
/**
|
769 |
-
*
|
770 |
-
* @param getSubscriberSource $parameters
|
771 |
-
* @access public
|
772 |
-
*/
|
773 |
-
public function getSubscriberSource(getSubscriberSource $parameters)
|
774 |
-
{
|
775 |
-
return $this->__soapCall('getSubscriberSource', array($parameters));
|
776 |
-
}
|
777 |
-
|
778 |
-
/**
|
779 |
-
*
|
780 |
-
* @param findSubscriberSources $parameters
|
781 |
-
* @access public
|
782 |
-
*/
|
783 |
-
public function findSubscriberSources(findSubscriberSources $parameters)
|
784 |
-
{
|
785 |
-
return $this->__soapCall('findSubscriberSources', array($parameters));
|
786 |
-
}
|
787 |
-
|
788 |
-
/**
|
789 |
-
*
|
790 |
-
* @param getSubscriber $parameters
|
791 |
-
* @access public
|
792 |
-
*/
|
793 |
-
public function getSubscriber(getSubscriber $parameters)
|
794 |
-
{
|
795 |
-
return $this->__soapCall('getSubscriber', array($parameters));
|
796 |
-
}
|
797 |
-
|
798 |
-
/**
|
799 |
-
*
|
800 |
-
* @param addSubscriber $parameters
|
801 |
-
* @access public
|
802 |
-
*/
|
803 |
-
public function addSubscriber(addSubscriber $parameters)
|
804 |
-
{
|
805 |
-
return $this->__soapCall('addSubscriber', array($parameters));
|
806 |
-
}
|
807 |
-
|
808 |
-
/**
|
809 |
-
*
|
810 |
-
* @param addSubscribers $parameters
|
811 |
-
* @access public
|
812 |
-
*/
|
813 |
-
public function addSubscribers(addSubscribers $parameters)
|
814 |
-
{
|
815 |
-
return $this->__soapCall('addSubscribers', array($parameters));
|
816 |
-
}
|
817 |
-
|
818 |
-
/**
|
819 |
-
*
|
820 |
-
* @param removeSubscriber $parameters
|
821 |
-
* @access public
|
822 |
-
*/
|
823 |
-
public function removeSubscriber(removeSubscriber $parameters)
|
824 |
-
{
|
825 |
-
return $this->__soapCall('removeSubscriber', array($parameters));
|
826 |
-
}
|
827 |
-
|
828 |
-
/**
|
829 |
-
*
|
830 |
-
* @param findSubscribersIncludedInFilter $parameters
|
831 |
-
* @access public
|
832 |
-
*/
|
833 |
-
public function findSubscribersIncludedInFilter(findSubscribersIncludedInFilter $parameters)
|
834 |
-
{
|
835 |
-
return $this->__soapCall('findSubscribersIncludedInFilter', array($parameters));
|
836 |
-
}
|
837 |
-
|
838 |
-
/**
|
839 |
-
*
|
840 |
-
* @param borrowToken $parameters
|
841 |
-
* @access public
|
842 |
-
*/
|
843 |
-
public function borrowToken(borrowToken $parameters)
|
844 |
-
{
|
845 |
-
return $this->__soapCall('borrowToken', array($parameters));
|
846 |
-
}
|
847 |
-
|
848 |
-
/**
|
849 |
-
*
|
850 |
-
* @param keepaliveToken $parameters
|
851 |
-
* @access public
|
852 |
-
*/
|
853 |
-
public function keepaliveToken(keepaliveToken $parameters)
|
854 |
-
{
|
855 |
-
return $this->__soapCall('keepaliveToken', array($parameters));
|
856 |
-
}
|
857 |
-
|
858 |
-
/**
|
859 |
-
*
|
860 |
-
* @param invalidateToken $parameters
|
861 |
-
* @access public
|
862 |
-
*/
|
863 |
-
public function invalidateToken(invalidateToken $parameters)
|
864 |
-
{
|
865 |
-
return $this->__soapCall('invalidateToken', array($parameters));
|
866 |
-
}
|
867 |
-
|
868 |
-
/**
|
869 |
-
*
|
870 |
-
* @param findCampaigns $parameters
|
871 |
-
* @access public
|
872 |
-
*/
|
873 |
-
public function findCampaigns(findCampaigns $parameters)
|
874 |
-
{
|
875 |
-
return $this->__soapCall('findCampaigns', array($parameters));
|
876 |
-
}
|
877 |
-
|
878 |
-
/**
|
879 |
-
*
|
880 |
-
* @param getAttachmentByCampaignId $parameters
|
881 |
-
* @access public
|
882 |
-
*/
|
883 |
-
public function getAttachmentByCampaignId(getAttachmentByCampaignId $parameters)
|
884 |
-
{
|
885 |
-
return $this->__soapCall('getAttachmentByCampaignId', array($parameters));
|
886 |
-
}
|
887 |
-
|
888 |
-
/**
|
889 |
-
*
|
890 |
-
* @param getTrackedLinks $parameters
|
891 |
-
* @access public
|
892 |
-
*/
|
893 |
-
public function getTrackedLinks(getTrackedLinks $parameters)
|
894 |
-
{
|
895 |
-
return $this->__soapCall('getTrackedLinks', array($parameters));
|
896 |
-
}
|
897 |
-
|
898 |
-
/**
|
899 |
-
*
|
900 |
-
* @param triggerDeliveryById $parameters
|
901 |
-
* @access public
|
902 |
-
*/
|
903 |
-
public function triggerDeliveryById(triggerDeliveryById $parameters)
|
904 |
-
{
|
905 |
-
return $this->__soapCall('triggerDeliveryById', array($parameters));
|
906 |
-
}
|
907 |
-
|
908 |
-
/**
|
909 |
-
*
|
910 |
-
* @param triggerDeliveryByAlias $parameters
|
911 |
-
* @access public
|
912 |
-
*/
|
913 |
-
public function triggerDeliveryByAlias(triggerDeliveryByAlias $parameters)
|
914 |
-
{
|
915 |
-
return $this->__soapCall('triggerDeliveryByAlias', array($parameters));
|
916 |
-
}
|
917 |
-
|
918 |
-
/**
|
919 |
-
*
|
920 |
-
* @param addSubscriberSource $parameters
|
921 |
-
* @access public
|
922 |
-
*/
|
923 |
-
public function addSubscriberSource(addSubscriberSource $parameters)
|
924 |
-
{
|
925 |
-
return $this->__soapCall('addSubscriberSource', array($parameters));
|
926 |
-
}
|
927 |
-
|
928 |
-
/**
|
929 |
-
*
|
930 |
-
* @param countSubscribersIncludedInFilter $parameters
|
931 |
-
* @access public
|
932 |
-
*/
|
933 |
-
public function countSubscribersIncludedInFilter(countSubscribersIncludedInFilter $parameters)
|
934 |
-
{
|
935 |
-
return $this->__soapCall('countSubscribersIncludedInFilter', array($parameters));
|
936 |
-
}
|
937 |
-
|
938 |
-
/**
|
939 |
-
*
|
940 |
-
* @param findSubscribers $parameters
|
941 |
-
* @access public
|
942 |
-
*/
|
943 |
-
public function findSubscribers(findSubscribers $parameters)
|
944 |
-
{
|
945 |
-
return $this->__soapCall('findSubscribers', array($parameters));
|
946 |
-
}
|
947 |
-
|
948 |
-
/**
|
949 |
-
*
|
950 |
-
* @param getCryptoKey $parameters
|
951 |
-
* @access public
|
952 |
-
*/
|
953 |
-
public function getCryptoKey(getCryptoKey $parameters)
|
954 |
-
{
|
955 |
-
return $this->__soapCall('getCryptoKey', array($parameters));
|
956 |
-
}
|
957 |
-
|
958 |
-
/**
|
959 |
-
*
|
960 |
-
* @param archiveSubscriberSourceFilter $parameters
|
961 |
-
* @access public
|
962 |
-
*/
|
963 |
-
public function archiveSubscriberSourceFilter(archiveSubscriberSourceFilter $parameters)
|
964 |
-
{
|
965 |
-
return $this->__soapCall('archiveSubscriberSourceFilter', array($parameters));
|
966 |
-
}
|
967 |
-
|
968 |
-
/**
|
969 |
-
*
|
970 |
-
* @param reuseSubscriberSourceFilter $parameters
|
971 |
-
* @access public
|
972 |
-
*/
|
973 |
-
public function reuseSubscriberSourceFilter(reuseSubscriberSourceFilter $parameters)
|
974 |
-
{
|
975 |
-
return $this->__soapCall('reuseSubscriberSourceFilter', array($parameters));
|
976 |
-
}
|
977 |
-
|
978 |
-
/**
|
979 |
-
*
|
980 |
-
* @param findArchivedFiltersBySubscriberSource $parameters
|
981 |
-
* @access public
|
982 |
-
*/
|
983 |
-
public function findArchivedFiltersBySubscriberSource(findArchivedFiltersBySubscriberSource $parameters)
|
984 |
-
{
|
985 |
-
return $this->__soapCall('findArchivedFiltersBySubscriberSource', array($parameters));
|
986 |
-
}
|
987 |
-
|
988 |
-
/**
|
989 |
-
*
|
990 |
-
* @param getArchivedSubscriberSourceFilter $parameters
|
991 |
-
* @access public
|
992 |
-
*/
|
993 |
-
public function getArchivedSubscriberSourceFilter(getArchivedSubscriberSourceFilter $parameters)
|
994 |
-
{
|
995 |
-
return $this->__soapCall('getArchivedSubscriberSourceFilter', array($parameters));
|
996 |
-
}
|
997 |
-
|
998 |
-
/**
|
999 |
-
*
|
1000 |
-
* @param modifySubscriberSubscriptionStatusByMailqId $parameters
|
1001 |
-
* @access public
|
1002 |
-
*/
|
1003 |
-
public function modifySubscriberSubscriptionStatusByMailqId(modifySubscriberSubscriptionStatusByMailqId $parameters)
|
1004 |
-
{
|
1005 |
-
return $this->__soapCall('modifySubscriberSubscriptionStatusByMailqId', array($parameters));
|
1006 |
-
}
|
1007 |
-
|
1008 |
-
/**
|
1009 |
-
*
|
1010 |
-
* @param sendImmediateMessage $parameters
|
1011 |
-
* @access public
|
1012 |
-
*/
|
1013 |
-
public function sendImmediateMessage(sendImmediateMessage $parameters)
|
1014 |
-
{
|
1015 |
-
return $this->__soapCall('sendImmediateMessage', array($parameters));
|
1016 |
-
}
|
1017 |
-
|
1018 |
-
/**
|
1019 |
-
*
|
1020 |
-
* @param sendImmediateMessageSidCid $parameters
|
1021 |
-
* @access public
|
1022 |
-
*/
|
1023 |
-
public function sendImmediateMessageSidCid(sendImmediateMessageSidCid $parameters)
|
1024 |
-
{
|
1025 |
-
return $this->__soapCall('sendImmediateMessageSidCid', array($parameters));
|
1026 |
-
}
|
1027 |
-
|
1028 |
-
/**
|
1029 |
-
*
|
1030 |
-
* @param sendImmediateMessageSDataCData $parameters
|
1031 |
-
* @access public
|
1032 |
-
*/
|
1033 |
-
public function sendImmediateMessageSDataCData(sendImmediateMessageSDataCData $parameters)
|
1034 |
-
{
|
1035 |
-
return $this->__soapCall('sendImmediateMessageSDataCData', array($parameters));
|
1036 |
-
}
|
1037 |
-
|
1038 |
-
/**
|
1039 |
-
*
|
1040 |
-
* @param sendImmediateMessageSIdCData $parameters
|
1041 |
-
* @access public
|
1042 |
-
*/
|
1043 |
-
public function sendImmediateMessageSIdCData(sendImmediateMessageSIdCData $parameters)
|
1044 |
-
{
|
1045 |
-
return $this->__soapCall('sendImmediateMessageSIdCData', array($parameters));
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
/**
|
1049 |
-
*
|
1050 |
-
* @param sendImmediateMessageSdataCAl $parameters
|
1051 |
-
* @access public
|
1052 |
-
*/
|
1053 |
-
public function sendImmediateMessageSdataCAl(sendImmediateMessageSdataCAl $parameters)
|
1054 |
-
{
|
1055 |
-
return $this->__soapCall('sendImmediateMessageSdataCAl', array($parameters));
|
1056 |
-
}
|
1057 |
-
|
1058 |
-
/**
|
1059 |
-
*
|
1060 |
-
* @param sendImmediateMessageSidCAl $parameters
|
1061 |
-
* @access public
|
1062 |
-
*/
|
1063 |
-
public function sendImmediateMessageSidCAl(sendImmediateMessageSidCAl $parameters)
|
1064 |
-
{
|
1065 |
-
return $this->__soapCall('sendImmediateMessageSidCAl', array($parameters));
|
1066 |
-
}
|
1067 |
-
|
1068 |
-
/**
|
1069 |
-
*
|
1070 |
-
* @param sendImmediateMessageSDataCIdCA $parameters
|
1071 |
-
* @access public
|
1072 |
-
*/
|
1073 |
-
public function sendImmediateMessageSDataCIdCA(sendImmediateMessageSDataCIdCA $parameters)
|
1074 |
-
{
|
1075 |
-
return $this->__soapCall('sendImmediateMessageSDataCIdCA', array($parameters));
|
1076 |
-
}
|
1077 |
-
|
1078 |
-
/**
|
1079 |
-
*
|
1080 |
-
* @param sendImmediateMessageSidCidCA $parameters
|
1081 |
-
* @access public
|
1082 |
-
*/
|
1083 |
-
public function sendImmediateMessageSidCidCA(sendImmediateMessageSidCidCA $parameters)
|
1084 |
-
{
|
1085 |
-
return $this->__soapCall('sendImmediateMessageSidCidCA', array($parameters));
|
1086 |
-
}
|
1087 |
-
|
1088 |
-
/**
|
1089 |
-
*
|
1090 |
-
* @param sendImmediateMessageSDataCDataCA $parameters
|
1091 |
-
* @access public
|
1092 |
-
*/
|
1093 |
-
public function sendImmediateMessageSDataCDataCA(sendImmediateMessageSDataCDataCA $parameters)
|
1094 |
-
{
|
1095 |
-
return $this->__soapCall('sendImmediateMessageSDataCDataCA', array($parameters));
|
1096 |
-
}
|
1097 |
-
|
1098 |
-
/**
|
1099 |
-
*
|
1100 |
-
* @param sendImmediateMessageSIdCDataCA $parameters
|
1101 |
-
* @access public
|
1102 |
-
*/
|
1103 |
-
public function sendImmediateMessageSIdCDataCA(sendImmediateMessageSIdCDataCA $parameters)
|
1104 |
-
{
|
1105 |
-
return $this->__soapCall('sendImmediateMessageSIdCDataCA', array($parameters));
|
1106 |
-
}
|
1107 |
-
|
1108 |
-
/**
|
1109 |
-
*
|
1110 |
-
* @param sendImmediateMessageSdataCAlCA $parameters
|
1111 |
-
* @access public
|
1112 |
-
*/
|
1113 |
-
public function sendImmediateMessageSdataCAlCA(sendImmediateMessageSdataCAlCA $parameters)
|
1114 |
-
{
|
1115 |
-
return $this->__soapCall('sendImmediateMessageSdataCAlCA', array($parameters));
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
/**
|
1119 |
-
*
|
1120 |
-
* @param sendImmediateMessageSidCAlCA $parameters
|
1121 |
-
* @access public
|
1122 |
-
*/
|
1123 |
-
public function sendImmediateMessageSidCAlCA(sendImmediateMessageSidCAlCA $parameters)
|
1124 |
-
{
|
1125 |
-
return $this->__soapCall('sendImmediateMessageSidCAlCA', array($parameters));
|
1126 |
-
}
|
1127 |
-
|
1128 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('AuthToken.php');
|
4 |
+
include_once('CommunicationCategory.php');
|
5 |
+
include_once('SubscriberSourceFilter.php');
|
6 |
+
include_once('LookupPreferences.php');
|
7 |
+
include_once('CampaignLookupPreferences.php');
|
8 |
+
include_once('XMLDeliveryInfos.php');
|
9 |
+
include_once('SlicedDataSet.php');
|
10 |
+
include_once('Campaigns.php');
|
11 |
+
include_once('Campaign.php');
|
12 |
+
include_once('Message.php');
|
13 |
+
include_once('Recipients.php');
|
14 |
+
include_once('Sender.php');
|
15 |
+
include_once('TextMessage.php');
|
16 |
+
include_once('EmailMessage.php');
|
17 |
+
include_once('FaxMessage.php');
|
18 |
+
include_once('SubscriberSources.php');
|
19 |
+
include_once('SubscriberSource.php');
|
20 |
+
include_once('SubscriberSourceField.php');
|
21 |
+
include_once('MessageModels.php');
|
22 |
+
include_once('SubscriberSourceFilters.php');
|
23 |
+
include_once('CampaignNotes.php');
|
24 |
+
include_once('CampaignNote.php');
|
25 |
+
include_once('TrackedLinks.php');
|
26 |
+
include_once('TrackedLink.php');
|
27 |
+
include_once('Subscribers.php');
|
28 |
+
include_once('Subscriber.php');
|
29 |
+
include_once('SubscriberAttribute.php');
|
30 |
+
include_once('Attachment.php');
|
31 |
+
include_once('CampaignFeedback.php');
|
32 |
+
include_once('BounceDetail.php');
|
33 |
+
include_once('keepaliveToken.php');
|
34 |
+
include_once('keepaliveTokenResponse.php');
|
35 |
+
include_once('triggerDeliveryByAlias.php');
|
36 |
+
include_once('triggerDeliveryByAliasResponse.php');
|
37 |
+
include_once('getAvailableCommunicationCategories.php');
|
38 |
+
include_once('getAvailableCommunicationCategoriesResponse.php');
|
39 |
+
include_once('addSubscriberSourceFilter.php');
|
40 |
+
include_once('addSubscriberSourceFilterResponse.php');
|
41 |
+
include_once('getArchivedSubscriberSourceFilter.php');
|
42 |
+
include_once('getArchivedSubscriberSourceFilterResponse.php');
|
43 |
+
include_once('getXMLDeliveries.php');
|
44 |
+
include_once('getXMLDeliveriesResponse.php');
|
45 |
+
include_once('xmlDeliveryInfo.php');
|
46 |
+
include_once('sendCampaign.php');
|
47 |
+
include_once('sendCampaignResponse.php');
|
48 |
+
include_once('findCampaignsSentBetween.php');
|
49 |
+
include_once('findCampaignsSentBetweenResponse.php');
|
50 |
+
include_once('countSubscribers.php');
|
51 |
+
include_once('countSubscribersResponse.php');
|
52 |
+
include_once('sendImmediateMessageSdataCAlCA.php');
|
53 |
+
include_once('sendImmediateMessageSdataCAlCAResponse.php');
|
54 |
+
include_once('getXMLDeliveryTransitions.php');
|
55 |
+
include_once('getXMLDeliveryTransitionsResponse.php');
|
56 |
+
include_once('xmlDeliveryTransitionInfo.php');
|
57 |
+
include_once('findCampaignsByNameOrSubject.php');
|
58 |
+
include_once('findCampaignsByNameOrSubjectResponse.php');
|
59 |
+
include_once('sendImmediateMessageSidCAlCA.php');
|
60 |
+
include_once('sendImmediateMessageSidCAlCAResponse.php');
|
61 |
+
include_once('addCampaignNote.php');
|
62 |
+
include_once('addCampaignNoteResponse.php');
|
63 |
+
include_once('triggerDeliveryById.php');
|
64 |
+
include_once('triggerDeliveryByIdResponse.php');
|
65 |
+
include_once('getRequestStatus.php');
|
66 |
+
include_once('getRequestStatusResponse.php');
|
67 |
+
include_once('findCampaigns.php');
|
68 |
+
include_once('findCampaignsResponse.php');
|
69 |
+
include_once('updateSubscriber.php');
|
70 |
+
include_once('updateSubscriberResponse.php');
|
71 |
+
include_once('getCryptoKey.php');
|
72 |
+
include_once('getCryptoKeyResponse.php');
|
73 |
+
include_once('archiveSubscriberSourceFilter.php');
|
74 |
+
include_once('archiveSubscriberSourceFilterResponse.php');
|
75 |
+
include_once('cloneAndSendCampaign.php');
|
76 |
+
include_once('cloneAndSendCampaignResponse.php');
|
77 |
+
include_once('uploadMediaContent.php');
|
78 |
+
include_once('uploadMediaContentResponse.php');
|
79 |
+
include_once('findMessageModels.php');
|
80 |
+
include_once('findMessageModelsResponse.php');
|
81 |
+
include_once('sendImmediateMessageSDataCDataCA.php');
|
82 |
+
include_once('sendImmediateMessageSDataCDataCAResponse.php');
|
83 |
+
include_once('getCampaign.php');
|
84 |
+
include_once('getCampaignResponse.php');
|
85 |
+
include_once('addSubscribers.php');
|
86 |
+
include_once('addSubscribersResponse.php');
|
87 |
+
include_once('sendImmediateMessageSidCid.php');
|
88 |
+
include_once('sendImmediateMessageSidCidResponse.php');
|
89 |
+
include_once('sendImmediateMessageSDataCIdCA.php');
|
90 |
+
include_once('sendImmediateMessageSDataCIdCAResponse.php');
|
91 |
+
include_once('getSubscriberSourceFilter.php');
|
92 |
+
include_once('getSubscriberSourceFilterResponse.php');
|
93 |
+
include_once('findArchivedFiltersBySubscriberSource.php');
|
94 |
+
include_once('findArchivedFiltersBySubscriberSourceResponse.php');
|
95 |
+
include_once('getMessageModelById.php');
|
96 |
+
include_once('getMessageModelByIdResponse.php');
|
97 |
+
include_once('getAttachmentByCampaignId.php');
|
98 |
+
include_once('getAttachmentByCampaignIdResponse.php');
|
99 |
+
include_once('getSubscriber.php');
|
100 |
+
include_once('getSubscriberResponse.php');
|
101 |
+
include_once('findPeriodicCampaigns.php');
|
102 |
+
include_once('findPeriodicCampaignsResponse.php');
|
103 |
+
include_once('modifySubscriberSubscriptionStatus.php');
|
104 |
+
include_once('modifySubscriberSubscriptionStatusResponse.php');
|
105 |
+
include_once('borrowToken.php');
|
106 |
+
include_once('borrowTokenResponse.php');
|
107 |
+
include_once('findNotesByCampaign.php');
|
108 |
+
include_once('findNotesByCampaignResponse.php');
|
109 |
+
include_once('modifySubscriberSubscriptionStatusByMailqId.php');
|
110 |
+
include_once('modifySubscriberSubscriptionStatusByMailqIdResponse.php');
|
111 |
+
include_once('startSubscriberDataExchange.php');
|
112 |
+
include_once('startSubscriberDataExchangeResponse.php');
|
113 |
+
include_once('getCampaignDeliveryStatus.php');
|
114 |
+
include_once('getCampaignDeliveryStatusResponse.php');
|
115 |
+
include_once('removeSubscriber.php');
|
116 |
+
include_once('removeSubscriberResponse.php');
|
117 |
+
include_once('addAttachment.php');
|
118 |
+
include_once('addAttachmentResponse.php');
|
119 |
+
include_once('setCampaignRecurrency.php');
|
120 |
+
include_once('setCampaignRecurrencyResponse.php');
|
121 |
+
include_once('findFiltersBySubscriberSource.php');
|
122 |
+
include_once('findFiltersBySubscriberSourceResponse.php');
|
123 |
+
include_once('countSubscribersIncludedInFilter.php');
|
124 |
+
include_once('countSubscribersIncludedInFilterResponse.php');
|
125 |
+
include_once('sendImmediateMessageSidCidCA.php');
|
126 |
+
include_once('sendImmediateMessageSidCidCAResponse.php');
|
127 |
+
include_once('findSubscriberSources.php');
|
128 |
+
include_once('findSubscriberSourcesResponse.php');
|
129 |
+
include_once('addSubscriberSource.php');
|
130 |
+
include_once('addSubscriberSourceResponse.php');
|
131 |
+
include_once('findMessageModelsBySubscriberSource.php');
|
132 |
+
include_once('findMessageModelsBySubscriberSourceResponse.php');
|
133 |
+
include_once('sendImmediateMessageSdataCAl.php');
|
134 |
+
include_once('sendImmediateMessageSdataCAlResponse.php');
|
135 |
+
include_once('findCampaignsByModel.php');
|
136 |
+
include_once('findCampaignsByModelResponse.php');
|
137 |
+
include_once('sendImmediateMessageSDataCData.php');
|
138 |
+
include_once('sendImmediateMessageSDataCDataResponse.php');
|
139 |
+
include_once('getSubscriberDataExchangeStatus.php');
|
140 |
+
include_once('getSubscriberDataExchangeStatusResponse.php');
|
141 |
+
include_once('sendImmediateMessageSIdCDataCA.php');
|
142 |
+
include_once('sendImmediateMessageSIdCDataCAResponse.php');
|
143 |
+
include_once('sendImmediateMessage.php');
|
144 |
+
include_once('sendImmediateMessageResponse.php');
|
145 |
+
include_once('sendImmediateMessageSIdCData.php');
|
146 |
+
include_once('sendImmediateMessageSIdCDataResponse.php');
|
147 |
+
include_once('sendImmediateMessageSidCAl.php');
|
148 |
+
include_once('sendImmediateMessageSidCAlResponse.php');
|
149 |
+
include_once('findCampaignsByStatus.php');
|
150 |
+
include_once('findCampaignsByStatusResponse.php');
|
151 |
+
include_once('getSubscriberSource.php');
|
152 |
+
include_once('getSubscriberSourceResponse.php');
|
153 |
+
include_once('findSubscribers.php');
|
154 |
+
include_once('findSubscribersResponse.php');
|
155 |
+
include_once('findTriggerableCampaigns.php');
|
156 |
+
include_once('findTriggerableCampaignsResponse.php');
|
157 |
+
include_once('findCampaignsByNote.php');
|
158 |
+
include_once('findCampaignsByNoteResponse.php');
|
159 |
+
include_once('publishOnWeb.php');
|
160 |
+
include_once('publishOnWebResponse.php');
|
161 |
+
include_once('invalidateToken.php');
|
162 |
+
include_once('invalidateTokenResponse.php');
|
163 |
+
include_once('reuseSubscriberSourceFilter.php');
|
164 |
+
include_once('reuseSubscriberSourceFilterResponse.php');
|
165 |
+
include_once('createCampaign.php');
|
166 |
+
include_once('createCampaignResponse.php');
|
167 |
+
include_once('addSubscriber.php');
|
168 |
+
include_once('addSubscriberResponse.php');
|
169 |
+
include_once('getTrackedLinks.php');
|
170 |
+
include_once('getTrackedLinksResponse.php');
|
171 |
+
include_once('getCampaignFeedback.php');
|
172 |
+
include_once('getCampaignFeedbackResponse.php');
|
173 |
+
include_once('requestCampaignFeedbackReport.php');
|
174 |
+
include_once('requestCampaignFeedbackReportResponse.php');
|
175 |
+
include_once('createMessageModel.php');
|
176 |
+
include_once('createMessageModelResponse.php');
|
177 |
+
include_once('cancelCampaign.php');
|
178 |
+
include_once('cancelCampaignResponse.php');
|
179 |
+
include_once('findSubscribersIncludedInFilter.php');
|
180 |
+
include_once('findSubscribersIncludedInFilterResponse.php');
|
181 |
+
|
182 |
+
|
183 |
+
/**
|
184 |
+
*
|
185 |
+
*/
|
186 |
+
class ClabService extends SoapClient
|
187 |
+
{
|
188 |
+
|
189 |
+
/**
|
190 |
+
*
|
191 |
+
* @var array $classmap The defined classes
|
192 |
+
* @access private
|
193 |
+
*/
|
194 |
+
private static $classmap = array(
|
195 |
+
'AuthToken' => 'AuthToken',
|
196 |
+
'CommunicationCategory' => 'CommunicationCategory',
|
197 |
+
'SubscriberSourceFilter' => 'SubscriberSourceFilter',
|
198 |
+
'LookupPreferences' => 'LookupPreferences',
|
199 |
+
'CampaignLookupPreferences' => 'CampaignLookupPreferences',
|
200 |
+
'XMLDeliveryInfos' => 'XMLDeliveryInfos',
|
201 |
+
'SlicedDataSet' => 'SlicedDataSet',
|
202 |
+
'Campaigns' => 'Campaigns',
|
203 |
+
'Campaign' => 'Campaign',
|
204 |
+
'Message' => 'Message',
|
205 |
+
'Recipients' => 'Recipients',
|
206 |
+
'Sender' => 'Sender',
|
207 |
+
'TextMessage' => 'TextMessage',
|
208 |
+
'EmailMessage' => 'EmailMessage',
|
209 |
+
'FaxMessage' => 'FaxMessage',
|
210 |
+
'SubscriberSources' => 'SubscriberSources',
|
211 |
+
'SubscriberSource' => 'SubscriberSource',
|
212 |
+
'SubscriberSourceField' => 'SubscriberSourceField',
|
213 |
+
'MessageModels' => 'MessageModels',
|
214 |
+
'SubscriberSourceFilters' => 'SubscriberSourceFilters',
|
215 |
+
'CampaignNotes' => 'CampaignNotes',
|
216 |
+
'CampaignNote' => 'CampaignNote',
|
217 |
+
'TrackedLinks' => 'TrackedLinks',
|
218 |
+
'TrackedLink' => 'TrackedLink',
|
219 |
+
'Subscribers' => 'Subscribers',
|
220 |
+
'Subscriber' => 'Subscriber',
|
221 |
+
'SubscriberAttribute' => 'SubscriberAttribute',
|
222 |
+
'Attachment' => 'Attachment',
|
223 |
+
'CampaignFeedback' => 'CampaignFeedback',
|
224 |
+
'BounceDetail' => 'BounceDetail',
|
225 |
+
'keepaliveToken' => 'keepaliveToken',
|
226 |
+
'keepaliveTokenResponse' => 'keepaliveTokenResponse',
|
227 |
+
'triggerDeliveryByAlias' => 'triggerDeliveryByAlias',
|
228 |
+
'triggerDeliveryByAliasResponse' => 'triggerDeliveryByAliasResponse',
|
229 |
+
'getAvailableCommunicationCategories' => 'getAvailableCommunicationCategories',
|
230 |
+
'getAvailableCommunicationCategoriesResponse' => 'getAvailableCommunicationCategoriesResponse',
|
231 |
+
'addSubscriberSourceFilter' => 'addSubscriberSourceFilter',
|
232 |
+
'addSubscriberSourceFilterResponse' => 'addSubscriberSourceFilterResponse',
|
233 |
+
'getArchivedSubscriberSourceFilter' => 'getArchivedSubscriberSourceFilter',
|
234 |
+
'getArchivedSubscriberSourceFilterResponse' => 'getArchivedSubscriberSourceFilterResponse',
|
235 |
+
'getXMLDeliveries' => 'getXMLDeliveries',
|
236 |
+
'getXMLDeliveriesResponse' => 'getXMLDeliveriesResponse',
|
237 |
+
'xmlDeliveryInfo' => 'xmlDeliveryInfo',
|
238 |
+
'sendCampaign' => 'sendCampaign',
|
239 |
+
'sendCampaignResponse' => 'sendCampaignResponse',
|
240 |
+
'findCampaignsSentBetween' => 'findCampaignsSentBetween',
|
241 |
+
'findCampaignsSentBetweenResponse' => 'findCampaignsSentBetweenResponse',
|
242 |
+
'countSubscribers' => 'countSubscribers',
|
243 |
+
'countSubscribersResponse' => 'countSubscribersResponse',
|
244 |
+
'sendImmediateMessageSdataCAlCA' => 'sendImmediateMessageSdataCAlCA',
|
245 |
+
'sendImmediateMessageSdataCAlCAResponse' => 'sendImmediateMessageSdataCAlCAResponse',
|
246 |
+
'getXMLDeliveryTransitions' => 'getXMLDeliveryTransitions',
|
247 |
+
'getXMLDeliveryTransitionsResponse' => 'getXMLDeliveryTransitionsResponse',
|
248 |
+
'xmlDeliveryTransitionInfo' => 'xmlDeliveryTransitionInfo',
|
249 |
+
'findCampaignsByNameOrSubject' => 'findCampaignsByNameOrSubject',
|
250 |
+
'findCampaignsByNameOrSubjectResponse' => 'findCampaignsByNameOrSubjectResponse',
|
251 |
+
'sendImmediateMessageSidCAlCA' => 'sendImmediateMessageSidCAlCA',
|
252 |
+
'sendImmediateMessageSidCAlCAResponse' => 'sendImmediateMessageSidCAlCAResponse',
|
253 |
+
'addCampaignNote' => 'addCampaignNote',
|
254 |
+
'addCampaignNoteResponse' => 'addCampaignNoteResponse',
|
255 |
+
'triggerDeliveryById' => 'triggerDeliveryById',
|
256 |
+
'triggerDeliveryByIdResponse' => 'triggerDeliveryByIdResponse',
|
257 |
+
'getRequestStatus' => 'getRequestStatus',
|
258 |
+
'getRequestStatusResponse' => 'getRequestStatusResponse',
|
259 |
+
'findCampaigns' => 'findCampaigns',
|
260 |
+
'findCampaignsResponse' => 'findCampaignsResponse',
|
261 |
+
'updateSubscriber' => 'updateSubscriber',
|
262 |
+
'updateSubscriberResponse' => 'updateSubscriberResponse',
|
263 |
+
'getCryptoKey' => 'getCryptoKey',
|
264 |
+
'getCryptoKeyResponse' => 'getCryptoKeyResponse',
|
265 |
+
'archiveSubscriberSourceFilter' => 'archiveSubscriberSourceFilter',
|
266 |
+
'archiveSubscriberSourceFilterResponse' => 'archiveSubscriberSourceFilterResponse',
|
267 |
+
'cloneAndSendCampaign' => 'cloneAndSendCampaign',
|
268 |
+
'cloneAndSendCampaignResponse' => 'cloneAndSendCampaignResponse',
|
269 |
+
'uploadMediaContent' => 'uploadMediaContent',
|
270 |
+
'uploadMediaContentResponse' => 'uploadMediaContentResponse',
|
271 |
+
'findMessageModels' => 'findMessageModels',
|
272 |
+
'findMessageModelsResponse' => 'findMessageModelsResponse',
|
273 |
+
'sendImmediateMessageSDataCDataCA' => 'sendImmediateMessageSDataCDataCA',
|
274 |
+
'sendImmediateMessageSDataCDataCAResponse' => 'sendImmediateMessageSDataCDataCAResponse',
|
275 |
+
'getCampaign' => 'getCampaign',
|
276 |
+
'getCampaignResponse' => 'getCampaignResponse',
|
277 |
+
'addSubscribers' => 'addSubscribers',
|
278 |
+
'addSubscribersResponse' => 'addSubscribersResponse',
|
279 |
+
'sendImmediateMessageSidCid' => 'sendImmediateMessageSidCid',
|
280 |
+
'sendImmediateMessageSidCidResponse' => 'sendImmediateMessageSidCidResponse',
|
281 |
+
'sendImmediateMessageSDataCIdCA' => 'sendImmediateMessageSDataCIdCA',
|
282 |
+
'sendImmediateMessageSDataCIdCAResponse' => 'sendImmediateMessageSDataCIdCAResponse',
|
283 |
+
'getSubscriberSourceFilter' => 'getSubscriberSourceFilter',
|
284 |
+
'getSubscriberSourceFilterResponse' => 'getSubscriberSourceFilterResponse',
|
285 |
+
'findArchivedFiltersBySubscriberSource' => 'findArchivedFiltersBySubscriberSource',
|
286 |
+
'findArchivedFiltersBySubscriberSourceResponse' => 'findArchivedFiltersBySubscriberSourceResponse',
|
287 |
+
'getMessageModelById' => 'getMessageModelById',
|
288 |
+
'getMessageModelByIdResponse' => 'getMessageModelByIdResponse',
|
289 |
+
'getAttachmentByCampaignId' => 'getAttachmentByCampaignId',
|
290 |
+
'getAttachmentByCampaignIdResponse' => 'getAttachmentByCampaignIdResponse',
|
291 |
+
'getSubscriber' => 'getSubscriber',
|
292 |
+
'getSubscriberResponse' => 'getSubscriberResponse',
|
293 |
+
'findPeriodicCampaigns' => 'findPeriodicCampaigns',
|
294 |
+
'findPeriodicCampaignsResponse' => 'findPeriodicCampaignsResponse',
|
295 |
+
'modifySubscriberSubscriptionStatus' => 'modifySubscriberSubscriptionStatus',
|
296 |
+
'modifySubscriberSubscriptionStatusResponse' => 'modifySubscriberSubscriptionStatusResponse',
|
297 |
+
'borrowToken' => 'borrowToken',
|
298 |
+
'borrowTokenResponse' => 'borrowTokenResponse',
|
299 |
+
'findNotesByCampaign' => 'findNotesByCampaign',
|
300 |
+
'findNotesByCampaignResponse' => 'findNotesByCampaignResponse',
|
301 |
+
'modifySubscriberSubscriptionStatusByMailqId' => 'modifySubscriberSubscriptionStatusByMailqId',
|
302 |
+
'modifySubscriberSubscriptionStatusByMailqIdResponse' => 'modifySubscriberSubscriptionStatusByMailqIdResponse',
|
303 |
+
'startSubscriberDataExchange' => 'startSubscriberDataExchange',
|
304 |
+
'startSubscriberDataExchangeResponse' => 'startSubscriberDataExchangeResponse',
|
305 |
+
'getCampaignDeliveryStatus' => 'getCampaignDeliveryStatus',
|
306 |
+
'getCampaignDeliveryStatusResponse' => 'getCampaignDeliveryStatusResponse',
|
307 |
+
'removeSubscriber' => 'removeSubscriber',
|
308 |
+
'removeSubscriberResponse' => 'removeSubscriberResponse',
|
309 |
+
'addAttachment' => 'addAttachment',
|
310 |
+
'addAttachmentResponse' => 'addAttachmentResponse',
|
311 |
+
'setCampaignRecurrency' => 'setCampaignRecurrency',
|
312 |
+
'setCampaignRecurrencyResponse' => 'setCampaignRecurrencyResponse',
|
313 |
+
'findFiltersBySubscriberSource' => 'findFiltersBySubscriberSource',
|
314 |
+
'findFiltersBySubscriberSourceResponse' => 'findFiltersBySubscriberSourceResponse',
|
315 |
+
'countSubscribersIncludedInFilter' => 'countSubscribersIncludedInFilter',
|
316 |
+
'countSubscribersIncludedInFilterResponse' => 'countSubscribersIncludedInFilterResponse',
|
317 |
+
'sendImmediateMessageSidCidCA' => 'sendImmediateMessageSidCidCA',
|
318 |
+
'sendImmediateMessageSidCidCAResponse' => 'sendImmediateMessageSidCidCAResponse',
|
319 |
+
'findSubscriberSources' => 'findSubscriberSources',
|
320 |
+
'findSubscriberSourcesResponse' => 'findSubscriberSourcesResponse',
|
321 |
+
'addSubscriberSource' => 'addSubscriberSource',
|
322 |
+
'addSubscriberSourceResponse' => 'addSubscriberSourceResponse',
|
323 |
+
'findMessageModelsBySubscriberSource' => 'findMessageModelsBySubscriberSource',
|
324 |
+
'findMessageModelsBySubscriberSourceResponse' => 'findMessageModelsBySubscriberSourceResponse',
|
325 |
+
'sendImmediateMessageSdataCAl' => 'sendImmediateMessageSdataCAl',
|
326 |
+
'sendImmediateMessageSdataCAlResponse' => 'sendImmediateMessageSdataCAlResponse',
|
327 |
+
'findCampaignsByModel' => 'findCampaignsByModel',
|
328 |
+
'findCampaignsByModelResponse' => 'findCampaignsByModelResponse',
|
329 |
+
'sendImmediateMessageSDataCData' => 'sendImmediateMessageSDataCData',
|
330 |
+
'sendImmediateMessageSDataCDataResponse' => 'sendImmediateMessageSDataCDataResponse',
|
331 |
+
'getSubscriberDataExchangeStatus' => 'getSubscriberDataExchangeStatus',
|
332 |
+
'getSubscriberDataExchangeStatusResponse' => 'getSubscriberDataExchangeStatusResponse',
|
333 |
+
'sendImmediateMessageSIdCDataCA' => 'sendImmediateMessageSIdCDataCA',
|
334 |
+
'sendImmediateMessageSIdCDataCAResponse' => 'sendImmediateMessageSIdCDataCAResponse',
|
335 |
+
'sendImmediateMessage' => 'sendImmediateMessage',
|
336 |
+
'sendImmediateMessageResponse' => 'sendImmediateMessageResponse',
|
337 |
+
'sendImmediateMessageSIdCData' => 'sendImmediateMessageSIdCData',
|
338 |
+
'sendImmediateMessageSIdCDataResponse' => 'sendImmediateMessageSIdCDataResponse',
|
339 |
+
'sendImmediateMessageSidCAl' => 'sendImmediateMessageSidCAl',
|
340 |
+
'sendImmediateMessageSidCAlResponse' => 'sendImmediateMessageSidCAlResponse',
|
341 |
+
'findCampaignsByStatus' => 'findCampaignsByStatus',
|
342 |
+
'findCampaignsByStatusResponse' => 'findCampaignsByStatusResponse',
|
343 |
+
'getSubscriberSource' => 'getSubscriberSource',
|
344 |
+
'getSubscriberSourceResponse' => 'getSubscriberSourceResponse',
|
345 |
+
'findSubscribers' => 'findSubscribers',
|
346 |
+
'findSubscribersResponse' => 'findSubscribersResponse',
|
347 |
+
'findTriggerableCampaigns' => 'findTriggerableCampaigns',
|
348 |
+
'findTriggerableCampaignsResponse' => 'findTriggerableCampaignsResponse',
|
349 |
+
'findCampaignsByNote' => 'findCampaignsByNote',
|
350 |
+
'findCampaignsByNoteResponse' => 'findCampaignsByNoteResponse',
|
351 |
+
'publishOnWeb' => 'publishOnWeb',
|
352 |
+
'publishOnWebResponse' => 'publishOnWebResponse',
|
353 |
+
'invalidateToken' => 'invalidateToken',
|
354 |
+
'invalidateTokenResponse' => 'invalidateTokenResponse',
|
355 |
+
'reuseSubscriberSourceFilter' => 'reuseSubscriberSourceFilter',
|
356 |
+
'reuseSubscriberSourceFilterResponse' => 'reuseSubscriberSourceFilterResponse',
|
357 |
+
'createCampaign' => 'createCampaign',
|
358 |
+
'createCampaignResponse' => 'createCampaignResponse',
|
359 |
+
'addSubscriber' => 'addSubscriber',
|
360 |
+
'addSubscriberResponse' => 'addSubscriberResponse',
|
361 |
+
'getTrackedLinks' => 'getTrackedLinks',
|
362 |
+
'getTrackedLinksResponse' => 'getTrackedLinksResponse',
|
363 |
+
'getCampaignFeedback' => 'getCampaignFeedback',
|
364 |
+
'getCampaignFeedbackResponse' => 'getCampaignFeedbackResponse',
|
365 |
+
'requestCampaignFeedbackReport' => 'requestCampaignFeedbackReport',
|
366 |
+
'requestCampaignFeedbackReportResponse' => 'requestCampaignFeedbackReportResponse',
|
367 |
+
'createMessageModel' => 'createMessageModel',
|
368 |
+
'createMessageModelResponse' => 'createMessageModelResponse',
|
369 |
+
'cancelCampaign' => 'cancelCampaign',
|
370 |
+
'cancelCampaignResponse' => 'cancelCampaignResponse',
|
371 |
+
'findSubscribersIncludedInFilter' => 'findSubscribersIncludedInFilter',
|
372 |
+
'findSubscribersIncludedInFilterResponse' => 'findSubscribersIncludedInFilterResponse');
|
373 |
+
|
374 |
+
/**
|
375 |
+
*
|
376 |
+
* @param array $config A array of config values
|
377 |
+
* @param string $wsdl The wsdl file to use
|
378 |
+
* @access public
|
379 |
+
*/
|
380 |
+
public function __construct(array $options = array('soap_version' => SOAP_1_2,'connection_timeout' => 30,'trace'=>true,'keep_alive' => true), $wsdl = 'https://soap.contactlab.it/soap/services?wsdl')
|
381 |
+
{
|
382 |
+
foreach(self::$classmap as $key => $value)
|
383 |
+
{
|
384 |
+
if(!isset($options['classmap'][$key]))
|
385 |
+
{
|
386 |
+
$options['classmap'][$key] = $value;
|
387 |
+
}
|
388 |
+
}
|
389 |
+
|
390 |
+
if (isset($options['features']) == false)
|
391 |
+
{
|
392 |
+
$options['features'] = 2 | 30 | 1 | 1;
|
393 |
+
}
|
394 |
+
|
395 |
+
parent::__construct($wsdl, $options);
|
396 |
+
}
|
397 |
+
|
398 |
+
/**
|
399 |
+
*
|
400 |
+
* @param getAvailableCommunicationCategories $parameters
|
401 |
+
* @access public
|
402 |
+
*/
|
403 |
+
public function getAvailableCommunicationCategories(getAvailableCommunicationCategories $parameters)
|
404 |
+
{
|
405 |
+
return $this->__soapCall('getAvailableCommunicationCategories', array($parameters));
|
406 |
+
}
|
407 |
+
|
408 |
+
/**
|
409 |
+
*
|
410 |
+
* @param getCampaignDeliveryStatus $parameters
|
411 |
+
* @access public
|
412 |
+
*/
|
413 |
+
public function getCampaignDeliveryStatus(getCampaignDeliveryStatus $parameters)
|
414 |
+
{
|
415 |
+
return $this->__soapCall('getCampaignDeliveryStatus', array($parameters));
|
416 |
+
}
|
417 |
+
|
418 |
+
/**
|
419 |
+
*
|
420 |
+
* @param publishOnWeb $parameters
|
421 |
+
* @access public
|
422 |
+
*/
|
423 |
+
public function publishOnWeb(publishOnWeb $parameters)
|
424 |
+
{
|
425 |
+
return $this->__soapCall('publishOnWeb', array($parameters));
|
426 |
+
}
|
427 |
+
|
428 |
+
/**
|
429 |
+
*
|
430 |
+
* @param updateSubscriber $parameters
|
431 |
+
* @access public
|
432 |
+
*/
|
433 |
+
public function updateSubscriber(updateSubscriber $parameters)
|
434 |
+
{
|
435 |
+
return $this->__soapCall('updateSubscriber', array($parameters));
|
436 |
+
}
|
437 |
+
|
438 |
+
/**
|
439 |
+
*
|
440 |
+
* @param modifySubscriberSubscriptionStatus $parameters
|
441 |
+
* @access public
|
442 |
+
*/
|
443 |
+
public function modifySubscriberSubscriptionStatus(modifySubscriberSubscriptionStatus $parameters)
|
444 |
+
{
|
445 |
+
return $this->__soapCall('modifySubscriberSubscriptionStatus', array($parameters));
|
446 |
+
}
|
447 |
+
|
448 |
+
/**
|
449 |
+
*
|
450 |
+
* @param countSubscribers $parameters
|
451 |
+
* @access public
|
452 |
+
*/
|
453 |
+
public function countSubscribers(countSubscribers $parameters)
|
454 |
+
{
|
455 |
+
return $this->__soapCall('countSubscribers', array($parameters));
|
456 |
+
}
|
457 |
+
|
458 |
+
/**
|
459 |
+
*
|
460 |
+
* @param addCampaignNote $parameters
|
461 |
+
* @access public
|
462 |
+
*/
|
463 |
+
public function addCampaignNote(addCampaignNote $parameters)
|
464 |
+
{
|
465 |
+
return $this->__soapCall('addCampaignNote', array($parameters));
|
466 |
+
}
|
467 |
+
|
468 |
+
/**
|
469 |
+
*
|
470 |
+
* @param findNotesByCampaign $parameters
|
471 |
+
* @access public
|
472 |
+
*/
|
473 |
+
public function findNotesByCampaign(findNotesByCampaign $parameters)
|
474 |
+
{
|
475 |
+
return $this->__soapCall('findNotesByCampaign', array($parameters));
|
476 |
+
}
|
477 |
+
|
478 |
+
/**
|
479 |
+
*
|
480 |
+
* @param addAttachment $parameters
|
481 |
+
* @access public
|
482 |
+
*/
|
483 |
+
public function addAttachment(addAttachment $parameters)
|
484 |
+
{
|
485 |
+
return $this->__soapCall('addAttachment', array($parameters));
|
486 |
+
}
|
487 |
+
|
488 |
+
/**
|
489 |
+
*
|
490 |
+
* @param getCampaignFeedback $parameters
|
491 |
+
* @access public
|
492 |
+
*/
|
493 |
+
public function getCampaignFeedback(getCampaignFeedback $parameters)
|
494 |
+
{
|
495 |
+
return $this->__soapCall('getCampaignFeedback', array($parameters));
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
*
|
500 |
+
* @param requestCampaignFeedbackReport $parameters
|
501 |
+
* @access public
|
502 |
+
*/
|
503 |
+
public function requestCampaignFeedbackReport(requestCampaignFeedbackReport $parameters)
|
504 |
+
{
|
505 |
+
return $this->__soapCall('requestCampaignFeedbackReport', array($parameters));
|
506 |
+
}
|
507 |
+
|
508 |
+
/**
|
509 |
+
*
|
510 |
+
* @param uploadMediaContent $parameters
|
511 |
+
* @access public
|
512 |
+
*/
|
513 |
+
public function uploadMediaContent(uploadMediaContent $parameters)
|
514 |
+
{
|
515 |
+
return $this->__soapCall('uploadMediaContent', array($parameters));
|
516 |
+
}
|
517 |
+
|
518 |
+
/**
|
519 |
+
*
|
520 |
+
* @param getCampaign $parameters
|
521 |
+
* @access public
|
522 |
+
*/
|
523 |
+
public function getCampaign(getCampaign $parameters)
|
524 |
+
{
|
525 |
+
return $this->__soapCall('getCampaign', array($parameters));
|
526 |
+
}
|
527 |
+
|
528 |
+
/**
|
529 |
+
*
|
530 |
+
* @param findCampaignsByNameOrSubject $parameters
|
531 |
+
* @access public
|
532 |
+
*/
|
533 |
+
public function findCampaignsByNameOrSubject(findCampaignsByNameOrSubject $parameters)
|
534 |
+
{
|
535 |
+
return $this->__soapCall('findCampaignsByNameOrSubject', array($parameters));
|
536 |
+
}
|
537 |
+
|
538 |
+
/**
|
539 |
+
*
|
540 |
+
* @param findCampaignsByStatus $parameters
|
541 |
+
* @access public
|
542 |
+
*/
|
543 |
+
public function findCampaignsByStatus(findCampaignsByStatus $parameters)
|
544 |
+
{
|
545 |
+
return $this->__soapCall('findCampaignsByStatus', array($parameters));
|
546 |
+
}
|
547 |
+
|
548 |
+
/**
|
549 |
+
*
|
550 |
+
* @param findCampaignsSentBetween $parameters
|
551 |
+
* @access public
|
552 |
+
*/
|
553 |
+
public function findCampaignsSentBetween(findCampaignsSentBetween $parameters)
|
554 |
+
{
|
555 |
+
return $this->__soapCall('findCampaignsSentBetween', array($parameters));
|
556 |
+
}
|
557 |
+
|
558 |
+
/**
|
559 |
+
*
|
560 |
+
* @param findCampaignsByNote $parameters
|
561 |
+
* @access public
|
562 |
+
*/
|
563 |
+
public function findCampaignsByNote(findCampaignsByNote $parameters)
|
564 |
+
{
|
565 |
+
return $this->__soapCall('findCampaignsByNote', array($parameters));
|
566 |
+
}
|
567 |
+
|
568 |
+
/**
|
569 |
+
*
|
570 |
+
* @param findCampaignsByModel $parameters
|
571 |
+
* @access public
|
572 |
+
*/
|
573 |
+
public function findCampaignsByModel(findCampaignsByModel $parameters)
|
574 |
+
{
|
575 |
+
return $this->__soapCall('findCampaignsByModel', array($parameters));
|
576 |
+
}
|
577 |
+
|
578 |
+
/**
|
579 |
+
*
|
580 |
+
* @param findTriggerableCampaigns $parameters
|
581 |
+
* @access public
|
582 |
+
*/
|
583 |
+
public function findTriggerableCampaigns(findTriggerableCampaigns $parameters)
|
584 |
+
{
|
585 |
+
return $this->__soapCall('findTriggerableCampaigns', array($parameters));
|
586 |
+
}
|
587 |
+
|
588 |
+
/**
|
589 |
+
*
|
590 |
+
* @param findPeriodicCampaigns $parameters
|
591 |
+
* @access public
|
592 |
+
*/
|
593 |
+
public function findPeriodicCampaigns(findPeriodicCampaigns $parameters)
|
594 |
+
{
|
595 |
+
return $this->__soapCall('findPeriodicCampaigns', array($parameters));
|
596 |
+
}
|
597 |
+
|
598 |
+
/**
|
599 |
+
*
|
600 |
+
* @param startSubscriberDataExchange $parameters
|
601 |
+
* @access public
|
602 |
+
*/
|
603 |
+
public function startSubscriberDataExchange(startSubscriberDataExchange $parameters)
|
604 |
+
{
|
605 |
+
return $this->__soapCall('startSubscriberDataExchange', array($parameters));
|
606 |
+
}
|
607 |
+
|
608 |
+
/**
|
609 |
+
*
|
610 |
+
* @param getSubscriberDataExchangeStatus $parameters
|
611 |
+
* @access public
|
612 |
+
*/
|
613 |
+
public function getSubscriberDataExchangeStatus(getSubscriberDataExchangeStatus $parameters)
|
614 |
+
{
|
615 |
+
return $this->__soapCall('getSubscriberDataExchangeStatus', array($parameters));
|
616 |
+
}
|
617 |
+
|
618 |
+
/**
|
619 |
+
*
|
620 |
+
* @param setCampaignRecurrency $parameters
|
621 |
+
* @access public
|
622 |
+
*/
|
623 |
+
public function setCampaignRecurrency(setCampaignRecurrency $parameters)
|
624 |
+
{
|
625 |
+
return $this->__soapCall('setCampaignRecurrency', array($parameters));
|
626 |
+
}
|
627 |
+
|
628 |
+
/**
|
629 |
+
*
|
630 |
+
* @param sendCampaign $parameters
|
631 |
+
* @access public
|
632 |
+
*/
|
633 |
+
public function sendCampaign(sendCampaign $parameters)
|
634 |
+
{
|
635 |
+
return $this->__soapCall('sendCampaign', array($parameters));
|
636 |
+
}
|
637 |
+
|
638 |
+
/**
|
639 |
+
*
|
640 |
+
* @param cloneAndSendCampaign $parameters
|
641 |
+
* @access public
|
642 |
+
*/
|
643 |
+
public function cloneAndSendCampaign(cloneAndSendCampaign $parameters)
|
644 |
+
{
|
645 |
+
return $this->__soapCall('cloneAndSendCampaign', array($parameters));
|
646 |
+
}
|
647 |
+
|
648 |
+
/**
|
649 |
+
*
|
650 |
+
* @param getRequestStatus $parameters
|
651 |
+
* @access public
|
652 |
+
*/
|
653 |
+
public function getRequestStatus(getRequestStatus $parameters)
|
654 |
+
{
|
655 |
+
return $this->__soapCall('getRequestStatus', array($parameters));
|
656 |
+
}
|
657 |
+
|
658 |
+
/**
|
659 |
+
*
|
660 |
+
* @param createCampaign $parameters
|
661 |
+
* @access public
|
662 |
+
*/
|
663 |
+
public function createCampaign(createCampaign $parameters)
|
664 |
+
{
|
665 |
+
return $this->__soapCall('createCampaign', array($parameters));
|
666 |
+
}
|
667 |
+
|
668 |
+
/**
|
669 |
+
*
|
670 |
+
* @param getXMLDeliveries $parameters
|
671 |
+
* @access public
|
672 |
+
*/
|
673 |
+
public function getXMLDeliveries(getXMLDeliveries $parameters)
|
674 |
+
{
|
675 |
+
return $this->__soapCall('getXMLDeliveries', array($parameters));
|
676 |
+
}
|
677 |
+
|
678 |
+
/**
|
679 |
+
*
|
680 |
+
* @param getXMLDeliveryTransitions $parameters
|
681 |
+
* @access public
|
682 |
+
*/
|
683 |
+
public function getXMLDeliveryTransitions(getXMLDeliveryTransitions $parameters)
|
684 |
+
{
|
685 |
+
return $this->__soapCall('getXMLDeliveryTransitions', array($parameters));
|
686 |
+
}
|
687 |
+
|
688 |
+
/**
|
689 |
+
*
|
690 |
+
* @param cancelCampaign $parameters
|
691 |
+
* @access public
|
692 |
+
*/
|
693 |
+
public function cancelCampaign(cancelCampaign $parameters)
|
694 |
+
{
|
695 |
+
return $this->__soapCall('cancelCampaign', array($parameters));
|
696 |
+
}
|
697 |
+
|
698 |
+
/**
|
699 |
+
*
|
700 |
+
* @param getMessageModelById $parameters
|
701 |
+
* @access public
|
702 |
+
*/
|
703 |
+
public function getMessageModelById(getMessageModelById $parameters)
|
704 |
+
{
|
705 |
+
return $this->__soapCall('getMessageModelById', array($parameters));
|
706 |
+
}
|
707 |
+
|
708 |
+
/**
|
709 |
+
*
|
710 |
+
* @param createMessageModel $parameters
|
711 |
+
* @access public
|
712 |
+
*/
|
713 |
+
public function createMessageModel(createMessageModel $parameters)
|
714 |
+
{
|
715 |
+
return $this->__soapCall('createMessageModel', array($parameters));
|
716 |
+
}
|
717 |
+
|
718 |
+
/**
|
719 |
+
*
|
720 |
+
* @param findMessageModels $parameters
|
721 |
+
* @access public
|
722 |
+
*/
|
723 |
+
public function findMessageModels(findMessageModels $parameters)
|
724 |
+
{
|
725 |
+
return $this->__soapCall('findMessageModels', array($parameters));
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
*
|
730 |
+
* @param findMessageModelsBySubscriberSource $parameters
|
731 |
+
* @access public
|
732 |
+
*/
|
733 |
+
public function findMessageModelsBySubscriberSource(findMessageModelsBySubscriberSource $parameters)
|
734 |
+
{
|
735 |
+
return $this->__soapCall('findMessageModelsBySubscriberSource', array($parameters));
|
736 |
+
}
|
737 |
+
|
738 |
+
/**
|
739 |
+
*
|
740 |
+
* @param getSubscriberSourceFilter $parameters
|
741 |
+
* @access public
|
742 |
+
*/
|
743 |
+
public function getSubscriberSourceFilter(getSubscriberSourceFilter $parameters)
|
744 |
+
{
|
745 |
+
return $this->__soapCall('getSubscriberSourceFilter', array($parameters));
|
746 |
+
}
|
747 |
+
|
748 |
+
/**
|
749 |
+
*
|
750 |
+
* @param addSubscriberSourceFilter $parameters
|
751 |
+
* @access public
|
752 |
+
*/
|
753 |
+
public function addSubscriberSourceFilter(addSubscriberSourceFilter $parameters)
|
754 |
+
{
|
755 |
+
return $this->__soapCall('addSubscriberSourceFilter', array($parameters));
|
756 |
+
}
|
757 |
+
|
758 |
+
/**
|
759 |
+
*
|
760 |
+
* @param findFiltersBySubscriberSource $parameters
|
761 |
+
* @access public
|
762 |
+
*/
|
763 |
+
public function findFiltersBySubscriberSource(findFiltersBySubscriberSource $parameters)
|
764 |
+
{
|
765 |
+
return $this->__soapCall('findFiltersBySubscriberSource', array($parameters));
|
766 |
+
}
|
767 |
+
|
768 |
+
/**
|
769 |
+
*
|
770 |
+
* @param getSubscriberSource $parameters
|
771 |
+
* @access public
|
772 |
+
*/
|
773 |
+
public function getSubscriberSource(getSubscriberSource $parameters)
|
774 |
+
{
|
775 |
+
return $this->__soapCall('getSubscriberSource', array($parameters));
|
776 |
+
}
|
777 |
+
|
778 |
+
/**
|
779 |
+
*
|
780 |
+
* @param findSubscriberSources $parameters
|
781 |
+
* @access public
|
782 |
+
*/
|
783 |
+
public function findSubscriberSources(findSubscriberSources $parameters)
|
784 |
+
{
|
785 |
+
return $this->__soapCall('findSubscriberSources', array($parameters));
|
786 |
+
}
|
787 |
+
|
788 |
+
/**
|
789 |
+
*
|
790 |
+
* @param getSubscriber $parameters
|
791 |
+
* @access public
|
792 |
+
*/
|
793 |
+
public function getSubscriber(getSubscriber $parameters)
|
794 |
+
{
|
795 |
+
return $this->__soapCall('getSubscriber', array($parameters));
|
796 |
+
}
|
797 |
+
|
798 |
+
/**
|
799 |
+
*
|
800 |
+
* @param addSubscriber $parameters
|
801 |
+
* @access public
|
802 |
+
*/
|
803 |
+
public function addSubscriber(addSubscriber $parameters)
|
804 |
+
{
|
805 |
+
return $this->__soapCall('addSubscriber', array($parameters));
|
806 |
+
}
|
807 |
+
|
808 |
+
/**
|
809 |
+
*
|
810 |
+
* @param addSubscribers $parameters
|
811 |
+
* @access public
|
812 |
+
*/
|
813 |
+
public function addSubscribers(addSubscribers $parameters)
|
814 |
+
{
|
815 |
+
return $this->__soapCall('addSubscribers', array($parameters));
|
816 |
+
}
|
817 |
+
|
818 |
+
/**
|
819 |
+
*
|
820 |
+
* @param removeSubscriber $parameters
|
821 |
+
* @access public
|
822 |
+
*/
|
823 |
+
public function removeSubscriber(removeSubscriber $parameters)
|
824 |
+
{
|
825 |
+
return $this->__soapCall('removeSubscriber', array($parameters));
|
826 |
+
}
|
827 |
+
|
828 |
+
/**
|
829 |
+
*
|
830 |
+
* @param findSubscribersIncludedInFilter $parameters
|
831 |
+
* @access public
|
832 |
+
*/
|
833 |
+
public function findSubscribersIncludedInFilter(findSubscribersIncludedInFilter $parameters)
|
834 |
+
{
|
835 |
+
return $this->__soapCall('findSubscribersIncludedInFilter', array($parameters));
|
836 |
+
}
|
837 |
+
|
838 |
+
/**
|
839 |
+
*
|
840 |
+
* @param borrowToken $parameters
|
841 |
+
* @access public
|
842 |
+
*/
|
843 |
+
public function borrowToken(borrowToken $parameters)
|
844 |
+
{
|
845 |
+
return $this->__soapCall('borrowToken', array($parameters));
|
846 |
+
}
|
847 |
+
|
848 |
+
/**
|
849 |
+
*
|
850 |
+
* @param keepaliveToken $parameters
|
851 |
+
* @access public
|
852 |
+
*/
|
853 |
+
public function keepaliveToken(keepaliveToken $parameters)
|
854 |
+
{
|
855 |
+
return $this->__soapCall('keepaliveToken', array($parameters));
|
856 |
+
}
|
857 |
+
|
858 |
+
/**
|
859 |
+
*
|
860 |
+
* @param invalidateToken $parameters
|
861 |
+
* @access public
|
862 |
+
*/
|
863 |
+
public function invalidateToken(invalidateToken $parameters)
|
864 |
+
{
|
865 |
+
return $this->__soapCall('invalidateToken', array($parameters));
|
866 |
+
}
|
867 |
+
|
868 |
+
/**
|
869 |
+
*
|
870 |
+
* @param findCampaigns $parameters
|
871 |
+
* @access public
|
872 |
+
*/
|
873 |
+
public function findCampaigns(findCampaigns $parameters)
|
874 |
+
{
|
875 |
+
return $this->__soapCall('findCampaigns', array($parameters));
|
876 |
+
}
|
877 |
+
|
878 |
+
/**
|
879 |
+
*
|
880 |
+
* @param getAttachmentByCampaignId $parameters
|
881 |
+
* @access public
|
882 |
+
*/
|
883 |
+
public function getAttachmentByCampaignId(getAttachmentByCampaignId $parameters)
|
884 |
+
{
|
885 |
+
return $this->__soapCall('getAttachmentByCampaignId', array($parameters));
|
886 |
+
}
|
887 |
+
|
888 |
+
/**
|
889 |
+
*
|
890 |
+
* @param getTrackedLinks $parameters
|
891 |
+
* @access public
|
892 |
+
*/
|
893 |
+
public function getTrackedLinks(getTrackedLinks $parameters)
|
894 |
+
{
|
895 |
+
return $this->__soapCall('getTrackedLinks', array($parameters));
|
896 |
+
}
|
897 |
+
|
898 |
+
/**
|
899 |
+
*
|
900 |
+
* @param triggerDeliveryById $parameters
|
901 |
+
* @access public
|
902 |
+
*/
|
903 |
+
public function triggerDeliveryById(triggerDeliveryById $parameters)
|
904 |
+
{
|
905 |
+
return $this->__soapCall('triggerDeliveryById', array($parameters));
|
906 |
+
}
|
907 |
+
|
908 |
+
/**
|
909 |
+
*
|
910 |
+
* @param triggerDeliveryByAlias $parameters
|
911 |
+
* @access public
|
912 |
+
*/
|
913 |
+
public function triggerDeliveryByAlias(triggerDeliveryByAlias $parameters)
|
914 |
+
{
|
915 |
+
return $this->__soapCall('triggerDeliveryByAlias', array($parameters));
|
916 |
+
}
|
917 |
+
|
918 |
+
/**
|
919 |
+
*
|
920 |
+
* @param addSubscriberSource $parameters
|
921 |
+
* @access public
|
922 |
+
*/
|
923 |
+
public function addSubscriberSource(addSubscriberSource $parameters)
|
924 |
+
{
|
925 |
+
return $this->__soapCall('addSubscriberSource', array($parameters));
|
926 |
+
}
|
927 |
+
|
928 |
+
/**
|
929 |
+
*
|
930 |
+
* @param countSubscribersIncludedInFilter $parameters
|
931 |
+
* @access public
|
932 |
+
*/
|
933 |
+
public function countSubscribersIncludedInFilter(countSubscribersIncludedInFilter $parameters)
|
934 |
+
{
|
935 |
+
return $this->__soapCall('countSubscribersIncludedInFilter', array($parameters));
|
936 |
+
}
|
937 |
+
|
938 |
+
/**
|
939 |
+
*
|
940 |
+
* @param findSubscribers $parameters
|
941 |
+
* @access public
|
942 |
+
*/
|
943 |
+
public function findSubscribers(findSubscribers $parameters)
|
944 |
+
{
|
945 |
+
return $this->__soapCall('findSubscribers', array($parameters));
|
946 |
+
}
|
947 |
+
|
948 |
+
/**
|
949 |
+
*
|
950 |
+
* @param getCryptoKey $parameters
|
951 |
+
* @access public
|
952 |
+
*/
|
953 |
+
public function getCryptoKey(getCryptoKey $parameters)
|
954 |
+
{
|
955 |
+
return $this->__soapCall('getCryptoKey', array($parameters));
|
956 |
+
}
|
957 |
+
|
958 |
+
/**
|
959 |
+
*
|
960 |
+
* @param archiveSubscriberSourceFilter $parameters
|
961 |
+
* @access public
|
962 |
+
*/
|
963 |
+
public function archiveSubscriberSourceFilter(archiveSubscriberSourceFilter $parameters)
|
964 |
+
{
|
965 |
+
return $this->__soapCall('archiveSubscriberSourceFilter', array($parameters));
|
966 |
+
}
|
967 |
+
|
968 |
+
/**
|
969 |
+
*
|
970 |
+
* @param reuseSubscriberSourceFilter $parameters
|
971 |
+
* @access public
|
972 |
+
*/
|
973 |
+
public function reuseSubscriberSourceFilter(reuseSubscriberSourceFilter $parameters)
|
974 |
+
{
|
975 |
+
return $this->__soapCall('reuseSubscriberSourceFilter', array($parameters));
|
976 |
+
}
|
977 |
+
|
978 |
+
/**
|
979 |
+
*
|
980 |
+
* @param findArchivedFiltersBySubscriberSource $parameters
|
981 |
+
* @access public
|
982 |
+
*/
|
983 |
+
public function findArchivedFiltersBySubscriberSource(findArchivedFiltersBySubscriberSource $parameters)
|
984 |
+
{
|
985 |
+
return $this->__soapCall('findArchivedFiltersBySubscriberSource', array($parameters));
|
986 |
+
}
|
987 |
+
|
988 |
+
/**
|
989 |
+
*
|
990 |
+
* @param getArchivedSubscriberSourceFilter $parameters
|
991 |
+
* @access public
|
992 |
+
*/
|
993 |
+
public function getArchivedSubscriberSourceFilter(getArchivedSubscriberSourceFilter $parameters)
|
994 |
+
{
|
995 |
+
return $this->__soapCall('getArchivedSubscriberSourceFilter', array($parameters));
|
996 |
+
}
|
997 |
+
|
998 |
+
/**
|
999 |
+
*
|
1000 |
+
* @param modifySubscriberSubscriptionStatusByMailqId $parameters
|
1001 |
+
* @access public
|
1002 |
+
*/
|
1003 |
+
public function modifySubscriberSubscriptionStatusByMailqId(modifySubscriberSubscriptionStatusByMailqId $parameters)
|
1004 |
+
{
|
1005 |
+
return $this->__soapCall('modifySubscriberSubscriptionStatusByMailqId', array($parameters));
|
1006 |
+
}
|
1007 |
+
|
1008 |
+
/**
|
1009 |
+
*
|
1010 |
+
* @param sendImmediateMessage $parameters
|
1011 |
+
* @access public
|
1012 |
+
*/
|
1013 |
+
public function sendImmediateMessage(sendImmediateMessage $parameters)
|
1014 |
+
{
|
1015 |
+
return $this->__soapCall('sendImmediateMessage', array($parameters));
|
1016 |
+
}
|
1017 |
+
|
1018 |
+
/**
|
1019 |
+
*
|
1020 |
+
* @param sendImmediateMessageSidCid $parameters
|
1021 |
+
* @access public
|
1022 |
+
*/
|
1023 |
+
public function sendImmediateMessageSidCid(sendImmediateMessageSidCid $parameters)
|
1024 |
+
{
|
1025 |
+
return $this->__soapCall('sendImmediateMessageSidCid', array($parameters));
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
/**
|
1029 |
+
*
|
1030 |
+
* @param sendImmediateMessageSDataCData $parameters
|
1031 |
+
* @access public
|
1032 |
+
*/
|
1033 |
+
public function sendImmediateMessageSDataCData(sendImmediateMessageSDataCData $parameters)
|
1034 |
+
{
|
1035 |
+
return $this->__soapCall('sendImmediateMessageSDataCData', array($parameters));
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
/**
|
1039 |
+
*
|
1040 |
+
* @param sendImmediateMessageSIdCData $parameters
|
1041 |
+
* @access public
|
1042 |
+
*/
|
1043 |
+
public function sendImmediateMessageSIdCData(sendImmediateMessageSIdCData $parameters)
|
1044 |
+
{
|
1045 |
+
return $this->__soapCall('sendImmediateMessageSIdCData', array($parameters));
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
/**
|
1049 |
+
*
|
1050 |
+
* @param sendImmediateMessageSdataCAl $parameters
|
1051 |
+
* @access public
|
1052 |
+
*/
|
1053 |
+
public function sendImmediateMessageSdataCAl(sendImmediateMessageSdataCAl $parameters)
|
1054 |
+
{
|
1055 |
+
return $this->__soapCall('sendImmediateMessageSdataCAl', array($parameters));
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
/**
|
1059 |
+
*
|
1060 |
+
* @param sendImmediateMessageSidCAl $parameters
|
1061 |
+
* @access public
|
1062 |
+
*/
|
1063 |
+
public function sendImmediateMessageSidCAl(sendImmediateMessageSidCAl $parameters)
|
1064 |
+
{
|
1065 |
+
return $this->__soapCall('sendImmediateMessageSidCAl', array($parameters));
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
/**
|
1069 |
+
*
|
1070 |
+
* @param sendImmediateMessageSDataCIdCA $parameters
|
1071 |
+
* @access public
|
1072 |
+
*/
|
1073 |
+
public function sendImmediateMessageSDataCIdCA(sendImmediateMessageSDataCIdCA $parameters)
|
1074 |
+
{
|
1075 |
+
return $this->__soapCall('sendImmediateMessageSDataCIdCA', array($parameters));
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
/**
|
1079 |
+
*
|
1080 |
+
* @param sendImmediateMessageSidCidCA $parameters
|
1081 |
+
* @access public
|
1082 |
+
*/
|
1083 |
+
public function sendImmediateMessageSidCidCA(sendImmediateMessageSidCidCA $parameters)
|
1084 |
+
{
|
1085 |
+
return $this->__soapCall('sendImmediateMessageSidCidCA', array($parameters));
|
1086 |
+
}
|
1087 |
+
|
1088 |
+
/**
|
1089 |
+
*
|
1090 |
+
* @param sendImmediateMessageSDataCDataCA $parameters
|
1091 |
+
* @access public
|
1092 |
+
*/
|
1093 |
+
public function sendImmediateMessageSDataCDataCA(sendImmediateMessageSDataCDataCA $parameters)
|
1094 |
+
{
|
1095 |
+
return $this->__soapCall('sendImmediateMessageSDataCDataCA', array($parameters));
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
/**
|
1099 |
+
*
|
1100 |
+
* @param sendImmediateMessageSIdCDataCA $parameters
|
1101 |
+
* @access public
|
1102 |
+
*/
|
1103 |
+
public function sendImmediateMessageSIdCDataCA(sendImmediateMessageSIdCDataCA $parameters)
|
1104 |
+
{
|
1105 |
+
return $this->__soapCall('sendImmediateMessageSIdCDataCA', array($parameters));
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
/**
|
1109 |
+
*
|
1110 |
+
* @param sendImmediateMessageSdataCAlCA $parameters
|
1111 |
+
* @access public
|
1112 |
+
*/
|
1113 |
+
public function sendImmediateMessageSdataCAlCA(sendImmediateMessageSdataCAlCA $parameters)
|
1114 |
+
{
|
1115 |
+
return $this->__soapCall('sendImmediateMessageSdataCAlCA', array($parameters));
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
/**
|
1119 |
+
*
|
1120 |
+
* @param sendImmediateMessageSidCAlCA $parameters
|
1121 |
+
* @access public
|
1122 |
+
*/
|
1123 |
+
public function sendImmediateMessageSidCAlCA(sendImmediateMessageSidCAlCA $parameters)
|
1124 |
+
{
|
1125 |
+
return $this->__soapCall('sendImmediateMessageSidCAlCA', array($parameters));
|
1126 |
+
}
|
1127 |
+
|
1128 |
+
}
|
lib/contactlab/CommunicationCategory.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class CommunicationCategory
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var boolean $active
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $active;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $code
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $code;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $identifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $identifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var string $name
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $name;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var boolean $transactional
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $transactional;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CommunicationCategory
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var boolean $active
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $active;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $code
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $code;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $identifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $identifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var string $name
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $name;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var boolean $transactional
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $transactional;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/EmailMessage.php
CHANGED
@@ -1,36 +1,36 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('Message.php');
|
4 |
-
|
5 |
-
class EmailMessage extends Message
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var string $subject
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $subject;
|
14 |
-
|
15 |
-
/**
|
16 |
-
*
|
17 |
-
* @var string $htmlContent
|
18 |
-
* @access public
|
19 |
-
*/
|
20 |
-
public $htmlContent;
|
21 |
-
|
22 |
-
/**
|
23 |
-
*
|
24 |
-
* @var string $textContent
|
25 |
-
* @access public
|
26 |
-
*/
|
27 |
-
public $textContent;
|
28 |
-
|
29 |
-
/**
|
30 |
-
*
|
31 |
-
* @var PreferredContent $preferredContent
|
32 |
-
* @access public
|
33 |
-
*/
|
34 |
-
public $preferredContent;
|
35 |
-
|
36 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('Message.php');
|
4 |
+
|
5 |
+
class EmailMessage extends Message
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var string $subject
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $subject;
|
14 |
+
|
15 |
+
/**
|
16 |
+
*
|
17 |
+
* @var string $htmlContent
|
18 |
+
* @access public
|
19 |
+
*/
|
20 |
+
public $htmlContent;
|
21 |
+
|
22 |
+
/**
|
23 |
+
*
|
24 |
+
* @var string $textContent
|
25 |
+
* @access public
|
26 |
+
*/
|
27 |
+
public $textContent;
|
28 |
+
|
29 |
+
/**
|
30 |
+
*
|
31 |
+
* @var PreferredContent $preferredContent
|
32 |
+
* @access public
|
33 |
+
*/
|
34 |
+
public $preferredContent;
|
35 |
+
|
36 |
+
}
|
lib/contactlab/FaxMessage.php
CHANGED
@@ -1,36 +1,36 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('Message.php');
|
4 |
-
|
5 |
-
class FaxMessage extends Message
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var base64Binary $content
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $content;
|
14 |
-
|
15 |
-
/**
|
16 |
-
*
|
17 |
-
* @var string $fileName
|
18 |
-
* @access public
|
19 |
-
*/
|
20 |
-
public $fileName;
|
21 |
-
|
22 |
-
/**
|
23 |
-
*
|
24 |
-
* @var MimeType $mimeType
|
25 |
-
* @access public
|
26 |
-
*/
|
27 |
-
public $mimeType;
|
28 |
-
|
29 |
-
/**
|
30 |
-
*
|
31 |
-
* @var int $numberOfPages
|
32 |
-
* @access public
|
33 |
-
*/
|
34 |
-
public $numberOfPages;
|
35 |
-
|
36 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('Message.php');
|
4 |
+
|
5 |
+
class FaxMessage extends Message
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var base64Binary $content
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $content;
|
14 |
+
|
15 |
+
/**
|
16 |
+
*
|
17 |
+
* @var string $fileName
|
18 |
+
* @access public
|
19 |
+
*/
|
20 |
+
public $fileName;
|
21 |
+
|
22 |
+
/**
|
23 |
+
*
|
24 |
+
* @var MimeType $mimeType
|
25 |
+
* @access public
|
26 |
+
*/
|
27 |
+
public $mimeType;
|
28 |
+
|
29 |
+
/**
|
30 |
+
*
|
31 |
+
* @var int $numberOfPages
|
32 |
+
* @access public
|
33 |
+
*/
|
34 |
+
public $numberOfPages;
|
35 |
+
|
36 |
+
}
|
lib/contactlab/LookupPreferences.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class LookupPreferences
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $pageNumber
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $pageNumber;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var LookupMatchingMode $matchingMode
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $matchingMode;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var LookupSortingMode $sortingMode
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $sortingMode;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class LookupPreferences
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $pageNumber
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $pageNumber;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var LookupMatchingMode $matchingMode
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $matchingMode;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var LookupSortingMode $sortingMode
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $sortingMode;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/Message.php
CHANGED
@@ -1,62 +1,62 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Message
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var charset $charset
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $charset;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $modelIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $modelIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Recipients $recipients
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $recipients;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Sender $sender
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $sender;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var int $prefAttachmentCount
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $prefAttachmentCount;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var int $minAttachmentCount
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $minAttachmentCount;
|
47 |
-
|
48 |
-
/**
|
49 |
-
*
|
50 |
-
* @var int $maxAttachmentCount
|
51 |
-
* @access public
|
52 |
-
*/
|
53 |
-
public $maxAttachmentCount;
|
54 |
-
|
55 |
-
/**
|
56 |
-
*
|
57 |
-
* @var int $communicationCategoryIdentifier
|
58 |
-
* @access public
|
59 |
-
*/
|
60 |
-
public $communicationCategoryIdentifier;
|
61 |
-
|
62 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Message
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var charset $charset
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $charset;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $modelIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $modelIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Recipients $recipients
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $recipients;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Sender $sender
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $sender;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var int $prefAttachmentCount
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $prefAttachmentCount;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var int $minAttachmentCount
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $minAttachmentCount;
|
47 |
+
|
48 |
+
/**
|
49 |
+
*
|
50 |
+
* @var int $maxAttachmentCount
|
51 |
+
* @access public
|
52 |
+
*/
|
53 |
+
public $maxAttachmentCount;
|
54 |
+
|
55 |
+
/**
|
56 |
+
*
|
57 |
+
* @var int $communicationCategoryIdentifier
|
58 |
+
* @access public
|
59 |
+
*/
|
60 |
+
public $communicationCategoryIdentifier;
|
61 |
+
|
62 |
+
}
|
lib/contactlab/MessageModels.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class MessageModels extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var Message $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class MessageModels extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var Message $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/Recipients.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Recipients
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $subscriberSourceIdentifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $subscriberSourceIdentifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $subscriberSourceFilterIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $subscriberSourceFilterIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Recipients
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $subscriberSourceIdentifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $subscriberSourceIdentifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $subscriberSourceFilterIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $subscriberSourceFilterIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/Sender.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Sender
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $name
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $name;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $phone
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $phone;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $email
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $email;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var string $replyTo
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $replyTo;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Sender
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $name
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $name;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $phone
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $phone;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $email
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $email;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var string $replyTo
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $replyTo;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/SlicedDataSet.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class SlicedDataSet
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $currentPageNumber
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $currentPageNumber;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $maxPageNumber
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $maxPageNumber;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SlicedDataSet
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $currentPageNumber
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $currentPageNumber;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $maxPageNumber
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $maxPageNumber;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/Subscriber.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Subscriber
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var SubscriberAttribute $attributes
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $attributes;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Subscriber
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var SubscriberAttribute $attributes
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $attributes;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/SubscriberAttribute.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class SubscriberAttribute
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $key
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $key;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var anyType $value
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $value;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SubscriberAttribute
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $key
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $key;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var anyType $value
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $value;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/SubscriberSource.php
CHANGED
@@ -1,62 +1,62 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class SubscriberSource
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $name
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $name;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $description
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $description;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var string $subscriberIdentifierFieldName
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $subscriberIdentifierFieldName;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var SubscriberSourceField $fields
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $fields;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var charset $charset
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $charset;
|
47 |
-
|
48 |
-
/**
|
49 |
-
*
|
50 |
-
* @var boolean $locked
|
51 |
-
* @access public
|
52 |
-
*/
|
53 |
-
public $locked;
|
54 |
-
|
55 |
-
/**
|
56 |
-
*
|
57 |
-
* @var boolean $readOnly
|
58 |
-
* @access public
|
59 |
-
*/
|
60 |
-
public $readOnly;
|
61 |
-
|
62 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SubscriberSource
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $name
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $name;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $description
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $description;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var string $subscriberIdentifierFieldName
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $subscriberIdentifierFieldName;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var SubscriberSourceField $fields
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $fields;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var charset $charset
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $charset;
|
47 |
+
|
48 |
+
/**
|
49 |
+
*
|
50 |
+
* @var boolean $locked
|
51 |
+
* @access public
|
52 |
+
*/
|
53 |
+
public $locked;
|
54 |
+
|
55 |
+
/**
|
56 |
+
*
|
57 |
+
* @var boolean $readOnly
|
58 |
+
* @access public
|
59 |
+
*/
|
60 |
+
public $readOnly;
|
61 |
+
|
62 |
+
}
|
lib/contactlab/SubscriberSourceField.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class SubscriberSourceField
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $name
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $name;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var field $type
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $type;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var boolean $emailField
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $emailField;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var boolean $phoneField
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $phoneField;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var boolean $faxField
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $faxField;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SubscriberSourceField
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $name
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $name;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var field $type
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $type;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var boolean $emailField
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $emailField;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var boolean $phoneField
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $phoneField;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var boolean $faxField
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $faxField;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/SubscriberSourceFilter.php
CHANGED
@@ -1,48 +1,48 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class SubscriberSourceFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $name
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $name;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $subscriberSourceIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $subscriberSourceIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var string $content
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $content;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var string $extensions
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $extensions;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var SubscriberSourceFilterType $type
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $type;
|
47 |
-
|
48 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SubscriberSourceFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $name
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $name;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $subscriberSourceIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $subscriberSourceIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var string $content
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $content;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var string $extensions
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $extensions;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var SubscriberSourceFilterType $type
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $type;
|
47 |
+
|
48 |
+
}
|
lib/contactlab/SubscriberSourceFilters.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class SubscriberSourceFilters extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var SubscriberSourceFilter $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class SubscriberSourceFilters extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var SubscriberSourceFilter $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/SubscriberSources.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class SubscriberSources extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var SubscriberSource $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class SubscriberSources extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var SubscriberSource $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/Subscribers.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class Subscribers extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var Subscriber $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class Subscribers extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var Subscriber $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/TextMessage.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('Message.php');
|
4 |
-
|
5 |
-
class TextMessage extends Message
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var string $content
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $content;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('Message.php');
|
4 |
+
|
5 |
+
class TextMessage extends Message
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var string $content
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $content;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/TrackedLink.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class TrackedLink
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $identifier
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $identifier;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $url
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $url;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $clicks
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $clicks;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var int $uniqueClicks
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $uniqueClicks;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var string $category
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $category;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class TrackedLink
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $identifier
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $identifier;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $url
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $url;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $clicks
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $clicks;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var int $uniqueClicks
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $uniqueClicks;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var string $category
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $category;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/TrackedLinks.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class TrackedLinks extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var TrackedLink $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class TrackedLinks extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var TrackedLink $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/XMLDeliveryInfos.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include_once('SlicedDataSet.php');
|
4 |
-
|
5 |
-
class XMLDeliveryInfos extends SlicedDataSet
|
6 |
-
{
|
7 |
-
|
8 |
-
/**
|
9 |
-
*
|
10 |
-
* @var xmlDeliveryInfo $currentPageItems
|
11 |
-
* @access public
|
12 |
-
*/
|
13 |
-
public $currentPageItems;
|
14 |
-
|
15 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('SlicedDataSet.php');
|
4 |
+
|
5 |
+
class XMLDeliveryInfos extends SlicedDataSet
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @var xmlDeliveryInfo $currentPageItems
|
11 |
+
* @access public
|
12 |
+
*/
|
13 |
+
public $currentPageItems;
|
14 |
+
|
15 |
+
}
|
lib/contactlab/addAttachment.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addAttachment
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Attachment $attachments
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $attachments;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addAttachment
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Attachment $attachments
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $attachments;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/addAttachmentResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addAttachmentResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Attachment $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addAttachmentResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Attachment $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/addCampaignNote.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addCampaignNote
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var CampaignNote $note
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $note;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addCampaignNote
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var CampaignNote $note
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $note;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/addCampaignNoteResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addCampaignNoteResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var CampaignNote $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addCampaignNoteResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var CampaignNote $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/addSubscriber.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscriber
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Subscriber $subscriber
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $subscriber;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscriber
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Subscriber $subscriber
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $subscriber;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/addSubscriberResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscriberResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Subscriber $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscriberResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Subscriber $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/addSubscriberSource.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscriberSource
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var SubscriberSource $subscriberSource
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $subscriberSource;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscriberSource
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var SubscriberSource $subscriberSource
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $subscriberSource;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/addSubscriberSourceFilter.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscriberSourceFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var SubscriberSourceFilter $filter
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $filter;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscriberSourceFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var SubscriberSourceFilter $filter
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $filter;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/addSubscriberSourceFilterResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscriberSourceFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSourceFilter $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscriberSourceFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSourceFilter $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/addSubscriberSourceResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscriberSourceResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSource $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscriberSourceResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSource $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/addSubscribers.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscribers
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Subscribers $subscribers
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $subscribers;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscribers
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Subscribers $subscribers
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $subscribers;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/addSubscribersResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class addSubscribersResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class addSubscribersResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/archiveSubscriberSourceFilter.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class archiveSubscriberSourceFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $filterIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $filterIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class archiveSubscriberSourceFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $filterIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $filterIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/archiveSubscriberSourceFilterResponse.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class archiveSubscriberSourceFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class archiveSubscriberSourceFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
lib/contactlab/borrowToken.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class borrowToken
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class borrowToken
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/borrowTokenResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class borrowTokenResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class borrowTokenResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/cancelCampaign.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class cancelCampaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class cancelCampaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/cancelCampaignResponse.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class cancelCampaignResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class cancelCampaignResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
lib/contactlab/cloneAndSendCampaign.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class cloneAndSendCampaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var dateTime $notBefore
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $notBefore;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class cloneAndSendCampaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var dateTime $notBefore
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $notBefore;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/cloneAndSendCampaignResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class cloneAndSendCampaignResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class cloneAndSendCampaignResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/countSubscribers.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class countSubscribers
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class countSubscribers
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/countSubscribersIncludedInFilter.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class countSubscribersIncludedInFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $filterIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $filterIdentifier;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class countSubscribersIncludedInFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $filterIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $filterIdentifier;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/countSubscribersIncludedInFilterResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class countSubscribersIncludedInFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class countSubscribersIncludedInFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/countSubscribersResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class countSubscribersResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class countSubscribersResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/createCampaign.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class createCampaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var Campaign $campaign
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaign;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class createCampaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var Campaign $campaign
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaign;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/createCampaignResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class createCampaignResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaign $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class createCampaignResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaign $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/createMessageModel.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class createMessageModel
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var Message $model
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $model;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class createMessageModel
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var Message $model
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $model;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/createMessageModelResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class createMessageModelResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Message $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class createMessageModelResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Message $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findArchivedFiltersBySubscriberSource.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findArchivedFiltersBySubscriberSource
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var LookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findArchivedFiltersBySubscriberSource
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var LookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findArchivedFiltersBySubscriberSourceResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findArchivedFiltersBySubscriberSourceResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSourceFilters $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findArchivedFiltersBySubscriberSourceResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSourceFilters $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findCampaigns.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaigns
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaigns
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findCampaignsByModel.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByModel
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $modelIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $modelIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $lookupPrefs;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByModel
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $modelIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $modelIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $lookupPrefs;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/findCampaignsByModelResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByModelResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByModelResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findCampaignsByNameOrSubject.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByNameOrSubject
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $nameOrSubject
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $nameOrSubject;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $lookupPrefs;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByNameOrSubject
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $nameOrSubject
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $nameOrSubject;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $lookupPrefs;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/findCampaignsByNameOrSubjectResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByNameOrSubjectResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByNameOrSubjectResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findCampaignsByNote.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByNote
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var CampaignNote $note
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $note;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $lookupPrefs;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByNote
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var CampaignNote $note
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $note;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $lookupPrefs;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/findCampaignsByNoteResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByNoteResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByNoteResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findCampaignsByStatus.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByStatus
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var deliveryStatus $status
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $status;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $lookupPrefs;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByStatus
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var deliveryStatus $status
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $status;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $lookupPrefs;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/findCampaignsByStatusResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsByStatusResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsByStatusResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findCampaignsResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findCampaignsSentBetween.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsSentBetween
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var dateTime $periodStart
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $periodStart;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var dateTime $periodEnd
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $periodEnd;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $lookupPrefs;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsSentBetween
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var dateTime $periodStart
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $periodStart;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var dateTime $periodEnd
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $periodEnd;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $lookupPrefs;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/findCampaignsSentBetweenResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findCampaignsSentBetweenResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findCampaignsSentBetweenResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findFiltersBySubscriberSource.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findFiltersBySubscriberSource
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var LookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findFiltersBySubscriberSource
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var LookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findFiltersBySubscriberSourceResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findFiltersBySubscriberSourceResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSourceFilters $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findFiltersBySubscriberSourceResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSourceFilters $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findMessageModels.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findMessageModels
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var LookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findMessageModels
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var LookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findMessageModelsBySubscriberSource.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findMessageModelsBySubscriberSource
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceId
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceId;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var LookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findMessageModelsBySubscriberSource
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceId
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceId;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var LookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findMessageModelsBySubscriberSourceResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findMessageModelsBySubscriberSourceResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var MessageModels $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findMessageModelsBySubscriberSourceResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var MessageModels $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findMessageModelsResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findMessageModelsResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var MessageModels $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findMessageModelsResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var MessageModels $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findNotesByCampaign.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findNotesByCampaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findNotesByCampaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/findNotesByCampaignResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findNotesByCampaignResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var CampaignNotes $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findNotesByCampaignResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var CampaignNotes $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findPeriodicCampaigns.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findPeriodicCampaigns
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findPeriodicCampaigns
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findPeriodicCampaignsResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findPeriodicCampaignsResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findPeriodicCampaignsResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findSubscriberSources.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findSubscriberSources
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var LookupPreferences $lookupPrefs
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $lookupPrefs;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findSubscriberSources
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var LookupPreferences $lookupPrefs
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $lookupPrefs;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/findSubscriberSourcesResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findSubscriberSourcesResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSources $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findSubscriberSourcesResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSources $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findSubscribers.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findSubscribers
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var SubscriberAttribute $attribute
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $attribute;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var LookupPreferences $lookupPrefs
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $lookupPrefs;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findSubscribers
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var SubscriberAttribute $attribute
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $attribute;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var LookupPreferences $lookupPrefs
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $lookupPrefs;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/findSubscribersIncludedInFilter.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findSubscribersIncludedInFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $filterIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $filterIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var LookupPreferences $lookupPrefs
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $lookupPrefs;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findSubscribersIncludedInFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $filterIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $filterIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var LookupPreferences $lookupPrefs
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $lookupPrefs;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/findSubscribersIncludedInFilterResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findSubscribersIncludedInFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Subscribers $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findSubscribersIncludedInFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Subscribers $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findSubscribersResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findSubscribersResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Subscribers $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findSubscribersResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Subscribers $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/findTriggerableCampaigns.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findTriggerableCampaigns
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var channel $channel
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $channel;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var CampaignLookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findTriggerableCampaigns
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var channel $channel
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $channel;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var CampaignLookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/findTriggerableCampaignsResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class findTriggerableCampaignsResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaigns $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class findTriggerableCampaignsResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaigns $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getArchivedSubscriberSourceFilter.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getArchivedSubscriberSourceFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $filterIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $filterIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getArchivedSubscriberSourceFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $filterIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $filterIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getArchivedSubscriberSourceFilterResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getArchivedSubscriberSourceFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSourceFilter $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getArchivedSubscriberSourceFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSourceFilter $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getAttachmentByCampaignId.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getAttachmentByCampaignId
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getAttachmentByCampaignId
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getAttachmentByCampaignIdResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getAttachmentByCampaignIdResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Attachment $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getAttachmentByCampaignIdResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Attachment $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getAvailableCommunicationCategories.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getAvailableCommunicationCategories
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getAvailableCommunicationCategories
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getAvailableCommunicationCategoriesResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getAvailableCommunicationCategoriesResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var CommunicationCategory $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getAvailableCommunicationCategoriesResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var CommunicationCategory $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getCampaign.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCampaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCampaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getCampaignDeliveryStatus.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCampaignDeliveryStatus
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCampaignDeliveryStatus
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getCampaignDeliveryStatusResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCampaignDeliveryStatusResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var deliveryStatus $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCampaignDeliveryStatusResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var deliveryStatus $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getCampaignFeedback.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCampaignFeedback
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCampaignFeedback
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getCampaignFeedbackResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCampaignFeedbackResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var CampaignFeedback $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCampaignFeedbackResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var CampaignFeedback $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getCampaignResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCampaignResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Campaign $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCampaignResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Campaign $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getCryptoKey.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCryptoKey
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $recipient
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $recipient;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCryptoKey
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $recipient
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $recipient;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getCryptoKeyResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getCryptoKeyResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getCryptoKeyResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getMessageModelById.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getMessageModelById
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $modelId
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $modelId;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getMessageModelById
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $modelId
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $modelId;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getMessageModelByIdResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getMessageModelByIdResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Message $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getMessageModelByIdResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Message $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getRequestStatus.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getRequestStatus
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $requestIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $requestIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getRequestStatus
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $requestIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $requestIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getRequestStatusResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getRequestStatusResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var ActivityStatus $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getRequestStatusResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var ActivityStatus $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getSubscriber.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriber
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $subscriberIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $subscriberIdentifier;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriber
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $subscriberIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $subscriberIdentifier;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/getSubscriberDataExchangeStatus.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberDataExchangeStatus
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $dataExchangeConfigIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $dataExchangeConfigIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberDataExchangeStatus
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $dataExchangeConfigIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $dataExchangeConfigIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getSubscriberDataExchangeStatusResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberDataExchangeStatusResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var ActivityStatus $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberDataExchangeStatusResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var ActivityStatus $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getSubscriberResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var Subscriber $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var Subscriber $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getSubscriberSource.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberSource
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberSource
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getSubscriberSourceFilter.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberSourceFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $filterIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $filterIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberSourceFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $filterIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $filterIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getSubscriberSourceFilterResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberSourceFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSourceFilter $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberSourceFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSourceFilter $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getSubscriberSourceResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getSubscriberSourceResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var SubscriberSource $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getSubscriberSourceResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var SubscriberSource $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getTrackedLinks.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getTrackedLinks
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignId
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignId;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $categoryId
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $categoryId;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getTrackedLinks
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignId
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignId;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $categoryId
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $categoryId;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/getTrackedLinksResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getTrackedLinksResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var TrackedLink $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getTrackedLinksResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var TrackedLink $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getXMLDeliveries.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getXMLDeliveries
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var xmlDeliveryStatusType $xmlDeliveryStatus
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $xmlDeliveryStatus;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var LookupPreferences $lookupPrefs
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $lookupPrefs;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getXMLDeliveries
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var xmlDeliveryStatusType $xmlDeliveryStatus
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $xmlDeliveryStatus;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var LookupPreferences $lookupPrefs
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $lookupPrefs;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/getXMLDeliveriesResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getXMLDeliveriesResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var XMLDeliveryInfos $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getXMLDeliveriesResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var XMLDeliveryInfos $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/getXMLDeliveryTransitions.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getXMLDeliveryTransitions
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $xmlDeliveryId
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $xmlDeliveryId;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getXMLDeliveryTransitions
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $xmlDeliveryId
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $xmlDeliveryId;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/getXMLDeliveryTransitionsResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class getXMLDeliveryTransitionsResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var xmlDeliveryTransitionInfo $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class getXMLDeliveryTransitionsResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var xmlDeliveryTransitionInfo $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/invalidateToken.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class invalidateToken
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class invalidateToken
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/invalidateTokenResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class invalidateTokenResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var boolean $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class invalidateTokenResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var boolean $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/keepaliveToken.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class keepaliveToken
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class keepaliveToken
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/keepaliveTokenResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class keepaliveTokenResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var boolean $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class keepaliveTokenResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var boolean $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/modifySubscriberSubscriptionStatus.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class modifySubscriberSubscriptionStatus
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $webFormCode
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $webFormCode;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $subscriberIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $subscriberIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var boolean $isSubscribed
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $isSubscribed;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class modifySubscriberSubscriptionStatus
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $webFormCode
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $webFormCode;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $subscriberIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $subscriberIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var boolean $isSubscribed
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $isSubscribed;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/modifySubscriberSubscriptionStatusByMailqId.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class modifySubscriberSubscriptionStatusByMailqId
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $webFormCode
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $webFormCode;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $subscriberIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $subscriberIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var int $mailqId
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $mailqId;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var boolean $isSubscribed
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $isSubscribed;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class modifySubscriberSubscriptionStatusByMailqId
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $webFormCode
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $webFormCode;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $subscriberIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $subscriberIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var int $mailqId
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $mailqId;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var boolean $isSubscribed
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $isSubscribed;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/modifySubscriberSubscriptionStatusByMailqIdResponse.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class modifySubscriberSubscriptionStatusByMailqIdResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class modifySubscriberSubscriptionStatusByMailqIdResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
lib/contactlab/modifySubscriberSubscriptionStatusResponse.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class modifySubscriberSubscriptionStatusResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class modifySubscriberSubscriptionStatusResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
lib/contactlab/publishOnWeb.php
CHANGED
@@ -1,48 +1,48 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class publishOnWeb
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $testCampaignIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $testCampaignIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var string $fileName
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $fileName;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var base64Binary $content
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $content;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var boolean $overwrite
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $overwrite;
|
47 |
-
|
48 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class publishOnWeb
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $testCampaignIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $testCampaignIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var string $fileName
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $fileName;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var base64Binary $content
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $content;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var boolean $overwrite
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $overwrite;
|
47 |
+
|
48 |
+
}
|
lib/contactlab/publishOnWebResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class publishOnWebResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class publishOnWebResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/removeSubscriber.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class removeSubscriber
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $sourceIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $sourceIdentifier;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $recipientIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $recipientIdentifier;
|
26 |
-
|
27 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class removeSubscriber
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $sourceIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $sourceIdentifier;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $recipientIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $recipientIdentifier;
|
26 |
+
|
27 |
+
}
|
lib/contactlab/removeSubscriberResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class removeSubscriberResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var boolean $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class removeSubscriberResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var boolean $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/requestCampaignFeedbackReport.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class requestCampaignFeedbackReport
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class requestCampaignFeedbackReport
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/requestCampaignFeedbackReportResponse.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class requestCampaignFeedbackReportResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class requestCampaignFeedbackReportResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
lib/contactlab/reuseSubscriberSourceFilter.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class reuseSubscriberSourceFilter
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $filterIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $filterIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class reuseSubscriberSourceFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $filterIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $filterIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/reuseSubscriberSourceFilterResponse.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class reuseSubscriberSourceFilterResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class reuseSubscriberSourceFilterResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
lib/contactlab/sendCampaign.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendCampaign
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var AuthToken $token
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $token;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var int $campaignIdentifier
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $campaignIdentifier;
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendCampaign
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var AuthToken $token
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $token;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var int $campaignIdentifier
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $campaignIdentifier;
|
19 |
+
|
20 |
+
}
|
lib/contactlab/sendCampaignResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendCampaignResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendCampaignResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessage.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessage
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $campaignIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaignIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Subscriber $userData
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $userData;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessage
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $campaignIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaignIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Subscriber $userData
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $userData;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/sendImmediateMessageResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSDataCData.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSDataCData
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Campaign $campaign
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaign;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Subscriber $userData
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $userData;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSDataCData
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Campaign $campaign
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaign;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Subscriber $userData
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $userData;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/sendImmediateMessageSDataCDataCA.php
CHANGED
@@ -1,48 +1,48 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSDataCDataCA
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Campaign $campaign
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaign;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Subscriber $userData
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $userData;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var boolean $includeDefaultAttachments
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $includeDefaultAttachments;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var Attachment $attachments
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $attachments;
|
47 |
-
|
48 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSDataCDataCA
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Campaign $campaign
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaign;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Subscriber $userData
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $userData;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var boolean $includeDefaultAttachments
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $includeDefaultAttachments;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var Attachment $attachments
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $attachments;
|
47 |
+
|
48 |
+
}
|
lib/contactlab/sendImmediateMessageSDataCDataCAResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSDataCDataCAResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSDataCDataCAResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSDataCDataResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSDataCDataResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSDataCDataResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSDataCIdCA.php
CHANGED
@@ -1,48 +1,48 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSDataCIdCA
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var int $campaignIdentifier
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaignIdentifier;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Subscriber $userData
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $userData;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var boolean $includeDefaultAttachments
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $includeDefaultAttachments;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var Attachment $attachments
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $attachments;
|
47 |
-
|
48 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSDataCIdCA
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var int $campaignIdentifier
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaignIdentifier;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Subscriber $userData
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $userData;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var boolean $includeDefaultAttachments
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $includeDefaultAttachments;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var Attachment $attachments
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $attachments;
|
47 |
+
|
48 |
+
}
|
lib/contactlab/sendImmediateMessageSDataCIdCAResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSDataCIdCAResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSDataCIdCAResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSIdCData.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSIdCData
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Campaign $campaign
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaign;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var int $sourceIdentifier
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $sourceIdentifier;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var int $subscriberIdentifier
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $subscriberIdentifier;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSIdCData
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Campaign $campaign
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaign;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var int $sourceIdentifier
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $sourceIdentifier;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var int $subscriberIdentifier
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $subscriberIdentifier;
|
40 |
+
|
41 |
+
}
|
lib/contactlab/sendImmediateMessageSIdCDataCA.php
CHANGED
@@ -1,55 +1,55 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSIdCDataCA
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var Campaign $campaign
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaign;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var int $sourceIdentifier
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $sourceIdentifier;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var int $subscriberIdentifier
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $subscriberIdentifier;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var boolean $includeDefaultAttachments
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $includeDefaultAttachments;
|
47 |
-
|
48 |
-
/**
|
49 |
-
*
|
50 |
-
* @var Attachment $attachments
|
51 |
-
* @access public
|
52 |
-
*/
|
53 |
-
public $attachments;
|
54 |
-
|
55 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSIdCDataCA
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var Campaign $campaign
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaign;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var int $sourceIdentifier
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $sourceIdentifier;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var int $subscriberIdentifier
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $subscriberIdentifier;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var boolean $includeDefaultAttachments
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $includeDefaultAttachments;
|
47 |
+
|
48 |
+
/**
|
49 |
+
*
|
50 |
+
* @var Attachment $attachments
|
51 |
+
* @access public
|
52 |
+
*/
|
53 |
+
public $attachments;
|
54 |
+
|
55 |
+
}
|
lib/contactlab/sendImmediateMessageSIdCDataCAResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSIdCDataCAResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSIdCDataCAResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSIdCDataResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSIdCDataResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSIdCDataResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSdataCAl.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSdataCAl
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $campaignAlias
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaignAlias;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Subscriber $userData
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $userData;
|
33 |
-
|
34 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSdataCAl
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $campaignAlias
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaignAlias;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Subscriber $userData
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $userData;
|
33 |
+
|
34 |
+
}
|
lib/contactlab/sendImmediateMessageSdataCAlCA.php
CHANGED
@@ -1,48 +1,48 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSdataCAlCA
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $campaignAlias
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaignAlias;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var Subscriber $userData
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $userData;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var boolean $includeDefaultAttachments
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $includeDefaultAttachments;
|
40 |
-
|
41 |
-
/**
|
42 |
-
*
|
43 |
-
* @var Attachment $attachments
|
44 |
-
* @access public
|
45 |
-
*/
|
46 |
-
public $attachments;
|
47 |
-
|
48 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSdataCAlCA
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $campaignAlias
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaignAlias;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var Subscriber $userData
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $userData;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var boolean $includeDefaultAttachments
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $includeDefaultAttachments;
|
40 |
+
|
41 |
+
/**
|
42 |
+
*
|
43 |
+
* @var Attachment $attachments
|
44 |
+
* @access public
|
45 |
+
*/
|
46 |
+
public $attachments;
|
47 |
+
|
48 |
+
}
|
lib/contactlab/sendImmediateMessageSdataCAlCAResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSdataCAlCAResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSdataCAlCAResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSdataCAlResponse.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSdataCAlResponse
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var int $return
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $return;
|
12 |
-
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSdataCAlResponse
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var int $return
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $return;
|
12 |
+
|
13 |
+
}
|
lib/contactlab/sendImmediateMessageSidCAl.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class sendImmediateMessageSidCAl
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
*
|
8 |
-
* @var string $apiKey
|
9 |
-
* @access public
|
10 |
-
*/
|
11 |
-
public $apiKey;
|
12 |
-
|
13 |
-
/**
|
14 |
-
*
|
15 |
-
* @var string $userKey
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
public $userKey;
|
19 |
-
|
20 |
-
/**
|
21 |
-
*
|
22 |
-
* @var string $campaignAlias
|
23 |
-
* @access public
|
24 |
-
*/
|
25 |
-
public $campaignAlias;
|
26 |
-
|
27 |
-
/**
|
28 |
-
*
|
29 |
-
* @var int $sourceIdentifier
|
30 |
-
* @access public
|
31 |
-
*/
|
32 |
-
public $sourceIdentifier;
|
33 |
-
|
34 |
-
/**
|
35 |
-
*
|
36 |
-
* @var int $subscriberIdentifier
|
37 |
-
* @access public
|
38 |
-
*/
|
39 |
-
public $subscriberIdentifier;
|
40 |
-
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class sendImmediateMessageSidCAl
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
*
|
8 |
+
* @var string $apiKey
|
9 |
+
* @access public
|
10 |
+
*/
|
11 |
+
public $apiKey;
|
12 |
+
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* @var string $userKey
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public $userKey;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string $campaignAlias
|
23 |
+
* @access public
|
24 |
+
*/
|
25 |
+
public $campaignAlias;
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @var int $sourceIdentifier
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public $sourceIdentifier;
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @var int $subscriberIdentifier
|
37 |
+
* @access public
|
38 |
+
*/
|
39 |
+
public $subscriberIdentifier;
|
40 |
+
|
41 |
+
}
|