├── travis.php.ini ├── system_remove └── modules │ └── avisota │ ├── templates_ │ ├── nl_preview.html5 │ ├── nle_table_plain.html5 │ ├── avisota_reader_default.html5 │ ├── avisota_reader_default.xhtml │ ├── mail_subscribe_plain_default.html5 │ ├── mail_subscribe_plain_default.xhtml │ ├── mail_notification_plain_default.html5 │ ├── mail_notification_plain_default.xhtml │ ├── mail_unsubscribe_plain_default.html5 │ ├── mail_unsubscribe_plain_default.xhtml │ ├── nle_headline_plain.html5 │ ├── nle_gallery_plain.html5 │ ├── nle_article_teaser_plain.html5 │ ├── nle_headline_html.html5 │ ├── nle_image_plain.html5 │ ├── mod_avisota_list.xhtml │ ├── mod_avisota_list.html5 │ ├── nle_gallery_html.html5 │ ├── nle_hyperlink_plain.html5 │ ├── mail_plain_default.html5 │ ├── nle_text_plain.html5 │ ├── nle_news_plain.html5 │ ├── mod_avisota_unsubscribe.html5 │ ├── mod_avisota_subscribe.html5 │ ├── nle_events_plain.html5 │ ├── mod_avisota_subscription.html5 │ ├── mod_avisota_subscription.xhtml │ ├── avisota_list_default.html5 │ ├── avisota_list_default.xhtml │ ├── mail_subscribe_html_default.html5 │ ├── mail_subscribe_html_default.xhtml │ ├── mail_notification_html_default.html5 │ ├── mail_notification_html_default.xhtml │ ├── mail_unsubscribe_html_default.html5 │ ├── mail_unsubscribe_html_default.xhtml │ ├── nl_gallery_default_plain.html5 │ ├── mod_avisota_reader.xhtml │ ├── mod_avisota_reader.html5 │ ├── nle_list_plain.html5 │ ├── nle_list_html.html5 │ ├── nle_article_teaser_html.html5 │ ├── nle_hyperlink_html.html5 │ ├── mail_plain_extended.html5 │ ├── nle_news_html.html5 │ ├── nle_events_html.html5 │ ├── nle_hyperlink_image_html.html5 │ ├── nle_image_html.html5 │ ├── nl_gallery_default_html.html5 │ ├── mail_html_default.html5 │ ├── nle_table_html.html5 │ ├── avisota_unsubscribe_default.html5 │ └── avisota_subscription_default.html5 │ ├── README │ ├── languages │ ├── de_ │ │ ├── avisota_dca.php │ │ ├── tl_page.php │ │ ├── avisota_unsubscribe.php │ │ ├── tl_member.php │ │ ├── tl_stylepicker4ward.php │ │ ├── avisota_subscribe.php │ │ ├── avisotaCompatibilityController.php │ │ ├── tl_user.php │ │ └── tl_user_group.php │ ├── en_ │ │ ├── tl_page.php │ │ ├── tl_settings.php │ │ ├── modules.php │ │ ├── default.php │ │ └── tl_avisota_recipient.php │ └── de │ │ ├── tl_avisota_recipient_remove.php │ │ ├── tl_avisota_newsletter_create_from_draft.php │ │ ├── tl_avisota_recipient_export.php │ │ ├── tl_avisota_recipient_notify.php │ │ └── tl_avisota_recipient_migrate.php │ ├── AvisotaTransportException.php │ ├── AvisotaTransportFinalisationException.php │ ├── AvisotaTransportInitialisationException.php │ ├── DataContainer │ ├── tl_article_avisota.php │ ├── tl_member.php │ └── tl_stylepicker4ward.php │ ├── Element │ ├── ElementInterface.php │ ├── ElementTemplate.php │ ├── NewsletterHeadline.php │ ├── NewsletterNews.php │ ├── NewsletterList.php │ ├── NewsletterImage.php │ └── Text.php │ ├── AvisotaRecipientException.php │ ├── AvisotaSubscriptionException.php │ ├── NewsletterHeadline.php │ ├── AvisotaBlacklistException.php │ ├── AvisotaTransportEmailException.php │ ├── AvisotaFrontend.php │ ├── AvisotaTransportNewsletterException.php │ ├── AvisotaTransportSwiftTransport.php │ ├── NewsletterNews.php │ ├── NewsletterList.php │ ├── dca │ ├── orm_avisota_recipient_remove.php │ ├── orm_avisota_recipient_migrate.php │ ├── orm_avisota_newsletter_create_from_draft.php │ ├── orm_avisota_recipient_export.php │ └── orm_avisota_recipient_notify.php │ ├── NewsletterImage.php │ ├── NewsletterText.php │ └── PageAvisotaNewsletter.php ├── assets ├── css │ ├── be_global.css │ └── avisotaCompatibilityController.css ├── images │ ├── clear.png │ ├── outbox.png │ ├── queue.png │ ├── update.png │ ├── loading.gif │ ├── settings.png │ ├── transport.png │ ├── mailing_list.png │ ├── queue_execute.png │ ├── avisota_config.png │ ├── avisota_support.png │ ├── queue_execute_.png │ ├── recipient_source.png │ ├── avisota-breadcrumb.png │ ├── queue_execute_send.gif │ ├── queue_execute_send.png │ ├── queue_execute_waiting.gif │ ├── queue_execute_waiting.png │ ├── queue_execute_initialize.gif │ └── queue_execute_initialize.png ├── .htaccess └── js │ ├── backend.js │ ├── Number.js │ └── functions.js ├── contao ├── html │ ├── up_.gif │ ├── blank.gif │ ├── down_.gif │ ├── error.png │ ├── more.png │ ├── page.png │ ├── notify.png │ ├── outbox_.png │ ├── page_1.png │ ├── page_2.png │ ├── page_3.png │ ├── tracking.png │ ├── update.gif │ ├── updated.png │ ├── chart_save.png │ ├── recipients.png │ ├── outbox_failed.png │ ├── outbox_remove.png │ ├── outbox_sended.png │ ├── translation.png │ ├── outbox_details.png │ ├── tracking_export.png │ ├── outbox_outstanding.png │ └── .htaccess ├── config │ ├── autoload.ini │ ├── event_subscribers.php │ └── database.sql_ganz_alt ├── web │ ├── .htaccess │ └── queue_execute.php ├── templates │ └── avisota │ │ └── backend │ │ ├── config_footer.html5.twig │ │ ├── support.html5.twig │ │ └── outbox.html5.twig ├── languages │ ├── en │ │ ├── avisota_support.xlf │ │ ├── avisota_promotion.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ ├── es │ │ ├── avisota_support.xlf │ │ ├── avisota_promotion.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ ├── pl │ │ ├── avisota_support.xlf │ │ ├── avisota_promotion.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ ├── ru_RU │ │ ├── avisota_support.xlf │ │ ├── avisota_promotion.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ ├── de │ │ ├── avisota_support.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ ├── it │ │ ├── avisota_support.xlf │ │ ├── avisota_promotion.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ ├── rm │ │ ├── avisota_support.xlf │ │ ├── avisota_promotion.xlf │ │ ├── tl_settings.xlf │ │ └── tl_avisota_settings.xlf │ └── pt_BR │ │ ├── avisota_support.xlf │ │ ├── tl_settings.xlf │ │ ├── tl_avisota_settings.xlf │ │ └── avisota_promotion.xlf └── dca │ ├── _tl_stylepicker4ward.php │ ├── _tl_article.php │ └── _tl_page.php ├── .gitignore ├── .check-author.yml ├── src ├── Event │ ├── PreSendImmediateEvent.php │ ├── CreateFakeRecipientEvent.php │ ├── CreatePublicEmptyRecipientEvent.php │ ├── PostSendImmediateEvent.php │ ├── CreateOptionsEvent.php │ ├── MailingListCreateLabelEvent.php │ ├── BaseCreateRecipientEvent.php │ ├── BaseSendImmediateEvent.php │ └── CreateRecipientSourceEvent.php ├── Queue │ ├── QueueFactoryInterface.php │ └── SimpleDatabaseQueueFactory.php ├── Transport │ ├── TransportFactoryInterface.php │ └── ServiceTransportFactory.php ├── RecipientSource │ ├── RecipientSourceFactoryInterface.php │ ├── DummyFactory.php │ └── UnionFactory.php ├── Backend │ ├── Support.php │ ├── CustomMenu.php │ └── MailingList.php ├── DataContainer │ └── Settings.php └── Message │ ├── PreRenderedMessageTemplateInterface.php │ └── ContaoAwareNativeMessage.php ├── tests ├── Test │ └── BackendTest.php └── bootstrap.php ├── phpunit.xml.dist ├── .travis.yml └── README.md /travis.php.ini: -------------------------------------------------------------------------------- 1 | memory_limit = 2G 2 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nl_preview.html5: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/css/be_global.css: -------------------------------------------------------------------------------- 1 | .avisota_outbox_empty { 2 | color: #ccc; 3 | } 4 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_table_plain.html5: -------------------------------------------------------------------------------- 1 | ### Table ### 2 | 3 | -------------------------------------------------------------------------------- /contao/html/up_.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/up_.gif -------------------------------------------------------------------------------- /contao/html/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/blank.gif -------------------------------------------------------------------------------- /contao/html/down_.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/down_.gif -------------------------------------------------------------------------------- /contao/html/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/error.png -------------------------------------------------------------------------------- /contao/html/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/more.png -------------------------------------------------------------------------------- /contao/html/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/page.png -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/avisota_reader_default.html5: -------------------------------------------------------------------------------- 1 | body; ?> -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/avisota_reader_default.xhtml: -------------------------------------------------------------------------------- 1 | body; ?> -------------------------------------------------------------------------------- /assets/images/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/clear.png -------------------------------------------------------------------------------- /assets/images/outbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/outbox.png -------------------------------------------------------------------------------- /assets/images/queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue.png -------------------------------------------------------------------------------- /assets/images/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/update.png -------------------------------------------------------------------------------- /contao/html/notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/notify.png -------------------------------------------------------------------------------- /contao/html/outbox_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/outbox_.png -------------------------------------------------------------------------------- /contao/html/page_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/page_1.png -------------------------------------------------------------------------------- /contao/html/page_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/page_2.png -------------------------------------------------------------------------------- /contao/html/page_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/page_3.png -------------------------------------------------------------------------------- /contao/html/tracking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/tracking.png -------------------------------------------------------------------------------- /contao/html/update.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/update.gif -------------------------------------------------------------------------------- /contao/html/updated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/updated.png -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_subscribe_plain_default.html5: -------------------------------------------------------------------------------- 1 | content ?> -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_subscribe_plain_default.xhtml: -------------------------------------------------------------------------------- 1 | content ?> -------------------------------------------------------------------------------- /assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/loading.gif -------------------------------------------------------------------------------- /assets/images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/settings.png -------------------------------------------------------------------------------- /contao/html/chart_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/chart_save.png -------------------------------------------------------------------------------- /contao/html/recipients.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/recipients.png -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_notification_plain_default.html5: -------------------------------------------------------------------------------- 1 | content ?> -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_notification_plain_default.xhtml: -------------------------------------------------------------------------------- 1 | content ?> -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_unsubscribe_plain_default.html5: -------------------------------------------------------------------------------- 1 | content ?> -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_unsubscribe_plain_default.xhtml: -------------------------------------------------------------------------------- 1 | content ?> -------------------------------------------------------------------------------- /assets/images/transport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/transport.png -------------------------------------------------------------------------------- /contao/html/outbox_failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/outbox_failed.png -------------------------------------------------------------------------------- /contao/html/outbox_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/outbox_remove.png -------------------------------------------------------------------------------- /contao/html/outbox_sended.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/outbox_sended.png -------------------------------------------------------------------------------- /contao/html/translation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/translation.png -------------------------------------------------------------------------------- /assets/images/mailing_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/mailing_list.png -------------------------------------------------------------------------------- /assets/images/queue_execute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute.png -------------------------------------------------------------------------------- /contao/html/outbox_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/outbox_details.png -------------------------------------------------------------------------------- /contao/html/tracking_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/tracking_export.png -------------------------------------------------------------------------------- /system_remove/modules/avisota/README: -------------------------------------------------------------------------------- 1 | This software using the Silk Icons from http://www.famfamfam.com/lab/icons/silk/ -------------------------------------------------------------------------------- /assets/images/avisota_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/avisota_config.png -------------------------------------------------------------------------------- /assets/images/avisota_support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/avisota_support.png -------------------------------------------------------------------------------- /assets/images/queue_execute_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_.png -------------------------------------------------------------------------------- /assets/images/recipient_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/recipient_source.png -------------------------------------------------------------------------------- /contao/html/outbox_outstanding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/contao/html/outbox_outstanding.png -------------------------------------------------------------------------------- /assets/images/avisota-breadcrumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/avisota-breadcrumb.png -------------------------------------------------------------------------------- /assets/images/queue_execute_send.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_send.gif -------------------------------------------------------------------------------- /assets/images/queue_execute_send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_send.png -------------------------------------------------------------------------------- /contao/config/autoload.ini: -------------------------------------------------------------------------------- 1 | ;; 2 | ; List modules which are required to be loaded beforehand 3 | ;; 4 | requires[] = "core" 5 | -------------------------------------------------------------------------------- /assets/images/queue_execute_waiting.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_waiting.gif -------------------------------------------------------------------------------- /assets/images/queue_execute_waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_waiting.png -------------------------------------------------------------------------------- /assets/images/queue_execute_initialize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_initialize.gif -------------------------------------------------------------------------------- /assets/images/queue_execute_initialize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avisota/contao-core/HEAD/assets/images/queue_execute_initialize.png -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_headline_plain.html5: -------------------------------------------------------------------------------- 1 | hl; ?> headline; ?> hl; ?> 2 | 3 | -------------------------------------------------------------------------------- /assets/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Order allow,deny 3 | Allow from all 4 | 5 | 6 | Require all granted 7 | -------------------------------------------------------------------------------- /contao/html/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Order allow,deny 3 | Allow from all 4 | 5 | 6 | Require all granted 7 | -------------------------------------------------------------------------------- /contao/web/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Order allow,deny 3 | Allow from all 4 | 5 | 6 | Require all granted 7 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_gallery_plain.html5: -------------------------------------------------------------------------------- 1 | headline): ?>hl; ?> headline; ?> hl; ?> 2 | 3 | images; 6 | ?> 7 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_article_teaser_plain.html5: -------------------------------------------------------------------------------- 1 | headline): ?>## headline; ?> ## 2 | 3 | teaser; ?> 4 | 5 | more; ?> href; ?> 6 | 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS 2 | .DS_Store 3 | Thumbs.db 4 | 5 | # IDEs 6 | .buildpath 7 | .project 8 | .settings/ 9 | .build/ 10 | .idea/ 11 | nbproject/ 12 | 13 | # runtime files 14 | .tx/ 15 | module/.skip 16 | 17 | # dependencies 18 | build 19 | vendor 20 | composer.lock 21 | .todo 22 | -------------------------------------------------------------------------------- /contao/templates/avisota/backend/config_footer.html5.twig: -------------------------------------------------------------------------------- 1 |
2 |
{{ opensource }}
3 |
{{ partners }}
4 |
5 | 6 |
{{ disclaimer }}
-------------------------------------------------------------------------------- /.check-author.yml: -------------------------------------------------------------------------------- 1 | exclude: 2 | languages 3 | 4 | ignore: 5 | - Tristan Lins 6 | - Tristan Lins 7 | - Avibot 8 | - Christoph Wiechert 9 | - David Maack 10 | - Oliver Hoff 11 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_headline_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | <hl; ?>>headline; ?>hl; ?>> 4 | 5 | 6 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_image_plain.html5: -------------------------------------------------------------------------------- 1 | headline): ?>hl; ?> headline; ?> hl; ?> 2 | 3 | [src; ?>] 5 | href): ?>(href; ?>) 7 | caption): 10 | echo $this->caption; ?> 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_list.xhtml: -------------------------------------------------------------------------------- 1 |
cssID; ?>style): ?> 2 | style="style; ?>"> 3 | list; 5 | 6 | if ($this->total > $this->limit): 7 | $pagination = new Pagination($this->count, $this->limit); 8 | echo $pagination->generate(); 9 | endif; 10 | ?> 11 |
-------------------------------------------------------------------------------- /contao/languages/en/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /contao/languages/es/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /contao/languages/pl/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_list.html5: -------------------------------------------------------------------------------- 1 |
cssID; ?>style): ?> 2 | style="style; ?>"> 3 | list; 5 | 6 | if ($this->total > $this->limit): 7 | $pagination = new Pagination($this->count, $this->limit); 8 | echo $pagination->generate(); 9 | endif; 10 | ?> 11 |
-------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_gallery_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline): ?> 4 | 5 | <hl; ?>>headline; ?>hl; ?>> 6 | 7 | images; ?> 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_hyperlink_plain.html5: -------------------------------------------------------------------------------- 1 | headline): ?>hl; ?> headline; ?> hl; ?> 2 | 3 | embed_pre; 7 | if ($this->href != $this->link): 8 | printf('%s [%s]', $this->link, $this->href); 9 | else: 10 | echo $this->href; 11 | endif; 12 | echo $this->embed_post; 13 | ?> 14 | 15 | 16 | -------------------------------------------------------------------------------- /contao/languages/ru_RU/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_plain_default.html5: -------------------------------------------------------------------------------- 1 | 2 | [{{newsletter::href}}] 3 | 4 | 5 | body; ?> 6 | 7 | -------------------------------------------------------------------------------- 8 | {{newsletter::unsubscribe::plain}} 9 | 10 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_text_plain.html5: -------------------------------------------------------------------------------- 1 | headline): ?>hl; ?> headline; ?> hl; ?> 2 | 3 | addImage): ?> 6 | [src; ?>] 7 | caption): ?> 8 | (caption; ?>) 9 | 12 | text; 16 | ?> 17 | -------------------------------------------------------------------------------- /contao/languages/de/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | Hilfe bekommen 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /contao/languages/it/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | Ricevi supporto 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /contao/languages/rm/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | Retschaiva agid 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /contao/templates/avisota/backend/support.html5.twig: -------------------------------------------------------------------------------- 1 |
 
2 |

{{ _lang.avisota_support.headline }}

3 |
4 |
5 |

You get informations about professional support soon!

6 |
7 |
8 |
9 | 10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_news_plain.html5: -------------------------------------------------------------------------------- 1 | headline)):?>hl; ?> headline; ?> hl; ?> 2 | 3 | 4 | news as $item): ?> 5 | * - ** [] 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /contao/dca/_tl_stylepicker4ward.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | // $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('tl_stylepicker4ward_avisota_callback', 'hookLoadDataContainer'); 17 | -------------------------------------------------------------------------------- /contao/languages/pt_BR/avisota_support.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Get support 6 | Obter suporte 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_unsubscribe.html5: -------------------------------------------------------------------------------- 1 | 2 |
cssID; ?>style): ?> 3 | style="style; ?>"> 4 | headline): ?> 5 | 6 | <hl; ?>>headline; ?>hl; ?>> 7 | 8 | 9 | form; ?> 10 | 11 |
12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_subscribe.html5: -------------------------------------------------------------------------------- 1 | 2 | 3 |
cssID; ?>style): ?> 4 | style="style; ?>"> 5 | headline): ?> 6 | 7 | <hl; ?>>headline; ?>hl; ?>> 8 | 9 | 10 | form; ?> 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_events_plain.html5: -------------------------------------------------------------------------------- 1 | headline)):?>hl; ?> headline; ?> hl; ?> 2 | 3 | 4 | events as $event): ?> 5 | * - ** [] 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /contao/dca/_tl_article.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | // Override callback 18 | //$GLOBALS['TL_DCA']['tl_article']['list']['sorting']['paste_button_callback'][0] = 'tl_article_avisota'; 19 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_subscription.html5: -------------------------------------------------------------------------------- 1 | 2 | 3 |
cssID; ?>style): ?> 4 | style="style; ?>"> 5 | headline): ?> 6 | 7 | <hl; ?>>headline; ?>hl; ?>> 8 | 9 | 10 | form; ?> 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_subscription.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
cssID; ?>style): ?> 4 | style="style; ?>"> 5 | headline): ?> 6 | 7 | <hl; ?>>headline; ?>hl; ?>> 8 | 9 | 10 | form; ?> 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/avisota_list_default.html5: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/avisota_list_default.xhtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_subscribe_html_default.html5: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | content ?> 12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_subscribe_html_default.xhtml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | content ?> 12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_notification_html_default.html5: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | content ?> 12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_notification_html_default.xhtml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | content ?> 12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_unsubscribe_html_default.html5: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | content ?> 12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_unsubscribe_html_default.xhtml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | content ?> 12 | 13 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nl_gallery_default_plain.html5: -------------------------------------------------------------------------------- 1 | body as $class=>$row): 3 | foreach ($row as $col): 4 | if ($col->addImage): 5 | ?>[src; ?>] 6 | alt): ?>(alt; ?>) 8 | href): ?>(href; ?>) 11 | 14 | caption): 16 | ?> 17 | caption; ?> 18 | 21 | 22 | -------------------------------------------------------------------------------- /src/Event/PreSendImmediateEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | /** 19 | * The pre defined immediate event. 20 | */ 21 | class PreSendImmediateEvent extends BaseSendImmediateEvent 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_reader.xhtml: -------------------------------------------------------------------------------- 1 |
cssID; ?>style): ?> 2 | style="style; ?>"> 3 | newsletter): ?> 4 |

newsletter['subject']; ?>

5 | 6 | 7 |

8 | 9 |
10 | -------------------------------------------------------------------------------- /src/Event/CreateFakeRecipientEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | /** 19 | * Create fake recipient event. 20 | */ 21 | class CreateFakeRecipientEvent extends BaseCreateRecipientEvent 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mod_avisota_reader.html5: -------------------------------------------------------------------------------- 1 |
cssID; ?>style): ?> 2 | style="style; ?>"> 3 | newsletter): ?> 4 |

newsletter['subject']; ?>

5 | 6 | 7 |

8 | 9 |
10 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_list_plain.html5: -------------------------------------------------------------------------------- 1 | headline): ?>hl; ?> headline; ?> hl; ?> 2 | 3 | listType == 'ordered'): 6 | $index = 0; 7 | else: 8 | $prefix = '• '; 9 | endif; 10 | 11 | foreach ($this->items as $item): 12 | if ($this->listType == 'ordered'): 13 | $index ++; 14 | $prefix = $index . '. '; 15 | endif; 16 | 17 | echo $prefix . str_replace("\n", "\n ", $item) . "\n"; 18 | endforeach; 19 | ?> 20 | 21 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/avisota_dca.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Avisota dca 19 | */ 20 | $GLOBALS['TL_LANG']['avisota_dca']['filteredByMailingList'] = 'Es werden nur Abonnenten der Mailing Liste %s angezeigt! (alle anzeigen)'; 21 | -------------------------------------------------------------------------------- /tests/Test/BackendTest.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Test\Contao\Core; 17 | 18 | /** 19 | * Class BackendTest 20 | * 21 | * @package Avisota\Test\Contao\Core 22 | */ 23 | class BackendTest extends \PHPUnit_Framework_TestCase 24 | { 25 | public function testRegenerateDynamics() 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | tests/Test 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/en_/tl_page.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['tl_page']['jumpBack'] = array( 21 | 'Main ', 22 | ' Please select the page that you will be redirected to. If you do not select a target page, you will be automatically forwarded to the parent page.' 23 | ); 24 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaTransportException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaTransportException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaTransportException extends Exception 26 | { 27 | } 28 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_list_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline): ?> 4 | <hl; ?>>headline; ?>hl; ?>> 5 | 6 | <tag; ?>> 7 | items as $item): ?> 8 | class=""> 9 | 10 | tag; ?>> 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Event/CreatePublicEmptyRecipientEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | use Avisota\Recipient\RecipientInterface; 19 | use Symfony\Component\EventDispatcher\Event; 20 | 21 | /** 22 | * Create public empty recipient event. 23 | */ 24 | class CreatePublicEmptyRecipientEvent extends BaseCreateRecipientEvent 25 | { 26 | } 27 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_article_teaser_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline): ?> 4 | <hl; ?>>headline; ?>hl; ?>> 5 | 6 |
7 | teaser; ?> 8 |

more; ?>

9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_hyperlink_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline): ?> 4 | <hl; ?>>headline; ?>hl; ?>> 5 | 6 | embed_pre; ?>rel): ?> rel="rel; ?>"target; ?>>link; ?>embed_post; ?> 7 | 8 | 9 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/tl_page.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['tl_page']['jumpBack'] = array( 21 | 'Weiterleitungsseite', 22 | 'Bitte wählen Sie die Seite aus, zu der Besucher weitergeleitet werden. Wenn Sie keine Zielseite auswählen, wird automatisch zur übergeordneten Seite weitergeleitet.' 23 | ); 24 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaTransportFinalisationException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaTransportFinalisationException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaTransportFinalisationException extends Exception 26 | { 27 | 28 | } 29 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaTransportInitialisationException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaTransportInitialisationException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaTransportInitialisationException extends Exception 26 | { 27 | 28 | } 29 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/avisota_unsubscribe.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | $GLOBALS['TL_LANG']['avisota_unsubscribe']['submit'] = 'Abmelden'; 18 | $GLOBALS['TL_LANG']['avisota_unsubscribe']['unsubscribed'] = 'Sie wurden aus unserem Newsletter abgemeldet.'; 19 | $GLOBALS['TL_LANG']['avisota_unsubscribe']['notSubscribed'] = 'Sie haben unseren Newsletter leider nicht abonniert.'; 20 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_plain_extended.html5: -------------------------------------------------------------------------------- 1 | 2 | [{{newsletter::href}}] 3 | 4 | 5 | header): echo $this->header; ?> 6 | 7 | 8 | body; ?> 9 | 10 | left): echo $this->left; ?> 11 | 12 | 13 | right): echo $this->right; ?> 14 | 15 | 16 | footer): echo $this->footer; ?> 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- 21 | {{newsletter::unsubscribe::plain}} 22 | 23 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - "5.6" 5 | 6 | env: 7 | - CONTAO_VERSION=~3.5.5 8 | 9 | sudo: false 10 | 11 | before_script: 12 | - echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini 13 | - travis_retry composer self-update && composer --version 14 | - travis_retry composer require contao/core $CONTAO_VERSION --no-update 15 | - travis_retry composer update --prefer-dist --no-interaction 16 | 17 | script: ant -keep-going 18 | 19 | # Hack to make things work again - we can not use a shallow repository. 20 | git: 21 | depth: 2147483647 22 | 23 | # This used to cause corruption due to travis bug travis-ci/travis-ci#4393 - hopefully it works out now. 24 | cache: 25 | directories: 26 | - vendor 27 | -------------------------------------------------------------------------------- /src/Queue/QueueFactoryInterface.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Queue; 17 | 18 | use Avisota\Contao\Entity\Queue; 19 | 20 | /** 21 | * The queue factory interface. 22 | */ 23 | interface QueueFactoryInterface 24 | { 25 | /** 26 | * Create the queue factory. 27 | * 28 | * @param Queue $queueEntity The queue entity. 29 | * 30 | * @return mixed 31 | */ 32 | public function createQueue(Queue $queueEntity); 33 | } 34 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_news_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline)):?> 4 | <hl; ?>>headline; ?>hl; ?>> 5 | 6 |
    7 | news as $item): ?> 8 |
  • 9 | parseDate($GLOBALS['TL_CONFIG']['dateFormat'],$item['time']);?> - 10 |

    11 |
  • 12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_events_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline)):?> 4 | <hl; ?>>headline; ?>hl; ?>> 5 | 6 |
    7 | events as $event): ?> 8 |
  • 9 | parseDate($GLOBALS['TL_CONFIG']['dateFormat'],$event['startTime']);?> - 10 |

    11 |
  • 12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Transport/TransportFactoryInterface.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Transport; 17 | 18 | use Avisota\Contao\Entity\Transport; 19 | 20 | /** 21 | * Interface TransportFactoryInterface 22 | * 23 | * @package Avisota\Contao\Core\Transport 24 | */ 25 | interface TransportFactoryInterface 26 | { 27 | /** 28 | * @param Transport $transport The transport. 29 | * 30 | * @return mixed 31 | */ 32 | public function createTransport(Transport $transport); 33 | } 34 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/DataContainer/tl_article_avisota.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | class tl_article_avisota extends tl_article 17 | { 18 | 19 | public function pasteArticle(DataContainer $dc, $row, $table, $cr, $clipboardData = false) 20 | { 21 | if ($table == $GLOBALS['TL_DCA'][$dc->table]['config']['ptable'] && $row['type'] == 'avisota') { 22 | return $this->generateImage('pasteinto_.gif', '', 'class="blink"'); 23 | } 24 | 25 | return parent::pasteArticle($dc, $row, $table, $cr, $clipboardData); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/en_/tl_settings.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['tl_settings']['avisota_developer_mode'] = array('Developer Mode ', ' Enables developer mode.'); 21 | $GLOBALS['TL_LANG']['tl_settings']['avisota_developer_email'] = array( 22 | 'Developer E-mail ', 23 | 'Send emails to this address for developer mode.' 24 | ); 25 | 26 | 27 | /** 28 | * Legend 29 | */ 30 | $GLOBALS['TL_LANG']['tl_settings']['avisota_legend'] = 'Avisota Newsletter System'; 31 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/tl_member.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['tl_member']['avisota_lists'] = array( 21 | TL_MODE == 'FE' ? 'Newsletter' : 'Avisota Verteiler', 22 | 'Wählen Sie hier die Verteiler, die der Abonnent erhalten soll.' 23 | ); 24 | $GLOBALS['TL_LANG']['tl_member']['avisota_subscribe'] = array('Newsletter abonnieren', ''); 25 | 26 | 27 | /** 28 | * Legends 29 | */ 30 | $GLOBALS['TL_LANG']['tl_member']['avisota_legend'] = 'Avisota Newslettersystem'; 31 | -------------------------------------------------------------------------------- /src/RecipientSource/RecipientSourceFactoryInterface.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\RecipientSource; 17 | 18 | use Avisota\Contao\Entity\RecipientSource; 19 | 20 | /** 21 | * The recipient source factory interface. 22 | */ 23 | interface RecipientSourceFactoryInterface 24 | { 25 | /** 26 | * Create the recipient source. 27 | * 28 | * @param RecipientSource $recipientSource 29 | * 30 | * @return mixed 31 | */ 32 | public function createRecipientSource(RecipientSource $recipientSource); 33 | } 34 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/tl_stylepicker4ward.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | $GLOBALS['TL_LANG']['tl_stylepicker4ward']['Avisota_legend'] = 'Avisota Newslettersystem'; 17 | $GLOBALS['TL_LANG']['tl_stylepicker4ward']['_AvisotaNewsletterCEs'] = array( 18 | 'Newsletter Inhaltselemente', 19 | 'Diese Styledefinition kann auf diese Inhaltselemente angewandt werden.' 20 | ); 21 | $GLOBALS['TL_LANG']['tl_stylepicker4ward']['_AvisotaNewsletterCE_Row'] = array( 22 | 'Spalten', 23 | 'Das Inhaltselement muss in diesen Spalten liegen.' 24 | ); 25 | -------------------------------------------------------------------------------- /src/Transport/ServiceTransportFactory.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Transport; 17 | 18 | use Avisota\Contao\Entity\Transport; 19 | 20 | /** 21 | * The service transport factory. 22 | */ 23 | class ServiceTransportFactory implements TransportFactoryInterface 24 | { 25 | /** 26 | * Create the transport. 27 | * 28 | * @param Transport $transport 29 | * 30 | * @return mixed 31 | */ 32 | public function createTransport(Transport $transport) 33 | { 34 | global $container; 35 | 36 | return $container[$transport->getServiceName()]; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/avisota_subscribe.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | $GLOBALS['TL_LANG']['avisota_subscribe']['submit'] = 'Abonnieren'; 18 | $GLOBALS['TL_LANG']['avisota_subscribe']['subscribed'] = 'Vielen Dank für Ihr Interesse, Sie wurden zu unserem Newsletter angemeldet. Sie erhalten in Kürze eine E-Mail um Ihr Abonnement zu bestätigen.'; 19 | $GLOBALS['TL_LANG']['avisota_subscribe']['allreadySubscribed'] = 'Vielen Dank für Ihr Interesse, aber Sie sind bereits an unserem Newsletter angemeldet.'; 20 | $GLOBALS['TL_LANG']['avisota_subscribe']['confirmSubscription'] = 'Ihr Abonnement wurde erfolgreich aktiviert.'; 21 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/ElementInterface.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | namespace Avisota\Contao\Core\Message\Element; 18 | 19 | use Avisota\Contao\Entity\MessageContent; 20 | use Avisota\Recipient\RecipientInterface; 21 | 22 | interface ElementInterface 23 | { 24 | /** 25 | * Parse and generate the element. 26 | * 27 | * @param string $mode One of Renderer::MODE_* constants. 28 | * @param MessageContent $messageContent 29 | * @param RecipientInterface $recipient 30 | * 31 | * @return string 32 | */ 33 | public function generate($mode, MessageContent $messageContent, RecipientInterface $recipient = null); 34 | } 35 | -------------------------------------------------------------------------------- /tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | error_reporting(E_ALL); 17 | 18 | function includeIfExists($file) 19 | { 20 | return file_exists($file) ? include $file : false; 21 | } 22 | 23 | if (// Locally installed dependencies. 24 | (!$loader = includeIfExists(__DIR__ . '/../vendor/autoload.php')) 25 | // We are within an composer install. 26 | && (!$loader = includeIfExists(__DIR__ . '/../../../autoload.php')) 27 | ) { 28 | echo 'You must set up the project dependencies, run the following commands:' . PHP_EOL . 29 | 'curl -sS https://getcomposer.org/installer | php' . PHP_EOL . 30 | 'php composer.phar install' . PHP_EOL; 31 | exit(1); 32 | } 33 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaRecipientException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaRecipientException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaRecipientException extends Exception 26 | { 27 | protected $recipient; 28 | 29 | public function __construct(array $recipientData = null, $message = '', $code = 0, $previous = null) 30 | { 31 | parent::__construct($message, $code, $previous); 32 | $this->recipient = $recipientData; 33 | } 34 | 35 | public function getRecipient() 36 | { 37 | return $this->recipient; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaSubscriptionException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaSubscriptionException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaSubscriptionException extends Exception 26 | { 27 | protected $recipient; 28 | 29 | public function __construct(AvisotaRecipient $recipient, $message = '', $code = 0, $previous = null) 30 | { 31 | parent::__construct($message, $code, $previous); 32 | $this->recipient = $recipient; 33 | } 34 | 35 | public function getRecipient() 36 | { 37 | return $this->recipient; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_hyperlink_image_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?> style="line-height: 0; style; ?>"> 3 | headline): ?> 4 | <hl; ?> style="line-height: normal;">headline; ?>hl; ?>> 5 | 6 |
7 | embed_pre; ?>rel): ?> rel="rel; ?>"target; ?>>imgSize; ?> alt="alt; ?>" title="title; ?>" />embed_post; ?> 8 | caption): ?> 9 |

caption; ?>

10 | 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_image_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?> style="line-height: 0; style; ?>"> 3 | headline): ?> 4 | <hl; ?> style="line-height: normal;">headline; ?>hl; ?>> 5 | 6 |
margin): ?> style="margin; ?>"> 7 | href): ?> 8 | attributes; ?> title="alt; ?>"> 9 | 10 | imgSize; ?> alt="alt; ?>" /> 11 | href): ?> 12 | 13 | 14 | caption): ?> 15 |

caption; ?>

16 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/ElementTemplate.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | namespace Avisota\Contao\Core\Message\Element; 18 | 19 | use Avisota\Contao\Entity\MessageContent; 20 | use Avisota\Contao\Core\Message\Renderer; 21 | use Avisota\Recipient\RecipientInterface; 22 | 23 | 24 | /** 25 | * Class Text 26 | * 27 | * 28 | * @copyright way.vision 2015 29 | * @author Sven Baumann 30 | * @package avisota/contao-core 31 | */ 32 | class ElementTemplate 33 | { 34 | public function __construct( 35 | $template = '', 36 | $mode = '' 37 | ) { 38 | parent::__construct($template, $contentType ? $contentType : 'text/' . $mode); 39 | $this->setFormat($mode); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/NewsletterHeadline.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class NewsletterHeadline 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class NewsletterHeadline extends Element 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_headline_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_headline_plain'; 41 | 42 | 43 | /** 44 | * Compile the current element 45 | */ 46 | protected function compile($mode) 47 | { 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/NewsletterHeadline.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class NewsletterHeadline 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class NewsletterHeadline extends Element 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_headline_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_headline_plain'; 41 | 42 | 43 | /** 44 | * Compile the current element 45 | */ 46 | protected function compile($mode) 47 | { 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /assets/js/backend.js: -------------------------------------------------------------------------------- 1 | var Avisota = { 2 | toggleConfirmation: function (link) { 3 | link = $(link); 4 | new Request.JSON({ 5 | url: 'contao/main.php', 6 | onSuccess: function (responseJSON, responseText) { 7 | if (responseJSON.blacklisted) { 8 | 9 | } else { 10 | link.setProperty('data-confirmed', responseJSON.confirmed ? '1' : '') 11 | var img = link.getElement('img'); 12 | img.setProperty('src', 13 | img.getProperty('src').replace(/\/(in)?visible.gif/, (responseJSON.confirmed ? '/visible.gif' : '/invisible.gif'))); 14 | } 15 | } 16 | }).get({ 17 | 'do': 'avisota_recipients', 18 | 'act': 'toggleConfirmation', 19 | 'recipient': link.getProperty('data-recipient'), 20 | 'list': link.getProperty('data-list'), 21 | 'confirmed': link.getProperty('data-confirmed') ? '' : '1' 22 | }) 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /contao/config/event_subscribers.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | use Avisota\Contao\Core\Controller\CopyController; 17 | use Avisota\Contao\Core\DataContainer\MailingList; 18 | use Avisota\Contao\Core\DataContainer\Queue; 19 | use Avisota\Contao\Core\DataContainer\RecipientSource; 20 | use Avisota\Contao\Core\DataContainer\Core; 21 | use Avisota\Contao\Core\DataContainer\Transport; 22 | use Avisota\Contao\Core\EventSubscriber; 23 | 24 | return array( 25 | new Queue(), 26 | new RecipientSource(), 27 | new EventSubscriber(), 28 | function () { 29 | return $GLOBALS['container']['avisota.core.options-builder']; 30 | }, 31 | new CopyController(), 32 | new Core(), 33 | new Transport(), 34 | new MailingList() 35 | ); 36 | -------------------------------------------------------------------------------- /assets/css/avisotaCompatibilityController.css: -------------------------------------------------------------------------------- 1 | #wrapper { 2 | width: 500px; 3 | margin: 40px auto; 4 | padding: 40px; 5 | border: 1px solid #990000; 6 | background: #eee; 7 | overflow: hidden; 8 | line-height: 1.5em; 9 | } 10 | img { 11 | float: left; 12 | margin-right: 20px; 13 | } 14 | div.buttons { 15 | clear: left; 16 | padding-top: 20px; 17 | } 18 | a.disableAvisota, 19 | a.uninstallAvisota { 20 | width: 220px; 21 | height: 32px; 22 | line-height: 32px; 23 | margin: 0; 24 | padding: 0; 25 | -webkit-border-radius: 5px; 26 | -khtml-border-radius: 5px; 27 | -moz-border-radius: 5px; 28 | -ie-border-radius: 5px; 29 | -o-border-radius: 5px; 30 | border-radius: 5px; 31 | text-align: center; 32 | } 33 | a.disableAvisota { 34 | float: left; 35 | border: 1px solid #0000ff; 36 | background: #f6f6ff; 37 | } 38 | a.disableAvisota:hover { 39 | color: #0000ff; 40 | } 41 | a.uninstallAvisota { 42 | float: right; 43 | border: 1px solid #009900; 44 | background: #f6fff6; 45 | cursor: pointer; 46 | } 47 | a.uninstallAvisota:hover { 48 | color: #009900; 49 | } 50 | -------------------------------------------------------------------------------- /assets/js/Number.js: -------------------------------------------------------------------------------- 1 | Number.prototype.formatTime = function (forceMinutes, forceHours) { 2 | var i = Math.abs(parseInt(this)); 3 | var s = parseInt(i % 60); 4 | var m = parseInt((i / 60) % 60); 5 | var h = parseInt((i / 3600) % 60); 6 | var v = ''; 7 | if (forceHours || h > 0) { 8 | v += h + ':'; 9 | } 10 | if (v || forceMinutes || m > 0) { 11 | if (v && m < 10) { 12 | v += '0'; 13 | } 14 | v += m + ':'; 15 | } 16 | if (v && s < 10) { 17 | v += '0'; 18 | } 19 | v += s; 20 | if (this < 0) { 21 | v = '-' + v + ''; 22 | } 23 | return v; 24 | }; 25 | Number.prototype.formatNumber = function () { 26 | var a = Math.abs(this).toString().split(''); 27 | v = ''; 28 | var n = 0; 29 | while (a.length > 0) { 30 | if (n > 0 && n % 3 == 0) 31 | v = '.' + v; 32 | v = a.pop() + v; 33 | n++; 34 | } 35 | if (this < 0) { 36 | v = '-' + v + ''; 37 | } 38 | return v; 39 | }; 40 | -------------------------------------------------------------------------------- /contao/dca/_tl_page.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Table tl_page 19 | */ 20 | $GLOBALS['TL_DCA']['tl_page']['metapalettes']['avisota'] = array 21 | ( 22 | 'title' => array('title', 'alias', 'type'), 23 | 'redirect' => array('jumpBack'), 24 | 'protected' => array(':hide', 'protected'), 25 | 'cache' => array(':hide', 'includeCache'), 26 | 'chmod' => array(':hide', 'includeChmod'), 27 | 'expert' => array(':hide', 'guests'), 28 | 'publish' => array('published', 'start', 'stop') 29 | ); 30 | 31 | $GLOBALS['TL_DCA']['tl_page']['fields']['jumpBack'] = array 32 | ( 33 | 'label' => &$GLOBALS['TL_LANG']['tl_page']['jumpBack'], 34 | 'exclude' => true, 35 | 'inputType' => 'pageTree', 36 | 'eval' => array('fieldType' => 'radio') 37 | ); 38 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaBlacklistException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaBlacklistException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaBlacklistException extends Exception 26 | { 27 | protected $email; 28 | 29 | protected $lists; 30 | 31 | public function __construct($email = null, array $lists = array(), $message = '', $code = 0, $previous = null) 32 | { 33 | parent::__construct($message, $code, $previous); 34 | $this->email = $email; 35 | $this->lists = $lists; 36 | } 37 | 38 | public function getEmail() 39 | { 40 | return $this->email; 41 | } 42 | 43 | public function getLists() 44 | { 45 | return $this->lists; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaTransportEmailException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaTransportEmailException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaTransportEmailException extends Exception 26 | { 27 | protected $recipient; 28 | 29 | protected $email; 30 | 31 | public function __construct($recipient, Email $email, $message = '', $code = 0, $previous = null) 32 | { 33 | parent::__construct($message, $code, $previous); 34 | $this->recipient = $recipient; 35 | $this->newsletter = $email; 36 | } 37 | 38 | public function getRecipient() 39 | { 40 | return $this->recipient; 41 | } 42 | 43 | public function getEmail() 44 | { 45 | return $this->email; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/avisotaCompatibilityController.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Avisota compatibility controller 19 | */ 20 | $GLOBALS['TL_LANG']['avisotaCompatibilityController']['title'] = 'Inkompatible Systemvoraussetzungen'; 21 | $GLOBALS['TL_LANG']['avisotaCompatibilityController']['message'] = 'Diese Version von Avisota benötigt MySQL 5+,
22 | sie verwenden zur Zeit MySQL %s.
23 |
24 | Wenn Sie Avisota verwenden möchten, aktualisieren Sie den MySQL Server oder wenden Sie sich an Ihren Provider!'; 25 | $GLOBALS['TL_LANG']['avisotaCompatibilityController']['disable'] = 'Avisota deaktivieren'; 26 | $GLOBALS['TL_LANG']['avisotaCompatibilityController']['uninstall'] = 'Avisota deinstallieren'; 27 | $GLOBALS['TL_LANG']['avisotaCompatibilityController']['disabled'] = 'Avisota wurde deaktiviert'; 28 | -------------------------------------------------------------------------------- /src/Queue/SimpleDatabaseQueueFactory.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Queue; 17 | 18 | use Avisota\Contao\Entity\Queue; 19 | use Avisota\Queue\SimpleDatabaseQueue; 20 | 21 | /** 22 | * The simple database queue factory. 23 | */ 24 | class SimpleDatabaseQueueFactory implements QueueFactoryInterface 25 | { 26 | /** 27 | * Create the simple queue database. 28 | * 29 | * @param Queue $queue 30 | * 31 | * @return SimpleDatabaseQueue 32 | */ 33 | public function createQueue(Queue $queue) 34 | { 35 | global $container; 36 | 37 | return new SimpleDatabaseQueue( 38 | $container['doctrine.connection.default'], 39 | $queue->getSimpleDatabaseQueueTable(), 40 | true, 41 | $container['avisota.logger.queue'], 42 | $container['event-dispatcher'] 43 | ); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nl_gallery_default_html.html5: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | body as $class=>$row): ?> 5 | 6 | 7 | addImage): ?> 8 | 9 | 10 | 22 | 23 | 24 | 25 | 26 | 27 |
  11 |
margin): ?> style="margin; ?>"> 12 | href): ?> 13 | attributes; ?> title="alt; ?>">imgSize; ?> alt="alt; ?>"> 14 | 15 | imgSize; ?> alt="alt; ?>"> 16 | 17 | caption): ?> 18 |
caption; ?>
19 | 20 |
21 |
28 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaFrontend.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaFrontend 19 | * 20 | * @copyright way.vision 2015 21 | * @author Sven Baumann 22 | * @package avisota/contao-core 23 | */ 24 | class AvisotaFrontend extends Frontend 25 | { 26 | /** 27 | * Find a particular template file and return its path 28 | * 29 | * @author Leo Feyer 30 | * @see Controll::getTemplate in Contao OpenSource CMS 31 | * 32 | * @param string 33 | * @param string 34 | * 35 | * @return string 36 | * @throws Exception 37 | */ 38 | public function getTemplate($template) 39 | { 40 | return AvisotaBase::getInstance() 41 | ->getTemplate($template); 42 | } 43 | 44 | protected function getTemplateGroup($prefix, $themeId = 0) 45 | { 46 | return AvisotaBase::getInstance() 47 | ->getTemplateGroup($prefix, $themeId); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaTransportNewsletterException.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaTransportNewsletterException 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class AvisotaTransportNewsletterException extends Exception 26 | { 27 | protected $recipient; 28 | 29 | protected $newsletter; 30 | 31 | public function __construct( 32 | AvisotaRecipient $recipient, 33 | AvisotaNewsletter $newsletter, 34 | $message = '', 35 | $code = 0, 36 | $previous = null 37 | ) { 38 | parent::__construct($message, $code, $previous); 39 | $this->recipient = $recipient; 40 | $this->newsletter = $newsletter; 41 | } 42 | 43 | public function getRecipient() 44 | { 45 | return $this->recipient; 46 | } 47 | 48 | public function getNewsletter() 49 | { 50 | return $this->newsletter; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de/tl_avisota_recipient_remove.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['source'] = array( 21 | 'Quelle', 22 | 'Wählen Sie hier die Datei aus, welche die Empfänger enthält die Sie löschen möchten.' 23 | ); 24 | $GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['upload'] = array( 25 | 'Upload', 26 | 'Laden Sie eine Datei hoch, welche die Empfänger enthält die Sie löschen möchten.' 27 | ); 28 | $GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['emails'] = array( 29 | 'E-Mails', 30 | 'Tragen Sie hier die Empfänger ein die Sie löschen möchten.' 31 | ); 32 | 33 | 34 | /** 35 | * Reference 36 | */ 37 | $GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['confirm'] = '%s Empfänger wurden gelöscht.'; 38 | $GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['edit'] = 'Empfänger löschen'; 39 | 40 | 41 | /** 42 | * Legends 43 | */ 44 | $GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['remove_legend'] = 'Löschen'; 45 | -------------------------------------------------------------------------------- /src/Event/PostSendImmediateEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | use Avisota\Contao\Entity\Message; 19 | 20 | /** 21 | * The post defined immediate event. 22 | */ 23 | class PostSendImmediateEvent extends BaseSendImmediateEvent 24 | { 25 | /** 26 | * The count. 27 | * 28 | * @var string 29 | */ 30 | protected $count; 31 | 32 | /** 33 | * PostSendImmediateEvent constructor. 34 | * 35 | * @param Message $count The count. 36 | * @param Message $message The message. 37 | * @param string $turn The turn step. 38 | * @param string $loop The unique loop id. 39 | */ 40 | public function __construct($count, Message $message, $turn, $loop) 41 | { 42 | parent::__construct($message, $turn, $loop); 43 | 44 | $this->count = $count; 45 | } 46 | 47 | /** 48 | * Return the count. 49 | * 50 | * @return string 51 | */ 52 | public function getCount() 53 | { 54 | return $this->count; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de/tl_avisota_newsletter_create_from_draft.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['category'] = array( 21 | 'Kategorie', 22 | 'Wählen Sie hier, in welcher Kategorie der Newsletter erstellt werden soll.' 23 | ); 24 | $GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['subject'] = array( 25 | 'Betreff', 26 | 'Bitte geben Sie den Betreff des Newsletters ein.' 27 | ); 28 | $GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['draft'] = array( 29 | 'Vorlage', 30 | 'Wählen Sie hier die Vorlage aus.' 31 | ); 32 | 33 | 34 | /** 35 | * Legends 36 | */ 37 | $GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['create_legend'] = 'Einstellungen'; 38 | $GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['edit'] = 'Newsletter aus Vorlage erstellen'; 39 | 40 | 41 | /** 42 | * Reference 43 | */ 44 | $GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['created'] = 'Newsletter wurde erstellt.'; 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Avisota 3 2 | ========= 3 | 4 | [![Build Status](https://travis-ci.org/avisota/contao-core.png)](https://travis-ci.org/avisota/contao-core) 5 | [![Latest Version tagged](http://img.shields.io/github/tag/avisota/contao-core.svg)](https://github.com/avisota/contao-core/tags) 6 | [![Latest Version on Packagist](http://img.shields.io/packagist/v/avisota/contao-core.svg)](https://packagist.org/packages/avisota/contao-core) 7 | [![Installations via composer per month](http://img.shields.io/packagist/dm/avisota/contao-core.svg)](https://packagist.org/packages/avisota/contao-core) 8 | [![Reference Status](https://www.versioneye.com/php/avisota:contao-core/rbadge.svg?style=flat)](https://www.versioneye.com/php/avisota:contao-core) 9 | 10 | Avisota is a high definition newsletter and mailing system for the Contao CMS . 11 | 12 | ## Events 13 | 14 | ### avisota-recipient-subscribe (SubscribeEvent) 15 | 16 | Triggered if a recipient starts the subscription process (double-opt-in). 17 | 18 | ### avisota-recipient-confirm-subscription (ConfirmSubscriptionEvent) 19 | 20 | Triggered if a recipient confirms his subscription. 21 | 22 | ### avisota-recipient-unsubscribe (UnsubscribeEvent) 23 | 24 | Triggered if a recipient cancels his subscription. 25 | 26 | ### avisota-recipient-remove (RecipientEvent) 27 | 28 | Triggered if a recipient gets removed, because he has no more subscriptions. 29 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de/tl_avisota_recipient_export.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['delimiter'] = array( 21 | 'Feldtrenner', 22 | 'Wählen Sie hier das Zeichen aus, nach dem die einzelnen Felder getrennt sind.' 23 | ); 24 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['enclosure'] = array( 25 | 'Texttrenner', 26 | 'Wählen Sie hier das Zeichen aus, nach dem der Text getrennt ist.' 27 | ); 28 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['fields'] = array( 29 | 'Felder', 30 | 'Wählen Sie hier, wie die Felder die exportiert werden sollen.' 31 | ); 32 | 33 | /** 34 | * Reference 35 | */ 36 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['double'] = 'Doppelte Anführungszeichen "'; 37 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['single'] = 'Einfache Anführungszeichen \''; 38 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['edit'] = 'CSV-Export'; 39 | 40 | 41 | /** 42 | * Legends 43 | */ 44 | $GLOBALS['TL_LANG']['orm_avisota_recipient_export']['format_legend'] = 'CSV Format'; 45 | -------------------------------------------------------------------------------- /contao/web/queue_execute.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | function ifInitializeExist() 17 | { 18 | 19 | $dir = dirname(isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : __FILE__); 20 | 21 | while ($dir && $dir != '.' && $dir != '/' && !is_file($dir . '/system/initialize.php')) { 22 | $dir = dirname($dir); 23 | 24 | } 25 | 26 | if (!is_file($dir . '/system/initialize.php')) { 27 | header("HTTP/1.0 500 Internal Server Error"); 28 | header('Content-Type: text/html; charset=utf-8'); 29 | echo '

500 Internal Server Error

'; 30 | echo '

Could not find initialize.php!

'; 31 | exit(1); 32 | } 33 | 34 | /** @noinspection PhpIncludeInspection */ 35 | define('TL_MODE', 'FE'); 36 | require($dir . '/system/initialize.php'); 37 | 38 | \BackendUser::getInstance(); 39 | } 40 | 41 | ifInitializeExist(); 42 | 43 | $request = \Symfony\Component\HttpFoundation\Request::createFromGlobals(); 44 | $runner = new \Avisota\Contao\Core\Controller\QeueueExecuteController(); 45 | $response = $runner->run($request); 46 | $response->send(); 47 | -------------------------------------------------------------------------------- /src/Backend/Support.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Backend; 17 | 18 | use ContaoCommunityAlliance\Contao\Bindings\ContaoEvents; 19 | use ContaoCommunityAlliance\Contao\Bindings\Events\System\LoadLanguageFileEvent; 20 | use Symfony\Component\EventDispatcher\EventDispatcher; 21 | 22 | /** 23 | * A BackendModule implementation that use Twig as template engine. 24 | */ 25 | class Support extends \TwigBackendModule 26 | { 27 | /** 28 | * The template. 29 | * 30 | * @var string 31 | */ 32 | protected $strTemplate = 'avisota/backend/support'; 33 | 34 | /** 35 | * Compile the current element. 36 | * 37 | * @return void 38 | * 39 | * @SuppressWarnings(PHPMD.Superglobals) 40 | */ 41 | protected function compile() 42 | { 43 | /** @var EventDispatcher $eventDispatcher */ 44 | $eventDispatcher = $GLOBALS['container']['event-dispatcher']; 45 | 46 | $eventDispatcher->dispatch( 47 | ContaoEvents::SYSTEM_LOAD_LANGUAGE_FILE, 48 | new LoadLanguageFileEvent('avisota_support') 49 | ); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/mail_html_default.html5: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <?php echo $this->title; ?> 8 | head; ?> 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 |
15 | 16 |
20 | 21 | 22 | 23 | 30 | 31 | 32 |
24 | 25 | 26 | body; ?> 27 | 28 |
29 |
33 | 34 | 35 | 36 | 39 | 40 | 41 |
37 |
{{newsletter::unsubscribe::html}}
38 |
42 | 43 | -------------------------------------------------------------------------------- /src/Backend/CustomMenu.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Backend; 17 | 18 | /** 19 | * The avisota core custom menu. 20 | */ 21 | class CustomMenu 22 | { 23 | /** 24 | * The hook for get user navigation. 25 | * 26 | * @param array $navigation The navigation. 27 | * @param boolean $showAll The state of show all. 28 | * 29 | * @return array 30 | * 31 | * @SuppressWarnings(PHPMD.Superglobals) 32 | * @SuppressWarnings(PHPMD.UnusedFormalParameter) 33 | */ 34 | public static function hookGetUserNavigation(array $navigation, $showAll) 35 | { 36 | if (TL_MODE == 'BE' && is_array($navigation['avisota']['modules'])) { 37 | try { 38 | $GLOBALS['TL_CSS']['avisota-be-global'] = 'assets/avisota/core/css/be_global.css'; 39 | 40 | if (Outbox::isEmpty()) { 41 | $navigation['avisota']['modules']['avisota_outbox']['class'] .= ' avisota_outbox_empty'; 42 | } 43 | } catch (\Exception $exception) { 44 | // silently ignore 45 | } 46 | } 47 | return $navigation; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/DataContainer/tl_member.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | class tl_member_avisota extends Backend 17 | { 18 | public function onload_callback() 19 | { 20 | // Hack, because ModulePersonalData does not call the load_callback for the avisota_lists field 21 | // uncomment when https://github.com/contao/core/pull/4018 is merged 22 | // if (TL_MODE == 'FE' && version_compare(VERSION . '.' . BUILD, '2.11.0', '<=')) { 23 | $this->import('FrontendUser', 'User'); 24 | $this->User->avisota_lists = explode(',', $this->User->avisota_lists); 25 | // } 26 | } 27 | 28 | public function onsubmit_callback() 29 | { 30 | if (TL_MODE == 'FE') { 31 | list($user, $formData, $modulePersonalData) = func_get_args(); 32 | $listIds = deserialize($formData['avisota_lists'], true); 33 | $userId = $user->id; 34 | } 35 | else { 36 | list($dc) = func_get_args(); 37 | $listIds = deserialize($dc->activeRecord->avisota_lists, true); 38 | $userId = $dc->id; 39 | } 40 | 41 | if (empty($listIds)) { 42 | \Database::getInstance() 43 | ->prepare("UPDATE tl_member SET avisota_subscribe=? WHERE id=?") 44 | ->execute('', $userId); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/nle_table_html.html5: -------------------------------------------------------------------------------- 1 | 2 | cssID; ?>style): ?> style="style; ?>"> 3 | headline): ?> 4 | <hl; ?>>headline; ?>hl; ?>> 5 | 6 | sortable): ?> class="sortable" id="id; ?>" summary="summary; ?>"> 7 | useHeader): ?> 8 | 9 | 10 | header as $col): ?> 11 | 12 | 13 | 14 | 15 | 16 | useFooter): ?> 17 | 18 | 19 | footer as $col): ?> 20 | 21 | 22 | 23 | 24 | 25 | 26 | body as $class=>$row): ?> 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/AvisotaTransportSwiftTransport.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class AvisotaTransportSwiftTransport 19 | * 20 | * @copyright way.vision 2015 21 | * @author Sven Baumann 22 | * @package avisota/contao-core 23 | */ 24 | class AvisotaTransportSwiftTransport extends AvisotaTransportMailerTransport 25 | { 26 | /** 27 | * @var string 28 | */ 29 | protected $mailerImplementation = 'swift'; 30 | 31 | protected function createMailerConfig() 32 | { 33 | $mailerConfig = parent::createMailerConfig(); 34 | 35 | switch ($this->config->swiftUseSmtp) { 36 | case 'swiftSmtpOn': 37 | $mailerConfig->setUseSMTP(true); 38 | $mailerConfig->setSmtpHost($this->config->swiftSmtpHost); 39 | $mailerConfig->setSmtpPort($this->config->swiftSmtpPort); 40 | $mailerConfig->setSmtpUser($this->config->swiftSmtpUser); 41 | $mailerConfig->setSmtpPassword($this->config->swiftSmtpPass); 42 | $mailerConfig->setSmtpEncryption($this->config->swiftSmtpEnc); 43 | break; 44 | 45 | case 'swiftSmtpOff': 46 | $mailerConfig->setUseSMTP(false); 47 | break; 48 | } 49 | 50 | return $mailerConfig; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /contao/languages/en/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | 7 | 8 | 9 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 10 | 11 | 12 | 13 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /contao/languages/es/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | 7 | 8 | 9 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 10 | 11 | 12 | 13 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /contao/languages/pl/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | 7 | 8 | 9 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 10 | 11 | 12 | 13 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /contao/languages/ru_RU/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | 7 | 8 | 9 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 10 | 11 | 12 | 13 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/avisota_unsubscribe_default.html5: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | message): ?> 8 |

message; ?>

9 | 10 | 11 | hideForm): ?> 12 | tableless): ?> 13 | 14 | 15 | fields; ?> 16 | 17 | 23 | 24 | 25 |
18 |
19 | 21 |
22 |
26 | 27 |
28 | fields; ?> 29 |
30 |
31 | 33 |
34 | 35 | 36 |
37 |
38 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/NewsletterNews.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | class NewsletterNews extends Element 18 | { 19 | 20 | /** 21 | * HTML Template 22 | * 23 | * @var string 24 | */ 25 | protected $templateHTML = 'nle_news_html'; 26 | 27 | /** 28 | * Plain text Template 29 | * 30 | * @var string 31 | */ 32 | protected $templatePlain = 'nle_news_plain'; 33 | 34 | /** 35 | * Caching var for jumpTo-pages 36 | * 37 | * @var mixed tl_page-rows 38 | */ 39 | protected $jumpToPages = array(); 40 | 41 | 42 | /** 43 | * Generate content element 44 | * 45 | * @param str $mode Compile either html or plaintext part 46 | */ 47 | protected function compile($mode) 48 | { 49 | $this->import('DomainLink'); 50 | 51 | $newsIDs = unserialize($this->news); 52 | if (!is_array($newsIDs)) { 53 | $this->Template->events = array(); 54 | return; 55 | } 56 | 57 | $news = \Database::getInstance() 58 | ->prepare( 59 | 'SELECT n.*,a.jumpTo,a.title AS section 60 | FROM tl_news as n 61 | LEFT JOIN tl_news_archive as a ON (n.pid = a.id) 62 | WHERE n.id IN (' . implode(',', $newsIDs) . ') 63 | ORDER BY n.time' 64 | ) 65 | ->execute(); 66 | 67 | $this->Template->news = $news->fetchAllAssoc(); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/NewsletterNews.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | class NewsletterNews extends Element 18 | { 19 | 20 | /** 21 | * HTML Template 22 | * 23 | * @var string 24 | */ 25 | protected $templateHTML = 'nle_news_html'; 26 | 27 | /** 28 | * Plain text Template 29 | * 30 | * @var string 31 | */ 32 | protected $templatePlain = 'nle_news_plain'; 33 | 34 | /** 35 | * Caching var for jumpTo-pages 36 | * 37 | * @var mixed tl_page-rows 38 | */ 39 | protected $jumpToPages = array(); 40 | 41 | 42 | /** 43 | * Generate content element 44 | * 45 | * @param str $mode Compile either html or plaintext part 46 | */ 47 | protected function compile($mode) 48 | { 49 | $this->import('DomainLink'); 50 | 51 | $newsIDs = unserialize($this->news); 52 | if (!is_array($newsIDs)) { 53 | $this->Template->events = array(); 54 | return; 55 | } 56 | 57 | $news = \Database::getInstance() 58 | ->prepare( 59 | 'SELECT n.*,a.jumpTo,a.title AS section 60 | FROM tl_news as n 61 | LEFT JOIN tl_news_archive as a ON (n.pid = a.id) 62 | WHERE n.id IN (' . implode(',', $newsIDs) . ') 63 | ORDER BY n.time' 64 | ) 65 | ->execute(); 66 | 67 | $this->Template->news = $news->fetchAllAssoc(); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/NewsletterList.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class NewsletterList 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class NewsletterList extends Element 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_list_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_list_plain'; 41 | 42 | 43 | /** 44 | * Compile the current element 45 | */ 46 | protected function compile($mode) 47 | { 48 | $items = array(); 49 | $itemContents = deserialize($this->listItems); 50 | 51 | if ($mode == NL_HTML) { 52 | $limit = count($itemContents) - 1; 53 | 54 | for ($i = 0; $i < count($itemContents); $i++) { 55 | $items[] = array 56 | ( 57 | 'class' => (($i == 0) ? 'first' : (($i == $limit) ? 'last' : '')), 58 | 'content' => $itemContents[$i] 59 | ); 60 | } 61 | 62 | $this->Template->items = $items; 63 | $this->Template->tag = ($this->listType == 'ordered') ? 'ol' : 'ul'; 64 | } 65 | else { 66 | $this->Template->items = $itemContents; 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/NewsletterList.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class NewsletterList 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class NewsletterList extends Element 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_list_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_list_plain'; 41 | 42 | 43 | /** 44 | * Compile the current element 45 | */ 46 | protected function compile($mode) 47 | { 48 | $items = array(); 49 | $itemContents = deserialize($this->listItems); 50 | 51 | if ($mode == NL_HTML) { 52 | $limit = count($itemContents) - 1; 53 | 54 | for ($i = 0; $i < count($itemContents); $i++) { 55 | $items[] = array 56 | ( 57 | 'class' => (($i == 0) ? 'first' : (($i == $limit) ? 'last' : '')), 58 | 'content' => $itemContents[$i] 59 | ); 60 | } 61 | 62 | $this->Template->items = $items; 63 | $this->Template->tag = ($this->listType == 'ordered') ? 'ol' : 'ul'; 64 | } 65 | else { 66 | $this->Template->items = $itemContents; 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/dca/orm_avisota_recipient_remove.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Table orm_avisota_recipient_remove 19 | */ 20 | $GLOBALS['TL_DCA']['orm_avisota_recipient_remove'] = array 21 | ( 22 | 23 | // Config 24 | 'config' => array 25 | ( 26 | 'dataContainer' => 'Memory', 27 | 'closed' => true, 28 | 'onsubmit_callback' => array 29 | ( 30 | array('orm_avisota_recipient_remove', 'onsubmit_callback'), 31 | ) 32 | ), 33 | // Palettes 34 | 'metapalettes' => array 35 | ( 36 | 'default' => array 37 | ( 38 | 'remove' => array('source', 'upload', 'emails') 39 | ) 40 | ), 41 | // Fields 42 | 'fields' => array 43 | ( 44 | 'source' => array 45 | ( 46 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['source'], 47 | 'inputType' => 'fileTree', 48 | 'eval' => array('fieldType' => 'checkbox', 'files' => true, 'filesOnly' => true, 'extensions' => 'csv') 49 | ), 50 | 'upload' => array 51 | ( 52 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['upload'], 53 | 'inputType' => 'upload' 54 | ), 55 | 'emails' => array 56 | ( 57 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_remove']['emails'], 58 | 'inputType' => 'textarea' 59 | ) 60 | ) 61 | ); 62 | -------------------------------------------------------------------------------- /src/Event/CreateOptionsEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | /** 19 | * Create options event. 20 | */ 21 | class CreateOptionsEvent extends \ContaoCommunityAlliance\Contao\Events\CreateOptions\CreateOptionsEvent 22 | { 23 | protected $preventDefault = false; 24 | 25 | /** 26 | * CreateOptionsEvent constructor. 27 | * 28 | * @param \DataContainer $dataContainer 29 | * @param \ArrayObject|null $options 30 | * 31 | * Todo remove create options event 32 | */ 33 | public function __construct($dataContainer, \ArrayObject $options = null) 34 | { 35 | $this->dataContainer = $dataContainer; 36 | 37 | if ($this->options) { 38 | $this->options = $options; 39 | } else { 40 | $this->options = new \ArrayObject(); 41 | } 42 | } 43 | 44 | /** 45 | * Prevent default listeners. 46 | * 47 | * @return $this 48 | */ 49 | public function preventDefault() 50 | { 51 | $this->preventDefault = true; 52 | return $this; 53 | } 54 | 55 | /** 56 | * Determine if default should prevented. 57 | * 58 | * @return bool 59 | */ 60 | public function isDefaultPrevented() 61 | { 62 | return $this->preventDefault; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/DataContainer/Settings.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\DataContainer; 17 | 18 | /** 19 | * Class Settings 20 | * 21 | * @package Avisota\Contao\Core\DataContainer 22 | */ 23 | class Settings extends \Backend 24 | { 25 | /** 26 | * @SuppressWarnings(PHPMD.Superglobals) 27 | */ 28 | public function onLoadCallback() 29 | { 30 | if (!is_dir(TL_ROOT . '/system/modules/avisota/highstock') 31 | || !is_file(TL_ROOT . '/system/modules/avisota/highstock/js/highstock.js') 32 | ) { 33 | $GLOBALS['TL_DCA']['tl_avisota_settings'] 34 | ['fields']['avisota_chart_highstock_confirm']['input_field_callback'] = 35 | array( 36 | 'tl_avisota_settings', 37 | 'renderMissingHighstockField' 38 | ); 39 | } 40 | } 41 | 42 | /** 43 | * @param \DataContainer $dc 44 | * @param $label 45 | * 46 | * @return mixed 47 | * @SuppressWarnings(PHPMD.Superglobals) 48 | * @SuppressWarnings(PHPMD.ShortVariable) 49 | * @SuppressWarnings(PHPMD.UnusedFormalParameter) 50 | */ 51 | public function renderMissingHighstockField($dc, $label) 52 | { 53 | return $GLOBALS['TL_LANG']['tl_avisota_settings']['missing_highstock']; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/en_/modules.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Back end modules 19 | */ 20 | $GLOBALS['TL_LANG']['MOD']['avisota'] = 'Newsletter'; 21 | $GLOBALS['TL_LANG']['MOD']['avisota_recipients'] = array('Subscribers', 'Manage Newsletter Subscribers'); 22 | $GLOBALS['TL_LANG']['MOD']['avisota_newsletter'] = array('Newsletter', 'Manage and send newsletters to outbox.'); 23 | $GLOBALS['TL_LANG']['MOD']['avisota_outbox'] = array('Outbox', 'View outbox and send newsletters to recipients'); 24 | $GLOBALS['TL_LANG']['MOD']['avisota_translation'] = array( 25 | 'Language Variables', 26 | 'Change the language variables for the newsletter.' 27 | ); 28 | $GLOBALS['TL_LANG']['MOD']['avisota_update'] = array('Update', 'Update the Avisota newsletter system.'); 29 | 30 | 31 | /** 32 | * Front end modules 33 | */ 34 | $GLOBALS['TL_LANG']['FMD']['avisota'] = 'Newsletter'; 35 | $GLOBALS['TL_LANG']['FMD']['avisota_list'] = array( 36 | 'Newsletter list', 37 | 'Navigation list of all sended newsletters.' 38 | ); 39 | $GLOBALS['TL_LANG']['FMD']['avisota_reader'] = array('Newsletter reader', 'Show a newsletter in a regular page.'); 40 | $GLOBALS['TL_LANG']['FMD']['avisota_subscription'] = array( 41 | 'Manage Subscriptions', 42 | 'Login and Logout of the Newsletter System.' 43 | ); 44 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de/tl_avisota_recipient_notify.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['recipient'] = array( 21 | 'Abonnent', 22 | 'Wählen Sie hier den Abonnenten aus.' 23 | ); 24 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['confirmations'] = array( 25 | 'Bestätigungen versenden', 26 | 'Noch nicht versendete Bestätiungsmails versenden.' 27 | ); 28 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['notifications'] = array( 29 | 'Erinnerungen versenden', 30 | 'Erinnerungen für noch nicht bestätigte Abonnements versenden.' 31 | ); 32 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['overdue'] = array( 33 | 'Überfällig', 34 | 'Überfällige Abonnements, für die eine Bestätigung- und alle Erinnerungen versendet wurden.' 35 | ); 36 | 37 | 38 | /** 39 | * Reference 40 | */ 41 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['edit'] = 'Abonnent benachrichtigen'; 42 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['confirmationSent'] = 'Bestätigungsmail gesendet am %s'; 43 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['reminderSent'] = '%d. Erinnerung gesendet am %s'; 44 | 45 | 46 | /** 47 | * Legends 48 | */ 49 | $GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['notify_legend'] = 'Benachrichtung'; 50 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/NewsletterImage.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class NewsletterImage 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class Image extends NewsletterElement 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_image_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_image_plain'; 41 | 42 | 43 | /** 44 | * Parse the html template 45 | * 46 | * @return string 47 | */ 48 | public function generateHTML() 49 | { 50 | if (!strlen($this->singleSRC) || !is_file(TL_ROOT . '/' . $this->singleSRC)) { 51 | return ''; 52 | } 53 | 54 | return parent::generateHTML(); 55 | } 56 | 57 | 58 | /** 59 | * Parse the plain text template 60 | * 61 | * @return string 62 | */ 63 | public function generatePlain() 64 | { 65 | if (!strlen($this->singleSRC) || !is_file(TL_ROOT . '/' . $this->singleSRC)) { 66 | return ''; 67 | } 68 | 69 | return parent::generatePlain(); 70 | } 71 | 72 | 73 | /** 74 | * Compile the current element 75 | */ 76 | protected function compile($mode) 77 | { 78 | $this->addImageToTemplate($this->Template, $this->currentRecordData); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/tl_user.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['tl_user']['avisota_recipient_lists'] = array( 21 | 'Erlaubte Abonnentenlisten', 22 | 'Hier können Sie den Zugriff auf einen oder mehrere Abonnentenlisten erlauben.' 23 | ); 24 | $GLOBALS['TL_LANG']['tl_user']['avisota_recipient_list_permissions'] = array( 25 | 'Abonnentenlisten-Rechte', 26 | 'Hier können Sie die Abonnentenlisten-Rechte festlegen.' 27 | ); 28 | $GLOBALS['TL_LANG']['tl_user']['avisota_recipient_permissions'] = array( 29 | 'Abonnenten-Rechte', 30 | 'Hier können Sie die Abonnenten-Rechte festlegen.' 31 | ); 32 | $GLOBALS['TL_LANG']['tl_user']['avisota_newsletter_categories'] = array( 33 | 'Erlaubte Newsletterkategorien', 34 | 'Hier können Sie den Zugriff auf einen oder mehrere Newsletterkategorien erlauben.' 35 | ); 36 | $GLOBALS['TL_LANG']['tl_user']['avisota_newsletter_category_permissions'] = array( 37 | 'Newsletterkategory-Rechte', 38 | 'Hier können Sie die Newsletterkategory-Rechte festlegen.' 39 | ); 40 | $GLOBALS['TL_LANG']['tl_user']['avisota_newsletter_permissions'] = array( 41 | 'Newsletter-Rechte', 42 | 'Hier können Sie die Newsletter-Rechte festlegen.' 43 | ); 44 | 45 | 46 | /** 47 | * Legends 48 | */ 49 | $GLOBALS['TL_LANG']['tl_user']['avisota_legend'] = 'Avisota-Rechte'; 50 | -------------------------------------------------------------------------------- /src/Event/MailingListCreateLabelEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | use Bit3\StringBuilder\StringBuilder; 19 | use Symfony\Component\EventDispatcher\Event; 20 | 21 | /** 22 | * The mailing list create label event. 23 | */ 24 | class MailingListCreateLabelEvent extends Event 25 | { 26 | const NAME = 'Avisota\Contao\Core\Event\MailingListCreateLabel'; 27 | 28 | /** 29 | * The row date. 30 | * 31 | * @var \ArrayObject 32 | */ 33 | protected $row; 34 | 35 | /** 36 | * The label. 37 | * 38 | * @var StringBuilder 39 | */ 40 | protected $label; 41 | 42 | /** 43 | * MailingListCreateLabelEvent constructor. 44 | * 45 | * @param \ArrayObject $row The row data. 46 | * @param StringBuilder $label The label. 47 | */ 48 | public function __construct(\ArrayObject $row, StringBuilder $label) 49 | { 50 | $this->row = $row; 51 | $this->label = $label; 52 | } 53 | 54 | /** 55 | * Return the row data. 56 | * 57 | * @return \ArrayObject 58 | */ 59 | public function getRow() 60 | { 61 | return $this->row; 62 | } 63 | 64 | /** 65 | * Return the label. 66 | * 67 | * @return StringBuilder 68 | */ 69 | public function getLabel() 70 | { 71 | return $this->label; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/NewsletterImage.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class NewsletterImage 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class NewsletterImage extends Element 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_image_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_image_plain'; 41 | 42 | 43 | /** 44 | * Parse the html template 45 | * 46 | * @return string 47 | */ 48 | public function generateHTML() 49 | { 50 | if (!strlen($this->singleSRC) || !is_file(TL_ROOT . '/' . $this->singleSRC)) { 51 | return ''; 52 | } 53 | 54 | return parent::generateHTML(); 55 | } 56 | 57 | 58 | /** 59 | * Parse the plain text template 60 | * 61 | * @return string 62 | */ 63 | public function generatePlain() 64 | { 65 | if (!strlen($this->singleSRC) || !is_file(TL_ROOT . '/' . $this->singleSRC)) { 66 | return ''; 67 | } 68 | 69 | return parent::generatePlain(); 70 | } 71 | 72 | 73 | /** 74 | * Compile the current element 75 | */ 76 | protected function compile($mode) 77 | { 78 | $this->addImageToTemplate($this->Template, $this->currentRecordData); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /assets/js/functions.js: -------------------------------------------------------------------------------- 1 | function index_check(arrays, index) { 2 | for (var i = 0; i < arrays.length; i++) { 3 | if (index < arrays[i].length) return true; 4 | } 5 | return false; 6 | } 7 | 8 | function equalize(arrays) { 9 | var index = 0; 10 | 11 | while (index_check(arrays, index)) { 12 | var modified = false; 13 | for (var i = 0; i < arrays.length; i++) { 14 | var j = (i + 1) % arrays.length; 15 | var a = arrays[i][index]; 16 | var b = arrays[j] ? arrays[j][index] : false; 17 | if (a && (!b || a[0] < b[0])) { 18 | arrays[j].splice(index, 0, [a[0], index > 0 ? arrays[j][index - 1][1] : 0]); 19 | modified = true; 20 | } 21 | } 22 | if (!modified) { 23 | index++; 24 | } 25 | } 26 | } 27 | 28 | function getRangeIndex(timespan) { 29 | // 1 month (more then 1 week) 30 | if (timespan >= 604800) { 31 | return 7; 32 | } 33 | // 1 week (more than 3 days) 34 | else if (timespan >= 259200) { 35 | return 6; 36 | } 37 | // 3 days (more than 2 days) 38 | else if (timespan >= 172800) { 39 | return 5; 40 | } 41 | // 2 days (more than 1 day) 42 | else if (timespan >= 86400) { 43 | return 4; 44 | } 45 | // 1 day (more than 12 hours) 46 | else if (timespan >= 43200) { 47 | return 3; 48 | } 49 | // 12 hours (more then 6 hours) 50 | else if (timespan >= 21600) { 51 | return 2; 52 | } 53 | // 6 hours (more than 1 hour) 54 | else if (timespan >= 3600) { 55 | return 1; 56 | } 57 | else { 58 | return 0; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/RecipientSource/DummyFactory.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\RecipientSource; 17 | 18 | use Avisota\Contao\Core\CoreEvents; 19 | use Avisota\Contao\Core\Event\CreateRecipientSourceEvent; 20 | use Avisota\Contao\Entity\RecipientSource; 21 | use Avisota\RecipientSource\Dummy; 22 | use Symfony\Component\EventDispatcher\EventDispatcherInterface; 23 | 24 | /** 25 | * The dummy factory. 26 | */ 27 | class DummyFactory implements RecipientSourceFactoryInterface 28 | { 29 | /** 30 | * Create the recipient source. 31 | * 32 | * @param RecipientSource $recipientSourceData The recipient source data. 33 | * 34 | * @return \Avisota\RecipientSource\RecipientSourceInterface 35 | * 36 | * @SuppressWarnings(PHPMD.Superglobals) 37 | */ 38 | public function createRecipientSource(RecipientSource $recipientSourceData) 39 | { 40 | $recipientSourceDummy = 41 | new Dummy($recipientSourceData->getDummyMinCount(), $recipientSourceData->getDummyMaxCount()); 42 | 43 | /** @var EventDispatcherInterface $eventDispatcher */ 44 | $eventDispatcher = $GLOBALS['container']['event-dispatcher']; 45 | 46 | $event = new CreateRecipientSourceEvent($recipientSourceData, $recipientSourceDummy); 47 | $eventDispatcher->dispatch(CoreEvents::CREATE_RECIPIENT_SOURCE, $event); 48 | 49 | return $event->getRecipientSource(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/dca/orm_avisota_recipient_migrate.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Table orm_avisota_recipient_migrate 19 | */ 20 | $GLOBALS['TL_DCA']['orm_avisota_recipient_migrate'] = array 21 | ( 22 | 23 | // Config 24 | 'config' => array 25 | ( 26 | 'dataContainer' => 'Memory', 27 | 'closed' => true, 28 | 'onsubmit_callback' => array 29 | ( 30 | array('orm_avisota_recipient_migrate', 'onsubmit_callback'), 31 | ) 32 | ), 33 | // Palettes 34 | 'metapalettes' => array 35 | ( 36 | 'default' => array 37 | ( 38 | 'migrate' => array('source', 'personals', 'force') 39 | ) 40 | ), 41 | // Fields 42 | 'fields' => array 43 | ( 44 | 'source' => array 45 | ( 46 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['source'], 47 | 'inputType' => 'checkbox', 48 | 'foreignKey' => 'tl_newsletter_channel.title', 49 | 'eval' => array('mandatory' => true, 'multiple' => true) 50 | ), 51 | 'personals' => array 52 | ( 53 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['personals'], 54 | 'inputType' => 'checkbox', 55 | 'eval' => array('tl_class' => 'm12') 56 | ), 57 | 'force' => array 58 | ( 59 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['force'], 60 | 'inputType' => 'checkbox', 61 | 'eval' => array('tl_class' => 'm12') 62 | ) 63 | ) 64 | ); 65 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de_/tl_user_group.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_recipient_lists'] = array( 21 | 'Erlaubte Abonnentenlisten', 22 | 'Hier können Sie den Zugriff auf einen oder mehrere Abonnentenlisten erlauben.' 23 | ); 24 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_recipient_list_permissions'] = array( 25 | 'Abonnentenlisten-Rechte', 26 | 'Hier können Sie die Abonnentenlisten-Rechte festlegen.' 27 | ); 28 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_recipient_permissions'] = array( 29 | 'Abonnenten-Rechte', 30 | 'Hier können Sie die Abonnenten-Rechte festlegen.' 31 | ); 32 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_newsletter_categories'] = array( 33 | 'Erlaubte Newsletterkategorien', 34 | 'Hier können Sie den Zugriff auf einen oder mehrere Newsletterkategorien erlauben.' 35 | ); 36 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_newsletter_category_permissions'] = array( 37 | 'Newsletterkategory-Rechte', 38 | 'Hier können Sie die Newsletterkategory-Rechte festlegen.' 39 | ); 40 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_newsletter_permissions'] = array( 41 | 'Newsletter-Rechte', 42 | 'Hier können Sie die Newsletter-Rechte festlegen.' 43 | ); 44 | 45 | 46 | /** 47 | * Legends 48 | */ 49 | $GLOBALS['TL_LANG']['tl_user_group']['avisota_legend'] = 'Avisota-Rechte'; 50 | -------------------------------------------------------------------------------- /src/Message/PreRenderedMessageTemplateInterface.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Message; 17 | 18 | use Avisota\Recipient\RecipientInterface; 19 | use Avisota\Templating\MessageTemplateInterface; 20 | 21 | /** 22 | * The pre defined renderer message template interface. 23 | */ 24 | interface PreRenderedMessageTemplateInterface extends MessageTemplateInterface 25 | { 26 | /** 27 | * Return the content type. 28 | * 29 | * @return string 30 | */ 31 | public function getContentType(); 32 | 33 | /** 34 | * Return the content encoding. 35 | * 36 | * @return string 37 | */ 38 | public function getContentEncoding(); 39 | 40 | /** 41 | * Get a name descriptor (file name) for this content, 42 | * e.g. "newsletter-hello-world.html". 43 | * 44 | * @return string 45 | */ 46 | public function getContentName(); 47 | 48 | /** 49 | * Get the (binary) content. 50 | * 51 | * @return string 52 | */ 53 | public function getContent(); 54 | 55 | /** 56 | * Render a preview. 57 | * 58 | * @param RecipientInterface $recipient The recipient. 59 | * 60 | * @param array $additionalData The additional data. 61 | * 62 | * @return mixed The content only, not a message. 63 | */ 64 | public function renderPreview(RecipientInterface $recipient, array $additionalData = array()); 65 | } 66 | -------------------------------------------------------------------------------- /contao/languages/en/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/es/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/en/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/es/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/it/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota è un progetto Open Source<br><a href="http://avisota.org" target="_blank">Dona</a> e mantieni il progetto vivo! 7 | 8 | 9 | 10 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 11 | 12 | 13 | 14 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /contao/languages/pt_BR/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/ru_RU/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/ru_RU/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | 15 | 16 | 17 | Enable the developer mode. 18 | 19 | 20 | 21 | Developer email address 22 | 23 | 24 | 25 | Please enter the email address to use for every email in developer mode. 26 | 27 | 28 | 29 | Avisota system settings 30 | 31 | 32 | 33 | Transport 34 | 35 | 36 | 37 | Developer 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contao/languages/rm/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | <img src="assets/avisota/core/images/donate.svg" alt="">Avisota è in project dad Open Source.<br><a href="http://avisota.org" target="_blank">Donescha</a> e procura che il project haja in futur! 7 | 8 | 9 | 10 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 11 | 12 | 13 | 14 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/de/tl_avisota_recipient_migrate.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['source'] = array( 21 | 'Newsletter', 22 | 'Wählen Sie hier die den Newsletter aus, aus dem Sie Abonnenten migrieren möchten.' 23 | ); 24 | $GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['personals'] = array( 25 | 'Persönliche Daten übernehmen', 26 | 'Übernimmt vorhandene persönliche Daten aus der Mitgliedertabelle.' 27 | ); 28 | $GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['force'] = array( 29 | 'Migration erzwingen', 30 | 'Warnung: Sie sollten den Wunsch eines Abonnenten Ihren Newsletter nicht mehr erhalten zu wollen respektieren, es besteht die Möglichkeit dass Sie rechtliche Konsequenzen zu befürchten haben, lassen Sie sich diesbezüglich von einem Anwalt beraten! Nutzen Sie diese Option mit Bedacht und nur dann, wenn Sie wissen was Sie tun! Wählen Sie diese Option, wird die interne Blacklist ignoriert. Die Blacklist sorgt dafür, dass Abonnenten die sich abgemeldet haben nicht durch den Import wieder hinzugefügt werden.' 31 | ); 32 | 33 | 34 | /** 35 | * Reference 36 | */ 37 | $GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['migrated'] = '%s Abonnenten wurden migriert.'; 38 | $GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['edit'] = 'Abonnenten migrieren'; 39 | 40 | 41 | /** 42 | * Legends 43 | */ 44 | $GLOBALS['TL_LANG']['orm_avisota_recipient_migrate']['migrate_legend'] = 'Abonnenten migrieren'; 45 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/templates_/avisota_subscription_default.html5: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | message): ?> 8 |

message; ?>

9 | 10 | 11 | hideForm): ?> 12 | tableless): ?> 13 | 14 | 15 | fields; ?> 16 | 17 | 25 | 26 | 27 |
18 |
19 | 21 | 23 |
24 |
28 | 29 |
30 | fields; ?> 31 |
32 |
33 | 35 | 37 |
38 | 39 | 40 |
41 |
42 | -------------------------------------------------------------------------------- /src/Event/BaseCreateRecipientEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | use Avisota\Contao\Entity\Message; 19 | use Avisota\Recipient\RecipientInterface; 20 | use Symfony\Component\EventDispatcher\Event; 21 | 22 | /** 23 | * The base create recipient event. 24 | */ 25 | class BaseCreateRecipientEvent extends Event 26 | { 27 | /** 28 | * The message. 29 | * 30 | * @var Message|null 31 | */ 32 | protected $message; 33 | 34 | /** 35 | * The recipient. 36 | * 37 | * @var RecipientInterface 38 | */ 39 | protected $recipient; 40 | 41 | /** 42 | * CreateFakeRecipientEvent constructor. 43 | * 44 | * @param Message|null $message 45 | */ 46 | public function __construct(Message $message = null) 47 | { 48 | $this->message = $message; 49 | } 50 | 51 | /** 52 | * Get the message. 53 | * 54 | * @return Message|null 55 | */ 56 | public function getMessage() 57 | { 58 | return $this->message; 59 | } 60 | 61 | /** 62 | * Get the recipient. 63 | * 64 | * @return RecipientInterface 65 | */ 66 | public function getRecipient() 67 | { 68 | return $this->recipient; 69 | } 70 | 71 | /** 72 | * Set the recipient. 73 | * 74 | * @param RecipientInterface $recipient 75 | * 76 | * @return $this 77 | */ 78 | public function setRecipient(RecipientInterface $recipient) 79 | { 80 | $this->recipient = $recipient; 81 | return $this; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/Backend/MailingList.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Backend; 17 | 18 | use Avisota\Contao\Core\Event\MailingListCreateLabelEvent; 19 | use Bit3\StringBuilder\StringBuilder; 20 | use Symfony\Component\EventDispatcher\EventDispatcherInterface; 21 | 22 | /** 23 | * The avisota core mailing list. 24 | */ 25 | class MailingList extends \Backend 26 | { 27 | /** 28 | * Import the back end user object 29 | */ 30 | public function __construct() 31 | { 32 | parent::__construct(); 33 | } 34 | 35 | /** 36 | * Get mailing list label for each row. 37 | * 38 | * @param array $rowData The row. 39 | * @param string $label The label. 40 | * @param \DataContainer $dc The data container. 41 | * 42 | * @return string 43 | * 44 | * @SuppressWarnings(PHPMD.Superglobals) 45 | * @SuppressWarnings(PHPMD.ShortVariable) 46 | * @SuppressWarnings(PHPMD.UnusedFormalParameter) 47 | * 48 | * todo handle this by event 49 | */ 50 | public function getLabel($rowData, $label, $dc) 51 | { 52 | $label = new StringBuilder('
' . $label . '
'); 53 | 54 | $event = new MailingListCreateLabelEvent(new \ArrayObject($rowData), $label); 55 | 56 | /** @var EventDispatcherInterface $eventDispatcher */ 57 | $eventDispatcher = $GLOBALS['container']['event-dispatcher']; 58 | $eventDispatcher->dispatch(MailingListCreateLabelEvent::NAME, $event); 59 | 60 | return (string) $label; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /contao/languages/pt_BR/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Módulo de transporte padrão 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Por favor, escolha o módulo de transporte padrão. 12 | 13 | 14 | 15 | Developer mode 16 | 17 | 18 | 19 | Enable the developer mode. 20 | 21 | 22 | 23 | Developer email address 24 | 25 | 26 | 27 | Please enter the email address to use for every email in developer mode. 28 | 29 | 30 | 31 | Avisota system settings 32 | 33 | 34 | 35 | Transport 36 | 37 | 38 | 39 | Developer 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /contao/templates/avisota/backend/outbox.html5.twig: -------------------------------------------------------------------------------- 1 | {% spaceless %} 2 | 6 | 7 |

{{ _lang.avisota_outbox.headline }}

8 | 9 | {{ messages() }} 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | {% for index, item in items %} 24 | 25 | 26 | 27 | 36 | 37 | {% endfor %} 38 |
{{ _lang.avisota_outbox.col_name }}{{ _lang.avisota_outbox.col_length }}{{ _lang.avisota_outbox.col_action }}
{{ item.meta.title }}{{ item.queue.length }} 28 | {% if item.queue.length and item.meta.allowManualSending %} 29 | 30 | {{ image('assets/avisota/core/images/queue_execute.png') }} 31 | 32 | {% else %} 33 | {{ image('assets/avisota/core/images/queue_execute_.png') }} 34 | {% endif %} 35 |
39 |
40 | 41 | {% endspaceless %} 42 | -------------------------------------------------------------------------------- /src/Event/BaseSendImmediateEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | use Avisota\Contao\Entity\Message; 19 | use Symfony\Component\EventDispatcher\Event; 20 | 21 | /** 22 | * The base send immediate event. 23 | */ 24 | class BaseSendImmediateEvent extends Event 25 | { 26 | /** 27 | * The message. 28 | * 29 | * @var Message 30 | */ 31 | protected $message; 32 | 33 | /** 34 | * The turn step. 35 | * 36 | * @var integer 37 | */ 38 | protected $turn; 39 | 40 | /** 41 | * The unique loop id. 42 | * 43 | * @var string 44 | */ 45 | protected $loop; 46 | 47 | /** 48 | * BaseSendImmediateEvent constructor. 49 | * 50 | * @param Message $message The message. 51 | * @param integer $turn The turn step. 52 | * @param string $loop The unique loop id. 53 | * 54 | * Fixme who message isn´t instance of Message 55 | */ 56 | public function __construct($message, $turn, $loop) 57 | { 58 | $this->message = $message; 59 | $this->turn = $turn; 60 | $this->loop = $loop; 61 | } 62 | 63 | /** 64 | * Get the message. 65 | * 66 | * @return Message 67 | */ 68 | public function getMessage() 69 | { 70 | return $this->message; 71 | } 72 | 73 | /** 74 | * Get the turn step. 75 | * 76 | * @return integer 77 | */ 78 | public function getTurn() 79 | { 80 | return $this->turn; 81 | } 82 | 83 | /** 84 | * Get the loop unique id. 85 | * 86 | * @return string 87 | */ 88 | public function getLoop() 89 | { 90 | return $this->loop; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /contao/languages/it/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | Modalità svilluppatore 15 | 16 | 17 | 18 | Enable the developer mode. 19 | Abilità la modalità svilluppatore. 20 | 21 | 22 | 23 | Developer email address 24 | Indirizzo email svilluppatore 25 | 26 | 27 | 28 | Please enter the email address to use for every email in developer mode. 29 | 30 | 31 | 32 | Avisota system settings 33 | Impostazioni di sistema Avisota 34 | 35 | 36 | 37 | Transport 38 | 39 | 40 | 41 | Developer 42 | Svilluppatore 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /contao/languages/it/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | 7 | 8 | 9 | Please choose the default transport module. 10 | 11 | 12 | 13 | Developer mode 14 | Modalità svilluppatore 15 | 16 | 17 | 18 | Enable the developer mode. 19 | Abilità la modalità svilluppatore. 20 | 21 | 22 | 23 | Developer email address 24 | Indirizzo email svilluppatore 25 | 26 | 27 | 28 | Please enter the email address to use for every email in developer mode. 29 | 30 | 31 | 32 | Avisota system settings 33 | Impostazioni di sistema Avisota 34 | 35 | 36 | 37 | Transport 38 | 39 | 40 | 41 | Developer 42 | Svilluppatore 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/en_/default.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Page types 19 | */ 20 | $GLOBALS['TL_LANG']['PTY']['avisota'] = array('Newsletter', 'Displays any newsletter from the Newsletter System.'); 21 | 22 | 23 | /** 24 | * Newsletter content elements 25 | */ 26 | $GLOBALS['TL_LANG']['MCE']['texts'] = 'Text-Element'; 27 | $GLOBALS['TL_LANG']['MCE']['headline'] = array('Headline', 'Creates a Heading (h1 - h6).'); 28 | $GLOBALS['TL_LANG']['MCE']['text'] = array('Text', 'Creates a Rich-Text-Element.'); 29 | $GLOBALS['TL_LANG']['MCE']['list'] = array('List', 'Creates an ordered or unordered list.'); 30 | $GLOBALS['TL_LANG']['MCE']['table'] = array('Table', 'Creates an optional sortable table.'); 31 | $GLOBALS['TL_LANG']['MCE']['links'] = 'Link-Element'; 32 | $GLOBALS['TL_LANG']['MCE']['hyperlink'] = array('Hyperlink', 'Creates a link to another web page.'); 33 | $GLOBALS['TL_LANG']['MCE']['images'] = 'Image Elements'; 34 | $GLOBALS['TL_LANG']['MCE']['image'] = array('Image', 'Creates a single image.'); 35 | $GLOBALS['TL_LANG']['MCE']['gallery'] = array('Gallery', 'Creates a gallery of images.'); 36 | $GLOBALS['TL_LANG']['MCE']['files'] = 'Attached files'; 37 | $GLOBALS['TL_LANG']['MCE']['download'] = array('Download', 'Creates a link to a download file.'); 38 | $GLOBALS['TL_LANG']['MCE']['downloads'] = array('Downloads', 'Creates links for multiple download files.'); 39 | $GLOBALS['TL_LANG']['MCE']['includes'] = 'Include-Elemente'; 40 | $GLOBALS['TL_LANG']['MCE']['news'] = array('News', 'Inserts a news teaser.'); 41 | $GLOBALS['TL_LANG']['MCE']['events'] = array('Events', 'Inserts an event teaser.'); 42 | $GLOBALS['TL_LANG']['MCE']['article'] = array('Article', 'Inserts an article teaser.'); 43 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/NewsletterText.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class Text 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class NewsletterText extends Element 26 | { 27 | 28 | /** 29 | * HTML Template 30 | * 31 | * @var string 32 | */ 33 | protected $templateHTML = 'nle_text_html'; 34 | 35 | /** 36 | * Plain text Template 37 | * 38 | * @var string 39 | */ 40 | protected $templatePlain = 'nle_text_plain'; 41 | 42 | /** 43 | * Compile the current element 44 | */ 45 | protected function compile($mode) 46 | { 47 | $this->import('String'); 48 | 49 | switch ($mode) { 50 | case NL_HTML: 51 | // Clean RTE output 52 | $this->Template->text = str_ireplace 53 | ( 54 | array('', '', '

', '

', ' target="_self"'), 55 | array('', '', "

\n", "

\n", ''), 56 | $this->String->encodeEmail($this->text) 57 | ); 58 | break; 59 | 60 | case NL_PLAIN: 61 | if ($this->plain) { 62 | $this->Template->text = $this->plain; 63 | } 64 | else { 65 | $this->Template->text = $this->getPlainFromHTML($this->text); 66 | } 67 | } 68 | 69 | $this->Template->addImage = false; 70 | 71 | // Add image 72 | if ($this->addImage && strlen($this->singleSRC) && is_file(TL_ROOT . '/' . $this->singleSRC)) { 73 | $this->addImageToTemplate($this->Template, $this->currentRecordData); 74 | 75 | $this->Template->src = $this->extendURL($this->Template->src); 76 | if ($this->Template->href) { 77 | $this->Template->href = $this->extendURL($this->Template->href); 78 | } 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/Message/ContaoAwareNativeMessage.php: -------------------------------------------------------------------------------- 1 | 10 | * @package avisota/contao-core 11 | * @license LGPL-3.0+ 12 | * @link http://avisota.org 13 | */ 14 | 15 | namespace Avisota\Contao\Core\Message; 16 | 17 | use Avisota\Contao\Entity\Message; 18 | use Avisota\Message\NativeMessage; 19 | use Avisota\Recipient\RecipientInterface; 20 | 21 | /** 22 | * A native swift message with additional data. 23 | */ 24 | class ContaoAwareNativeMessage extends NativeMessage 25 | { 26 | /** 27 | * The swift message. 28 | * 29 | * @var Message 30 | */ 31 | protected $contaoMessage; 32 | 33 | /** 34 | * The contao internal recipients. 35 | * 36 | * @var array|RecipientInterface[] 37 | */ 38 | protected $internalRecipients; 39 | 40 | /** 41 | * @param \Swift_Message $message The message. 42 | * @param Message $contaoMessage The contao message. 43 | * @param array $internalRecipients The internal recipients. 44 | * 45 | * @internal param array|\Avisota\Recipient\RecipientInterface[] $recipients 46 | */ 47 | public function __construct(\Swift_Message $message, Message $contaoMessage, array $internalRecipients) 48 | { 49 | parent::__construct($message); 50 | 51 | $this->contaoMessage = $contaoMessage; 52 | $this->internalRecipients = $internalRecipients; 53 | } 54 | 55 | /** 56 | * Get the contao message. 57 | * 58 | * @return \Avisota\Contao\Entity\Message 59 | */ 60 | public function getContaoMessage() 61 | { 62 | return $this->contaoMessage; 63 | } 64 | 65 | /** 66 | * Get internal recipients. 67 | * 68 | * @return array|\Avisota\Recipient\RecipientInterface[] 69 | */ 70 | public function getInternalRecipients() 71 | { 72 | return $this->internalRecipients; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/Element/Text.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | namespace Avisota\Contao\Core\Message\Element; 18 | 19 | use Avisota\Contao\Entity\MessageContent; 20 | use Avisota\Contao\Core\Message\Renderer; 21 | use Avisota\Recipient\RecipientInterface; 22 | use Contao\Doctrine\ORM\Entity; 23 | 24 | 25 | /** 26 | * Class Text 27 | * 28 | * 29 | * @copyright way.vision 2015 30 | * @author Sven Baumann 31 | * @package avisota/contao-core 32 | */ 33 | class Text implements ElementInterface 34 | { 35 | /** 36 | * @var string 37 | */ 38 | const TEMPLATE = 'mce_text'; 39 | 40 | /** 41 | * Parse and generate the element. 42 | * 43 | * @param MessageContent $messageContent 44 | * 45 | * @return string 46 | */ 47 | public function generate($mode, MessageContent $messageContent, RecipientInterface $recipient = null) 48 | { 49 | $space = deserialize($messageContent->getSpace()); 50 | $cssID = deserialize($messageContent->getCssID(), true); 51 | 52 | $headline = deserialize($messageContent->getHeadline()); 53 | $hl = is_array($headline) ? $headline['unit'] : 'h1'; 54 | $headline = is_array($headline) ? $headline['value'] : $headline; 55 | 56 | $string = \String::getInstance(); 57 | 58 | $context = $messageContent->toArray(Entity::REF_INCLUDE); 59 | 60 | switch ($mode) { 61 | case Renderer::MODE_HTML: 62 | // Clean RTE output 63 | $context['text'] = $string->encodeEmail($context['text']); 64 | break; 65 | 66 | case Renderer::MODE_PLAIN: 67 | if (!$context['plain']) { 68 | $context['plain'] = $this->getPlainFromHTML($context['plain']); 69 | } 70 | } 71 | 72 | $template = new \TwigTemplate(static::TEMPLATE, $mode); 73 | return $template->parse($context); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/dca/orm_avisota_newsletter_create_from_draft.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Table orm_avisota_message_create_from_draft 19 | */ 20 | $GLOBALS['TL_DCA']['orm_avisota_message_create_from_draft'] = array 21 | ( 22 | 23 | // Config 24 | 'config' => array 25 | ( 26 | 'dataContainer' => 'Memory', 27 | 'closed' => true, 28 | 'onload_callback' => array 29 | ( 30 | array('orm_avisota_message_create_from_draft', 'onload_callback'), 31 | ), 32 | 'onsubmit_callback' => array 33 | ( 34 | array('orm_avisota_message_create_from_draft', 'onsubmit_callback'), 35 | ) 36 | ), 37 | // Palettes 38 | 'metapalettes' => array 39 | ( 40 | 'default' => array( 41 | 'create' => array('category', 'subject', 'draft') 42 | ) 43 | ), 44 | // Fields 45 | 'fields' => array 46 | ( 47 | 'category' => array 48 | ( 49 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['category'], 50 | 'inputType' => 'select', 51 | 'foreignKey' => 'orm_avisota_message_category.title', 52 | 'eval' => array( 53 | 'mandatory' => true, 54 | 'tl_class' => 'w50' 55 | ) 56 | ), 57 | 'subject' => array 58 | ( 59 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['subject'], 60 | 'inputType' => 'text', 61 | 'eval' => array( 62 | 'mandatory' => true, 63 | 'tl_class' => 'w50' 64 | ) 65 | ), 66 | 'draft' => array 67 | ( 68 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_message_create_from_draft']['draft'], 69 | 'inputType' => 'radio', 70 | 'foreignKey' => 'orm_avisota_message_draft.title', 71 | 'eval' => array( 72 | 'mandatory' => true, 73 | 'tl_class' => 'clr' 74 | ) 75 | ) 76 | ) 77 | ); 78 | -------------------------------------------------------------------------------- /src/RecipientSource/UnionFactory.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\RecipientSource; 17 | 18 | use Avisota\Contao\Core\CoreEvents; 19 | use Avisota\Contao\Core\Event\CreateRecipientSourceEvent; 20 | use Avisota\Contao\Entity\RecipientSource; 21 | use Avisota\RecipientSource\Union; 22 | use Symfony\Component\EventDispatcher\EventDispatcherInterface; 23 | 24 | /** 25 | * The union factory. 26 | */ 27 | class UnionFactory implements RecipientSourceFactoryInterface 28 | { 29 | /** 30 | * Create the recipient source. 31 | * 32 | * @param RecipientSource $recipientSourceData 33 | * 34 | * @return \Avisota\RecipientSource\RecipientSourceInterface 35 | * 36 | * @SuppressWarnings(PHPMD.Superglobals) 37 | */ 38 | public function createRecipientSource(RecipientSource $recipientSourceData) 39 | { 40 | global $container; 41 | 42 | $clean = $recipientSourceData->getUnionClean(); 43 | $recipientSourceIds = $recipientSourceData->getUnionRecipientSources(); 44 | 45 | $unionRecipientSource = new Union(); 46 | $unionRecipientSource->setClean($clean); 47 | 48 | foreach ($recipientSourceIds as $recipientSourceId) { 49 | $recipientSource = $container[sprintf('avisota.recipientSource.%s', $recipientSourceId)]; 50 | $unionRecipientSource->addRecipientSource($recipientSource); 51 | } 52 | 53 | /** @var EventDispatcherInterface $eventDispatcher */ 54 | $eventDispatcher = $GLOBALS['container']['event-dispatcher']; 55 | 56 | $event = new CreateRecipientSourceEvent($recipientSourceData, $unionRecipientSource); 57 | $eventDispatcher->dispatch(CoreEvents::CREATE_RECIPIENT_SOURCE, $event); 58 | 59 | return $event->getRecipientSource(); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/PageAvisotaNewsletter.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Class PageAvisotaNewsletter 19 | * 20 | * 21 | * @copyright way.vision 2015 22 | * @author Sven Baumann 23 | * @package avisota/contao-core 24 | */ 25 | class PageAvisotaNewsletter extends Frontend 26 | { 27 | /** 28 | * @var AvisotaNewsletterContent 29 | */ 30 | protected $Content; 31 | 32 | /** 33 | * Generate a newsletter 34 | * 35 | * @param object 36 | */ 37 | public function generate(Database_Result $pageResultSet) 38 | { 39 | // Define the static URL constants 40 | define('TL_FILES_URL', ($pageResultSet->staticFiles != '' && !$GLOBALS['TL_CONFIG']['debugMode']) 41 | ? $pageResultSet->staticFiles . TL_PATH . '/' : ''); 42 | define('TL_SCRIPT_URL', ($pageResultSet->staticSystem != '' && !$GLOBALS['TL_CONFIG']['debugMode']) 43 | ? $pageResultSet->staticSystem . TL_PATH . '/' : ''); 44 | define('TL_PLUGINS_URL', ($pageResultSet->staticPlugins != '' && !$GLOBALS['TL_CONFIG']['debugMode']) 45 | ? $pageResultSet->staticPlugins . TL_PATH . '/' : ''); 46 | 47 | $this->import('AvisotaNewsletterContent', 'Content'); 48 | 49 | // force all URLs absolute 50 | $GLOBALS['TL_CONFIG']['forceAbsoluteDomainLink'] = true; 51 | 52 | $newsletterId = $this->Input->get('item') ? $this->Input->get('item') : $this->Input->get('items'); 53 | $newsletterContent = $this->Content->generateOnlineNewsletter($newsletterId); 54 | 55 | if ($newsletterContent) { 56 | header('Content-Type: text/html; charset=utf-8'); 57 | echo $newsletterContent; 58 | exit; 59 | } 60 | 61 | $this->redirect( 62 | $this->generateFrontendUrl( 63 | $this 64 | ->getPageDetails($pageResultSet->jumpBack ? $pageResultSet->jumpBack : $pageResultSet->pid) 65 | ->row() 66 | ) 67 | ); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/dca/orm_avisota_recipient_export.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Table orm_avisota_recipient_export 19 | */ 20 | $GLOBALS['TL_DCA']['orm_avisota_recipient_export'] = array 21 | ( 22 | 23 | // Config 24 | 'config' => array 25 | ( 26 | 'dataContainer' => 'Memory', 27 | 'closed' => true, 28 | 'onload_callback' => array 29 | ( 30 | array('orm_avisota_recipient_export', 'onload_callback'), 31 | ), 32 | 'onsubmit_callback' => array 33 | ( 34 | array('orm_avisota_recipient_export', 'onsubmit_callback'), 35 | ) 36 | ), 37 | // Palettes 38 | 'metapalettes' => array 39 | ( 40 | 'default' => array 41 | ( 42 | 'format' => array(':hide', 'delimiter', 'enclosure', 'fields') 43 | ) 44 | ), 45 | // Fields 46 | 'fields' => array 47 | ( 48 | 'delimiter' => array 49 | ( 50 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_export']['delimiter'], 51 | 'inputType' => 'select', 52 | 'options' => array('comma', 'semicolon', 'tabulator', 'linebreak'), 53 | 'reference' => &$GLOBALS['TL_LANG']['MSC'], 54 | 'eval' => array('mandatory' => true, 'tl_class' => 'w50') 55 | ), 56 | 'enclosure' => array 57 | ( 58 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_export']['enclosure'], 59 | 'inputType' => 'select', 60 | 'options' => array('double', 'single'), 61 | 'reference' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_export'], 62 | 'eval' => array('tl_class' => 'w50') 63 | ), 64 | 'fields' => array 65 | ( 66 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_export']['fields'], 67 | 'inputType' => 'checkboxWizard', 68 | 'options_callback' => array('orm_avisota_recipient_export', 'getFields'), 69 | 'eval' => array('multiple' => true, 'tl_class' => 'clr') 70 | ) 71 | ) 72 | ); 73 | -------------------------------------------------------------------------------- /contao/languages/pt_BR/avisota_promotion.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota is an Open Source project.<br><a href="http://avisota.org" target="_blank">Donate</a> and keep the project alive! 6 | <img src="assets/avisota/core/images/donate.svg" alt=""> Avisota é um projeto Open Source. <br><a href="http://avisota.org" target="_blank">Doe</a> e mantenha o projeto vivo! 7 | 8 | 9 | 10 | <img src="assets/avisota/core/images/opensource.svg" alt=""> Avisota is an Open Source project.<br><a href="https://github.com/avisota" target="_blank">View and validate the source online!</a> 11 | 12 | 13 | 14 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank">Avisota is backed by many partners.</a><br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank">Fill out application and back the project!</a>! 15 | <img src="assets/avisota/core/images/partners.svg" alt=""> <a href="http://avisota.org/de/netzwerk/partner" target="_blank"> Avisota é apoiada por muitos parceiros.</a> <br><a href="http://avisota.org/de/netzwerk/partner#partner-werden" target="_blank"> preencha o pedido e apoie o projeto!</a>! 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/languages/en_/tl_avisota_recipient.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Fields 19 | */ 20 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['email'] = array('E-Mail', 'Specify email address.'); 21 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['confirmed'] = array('Activate', 'Un-Check to deactivate this subscriber.'); 22 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['token'] = array( 23 | 'Token ', 24 | 'The auth token is the double opt-in method used.' 25 | ); 26 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['addedOn'] = array('Joined ', 'The date of the subscription.'); 27 | 28 | 29 | /** 30 | * Legends 31 | */ 32 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['recipient_legend'] = 'Subscriber'; 33 | 34 | 35 | /** 36 | * Reference 37 | */ 38 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['subscribed'] = 'registered on %s'; 39 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['manually'] = 'added manually'; 40 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['confirm'] = '%s new recipients have been imported.'; 41 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['invalid'] = '%s invalid entries have been skipped.'; 42 | 43 | 44 | /** 45 | * Buttons 46 | */ 47 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['new'] = array('New Subscriber ', 'Create a new subscriber'); 48 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['show'] = array( 49 | 'Subscriber Details ', 50 | ' Details of the subscriber ID %s' 51 | ); 52 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['copy'] = array('Copy Subscriber ', 'Copy subscriber ID %s'); 53 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['delete'] = array('Delete Subscriber', 'Delete subscriber ID %s'); 54 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['edit'] = array('Edit Subscriber', 'Edit details of subscriber ID %s'); 55 | $GLOBALS['TL_LANG']['orm_avisota_recipient']['import'] = array('CSV Import', 'Import recipients from a CSV file'); 56 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/dca/orm_avisota_recipient_notify.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | 17 | /** 18 | * Table orm_avisota_recipient_notify 19 | */ 20 | $GLOBALS['TL_DCA']['orm_avisota_recipient_notify'] = array 21 | ( 22 | 23 | // Config 24 | 'config' => array 25 | ( 26 | 'dataContainer' => 'Memory', 27 | 'closed' => true, 28 | 'onload_callback' => array 29 | ( 30 | array('orm_avisota_recipient_notify', 'onload_callback'), 31 | ), 32 | 'onsubmit_callback' => array 33 | ( 34 | array('orm_avisota_recipient_notify', 'onsubmit_callback'), 35 | ) 36 | ), 37 | // Palettes 38 | 'metapalettes' => array 39 | ( 40 | 'default' => array 41 | ( 42 | 'notify' => array('recipient', 'confirmations', 'notifications', 'overdue') 43 | ) 44 | ), 45 | // Fields 46 | 'fields' => array 47 | ( 48 | 'recipient' => array 49 | ( 50 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['recipient'], 51 | 'inputType' => 'select', 52 | 'options_callback' => array('orm_avisota_recipient_notify', 'getRecipients'), 53 | 'eval' => array('submitOnChange' => true) 54 | ), 55 | 'confirmations' => array 56 | ( 57 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['confirmations'], 58 | 'inputType' => 'checkbox', 59 | 'options' => array(), 60 | 'eval' => array('multiple' => true) 61 | ), 62 | 'notifications' => array 63 | ( 64 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['notifications'], 65 | 'inputType' => 'checkbox', 66 | 'options' => array(), 67 | 'eval' => array('multiple' => true) 68 | ), 69 | 'overdue' => array 70 | ( 71 | 'label' => &$GLOBALS['TL_LANG']['orm_avisota_recipient_notify']['overdue'], 72 | 'inputType' => 'checkbox', 73 | 'options' => array(), 74 | 'eval' => array('multiple' => true) 75 | ) 76 | ) 77 | ); 78 | -------------------------------------------------------------------------------- /system_remove/modules/avisota/DataContainer/tl_stylepicker4ward.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | class tl_stylepicker4ward_avisota_callback 17 | { 18 | public function hookLoadDataContainer($name) 19 | { 20 | if ($name == 'tl_stylepicker4ward') { 21 | $GLOBALS['TL_DCA']['tl_stylepicker4ward']['palettes']['default'] .= ';{Avisota_legend},_AvisotaNewsletterCEs,_AvisotaNewsletterCE_Row'; 22 | $GLOBALS['TL_DCA']['tl_stylepicker4ward']['fields']['_AvisotaNewsletterCEs'] = array 23 | ( 24 | 'label' => &$GLOBALS['TL_LANG']['tl_stylepicker4ward']['_AvisotaNewsletterCEs'], 25 | 'inputType' => 'checkbox', 26 | 'options_callback' => array('AvisotaBackendStylepickerDCA', 'getAvisotaNewsletterContentElements'), 27 | 'load_callback' => array(array('AvisotaBackendStylepickerDCA', 'loadAvisotaNewsletterCEs')), 28 | 'save_callback' => array(array('AvisotaBackendStylepickerDCA', 'saveAvisotaNewsletterCEs')), 29 | 'reference' => &$GLOBALS['TL_LANG']['MCE'], 30 | 'eval' => array( 31 | 'multiple' => true, 32 | 'doNotSaveEmpty' => true, 33 | 'tl_class' => 'w50" style="height:auto;' 34 | ) 35 | ); 36 | $GLOBALS['TL_DCA']['tl_stylepicker4ward']['fields']['_AvisotaNewsletterCE_Row'] = array 37 | ( 38 | 'label' => &$GLOBALS['TL_LANG']['tl_stylepicker4ward']['_CE_Row'], 39 | 'inputType' => 'checkbox', 40 | 'options_callback' => array('AvisotaBackendStylepickerDCA', 'getAvisotaNewsletterSections'), 41 | 'load_callback' => array(array('AvisotaBackendStylepickerDCA', 'loadAvisotaNewsletterCE_Rows')), 42 | 'save_callback' => array(array('AvisotaBackendStylepickerDCA', 'doNothing')), 43 | 'reference' => &$GLOBALS['TL_LANG']['tl_article'], 44 | 'eval' => array( 45 | 'multiple' => true, 46 | 'doNotSaveEmpty' => true, 47 | 'tl_class' => 'w50" style="height:auto;' 48 | ) 49 | ); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /contao/languages/pl/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Domyślny moduł transportu 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Proszę wybrać domyślny moduł transportu. 12 | 13 | 14 | 15 | Developer mode 16 | Tryb developera 17 | 18 | 19 | 20 | Enable the developer mode. 21 | Włącz tryb developera. 22 | 23 | 24 | 25 | Developer email address 26 | Adres e-mail developera 27 | 28 | 29 | 30 | Please enter the email address to use for every email in developer mode. 31 | Proszę wprowadzić adres e-mail, który będzie użyta dla każdego e-maila w trybie developera. 32 | 33 | 34 | 35 | Avisota system settings 36 | Ustawienia systemu Avisota 37 | 38 | 39 | 40 | Transport 41 | Transport 42 | 43 | 44 | 45 | Developer 46 | Developer 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /contao/languages/pl/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Domyślny moduł transportu 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Proszę wybrać domyślny moduł transportu. 12 | 13 | 14 | 15 | Developer mode 16 | Tryb developera 17 | 18 | 19 | 20 | Enable the developer mode. 21 | Włącz tryb developera. 22 | 23 | 24 | 25 | Developer email address 26 | Adres e-mail developera 27 | 28 | 29 | 30 | Please enter the email address to use for every email in developer mode. 31 | Proszę wprowadzić adres e-mail, który będzie użyta dla każdego e-maila w trybie developera. 32 | 33 | 34 | 35 | Avisota system settings 36 | Ustawienia systemu Avisota 37 | 38 | 39 | 40 | Transport 41 | Transport 42 | 43 | 44 | 45 | Developer 46 | Developer 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /contao/languages/de/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Standard-Transportmodul. 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Bitte wählen Sie das Standard-Transportmodul aus. 12 | 13 | 14 | 15 | Developer mode 16 | Entwicklermodus 17 | 18 | 19 | 20 | Enable the developer mode. 21 | Aktivieren Sie den Entwicklermodus. 22 | 23 | 24 | 25 | Developer email address 26 | Entwickler-Mailadresse. 27 | 28 | 29 | 30 | Please enter the email address to use for every email in developer mode. 31 | Bitte geben Sie die Mailadresse an, die im Entwicklermodus für jegliche Mail benutzt wird. 32 | 33 | 34 | 35 | Avisota system settings 36 | Avisota-Systemeinstellungen 37 | 38 | 39 | 40 | Transport 41 | Transport 42 | 43 | 44 | 45 | Developer 46 | Entwickler 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /contao/languages/de/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Standard-Transportmodul. 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Bitte wählen Sie das Standard-Transportmodul aus. 12 | 13 | 14 | 15 | Developer mode 16 | Entwicklermodus 17 | 18 | 19 | 20 | Enable the developer mode. 21 | Aktivieren Sie den Entwicklermodus. 22 | 23 | 24 | 25 | Developer email address 26 | Entwickler-Mailadresse. 27 | 28 | 29 | 30 | Please enter the email address to use for every email in developer mode. 31 | Bitte geben Sie die Mailadresse an, die im Entwicklermodus für jegliche Mail benutzt wird. 32 | 33 | 34 | 35 | Avisota system settings 36 | Avisota-Systemeinstellungen 37 | 38 | 39 | 40 | Transport 41 | Transport 42 | 43 | 44 | 45 | Developer 46 | Entwickler 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/Event/CreateRecipientSourceEvent.php: -------------------------------------------------------------------------------- 1 | 11 | * @package avisota/contao-core 12 | * @license LGPL-3.0+ 13 | * @filesource 14 | */ 15 | 16 | namespace Avisota\Contao\Core\Event; 17 | 18 | use Avisota\Contao\Entity\RecipientSource; 19 | use Avisota\RecipientSource\RecipientSourceInterface; 20 | use Symfony\Component\EventDispatcher\Event; 21 | 22 | /** 23 | * Create recipient source event. 24 | */ 25 | class CreateRecipientSourceEvent extends Event 26 | { 27 | 28 | /** 29 | * The recipient source configuration. 30 | * 31 | * @var RecipientSource 32 | */ 33 | protected $configuration; 34 | 35 | /** 36 | * The recipient source. 37 | * 38 | * @var RecipientSourceInterface 39 | */ 40 | protected $recipientSource; 41 | 42 | /** 43 | * CreateRecipientSourceEvent constructor. 44 | * 45 | * @param RecipientSource $configuration The recipient source configuration. 46 | * @param RecipientSourceInterface $recipientSource The recipient source. 47 | */ 48 | public function __construct(RecipientSource $configuration, RecipientSourceInterface $recipientSource) 49 | { 50 | $this->configuration = $configuration; 51 | $this->recipientSource = $recipientSource; 52 | } 53 | 54 | /** 55 | * Return the recipient source configuration. 56 | * 57 | * @return RecipientSource 58 | */ 59 | public function getConfiguration() 60 | { 61 | return $this->configuration; 62 | } 63 | 64 | /** 65 | * Return the recipient source. 66 | * 67 | * @return RecipientSourceInterface 68 | */ 69 | public function getRecipientSource() 70 | { 71 | return $this->recipientSource; 72 | } 73 | 74 | /** 75 | * Set the recipient source. 76 | * 77 | * @param RecipientSourceInterface $recipientSource 78 | * 79 | * @return $this 80 | */ 81 | public function setRecipientSource(RecipientSourceInterface $recipientSource) 82 | { 83 | $this->recipientSource = $recipientSource; 84 | return $this; 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /contao/config/database.sql_ganz_alt: -------------------------------------------------------------------------------- 1 | -- ********************************************************** 2 | -- * * 3 | -- * IMPORTANT NOTE * 4 | -- * * 5 | -- * Do not import this file manually but use the TYPOlight * 6 | -- * install tool to create and maintain database tables! * 7 | -- * * 8 | -- ********************************************************** 9 | 10 | 11 | -- 12 | -- Table `orm_avisota_recipient_to_mailing_list` 13 | -- 14 | 15 | CREATE TABLE `orm_avisota_recipient_to_mailing_list` ( 16 | `recipient` int(10) unsigned NOT NULL default '0', 17 | `list` int(10) unsigned NOT NULL default '0', 18 | `confirmationSent` int(10) unsigned NOT NULL default '0', 19 | `reminderSent` int(10) unsigned NOT NULL default '0', 20 | `reminderCount` int(1) unsigned NOT NULL default '0', 21 | `confirmed` char(1) NOT NULL default '', 22 | `token` char(8) NOT NULL default '', 23 | PRIMARY KEY (`recipient`, `list`) 24 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 25 | 26 | -- -------------------------------------------------------- 27 | 28 | -- 29 | -- Table `orm_avisota_recipient_blacklist` 30 | -- 31 | 32 | CREATE TABLE `orm_avisota_recipient_blacklist` ( 33 | `id` int(10) unsigned NOT NULL auto_increment, 34 | `pid` int(10) unsigned NOT NULL default '0', 35 | `tstamp` int(10) unsigned NOT NULL default '0', 36 | `email` char(32) NOT NULL default '', 37 | PRIMARY KEY (`id`), 38 | KEY `pid` (`pid`), 39 | UNIQUE KEY `recipient` (`pid`, `email`) 40 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 41 | 42 | -- -------------------------------------------------------- 43 | 44 | -- 45 | -- Table `orm_avisota_message_category` 46 | -- 47 | 48 | CREATE TABLE `orm_avisota_message_category` ( 49 | `viewOnlinePage` int(10) unsigned NOT NULL default '0', 50 | PRIMARY KEY (`id`), 51 | KEY `alias` (`alias`) 52 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 53 | 54 | -- -------------------------------------------------------- 55 | 56 | 57 | -- 58 | -- Table `orm_avisota_message_content` 59 | -- 60 | 61 | CREATE TABLE `orm_avisota_message_content` ( 62 | `html` mediumtext NULL, 63 | PRIMARY KEY (`id`), 64 | KEY `pid` (`pid`) 65 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 66 | -------------------------------------------------------------------------------- /contao/languages/rm/tl_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Modul da transport da standard 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Tscherna il modul da transport da standard. 12 | 13 | 14 | 15 | Developer mode 16 | Modus da sviluppaders 17 | 18 | 19 | 20 | Enable the developer mode. 21 | Activar il modus da sviluppaders 22 | 23 | 24 | 25 | Developer email address 26 | Adressa dad e-mail dal sviluppader 27 | 28 | 29 | 30 | Please enter the email address to use for every email in developer mode. 31 | Endatescha l'adressa dad e-mail che duai vegnir utilisada per mintga e-mail tramess en il modus da sviluppader 32 | 33 | 34 | 35 | Avisota system settings 36 | Configuraziun dal sistem dad Avisota 37 | 38 | 39 | 40 | Transport 41 | Transport 42 | 43 | 44 | 45 | Developer 46 | Sviluppader 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /contao/languages/rm/tl_avisota_settings.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default transport module 6 | Modul da transport da standard 7 | 8 | 9 | 10 | Please choose the default transport module. 11 | Tscherna il modul da transport da standard. 12 | 13 | 14 | 15 | Developer mode 16 | Modus da sviluppaders 17 | 18 | 19 | 20 | Enable the developer mode. 21 | Activar il modus da sviluppaders 22 | 23 | 24 | 25 | Developer email address 26 | Adressa dad e-mail dal sviluppader 27 | 28 | 29 | 30 | Please enter the email address to use for every email in developer mode. 31 | Endatescha l'adressa dad e-mail che duai vegnir utilisada per mintga e-mail tramess en il modus da sviluppader 32 | 33 | 34 | 35 | Avisota system settings 36 | Configuraziun dal sistem dad Avisota 37 | 38 | 39 | 40 | Transport 41 | Transport 42 | 43 | 44 | 45 | Developer 46 | Sviluppader 47 | 48 | 49 | 50 | 51 | --------------------------------------------------------------------------------