├── .crowdin.yaml ├── .ddev ├── commands │ ├── host │ │ └── initialize │ └── web │ │ └── typo3 ├── config.yaml ├── docker-compose.browser.yaml └── docker-compose.typo3.yaml ├── .editorconfig ├── .github └── workflows │ ├── ter-release.yml │ └── testing.yaml ├── Classes ├── Command │ ├── AbstractCleanupCommand.php │ ├── CleanupExportsCommand.php │ ├── CleanupUnusedUploadsCommand.php │ ├── CleanupUploadsCommand.php │ ├── ExportCommand.php │ ├── FakeRequestTrait.php │ └── ResetMarkersCommand.php ├── Condition │ ├── PowermailConditionFunctionsProvider.php │ └── PowermailTypoScriptConditionProvider.php ├── Controller │ ├── AbstractController.php │ ├── FormController.php │ ├── ModuleController.php │ └── OutputController.php ├── DataProcessor │ ├── AbstractDataProcessor.php │ ├── DataProcessorInterface.php │ ├── DataProcessorRunner.php │ ├── SessionDataProcessor.php │ └── UploadDataProcessor.php ├── Database │ └── QueryGenerator.php ├── Domain │ ├── Factory │ │ ├── FileFactory.php │ │ └── MailFactory.php │ ├── Model │ │ ├── Answer.php │ │ ├── BackendUser.php │ │ ├── BackendUserGroup.php │ │ ├── Field.php │ │ ├── File.php │ │ ├── Form.php │ │ ├── Mail.php │ │ ├── Page.php │ │ ├── User.php │ │ └── UserGroup.php │ ├── Repository │ │ ├── AbstractRepository.php │ │ ├── AnswerRepository.php │ │ ├── BackendUserGroupRepository.php │ │ ├── BackendUserRepository.php │ │ ├── FieldRepository.php │ │ ├── FormRepository.php │ │ ├── MailRepository.php │ │ ├── PageRepository.php │ │ ├── UserGroupRepository.php │ │ └── UserRepository.php │ ├── Service │ │ ├── CalculatingCaptchaService.php │ │ ├── ConfigurationService.php │ │ ├── CountriesFromStaticInfoTablesService.php │ │ ├── ExportService.php │ │ ├── GetNewMarkerNamesForFormService.php │ │ ├── Mail │ │ │ ├── PlaintextService.php │ │ │ ├── ReceiverMailReceiverPropertiesService.php │ │ │ ├── ReceiverMailSenderPropertiesService.php │ │ │ ├── SendDisclaimedMailPreflight.php │ │ │ ├── SendMailService.php │ │ │ ├── SendOptinConfirmationMailPreflight.php │ │ │ ├── SendReceiverMailPreflight.php │ │ │ ├── SendSenderMailPreflight.php │ │ │ └── SenderMailPropertiesService.php │ │ ├── RedirectUriService.php │ │ ├── SaveToAnyTableService.php │ │ ├── SlidingWindowPagination.php │ │ └── UploadService.php │ └── Validator │ │ ├── AbstractValidator.php │ │ ├── CaptchaValidator.php │ │ ├── CustomValidator.php │ │ ├── ForeignValidator.php │ │ ├── InputValidator.php │ │ ├── PasswordValidator.php │ │ ├── SpamShield │ │ ├── AbstractMethod.php │ │ ├── Breaker │ │ │ ├── AbstractBreaker.php │ │ │ ├── BreakerInterface.php │ │ │ ├── BreakerRunner.php │ │ │ ├── IpBreaker.php │ │ │ └── ValueBreaker.php │ │ ├── HoneyPodMethod.php │ │ ├── IpBlacklistMethod.php │ │ ├── LinkMethod.php │ │ ├── MethodInterface.php │ │ ├── NameMethod.php │ │ ├── SessionMethod.php │ │ ├── UniqueMethod.php │ │ └── ValueBlacklistMethod.php │ │ ├── SpamShieldValidator.php │ │ ├── StringValidator.php │ │ ├── UniqueValidator.php │ │ ├── UploadValidator.php │ │ └── ValidatorInterface.php ├── Eid │ └── GetLocationEid.php ├── EventListener │ └── FlexFormParsingModifyEventListener.php ├── Events │ ├── BackendPageModulePreviewContentEvent.php │ ├── CheckIfMailIsAllowedToSaveEvent.php │ ├── CustomValidatorEvent.php │ ├── FormControllerConfirmationActionEvent.php │ ├── FormControllerCreateActionAfterMailDbSavedEvent.php │ ├── FormControllerCreateActionAfterSubmitViewEvent.php │ ├── FormControllerCreateActionBeforeRenderViewEvent.php │ ├── FormControllerDisclaimerActionBeforeRenderViewEvent.php │ ├── FormControllerFormActionEvent.php │ ├── FormControllerInitializeObjectEvent.php │ ├── FormControllerOptinConfirmActionAfterPersistEvent.php │ ├── FormControllerOptinConfirmActionBeforeRenderViewEvent.php │ ├── GetNewPathAndFilenameEvent.php │ ├── MailFactoryBeforePasswordIsHashedEvent.php │ ├── MailRepositoryGetVariablesWithMarkersFromMailEvent.php │ ├── PrefillFieldViewHelperEvent.php │ ├── PrefillMultiFieldViewHelperEvent.php │ ├── ReceiverMailReceiverPropertiesServiceGetReceiverNameEvent.php │ ├── ReceiverMailReceiverPropertiesServiceSetReceiverEmailsEvent.php │ ├── ReceiverMailSenderPropertiesGetSenderEmailEvent.php │ ├── ReceiverMailSenderPropertiesGetSenderNameEvent.php │ ├── SendMailServiceCreateEmailBodyEvent.php │ ├── SendMailServicePrepareAndSendEvent.php │ ├── SenderMailPropertiesGetSenderEmailEvent.php │ ├── SenderMailPropertiesGetSenderNameEvent.php │ ├── UploadServiceGetFilesEvent.php │ ├── UploadServicePreflightEvent.php │ └── ValidationDataAttributeViewHelperEvent.php ├── Exception │ ├── ClassDoesNotExistException.php │ ├── ConfigurationIsMissingException.php │ ├── DatabaseFieldMissingException.php │ ├── DeprecatedException.php │ ├── ElementNotFoundException.php │ ├── FileCannotBeCreatedException.php │ ├── FileNotFoundException.php │ ├── InterfaceNotImplementedException.php │ ├── OutdatedTypo3Exception.php │ ├── PropertiesMissingException.php │ └── SoftwareIsMissingException.php ├── Finisher │ ├── AbstractFinisher.php │ ├── FinisherInterface.php │ ├── FinisherRunner.php │ ├── RedirectFinisher.php │ ├── SaveToAnyTableFinisher.php │ └── SendParametersFinisher.php ├── Hook │ ├── CreateMarker.php │ └── PluginPreviewRenderer.php ├── Tca │ ├── AddOptionsToSelection.php │ ├── EvaluateEmail.php │ ├── FieldSelectorUserFunc.php │ ├── FormSelectorUserFunc.php │ ├── Marker.php │ ├── ShowFormNoteEditForm.php │ └── ShowFormNoteIfNoEmailOrNameSelected.php ├── Update │ ├── PowermailLanguageUpdateWizard.php │ ├── PowermailPermissionSubmoduleUpdater.php │ ├── PowermailPermissionUpdater.php │ ├── PowermailPluginUpdater.php │ └── PowermailRelationUpdateWizard.php ├── UserFunc │ ├── DateConverter.php │ └── TestForFeature.php ├── Utility │ ├── ArrayUtility.php │ ├── BackendUtility.php │ ├── BasicFileUtility.php │ ├── ConfigurationUtility.php │ ├── CsvUtility.php │ ├── DatabaseUtility.php │ ├── FrontendUtility.php │ ├── HashUtility.php │ ├── LocalizationUtility.php │ ├── MailUtility.php │ ├── MathematicUtility.php │ ├── ObjectUtility.php │ ├── ReportingUtility.php │ ├── SessionUtility.php │ ├── StringUtility.php │ ├── TemplateUtility.php │ └── TypoScriptUtility.php └── ViewHelpers │ ├── Be │ ├── CheckWrongLocalizedFormsViewHelper.php │ ├── CheckWrongLocalizedPagesViewHelper.php │ ├── EditLinkViewHelper.php │ ├── ExtMngConfigViewHelper.php │ ├── GetClassNameOnActionViewHelper.php │ ├── IsAdminViewHelper.php │ ├── LastUpdateExtensionRepositoryViewHelper.php │ ├── PowermailVersionNoteViewHelper.php │ ├── PowermailVersionViewHelper.php │ ├── SessionViewHelper.php │ ├── T3VersionViewHelper.php │ └── UploadsFolderViewHelper.php │ ├── Condition │ ├── FileExistsViewHelper.php │ ├── IsAllowedToEditViewHelper.php │ ├── IsArrayViewHelper.php │ ├── IsBackendUserAllowedToViewFieldViewHelper.php │ ├── IsComposerModeViewHelper.php │ ├── IsDateTimeVariableInVariableViewHelper.php │ ├── IsDevelopmentContextViewHelper.php │ ├── IsImageViewHelper.php │ ├── IsIpInformationEnabledGloballyViewHelper.php │ ├── IsMarketingInformationActiveViewHelper.php │ ├── IsMarketingInformationEnabledGloballyViewHelper.php │ ├── IsNotEmptyViewHelper.php │ ├── IsNotExcludedFromPowermailAllViewHelper.php │ ├── IsNumberViewHelper.php │ ├── IsStringInStringViewHelper.php │ ├── IsThereAMailWithStartingLetterViewHelper.php │ └── OrViewHelper.php │ ├── Form │ ├── AdvancedSelectViewHelper.php │ ├── CountriesViewHelper.php │ ├── MultiUploadViewHelper.php │ └── SelectFieldViewHelper.php │ ├── Getter │ ├── GetDevelopmentContextEmailViewHelper.php │ ├── GetFieldLabelFromUidViewHelper.php │ ├── GetFieldMarkerFromUidViewHelper.php │ ├── GetFieldPropertyFromMarkerAndFormViewHelper.php │ ├── GetFieldsFromFormViewHelper.php │ ├── GetPageNameFromUidViewHelper.php │ ├── GetPagesWithContentRelatedToFormViewHelper.php │ └── GetPiVarAnswerFieldViewHelper.php │ ├── Misc │ ├── BackendEditLinkViewHelper.php │ ├── CheckForTypoScriptViewHelper.php │ ├── ContentElementViewHelper.php │ ├── CreateRowTagsViewHelper.php │ ├── GetFileWithPathViewHelper.php │ ├── LinkViewHelper.php │ ├── ManipulateValueWithTypoScriptViewHelper.php │ ├── MorestepClassViewHelper.php │ ├── PrefillFieldViewHelper.php │ ├── PrefillMultiFieldViewHelper.php │ ├── VariableInVariableViewHelper.php │ └── VariablesViewHelper.php │ ├── Reporting │ ├── GetLabelsForChartsViewHelper.php │ └── GetValuesForChartsViewHelper.php │ ├── String │ ├── EncodeViewHelper.php │ ├── EscapeLabelsViewHelper.php │ ├── ExplodeViewHelper.php │ ├── ImplodeFieldViewHelper.php │ ├── RemoveQuoteViewHelper.php │ ├── SanitizeCsvCellViewHelper.php │ ├── TrimViewHelper.php │ ├── UnderscoredToLowerCamelCaseViewHelper.php │ ├── UpperViewHelper.php │ └── Utf8ToUtf16ViewHelper.php │ └── Validation │ ├── AbstractValidationViewHelper.php │ ├── CaptchaDataAttributeViewHelper.php │ ├── CaptchaViewHelper.php │ ├── DatepickerDataAttributeViewHelper.php │ ├── EnableJavascriptValidationAndAjaxViewHelper.php │ ├── ErrorClassViewHelper.php │ ├── FieldTypeFromValidationViewHelper.php │ ├── IsHonepodEnabledViewHelper.php │ ├── PasswordValidationDataAttributeViewHelper.php │ ├── UploadAttributesViewHelper.php │ └── ValidationDataAttributeViewHelper.php ├── Configuration ├── Backend │ ├── Modules.php │ └── Routes.php ├── Commands.php ├── ExpressionLanguage.php ├── Extbase │ └── Persistence │ │ └── Classes.php ├── FlexForms │ ├── FlexformPi1.xml │ └── FlexformPi2.xml ├── Icons.php ├── Services.yaml ├── TCA │ ├── Overrides │ │ ├── sys_template.php │ │ └── tt_content.php │ ├── tx_powermail_domain_model_answer.php │ ├── tx_powermail_domain_model_field.php │ ├── tx_powermail_domain_model_form.php │ ├── tx_powermail_domain_model_mail.php │ └── tx_powermail_domain_model_page.php ├── TSConfig │ ├── ContentElementWizard.typoscript │ └── WebList.typoscript └── TypoScript │ ├── BootstrapClassesAndLayout │ ├── constants.typoscript │ └── setup.typoscript │ ├── Main │ ├── Configuration │ │ ├── 01_Extension.typoscript │ │ ├── 02_Settings.typoscript │ │ ├── 03_MailReceiver.typoscript │ │ ├── 04_MailSender.typoscript │ │ ├── 05_ThxPage.typoscript │ │ ├── 06_Database.typoscript │ │ ├── 07_DoubleOptin.typoscript │ │ ├── 08_Disclaimer.typoscript │ │ ├── 09_Styles.typoscript │ │ ├── 10_Validation.typoscript │ │ ├── 11_Captcha.typoscript │ │ ├── 12_Spamshield.typoscript │ │ ├── 20_Prefill.typoscript │ │ ├── 21_ExcludeFromPowermailAllMarker.typoscript │ │ ├── 22_ManipulateVariablesInPowermailAllMarker.typoscript │ │ ├── 23_SaveSession.typoscript │ │ ├── 24_Marketing.typoscript │ │ ├── 30_Finisher.typoscript │ │ ├── 31_DataProcessors.typoscript │ │ ├── 32_DatabaseEntry.typoscript │ │ ├── 33_Debug.typoscript │ │ └── 40_Includes.typoscript │ ├── constants.typoscript │ └── setup.typoscript │ ├── Marketing │ └── setup.typoscript │ └── Powermail_Frontend │ ├── constants.typoscript │ └── setup.typoscript ├── Documentation ├── Changelog │ ├── Index.md │ └── UpgradeInstructions.md ├── DevelopmentModel.md ├── FAQ │ └── Index.md ├── ForAdministrators │ ├── BackendUserRights.md │ ├── BestPractice.md │ ├── BestPractice │ │ ├── AjaxSubmit.md │ │ ├── ChangingLabels.md │ │ ├── DateConverterUserFunc.md │ │ ├── Debug.md │ │ ├── DevelopmentContext.md │ │ ├── DynamicReceiver.md │ │ ├── FilterFormSelection.md │ │ ├── MainTypoScript.md │ │ ├── ManipulateValuesFromPowermailAll.md │ │ ├── PasswordField.md │ │ ├── PrefillField.md │ │ ├── PreventDuplicates.md │ │ ├── RemoveValuesFromPowermailAll.md │ │ ├── SaveSession.md │ │ ├── SavingValuesToThirdPartyTables.md │ │ ├── SendAttachments.md │ │ ├── SendingValuesToThirdPartySoftware.md │ │ ├── SetPidForNewForms.md │ │ ├── SpamPrevention.md │ │ ├── Templates.md │ │ ├── TypoScriptConditions.md │ │ └── UniqueValues.md │ ├── Index.md │ ├── Installation.md │ ├── PowermailFrontend.md │ ├── Privacy.md │ ├── SchedulerTasks.md │ └── Upgrade.md ├── ForContributors │ └── Index.md ├── ForDevelopers │ ├── AddDataProcessors.md │ ├── AddFinisherClasses.md │ ├── AddNewFieldProperties.md │ ├── AddNewFields.md │ ├── AddNewFlexFormProperties.md │ ├── AddSpamshieldMethods.md │ ├── DatabaseModel.md │ ├── DisableSpamshield.md │ ├── EventDispatcher.md │ ├── Index.md │ ├── LocalDevelopment.md │ ├── UserfuncsWithCobject.md │ └── WriteOwnValidators.md ├── ForEditors │ ├── AddNewForms.md │ ├── AddNewPlugins.md │ ├── BackendModule.md │ ├── FieldCaptcha.md │ ├── FieldCheck.md │ ├── FieldContentElement.md │ ├── FieldCountry.md │ ├── FieldDate.md │ ├── FieldFile.md │ ├── FieldHidden.md │ ├── FieldHtml.md │ ├── FieldInput.md │ ├── FieldLocation.md │ ├── FieldPassword.md │ ├── FieldRadio.md │ ├── FieldReset.md │ ├── FieldSelect.md │ ├── FieldSubmit.md │ ├── FieldText.md │ ├── FieldTextarea.md │ ├── FieldTypoScript.md │ └── Index.md ├── Images │ ├── backend1.png │ ├── backend2.png │ ├── backend_module_export.png │ ├── backend_module_filter.png │ ├── backend_module_formoverview.png │ ├── backend_module_functioncheck.png │ ├── backend_module_list.png │ ├── backend_module_menu.png │ ├── backend_module_menu2.png │ ├── backend_module_reportingform.png │ ├── backend_module_reportingmarketing.png │ ├── bestpractice_ajax.png │ ├── bestpractice_developmentcontext1.png │ ├── bestpractice_developmentcontext2.png │ ├── bestpractice_filterformselection1.png │ ├── bestpractice_filterformselection2.png │ ├── bestpractice_predefinedreceivers1.png │ ├── bestpractice_predefinedreceivers2.png │ ├── bestpractice_setpidfornewforms.png │ ├── bestpractice_spamshield1.png │ ├── bestpractice_spamshield2.jpg │ ├── developer_cobject.png │ ├── developer_database_model.jpg │ ├── developer_new_fieldproperties1.png │ ├── developer_new_fieldproperties2.png │ ├── developer_new_fields1.png │ ├── developer_new_fields2.png │ ├── developer_new_flexformfield.png │ ├── developer_new_validation1.png │ ├── developer_new_validation2.png │ ├── developer_new_validationtype1.png │ ├── developer_new_validationtype2.png │ ├── example_field_captcha.png │ ├── example_field_checkbox.png │ ├── example_field_content.png │ ├── example_field_country.png │ ├── example_field_date.png │ ├── example_field_file.png │ ├── example_field_html.png │ ├── example_field_input.png │ ├── example_field_label.png │ ├── example_field_location.png │ ├── example_field_password.png │ ├── example_field_radio.png │ ├── example_field_reset.png │ ├── example_field_select.png │ ├── example_field_select_multi.png │ ├── example_field_submit.png │ ├── example_field_textarea.png │ ├── example_field_typoscript.png │ ├── extension_manager.png │ ├── extension_manager2.png │ ├── extension_manager3.png │ ├── faq_style.png │ ├── frontend1.png │ ├── frontend2.png │ ├── frontend_pi2.png │ ├── plugin1.png │ ├── plugin2.png │ ├── pluginInformation.png │ ├── plugin_pi2_tab1.png │ ├── plugin_tab1.png │ ├── plugin_tab2.png │ ├── plugin_tab3.png │ ├── plugin_tab4.png │ ├── powermail_icon.png │ ├── powermail_records.png │ ├── prefill_frontend_output.png │ ├── prefill_select_typoscript1.png │ ├── prefill_select_typoscript2.png │ ├── record_field_captcha_tab1.png │ ├── record_field_captcha_tab2.png │ ├── record_field_check_tab1.png │ ├── record_field_check_tab2.png │ ├── record_field_content_tab1.png │ ├── record_field_content_tab2.png │ ├── record_field_country_tab1.png │ ├── record_field_country_tab2.png │ ├── record_field_date_tab1.png │ ├── record_field_date_tab2.png │ ├── record_field_file_tab1.png │ ├── record_field_file_tab2.png │ ├── record_field_hidden_tab1.png │ ├── record_field_hidden_tab2.png │ ├── record_field_html_tab1.png │ ├── record_field_html_tab2.png │ ├── record_field_input_tab1.png │ ├── record_field_input_tab2.png │ ├── record_field_location_tab1.png │ ├── record_field_location_tab2.png │ ├── record_field_password_tab1.png │ ├── record_field_password_tab2.png │ ├── record_field_radio_tab1.png │ ├── record_field_radio_tab2.png │ ├── record_field_reset_tab1.png │ ├── record_field_reset_tab2.png │ ├── record_field_select_tab1.png │ ├── record_field_select_tab2.png │ ├── record_field_submit_tab1.png │ ├── record_field_submit_tab2.png │ ├── record_field_text_tab1.png │ ├── record_field_text_tab2.png │ ├── record_field_textarea_tab1.png │ ├── record_field_textarea_tab2.png │ ├── record_field_typoscript_tab1.png │ ├── record_field_typoscript_tab2.png │ ├── record_form_detail1.png │ ├── record_page_detail1.png │ ├── scheduler_cleanexportfiles.png │ ├── scheduler_cleanunusedfiles.png │ ├── scheduler_cleanupload.png │ ├── scheduler_export1.png │ ├── scheduler_export2.png │ ├── scheduler_export3.png │ ├── scheduler_garbage_collector.png │ ├── scheduler_resetmarkers1.png │ ├── scheduler_resetmarkers2.png │ ├── static_templates.png │ ├── upgrade_wizard.png │ ├── userrights_flexform.png │ ├── userrights_plugin.png │ └── userrights_plugin_failure.png ├── Index.md ├── Links │ └── Index.md ├── Support │ └── Index.md └── guides.xml ├── Readme.md ├── Resources ├── Private │ ├── .htaccess │ ├── Build │ │ ├── .babelrc │ │ ├── .nvmrc │ │ ├── JavaScript │ │ │ ├── Backend.js │ │ │ ├── Form.js │ │ │ ├── FormValidation.js │ │ │ ├── Marketing.js │ │ │ ├── MoreStepForm.js │ │ │ └── Utility.js │ │ ├── Sass │ │ │ ├── Backend.scss │ │ │ ├── Basic.scss │ │ │ ├── Bootstrap.scss │ │ │ ├── _BootstrapExpanded.scss │ │ │ ├── _Message.scss │ │ │ ├── _Pi1.scss │ │ │ └── _Settings.scss │ │ ├── gulpfile.js │ │ ├── package.json │ │ ├── readme.md │ │ └── rollup.config.js │ ├── Fonts │ │ ├── Segment16.txt │ │ └── Segment16cBold.ttf │ ├── Image │ │ └── captcha_bg.png │ ├── Language │ │ ├── locallang.xlf │ │ ├── locallang_csh_tx_powermail_domain_model_answers.xlf │ │ ├── locallang_csh_tx_powermail_domain_model_fields.xlf │ │ ├── locallang_csh_tx_powermail_domain_model_forms.xlf │ │ ├── locallang_csh_tx_powermail_domain_model_mails.xlf │ │ ├── locallang_csh_tx_powermail_domain_model_pages.xlf │ │ ├── locallang_db.xlf │ │ └── locallang_mod.xlf │ ├── Layouts │ │ ├── ContentElements │ │ │ └── Export │ │ │ │ └── Default.html │ │ ├── Default.html │ │ ├── Export.html │ │ ├── Mail.html │ │ └── PowermailAll.html │ ├── Partials │ │ ├── Form │ │ │ ├── Field │ │ │ │ ├── Captcha.html │ │ │ │ ├── Check.html │ │ │ │ ├── Content.html │ │ │ │ ├── Country.html │ │ │ │ ├── Date.html │ │ │ │ ├── File.html │ │ │ │ ├── Hidden.html │ │ │ │ ├── Html.html │ │ │ │ ├── Input.html │ │ │ │ ├── Location.html │ │ │ │ ├── Password.html │ │ │ │ ├── Radio.html │ │ │ │ ├── Reset.html │ │ │ │ ├── Select.html │ │ │ │ ├── Submit.html │ │ │ │ ├── Text.html │ │ │ │ ├── Textarea.html │ │ │ │ └── Typoscript.html │ │ │ ├── FieldLabel.html │ │ │ └── Page.html │ │ ├── Mail │ │ │ └── DisclaimerLink.html │ │ ├── Misc │ │ │ ├── FlashMessages.html │ │ │ ├── FormError.html │ │ │ ├── GoogleAdwordsConversion.html │ │ │ ├── HoneyPod.html │ │ │ └── MarketingInformation.html │ │ ├── Module │ │ │ ├── CheckBe │ │ │ │ ├── CheckWrongLocalizedForms.html │ │ │ │ ├── CheckWrongLocalizedPages.html │ │ │ │ ├── DevelopmentContext.html │ │ │ │ ├── Email.html │ │ │ │ ├── ExtMngConfig.html │ │ │ │ ├── Mode.html │ │ │ │ ├── PowermailVersionNote.html │ │ │ │ ├── Session.html │ │ │ │ ├── StaticTemplate.html │ │ │ │ ├── T3Version.html │ │ │ │ └── UploadsFolder.html │ │ │ ├── Export.html │ │ │ ├── Filter.html │ │ │ ├── JsAndCssImport.html │ │ │ ├── List.html │ │ │ ├── OverviewBe.html │ │ │ ├── Pagination.html │ │ │ ├── Search.html │ │ │ ├── SearchButtons.html │ │ │ └── SelectedLineMessage.html │ │ ├── Output │ │ │ ├── Abc.html │ │ │ ├── EditHidden.html │ │ │ └── Search.html │ │ └── PowermailAll │ │ │ ├── Mail.html │ │ │ └── Web.html │ └── Templates │ │ ├── Form │ │ ├── Confirmation.html │ │ ├── Create.html │ │ ├── Disclaimer.html │ │ ├── Form.html │ │ ├── OptinConfirm.html │ │ ├── PowermailAll.html │ │ └── ValidateAjax.html │ │ ├── Hook │ │ └── PluginPreview.html │ │ ├── Log │ │ └── SpamNotification.html │ │ ├── Mail │ │ ├── DisclaimedNotificationMail.html │ │ ├── OptinMail.html │ │ ├── ReceiverMail.html │ │ ├── SenderMail.html │ │ └── SpamNotification.html │ │ ├── Module │ │ ├── CheckBe.html │ │ ├── ExportCsv.html │ │ ├── ExportTaskMail.html │ │ ├── ExportXls.html │ │ ├── List.html │ │ ├── OverviewBe.html │ │ ├── ReportingFormBe.html │ │ └── ReportingMarketingBe.html │ │ ├── Output │ │ ├── Delete.html │ │ ├── Edit.html │ │ ├── List.html │ │ └── Show.html │ │ └── Tca │ │ ├── ShowFormNoteEditForm.html │ │ └── ShowFormNoteIfNoEmailOrNameSelected.html └── Public │ ├── Css │ ├── Backend.css │ ├── Basic.css │ └── Bootstrap.css │ ├── Demo │ └── Flot │ │ └── FlotJs.html │ ├── Icons │ ├── Extension.svg │ ├── powermail.svg │ ├── relation.gif │ ├── tx_powermail_domain_model_answer.gif │ ├── tx_powermail_domain_model_field.gif │ ├── tx_powermail_domain_model_field__h.gif │ ├── tx_powermail_domain_model_field__ht.gif │ ├── tx_powermail_domain_model_field__t.gif │ ├── tx_powermail_domain_model_form.gif │ ├── tx_powermail_domain_model_form__h.gif │ ├── tx_powermail_domain_model_form__ht.gif │ ├── tx_powermail_domain_model_form__t.gif │ ├── tx_powermail_domain_model_mail.gif │ ├── tx_powermail_domain_model_mail__h.gif │ ├── tx_powermail_domain_model_mail__t.gif │ ├── tx_powermail_domain_model_page.gif │ ├── tx_powermail_domain_model_page__h.gif │ ├── tx_powermail_domain_model_page__ht.gif │ └── tx_powermail_domain_model_page__t.gif │ ├── Image │ ├── chart_form.png │ ├── chart_form_overview.png │ ├── chart_function_check.png │ ├── chart_marketing.png │ ├── icon-check.png │ ├── icon-notchecked.png │ ├── icon_calendar.png │ ├── icon_csv.gif │ ├── icon_error.png │ ├── icon_loading.gif │ ├── icon_ok.png │ ├── icon_rss.gif │ ├── icon_sorting_asc.png │ ├── icon_sorting_desc.png │ ├── icon_xls.gif │ ├── reportingGraphics.bmml │ └── upload_bg.png │ └── JavaScript │ ├── Libraries │ ├── bootstrap.min.js │ ├── jquery-ui.min.js │ ├── jquery.flot.min.js │ └── jquery.flot.pie.min.js │ └── Powermail │ ├── Backend.min.js │ ├── Form.min.js │ └── Marketing.min.js ├── composer.json ├── crowdin.yaml ├── ext_conf_template.txt ├── ext_emconf.php ├── ext_localconf.php ├── ext_tables.php ├── ext_tables.sql ├── phpunit.xml.dist └── rector.php /.crowdin.yaml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /Resources/Private/Language/ 3 | translation: /%original_path%/%two_letters_code%.%original_file_name% 4 | -------------------------------------------------------------------------------- /.ddev/commands/web/typo3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This assumes that the typo3 command will be in the $PATH; if in vendor/bin/ it will be 4 | 5 | ## Description: Run TYPO3 CLI (typo3) command inside the web container 6 | ## Usage: typo3 [args] 7 | ## Example: "ddev typo3 site:list" or "ddev typo3 list" or "ddev typo3 extension:list" 8 | ## ProjectTypes: typo3 9 | 10 | .build/vendor/bin/typo3 "$@" 11 | -------------------------------------------------------------------------------- /.ddev/docker-compose.browser.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | chrome: 3 | container_name: ddev-${DDEV_SITENAME}-chromedriver 4 | image: seleniarm/standalone-chromium:111.0 5 | restart: "no" 6 | volumes: 7 | - /dev/shm:/dev/shm 8 | external_links: 9 | - ddev-router:$DDEV_HOSTNAME 10 | ports: 11 | - 4444 12 | - "19647:5900" 13 | -------------------------------------------------------------------------------- /.ddev/docker-compose.typo3.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | web: 3 | environment: 4 | - TYPO3_CONTEXT=Development/DDEV 5 | - TYPO3_PATH_APP=/var/www/html/.build 6 | - MYSQL_DATABASE=db 7 | - MYSQL_PASSWORD=db 8 | - MYSQL_USER=db 9 | - MYSQL_HOST=db 10 | - MAIL_HOST=localhost:1025 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Unix-style newlines with a newline ending every file 2 | [*] 3 | charset = utf-8 4 | end_of_line = lf 5 | indent_style = space 6 | indent_size = 4 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | # TS/JS-Files 11 | [*.{ts,js}] 12 | indent_size = 2 13 | 14 | # JSON-Files 15 | [*.json] 16 | indent_style = tab 17 | 18 | # ReST-Files 19 | [*.rst] 20 | indent_size = 3 21 | max_line_length = 80 22 | 23 | # YAML-Files 24 | [*.{yaml,yml}] 25 | indent_size = 2 26 | 27 | # package.json 28 | # .travis.yml 29 | [{package.json,.travis.yml}] 30 | indent_size = 2 31 | 32 | # TypoScript 33 | [*.{typoscript,tsconfig}] 34 | indent_size = 2 35 | 36 | # XLF-Files 37 | [*.xlf] 38 | indent_style = tab 39 | 40 | # SQL-Files 41 | [*.sql] 42 | indent_style = tab 43 | indent_size = 2 44 | 45 | # .htaccess 46 | [{_.htaccess,.htaccess}] 47 | indent_style = tab 48 | -------------------------------------------------------------------------------- /Classes/Command/AbstractCleanupCommand.php: -------------------------------------------------------------------------------- 1 | 0 && (time() - filemtime($file) > $period))) { 31 | $counter++; 32 | unlink($file); 33 | } 34 | } 35 | $output->writeln($counter . ' files removed from your system'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Classes/Command/FakeRequestTrait.php: -------------------------------------------------------------------------------- 1 | withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_BE); 20 | $GLOBALS['TYPO3_REQUEST'] = $request; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Classes/Condition/PowermailTypoScriptConditionProvider.php: -------------------------------------------------------------------------------- 1 | expressionLanguageProviders = [ 19 | PowermailConditionFunctionsProvider::class, 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Classes/DataProcessor/DataProcessorInterface.php: -------------------------------------------------------------------------------- 1 | getActionMethodName() === 'createAction') { 21 | SessionUtility::saveSessionValuesForPrefill($this->getMail(), $this->getSettings()); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Classes/DataProcessor/UploadDataProcessor.php: -------------------------------------------------------------------------------- 1 | uploadAllFiles(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/AbstractRepository.php: -------------------------------------------------------------------------------- 1 | setRespectStoragePage(false); 16 | $this->setDefaultQuerySettings($querySettings); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/BackendUserRepository.php: -------------------------------------------------------------------------------- 1 | setRespectStoragePage(false); 17 | $this->setDefaultQuerySettings($querySettings); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/UserGroupRepository.php: -------------------------------------------------------------------------------- 1 | dispatch( 26 | GeneralUtility::makeInstance(CustomValidatorEvent::class, $mail, $this) 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/SpamShield/Breaker/BreakerInterface.php: -------------------------------------------------------------------------------- 1 | getConfiguration(); 21 | $this->checkConfiguration($configuration); 22 | foreach ($this->getMail()->getAnswers() as $answer) { 23 | /** @var $answer Answer */ 24 | if ($answer->getValue() === $configuration['value']) { 25 | return true; 26 | } 27 | } 28 | return false; 29 | } 30 | 31 | /** 32 | * @param array $configuration 33 | * @return void 34 | * @throws ConfigurationIsMissingException 35 | */ 36 | protected function checkConfiguration(array $configuration): void 37 | { 38 | if (empty($configuration['value'])) { 39 | throw new ConfigurationIsMissingException('No value given to check for', 1516025541289); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/SpamShield/HoneyPodMethod.php: -------------------------------------------------------------------------------- 1 | arguments['field']['__hp']); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/SpamShield/LinkMethod.php: -------------------------------------------------------------------------------- 1 | mail->getAnswers() as $answer) { 20 | if (!is_string($answer->getValue())) { 21 | continue; 22 | } 23 | preg_match_all('@http://|https://|ftp://@', $answer->getValue(), $result); 24 | if (isset($result[0])) { 25 | $linkAmount += count($result[0]); 26 | } 27 | } 28 | return $linkAmount > (int)$this->configuration['linkLimit']; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/SpamShield/MethodInterface.php: -------------------------------------------------------------------------------- 1 | mail->getAnswers() as $answer) { 33 | if (is_array($answer->getValue())) { 34 | continue; 35 | } 36 | if (in_array($answer->getField()->getMarker(), $keysFirstName)) { 37 | $firstname = $answer->getValue(); 38 | } 39 | if (in_array($answer->getField()->getMarker(), $keysLastName)) { 40 | $lastname = $answer->getValue(); 41 | } 42 | } 43 | return !empty($firstname) && $firstname === $lastname; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/SpamShield/SessionMethod.php: -------------------------------------------------------------------------------- 1 | mail->getForm()->getUid(), 22 | $this->settings 23 | ); 24 | $referrer = $this->arguments['__referrer']['@action']; 25 | return $referrer !== 'optinConfirm' && empty($timeFromSession); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/SpamShield/UniqueMethod.php: -------------------------------------------------------------------------------- 1 | mail->getAnswers() as $answer) { 20 | if (!is_array($answer->getValue()) && $answer->getValue()) { 21 | $answers[] = $answer->getValue(); 22 | } 23 | } 24 | return count($answers) !== count(array_unique($answers)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/ValidatorInterface.php: -------------------------------------------------------------------------------- 1 | preview; 20 | } 21 | 22 | public function setPreview(string $preview): void 23 | { 24 | $this->preview = $preview; 25 | } 26 | 27 | public function getItem(): GridColumnItem 28 | { 29 | return $this->item; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Classes/Events/CheckIfMailIsAllowedToSaveEvent.php: -------------------------------------------------------------------------------- 1 | mail = $mail; 25 | } 26 | 27 | /** 28 | * @return Mail 29 | */ 30 | public function getMail(): Mail 31 | { 32 | return $this->mail; 33 | } 34 | 35 | public function isSavingOfMailAllowed(): bool 36 | { 37 | return $this->savingOfMailAllowed; 38 | } 39 | 40 | public function setSavingOfMailAllowed(bool $savingOfMailAllowed): void 41 | { 42 | $this->savingOfMailAllowed = $savingOfMailAllowed; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Classes/Events/CustomValidatorEvent.php: -------------------------------------------------------------------------------- 1 | mail = $mail; 28 | $this->customValidator = $customValidator; 29 | } 30 | 31 | /** 32 | * @return Mail 33 | */ 34 | public function getMail(): Mail 35 | { 36 | return $this->mail; 37 | } 38 | 39 | /** 40 | * @return CustomValidator 41 | */ 42 | public function getCustomValidator(): CustomValidator 43 | { 44 | return $this->customValidator; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Classes/Events/FormControllerConfirmationActionEvent.php: -------------------------------------------------------------------------------- 1 | mail = $mail; 28 | $this->formController = $formController; 29 | } 30 | 31 | /** 32 | * @return Mail 33 | */ 34 | public function getMail(): Mail 35 | { 36 | return $this->mail; 37 | } 38 | 39 | /** 40 | * @return FormController 41 | */ 42 | public function getFormController(): FormController 43 | { 44 | return $this->formController; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Classes/Events/FormControllerInitializeObjectEvent.php: -------------------------------------------------------------------------------- 1 | settings = $settings; 27 | $this->formController = $formController; 28 | } 29 | 30 | /** 31 | * @return array 32 | */ 33 | public function getSettings(): array 34 | { 35 | return $this->settings; 36 | } 37 | 38 | /** 39 | * @param array $settings 40 | * @return FormControllerInitializeObjectEvent 41 | */ 42 | public function setSettings(array $settings): FormControllerInitializeObjectEvent 43 | { 44 | $this->settings = $settings; 45 | return $this; 46 | } 47 | 48 | /** 49 | * @return FormController 50 | */ 51 | public function getFormController(): FormController 52 | { 53 | return $this->formController; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Classes/Events/GetNewPathAndFilenameEvent.php: -------------------------------------------------------------------------------- 1 | pathAndFilename = $pathAndFilename; 29 | $this->file = $file; 30 | } 31 | 32 | /** 33 | * @return string 34 | */ 35 | public function getPathAndFilename(): string 36 | { 37 | return $this->pathAndFilename; 38 | } 39 | 40 | /** 41 | * @param string $pathAndFilename 42 | * @return GetNewPathAndFilenameEvent 43 | */ 44 | public function setPathAndFilename(string $pathAndFilename): GetNewPathAndFilenameEvent 45 | { 46 | $this->pathAndFilename = $pathAndFilename; 47 | return $this; 48 | } 49 | 50 | /** 51 | * @return File 52 | */ 53 | public function getFile(): File 54 | { 55 | return $this->file; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Classes/Events/MailRepositoryGetVariablesWithMarkersFromMailEvent.php: -------------------------------------------------------------------------------- 1 | variables = $variables; 29 | $this->mail = $mail; 30 | } 31 | 32 | /** 33 | * @return array 34 | */ 35 | public function getVariables(): array 36 | { 37 | return $this->variables; 38 | } 39 | 40 | /** 41 | * @param array $variables 42 | * @return MailRepositoryGetVariablesWithMarkersFromMailEvent 43 | */ 44 | public function setVariables(array $variables): MailRepositoryGetVariablesWithMarkersFromMailEvent 45 | { 46 | $this->variables = $variables; 47 | return $this; 48 | } 49 | 50 | /** 51 | * @return Mail 52 | */ 53 | public function getMail(): Mail 54 | { 55 | return $this->mail; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Classes/Events/UploadServiceGetFilesEvent.php: -------------------------------------------------------------------------------- 1 | uploadService = $uploadService; 21 | } 22 | 23 | /** 24 | * @return UploadService 25 | */ 26 | public function getUploadService(): UploadService 27 | { 28 | return $this->uploadService; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/Events/UploadServicePreflightEvent.php: -------------------------------------------------------------------------------- 1 | uploadService = $uploadService; 21 | } 22 | 23 | /** 24 | * @return UploadService 25 | */ 26 | public function getUploadService(): UploadService 27 | { 28 | return $this->uploadService; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/Exception/ClassDoesNotExistException.php: -------------------------------------------------------------------------------- 1 | isFeatureEnabled($arguments['conditionParameters'][0])) { 16 | return true; 17 | } 18 | return false; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Classes/Utility/CsvUtility.php: -------------------------------------------------------------------------------- 1 | setTo([$receiverEmail => '']); 32 | $message->setFrom([$senderEmail => 'Sender']); 33 | $message->setSubject($subject); 34 | $message->text($body); 35 | $message->send(); 36 | return $message->isSent(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Classes/Utility/MathematicUtility.php: -------------------------------------------------------------------------------- 1 | findAllWrongLocalizedForms(); 25 | return count($forms) === 0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Be/CheckWrongLocalizedPagesViewHelper.php: -------------------------------------------------------------------------------- 1 | findAllWrongLocalizedPages(); 25 | return count($pages) === 0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Be/ExtMngConfigViewHelper.php: -------------------------------------------------------------------------------- 1 | 2; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Be/IsAdminViewHelper.php: -------------------------------------------------------------------------------- 1 | folder)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/FileExistsViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('file', 'string', 'Relative path to a file', true); 21 | } 22 | 23 | /** 24 | * @return bool 25 | */ 26 | public function render(): bool 27 | { 28 | return file_exists(GeneralUtility::getFileAbsFileName($this->arguments['file'])); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsAllowedToEditViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('mail', Mail::class, 'Mail object', true); 23 | $this->registerArgument('settings', 'array', 'TypoScript settings', false, []); 24 | } 25 | 26 | /** 27 | * Check if logged in User is allowed to edit 28 | * 29 | * @return bool 30 | * @throws DBALException 31 | */ 32 | public function render(): bool 33 | { 34 | return FrontendUtility::isAllowedToEdit($this->arguments['settings'], $this->arguments['mail']); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsArrayViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('val', 'string', 'Value'); 25 | } 26 | 27 | /** 28 | * @param array $arguments 29 | * @param \Closure $renderChildrenClosure 30 | * @param RenderingContextInterface $renderingContext 31 | * 32 | * @return string 33 | */ 34 | public static function renderStatic( 35 | array $arguments, 36 | \Closure $renderChildrenClosure, 37 | RenderingContextInterface $renderingContext 38 | ) { 39 | return is_array($arguments['val']); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsBackendUserAllowedToViewFieldViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('table', 'string', 'Tablename', true); 21 | $this->registerArgument('field', 'string', 'Fieldname', true); 22 | } 23 | 24 | /** 25 | * Check if Backend User is allowed to see this field 26 | * 27 | * @return bool 28 | */ 29 | public function render(): bool 30 | { 31 | return BackendUtility::getBackendUserAuthentication()->check( 32 | 'non_exclude_fields', 33 | $this->arguments['table'] . ':' . $this->arguments['field'] 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsComposerModeViewHelper.php: -------------------------------------------------------------------------------- 1 | isDevelopment(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsImageViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('path', 'string', 'Path', true); 33 | } 34 | 35 | /** 36 | * Check if Path or File is an image 37 | * 38 | * @return bool 39 | */ 40 | public function render(): bool 41 | { 42 | $fileInfo = pathinfo($this->arguments['path']); 43 | return in_array($fileInfo['extension'], $this->imageExtensions); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsIpInformationEnabledGloballyViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('val', 'string', 'Value', true); 21 | } 22 | 23 | /** 24 | * @return bool 25 | */ 26 | public function render(): bool 27 | { 28 | return StringUtility::isNotEmpty($this->arguments['val']); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsNumberViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('val', 'string', 'Value'); 27 | } 28 | 29 | /** 30 | * @param array $arguments 31 | * @param \Closure $renderChildrenClosure 32 | * @param RenderingContextInterface $renderingContext 33 | * 34 | * @return string 35 | */ 36 | public static function renderStatic( 37 | array $arguments, 38 | \Closure $renderChildrenClosure, 39 | RenderingContextInterface $renderingContext 40 | ) { 41 | return is_numeric($arguments['val']); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/IsStringInStringViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('haystack', 'string', 'Haystack', true); 20 | $this->registerArgument('needle', 'string', 'Needle', true); 21 | } 22 | 23 | /** 24 | * Check if there is a string in another string 25 | * 26 | * @return bool 27 | */ 28 | public function render(): bool 29 | { 30 | return stristr($this->arguments['haystack'], $this->arguments['needle']) !== false; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Condition/OrViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('array', 'array', 'Array with strings', true); 20 | $this->registerArgument('string', 'string', 'String to compare', false, ''); 21 | } 22 | 23 | /** 24 | * @return bool 25 | */ 26 | public function render(): bool 27 | { 28 | $string = $this->arguments['string']; 29 | foreach ($this->arguments['array'] as $value) { 30 | if (!empty($string) && $value) { 31 | return true; 32 | } 33 | if (!empty($string) && $value === $string) { 34 | return true; 35 | } 36 | } 37 | return false; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Getter/GetDevelopmentContextEmailViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('uid', 'int', 'UID', true); 22 | } 23 | 24 | /** 25 | * get tx_powermail_domain_model_field.title from .uid 26 | * 27 | * @return string 28 | */ 29 | public function render(): string 30 | { 31 | $result = ''; 32 | $fieldRepository = GeneralUtility::makeInstance(FieldRepository::class); 33 | $field = $fieldRepository->findByUid($this->arguments['uid']); 34 | if (method_exists($field, 'getTitle')) { 35 | $result = $field->getTitle(); 36 | } 37 | return $result; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Getter/GetFieldMarkerFromUidViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('uid', 'int', 'UID', true); 22 | } 23 | 24 | /** 25 | * Get tx_powermail_domain_model_field.marker from .uid 26 | * 27 | * @return string 28 | */ 29 | public function render(): string 30 | { 31 | $result = ''; 32 | $fieldRepository = GeneralUtility::makeInstance(FieldRepository::class); 33 | $field = $fieldRepository->findByUid($this->arguments['uid']); 34 | if (method_exists($field, 'getMarker')) { 35 | $result = $field->getMarker(); 36 | } 37 | return $result; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Getter/GetPageNameFromUidViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('uid', 'int', 'UID', false, 0); 22 | } 23 | 24 | /** 25 | * @return string 26 | */ 27 | public function render(): string 28 | { 29 | $pageRepository = GeneralUtility::makeInstance(PageRepository::class); 30 | return $pageRepository->getPageNameFromUid((int)$this->arguments['uid']); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Getter/GetPagesWithContentRelatedToFormViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('form', Form::class, 'Form', true); 23 | } 24 | 25 | /** 26 | * Get Pages with contents which are related to a tt_content-powermail-plugin 27 | * 28 | * @return array 29 | */ 30 | public function render(): array 31 | { 32 | $pageRepository = GeneralUtility::makeInstance(PageRepository::class); 33 | return $pageRepository->getPagesWithContentRelatedToForm($this->arguments['form']); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Misc/BackendEditLinkViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('tableName', 'string', 'tableName', true); 22 | $this->registerArgument('identifier', 'int', 'identifier', true); 23 | $this->registerArgument('addReturnUrl', 'bool', 'addReturnUrl', false, true); 24 | } 25 | 26 | /** 27 | * @return string 28 | * @throws RouteNotFoundException 29 | */ 30 | public function render(): string 31 | { 32 | return BackendUtility::createEditUri( 33 | $this->arguments['tableName'], 34 | (int)$this->arguments['identifier'], 35 | $this->arguments['addReturnUrl'] 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Misc/ContentElementViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('uid', 'int', 'tt_content.uid', true); 27 | } 28 | 29 | /** 30 | * Parse a content element 31 | * 32 | * @return string 33 | */ 34 | public function render(): string 35 | { 36 | $contentObject = GeneralUtility::makeInstance(ContentObjectRenderer::class); 37 | $configuration = [ 38 | 'tables' => 'tt_content', 39 | 'source' => (int)$this->arguments['uid'], 40 | 'dontCheckPid' => 1, 41 | ]; 42 | return $contentObject->cObjGetSingle('RECORDS', $configuration); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Misc/MorestepClassViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('activate', 'bool', 'Activate', true); 20 | $this->registerArgument('class', 'string', 'classname', false, 'powermail_morestep'); 21 | } 22 | 23 | /** 24 | * @return string 25 | */ 26 | public function render(): string 27 | { 28 | if (!empty($this->arguments['activate'])) { 29 | return $this->arguments['class']; 30 | } 31 | return ''; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/EncodeViewHelper.php: -------------------------------------------------------------------------------- 1 | renderChildren()); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/EscapeLabelsViewHelper.php: -------------------------------------------------------------------------------- 1 | renderChildren(); 34 | if ($this->isHtmlEnabled() === false) { 35 | $string = htmlspecialchars($string); 36 | } 37 | return $string; 38 | } 39 | 40 | /** 41 | * @return bool 42 | */ 43 | protected function isHtmlEnabled(): bool 44 | { 45 | $configurationService = GeneralUtility::makeInstance(ConfigurationService::class); 46 | $settings = $configurationService->getTypoScriptSettings(); 47 | return ($settings['misc']['htmlForLabels'] ?? '') === '1'; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/ExplodeViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('string', 'string', 'Any list (e.g. "a,b,c,d")', false, ''); 21 | $this->registerArgument('separator', 'string', 'Separator sign (e.g. ",")', false, ','); 22 | $this->registerArgument('trim', 'bool', 'Should be trimmed?', false, true); 23 | } 24 | 25 | /** 26 | * @return array 27 | */ 28 | public function render(): array 29 | { 30 | return GeneralUtility::trimExplode( 31 | $this->arguments['separator'], 32 | $this->arguments['string'], 33 | $this->arguments['trim'] 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/RemoveQuoteViewHelper.php: -------------------------------------------------------------------------------- 1 | renderChildren()); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/SanitizeCsvCellViewHelper.php: -------------------------------------------------------------------------------- 1 | renderChildren()); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/UpperViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('string', 'string', 'Any string', true); 20 | } 21 | 22 | /** 23 | * @return string 24 | */ 25 | public function render(): string 26 | { 27 | return ucfirst($this->arguments['string']); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/String/Utf8ToUtf16ViewHelper.php: -------------------------------------------------------------------------------- 1 | renderChildren(), 'UTF-16LE', 'UTF-8'); 32 | return $string; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Validation/FieldTypeFromValidationViewHelper.php: -------------------------------------------------------------------------------- 1 | 'email', 20 | 2 => 'url', 21 | 3 => 'tel', 22 | 4 => 'number', 23 | 6 => 'number', 24 | 7 => 'number', 25 | 8 => 'range', 26 | ]; 27 | 28 | /** 29 | * @return void 30 | */ 31 | public function initializeArguments() 32 | { 33 | parent::initializeArguments(); 34 | $this->registerArgument('field', Field::class, 'Field', true); 35 | } 36 | 37 | /** 38 | * @return string 39 | */ 40 | public function render(): string 41 | { 42 | /** @var Field $field */ 43 | $field = $this->arguments['field']; 44 | if (!$this->isNativeValidationEnabled()) { 45 | return 'text'; 46 | } 47 | if (array_key_exists($field->getValidation(), $this->html5InputTypes)) { 48 | return $this->html5InputTypes[$field->getValidation()]; 49 | } 50 | return 'text'; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Validation/IsHonepodEnabledViewHelper.php: -------------------------------------------------------------------------------- 1 | getTypoScriptSettings(); 24 | return ConfigurationUtility::isValidationEnabled($settings, HoneyPodMethod::class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Validation/PasswordValidationDataAttributeViewHelper.php: -------------------------------------------------------------------------------- 1 | isClientValidationEnabled()) { 28 | /** @var Field $field */ 29 | $field = $this->arguments['field']; 30 | $additionalAttributes['data-powermail-equalto'] = '#powermail_field_' . $field->getMarker(); 31 | $additionalAttributes['data-powermail-equalto-message'] = 32 | LocalizationUtility::translate('validationerror_password'); 33 | } 34 | 35 | return $additionalAttributes; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Configuration/Backend/Routes.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'path' => '/powermail/list', 6 | 'target' => \In2code\Powermail\Controller\ModuleController::class . '::listAction', 7 | ], 8 | 'powermail_formoverview' => [ 9 | 'path' => '/powermail/formoverview', 10 | 'target' => \In2code\Powermail\Controller\ModuleController::class . '::overviewBeAction', 11 | ], 12 | 'powermail_reportingform' => [ 13 | 'path' => '/powermail/reportingform', 14 | 'target' => \In2code\Powermail\Controller\ModuleController::class . '::reportingFormBeAction', 15 | ], 16 | 'powermail_reportingmarketing' => [ 17 | 'path' => '/powermail/reportingmarketing', 18 | 'target' => \In2code\Powermail\Controller\ModuleController::class . '::reportingMarketingBeAction', 19 | ], 20 | 'powermail_functioncheck' => [ 21 | 'path' => '/powermail/functioncheck', 22 | 'target' => \In2code\Powermail\Controller\ModuleController::class . '::checkBeAction', 23 | ], 24 | 'powermail_downloadfile' => [ 25 | 'path' => '/powermail/downloadfile', 26 | 'target' => \In2code\Powermail\Controller\ModuleController::class . '::downloadFile', 27 | ], 28 | ]; 29 | -------------------------------------------------------------------------------- /Configuration/Commands.php: -------------------------------------------------------------------------------- 1 | [ 13 | 'class' => ExportCommand::class, 14 | 'schedulable' => true, 15 | ], 16 | 'powermail:resetMarkers' => [ 17 | 'class' => ResetMarkersCommand::class, 18 | 'schedulable' => true, 19 | ], 20 | 'powermail:cleanupUploads' => [ 21 | 'class' => CleanupUploadsCommand::class, 22 | 'schedulable' => true, 23 | ], 24 | 'powermail:cleanupExports' => [ 25 | 'class' => CleanupExportsCommand::class, 26 | 'schedulable' => true, 27 | ], 28 | 'powermail:cleanupUnusedUploads' => [ 29 | 'class' => CleanupUnusedUploadsCommand::class, 30 | 'schedulable' => true, 31 | ], 32 | ]; 33 | -------------------------------------------------------------------------------- /Configuration/ExpressionLanguage.php: -------------------------------------------------------------------------------- 1 | [ 7 | PowermailTypoScriptConditionProvider::class, 8 | ], 9 | ]; 10 | -------------------------------------------------------------------------------- /Configuration/Extbase/Persistence/Classes.php: -------------------------------------------------------------------------------- 1 | [ 12 | 'tableName' => 'fe_users', 13 | ], 14 | UserGroup::class => [ 15 | 'tableName' => 'fe_groups', 16 | ], 17 | BackendUser::class => [ 18 | 'tableName' => 'be_users', 19 | ], 20 | BackendUserGroup::class => [ 21 | 'tableName' => 'be_groups', 22 | ], 23 | ]; 24 | -------------------------------------------------------------------------------- /Configuration/Icons.php: -------------------------------------------------------------------------------- 1 | [ 5 | \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, 6 | 'source' => 'EXT:powermail/Resources/Public/Icons/powermail.svg', 7 | ], 8 | ]; 9 | -------------------------------------------------------------------------------- /Configuration/TCA/Overrides/sys_template.php: -------------------------------------------------------------------------------- 1 | | 13 | 14 | # example: fill checkboxes or multiselect with more values 15 | # category.0 = TEXT 16 | # category.0.value = IT 17 | # category.1 = TEXT 18 | # category.1.value = Real Estate 19 | 20 | # example: fill with value from Field Record 21 | # available: uid, title, type, settings, css, feuserValue, mandatory, marker, pid, prefillValue, senderEmail, senderName, sorting, validation 22 | # comment = TEXT 23 | # comment.field = type 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Main/Configuration/23_SaveSession.typoscript: -------------------------------------------------------------------------------- 1 | ################## 2 | # Save submitted values in a session to prefill forms for further visits. Define each markername for all forms. 3 | ################## 4 | plugin.tx_powermail.settings.setup { 5 | saveSession { 6 | # EXAMPLE: Method "temporary" means as long as the browser is open. "permanently" could be used together with a frontend-user session. If method is empty, saveSession is deactivated. 7 | # _method = temporary 8 | # 9 | # firstname = TEXT 10 | # firstname.field = firstname 11 | # 12 | # lastname = TEXT 13 | # lastname.field = lastname 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Main/Configuration/30_Finisher.typoscript: -------------------------------------------------------------------------------- 1 | ################## 2 | # Finisher classes that will be called after submit 3 | ################## 4 | plugin.tx_powermail.settings.setup { 5 | finishers { 6 | # Powermail finishers 7 | 10.class = In2code\Powermail\Finisher\SaveToAnyTableFinisher 8 | 20.class = In2code\Powermail\Finisher\SendParametersFinisher 9 | 100.class = In2code\Powermail\Finisher\RedirectFinisher 10 | 11 | # EXAMPLE: Add your own finishers classes (e.g. if you want to do something with form values by your own: Save into tables, call an API, make your own redirect etc...) 12 | # 1 { 13 | # Classname that should be called with method *Finisher() 14 | # class = Vendor\Ext\Finisher\DoSomethingFinisher 15 | 16 | # optional: Add configuration for your PHP 17 | # config { 18 | # foo = bar 19 | 20 | # fooCObject = TEXT 21 | # fooCObject.value = do something with this text 22 | # } 23 | 24 | # optional: If file will not be loaded from autoloader, add path and it will be called with require_once 25 | # require = fileadmin/powermail/finisher/DoSomethingFinisher.php 26 | # } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Main/Configuration/31_DataProcessors.typoscript: -------------------------------------------------------------------------------- 1 | ################## 2 | # DataProcessor classes that will be called before the mail object will be persisted and used in mails 3 | ################## 4 | plugin.tx_powermail.settings.setup { 5 | dataProcessors { 6 | # Powermail data processors 7 | 10.class = In2code\Powermail\DataProcessor\UploadDataProcessor 8 | 20.class = In2code\Powermail\DataProcessor\SessionDataProcessor 9 | 10 | # EXAMPLE Add your own data processor classes (e.g. if you want to do something with form values by your own before they are used in powermail to persist or in mails) 11 | # 1 { 12 | # Classname that should be called with method *Finisher() 13 | # class = Vendor\Ext\Finisher\DoSomethingFinisher 14 | 15 | # optional: Add configuration for your PHP 16 | # config { 17 | # foo = bar 18 | 19 | # fooCObject = TEXT 20 | # fooCObject.value = do something with this text 21 | # } 22 | 23 | # optional: If file will not be loaded from autoloader, add path and it will be called with require_once 24 | # require = fileadmin/powermail/finisher/DoSomethingFinisher.php 25 | # } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Main/Configuration/33_Debug.typoscript: -------------------------------------------------------------------------------- 1 | ################## 2 | # Switch on or off Debug mode 3 | ################## 4 | plugin.tx_powermail.settings.setup { 5 | debug { 6 | # All views: Show Settings from TypoScript, Flexform and Extension Manager 7 | settings = {$plugin.tx_powermail.settings.misc.debugSettings} 8 | 9 | # Create view: Show submitted variables 10 | variables = {$plugin.tx_powermail.settings.misc.debugVariables} 11 | 12 | # Create view: Show complete mail settings 13 | mail = {$plugin.tx_powermail.settings.misc.debugMail} 14 | 15 | # Create view: Show saveToTable array 16 | saveToTable = {$plugin.tx_powermail.settings.misc.debugSaveToTable} 17 | 18 | # Create view: Show spamtest results 19 | spamshield = {$plugin.tx_powermail.settings.misc.debugSpamshield} 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Main/Configuration/40_Includes.typoscript: -------------------------------------------------------------------------------- 1 | page { 2 | includeJSFooter { 3 | powermailForm = EXT:powermail/Resources/Public/JavaScript/Powermail/Form.min.js 4 | powermailForm.defer = 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Main/setup.typoscript: -------------------------------------------------------------------------------- 1 | @import 'EXT:powermail/Configuration/TypoScript/Main/Configuration/*.typoscript' 2 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Powermail_Frontend/constants.typoscript: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Configuration/TypoScript/Powermail_Frontend/constants.typoscript -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BackendUserRights.md: -------------------------------------------------------------------------------- 1 | # Backend User Rights 2 | 3 | ## Introduction 4 | 5 | A backend user without administration rights is not able to manage all fields in a powermail form by default. 6 | Maybe the Plugin looks like: 7 | 8 | ![userrights_plugin_failure](../Images/userrights_plugin_failure.png) 9 | 10 | ## Solution 11 | 12 | The user is not able to see the powermail fields. The problem is simple to solve. 13 | The admin should have a look into "Page Content: Plugin" and after that into 14 | "Page Content Plugin Options powermail_pi1" in the user or usergroup record. 15 | 16 | ![userrights_plugin](../Images/userrights_plugin.png) 17 | 18 | ![userrights_flexform](../Images/userrights_flexform.png) 19 | 20 | After having all access rights, the plugin will look like: 21 | 22 | ![plugin_tab1](../Images/plugin_tab1.png) 23 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BestPractice/AjaxSubmit.md: -------------------------------------------------------------------------------- 1 | # AJAX Submit 2 | 3 | If you want to use submit via AJAX, you can enable this in TypoScript Setup (jQuery is needed for AJAX functions) 4 | 5 | `plugin.tx_powermail.settings.setup.misc.ajaxSubmit = 1` 6 | 7 | ![bestpractice_ajax](../../Images/bestpractice_ajax.png) 8 | 9 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BestPractice/ChangingLabels.md: -------------------------------------------------------------------------------- 1 | # Overwrite Labels and Validation messages 2 | 3 | You can overwrite any label in powermail via TypoScript Setup. 4 | Have a look into locallang.xlf (EXT:powermail/Resources/Private/Language/locallang.xlf) for getting the relevant keys, 5 | that you want to overwrite (e.g. validationerror_mandatory). 6 | 7 | ``` 8 | plugin.tx_powermail { 9 | _LOCAL_LANG.default.validationerror_mandatory = Please insert a value 10 | _LOCAL_LANG.de.validationerror_mandatory = Bitte Pflichtfeld ausfüllen 11 | } 12 | ``` 13 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BestPractice/SaveSession.md: -------------------------------------------------------------------------------- 1 | # Save values to a session 2 | 3 | You can save values after a submit to a session. 4 | This could be helpful if a user should not fill out a form field twice. 5 | So a form could be prefilled with values that a user submitted before. 6 | 7 | You can also use TypoScript stdWrap functionallity to manipulate those values. 8 | 9 | See following example: 10 | 11 | ``` 12 | plugin.tx_powermail.settings.setup { 13 | 14 | # Save submitted values in a session to prefill forms for further visits. Define each markername for all forms. 15 | saveSession { 16 | # Method "temporary" means as long as the browser is open. "permanently" could be used together with a frontend-user session. If method is empty, saveSession is deactivated. 17 | _method = temporary 18 | 19 | firstname = TEXT 20 | firstname.field = firstname 21 | 22 | lastname = TEXT 23 | lastname.field = lastname 24 | } 25 | } 26 | ``` 27 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BestPractice/SetPidForNewForms.md: -------------------------------------------------------------------------------- 1 | # Set PID for new forms 2 | 3 | Maybe you want to define where new forms should be saved if editors are using the add link in plugin, you can do this 4 | with a bit of page TSConfig. 5 | 6 | ![bestpractice_setpidfornewforms](../../Images/bestpractice_setpidfornewforms.png) 7 | 8 | ``` 9 | # Save new forms on page 123 10 | tx_powermail.flexForm.newFormPid = 123 11 | ``` 12 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BestPractice/TypoScriptConditions.md: -------------------------------------------------------------------------------- 1 | # TypoScript Conditions 2 | 3 | Powermail offers 2 conditions, that could make your live easier 4 | 5 | ## If a powermail form was submitted 6 | 7 | ``` 8 | [isPowermailSubmitted()] 9 | // Yes, powermail just submitted, add own stuff 10 | [end] 11 | ``` 12 | 13 | ## If a powermail plugin is included into current page 14 | 15 | ``` 16 | [isPowermailOnCurrentPage()] 17 | // Powermail plugin Pi1 (Form) is on the current page, add own stuff (include CSS or JS, etc...) 18 | [end] 19 | 20 | [isPowermailOnCurrentPage(['powermail_pi1', 'powermail_pi1'])] 21 | // Any powermail plugin Pi1 (Form) or Pi2 (Powermail Frontend) is on the current page, add own stuff 22 | [end] 23 | ``` 24 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/BestPractice/UniqueValues.md: -------------------------------------------------------------------------------- 1 | # Unique Values 2 | 3 | As you may know from powermail 1.x you can enforce that every value of a field should only exist once. 4 | This could be helpful if you want to start a competition with powermail and every email should only saved once. 5 | 6 | ``` 7 | plugin.tx_powermail.settings.setup.validation { 8 | unique { 9 | # Enable unique check for {email} - every email must be unique on the page where mails are stored 10 | email = 1 11 | 12 | # Enable a max limit of 3 times for the same entry for {event} 13 | event = 3 14 | } 15 | } 16 | ``` 17 | -------------------------------------------------------------------------------- /Documentation/ForAdministrators/Index.md: -------------------------------------------------------------------------------- 1 | # For administrators 2 | 3 | This chapter describes how you can install and configure powermail on your TYPO3 instance 4 | 5 | * [Installation](Installation.md) (Install powermail the right way) 6 | * [BackendUserRights](BackendUserRights.md) (How to configure powermail for your editors) 7 | * [PowermailFrontend](PowermailFrontend.md) (Powermail can also show mails in a frontend context) 8 | * [SchedulerTasks](SchedulerTasks.md) (Schedulertasks and Commands for administrative tasks) 9 | * [BestPractice](BestPractice.md) (A large best practice chapter for frequently asked tasks) 10 | * [Privacy](Privacy.md) (What about GDPR and privacy in powermail?) 11 | * [Upgrade](Upgrade.md) (Some upgrade notes to powermail) 12 | -------------------------------------------------------------------------------- /Documentation/ForDevelopers/AddNewFlexFormProperties.md: -------------------------------------------------------------------------------- 1 | # Add new FlexForm properties 2 | 3 | ## Introduction 4 | 5 | If you want to add new fields to the FlexForm in the plugin, you can simply use a bit of Page TSConfig to do this. 6 | Of course you can access values in new fields with `{settings}` if the fieldname starts with 7 | "settings". 8 | 9 | ![developer_new_flexformfield](../Images/developer_new_flexformfield.png) 10 | 11 | ## Example TSConfig 12 | 13 | ``` 14 | tx_powermail.flexForm.addField.settings\.flexform\.main\.test._sheet = main 15 | tx_powermail.flexForm.addField.settings\.flexform\.main\.test.label = New Field XX 16 | tx_powermail.flexForm.addField.settings\.flexform\.main\.test.config.type = input 17 | tx_powermail.flexForm.addField.settings\.flexform\.main\.test.config.eval = trim 18 | ``` 19 | 20 | 21 | ## Additional notes 22 | 23 | * It's only possible to extend the FlexForm of Pi1 at the moment 24 | * Allowed sheets are: main, receiver, sender, thx 25 | * Once you've added a new field and the editor saves values to the new field, you have access in all templates (e.g. {settings.main.test}) 26 | * Of course you could also use TYPO3 localization features in sheet labels (e.g. with LLL:EXT:ext/path/locallang_db.xlf:key) 27 | * New fields will be added at the end of the sheet 28 | * In this example only a default input field is rendered. See TCA documentation of TYPO3 which fieldtypes are possible. 29 | -------------------------------------------------------------------------------- /Documentation/ForDevelopers/DatabaseModel.md: -------------------------------------------------------------------------------- 1 | # Database Model 2 | 3 | ![developer_database_model](../Images/developer_database_model.jpg) 4 | -------------------------------------------------------------------------------- /Documentation/ForDevelopers/Index.md: -------------------------------------------------------------------------------- 1 | # For developers 2 | 3 | Powermail can be extended in similar ways. If you want to execute something on a submit, look at the Finisher Classes. 4 | If you want to add own spamshield methods, look in this chapter, etc... 5 | 6 | * [AddFinisherClasses](/ForDevelopers/AddFinisherClasses.md) 7 | * [AddSpamshieldMethods](/ForDevelopers/AddSpamshieldMethods.md) 8 | * [DisableSpamshield](/ForDevelopers/DisableSpamshield.md) 9 | * [EventDispatcher](/ForDevelopers/EventDispatcher.md) 10 | * [AddNewFields](/ForDevelopers/AddNewFields.md) 11 | * [AddNewFieldProperties](/ForDevelopers/AddNewFieldProperties.md) 12 | * [AddNewFlexFormProperties](/ForDevelopers/AddNewFlexFormProperties.md) 13 | * [WriteOwnValidators](/ForDevelopers/WriteOwnValidators.md) 14 | * [AddDataProcessors](/ForDevelopers/AddDataProcessors.md) 15 | * [UserfuncsWithCobject](/ForDevelopers/UserfuncsWithCobject.md) 16 | * [DatabaseModel](/ForDevelopers/DatabaseModel.md) 17 | * [Local Development with Docker](/ForDevelopers/LocalDevelopment.md) 18 | -------------------------------------------------------------------------------- /Documentation/ForEditors/Index.md: -------------------------------------------------------------------------------- 1 | # For editors 2 | 3 | This chapter describes how to work with powermail from the view of an editor. 4 | 5 | * [Add new forms](AddNewForms.md) (store it on a central point and reuse it as often you want) 6 | * [Add new plugins](AddNewPlugins.md) (frontend output of your forms) 7 | * [Backend module](BackendModule.md) to manage mails and forms 8 | -------------------------------------------------------------------------------- /Documentation/Images/backend1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend1.png -------------------------------------------------------------------------------- /Documentation/Images/backend2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend2.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_export.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_filter.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_formoverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_formoverview.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_functioncheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_functioncheck.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_list.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_menu.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_menu2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_menu2.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_reportingform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_reportingform.png -------------------------------------------------------------------------------- /Documentation/Images/backend_module_reportingmarketing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/backend_module_reportingmarketing.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_ajax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_ajax.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_developmentcontext1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_developmentcontext1.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_developmentcontext2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_developmentcontext2.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_filterformselection1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_filterformselection1.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_filterformselection2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_filterformselection2.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_predefinedreceivers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_predefinedreceivers1.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_predefinedreceivers2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_predefinedreceivers2.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_setpidfornewforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_setpidfornewforms.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_spamshield1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_spamshield1.png -------------------------------------------------------------------------------- /Documentation/Images/bestpractice_spamshield2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/bestpractice_spamshield2.jpg -------------------------------------------------------------------------------- /Documentation/Images/developer_cobject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_cobject.png -------------------------------------------------------------------------------- /Documentation/Images/developer_database_model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_database_model.jpg -------------------------------------------------------------------------------- /Documentation/Images/developer_new_fieldproperties1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_fieldproperties1.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_fieldproperties2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_fieldproperties2.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_fields1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_fields1.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_fields2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_fields2.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_flexformfield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_flexformfield.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_validation1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_validation1.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_validation2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_validation2.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_validationtype1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_validationtype1.png -------------------------------------------------------------------------------- /Documentation/Images/developer_new_validationtype2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/developer_new_validationtype2.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_captcha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_captcha.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_checkbox.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_content.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_country.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_country.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_date.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_file.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_html.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_input.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_label.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_location.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_password.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_radio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_radio.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_reset.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_select.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_select_multi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_select_multi.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_submit.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_textarea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_textarea.png -------------------------------------------------------------------------------- /Documentation/Images/example_field_typoscript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/example_field_typoscript.png -------------------------------------------------------------------------------- /Documentation/Images/extension_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/extension_manager.png -------------------------------------------------------------------------------- /Documentation/Images/extension_manager2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/extension_manager2.png -------------------------------------------------------------------------------- /Documentation/Images/extension_manager3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/extension_manager3.png -------------------------------------------------------------------------------- /Documentation/Images/faq_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/faq_style.png -------------------------------------------------------------------------------- /Documentation/Images/frontend1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/frontend1.png -------------------------------------------------------------------------------- /Documentation/Images/frontend2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/frontend2.png -------------------------------------------------------------------------------- /Documentation/Images/frontend_pi2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/frontend_pi2.png -------------------------------------------------------------------------------- /Documentation/Images/plugin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin1.png -------------------------------------------------------------------------------- /Documentation/Images/plugin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin2.png -------------------------------------------------------------------------------- /Documentation/Images/pluginInformation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/pluginInformation.png -------------------------------------------------------------------------------- /Documentation/Images/plugin_pi2_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin_pi2_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/plugin_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/plugin_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/plugin_tab3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin_tab3.png -------------------------------------------------------------------------------- /Documentation/Images/plugin_tab4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/plugin_tab4.png -------------------------------------------------------------------------------- /Documentation/Images/powermail_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/powermail_icon.png -------------------------------------------------------------------------------- /Documentation/Images/powermail_records.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/powermail_records.png -------------------------------------------------------------------------------- /Documentation/Images/prefill_frontend_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/prefill_frontend_output.png -------------------------------------------------------------------------------- /Documentation/Images/prefill_select_typoscript1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/prefill_select_typoscript1.png -------------------------------------------------------------------------------- /Documentation/Images/prefill_select_typoscript2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/prefill_select_typoscript2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_captcha_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_captcha_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_captcha_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_captcha_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_check_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_check_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_check_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_check_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_content_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_content_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_content_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_content_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_country_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_country_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_country_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_country_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_date_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_date_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_date_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_date_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_file_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_file_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_file_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_file_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_hidden_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_hidden_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_hidden_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_hidden_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_html_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_html_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_html_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_html_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_input_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_input_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_input_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_input_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_location_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_location_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_location_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_location_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_password_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_password_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_password_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_password_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_radio_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_radio_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_radio_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_radio_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_reset_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_reset_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_reset_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_reset_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_select_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_select_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_select_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_select_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_submit_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_submit_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_submit_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_submit_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_text_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_text_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_text_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_text_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_textarea_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_textarea_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_textarea_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_textarea_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_typoscript_tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_typoscript_tab1.png -------------------------------------------------------------------------------- /Documentation/Images/record_field_typoscript_tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_field_typoscript_tab2.png -------------------------------------------------------------------------------- /Documentation/Images/record_form_detail1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_form_detail1.png -------------------------------------------------------------------------------- /Documentation/Images/record_page_detail1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/record_page_detail1.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_cleanexportfiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_cleanexportfiles.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_cleanunusedfiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_cleanunusedfiles.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_cleanupload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_cleanupload.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_export1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_export1.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_export2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_export2.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_export3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_export3.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_garbage_collector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_garbage_collector.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_resetmarkers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_resetmarkers1.png -------------------------------------------------------------------------------- /Documentation/Images/scheduler_resetmarkers2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/scheduler_resetmarkers2.png -------------------------------------------------------------------------------- /Documentation/Images/static_templates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/static_templates.png -------------------------------------------------------------------------------- /Documentation/Images/upgrade_wizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/upgrade_wizard.png -------------------------------------------------------------------------------- /Documentation/Images/userrights_flexform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/userrights_flexform.png -------------------------------------------------------------------------------- /Documentation/Images/userrights_plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/userrights_plugin.png -------------------------------------------------------------------------------- /Documentation/Images/userrights_plugin_failure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Documentation/Images/userrights_plugin_failure.png -------------------------------------------------------------------------------- /Documentation/Links/Index.md: -------------------------------------------------------------------------------- 1 | # Additional links 2 | 3 | You can use one of the following links, to get more informations about this plugin: 4 | 5 | All information about powermail developing, the developers behind powermail, time tracks and so on: 6 | https://github.com/einpraegsam/powermail 7 | 8 | powermail is powered by http://www.in2code.de/ 9 | 10 | Do you need help from the community: http://www.typo3.net/ 11 | 12 | Don't miss the best TYPO3 blogging page: http://www.typo3blogger.de/ 13 | 14 | Did you see some helping information on http://www.youtube.com/ => search for “powermail” 15 | -------------------------------------------------------------------------------- /Documentation/Support/Index.md: -------------------------------------------------------------------------------- 1 | # Support 2 | 3 | ## Bugfixes 4 | 5 | * A list of known bugs is viewable on GitHub https://github.com/einpraegsam/powermail/issues 6 | * If you want to support a bugfix, you can write us an email (see https://www.in2code.de) 7 | 8 | ## Features 9 | 10 | * A list of useful features is viewable at GitHub https://github.com/einpraegsam/powermail/issues 11 | * If you want to support a feature, you can write us an email (see https://www.in2code.de) 12 | 13 | ## Request 14 | 15 | * Do you need a new feature or maybe you've found a bug or maybe you want to help us? 16 | * Please add a new issue at https://github.com/einpraegsam/powermail/issues or write us an email (see https://www.in2code.de) 17 | -------------------------------------------------------------------------------- /Documentation/guides.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 16 | 27 | 28 | -------------------------------------------------------------------------------- /Resources/Private/.htaccess: -------------------------------------------------------------------------------- 1 | # Apache < 2.3 2 | 3 | Order allow,deny 4 | Deny from all 5 | Satisfy All 6 | 7 | 8 | # Apache >= 2.3 9 | 10 | Require all denied 11 | 12 | -------------------------------------------------------------------------------- /Resources/Private/Build/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@babel/preset-env", { 3 | "modules": false 4 | }]] 5 | } 6 | -------------------------------------------------------------------------------- /Resources/Private/Build/.nvmrc: -------------------------------------------------------------------------------- 1 | 14 2 | -------------------------------------------------------------------------------- /Resources/Private/Build/JavaScript/Marketing.js: -------------------------------------------------------------------------------- 1 | class Marketing { 2 | 'use strict'; 3 | 4 | initialize = function () { 5 | const that = this; 6 | that.#sendMarketingInformation(); 7 | }; 8 | 9 | #sendMarketingInformation() { 10 | const marketingInformation = document.querySelector('#powermail_marketing_information'); 11 | const url = marketingInformation.getAttribute('data-url'); 12 | 13 | let data = new URLSearchParams(); 14 | data.append('tx_powermail_pi5[language]', marketingInformation.getAttribute('data-language')); 15 | data.append('id', marketingInformation.getAttribute('data-pid')); 16 | data.append('tx_powermail_pi5[pid]', marketingInformation.getAttribute('data-pid')); 17 | data.append('tx_powermail_pi5[mobileDevice]', (this.#isMobile() ? 1 : 0)); 18 | data.append('tx_powermail_pi5[referer]', document.referrer); 19 | 20 | fetch(url, {method: 'POST', body: data, cache: 'no-cache'}); 21 | }; 22 | 23 | #isMobile() { 24 | var ua = navigator.userAgent; 25 | var checker = { 26 | iphone:ua.match(/(iPhone|iPod|iPad)/), 27 | blackberry:ua.match(/BlackBerry/), 28 | android:ua.match(/Android/) 29 | }; 30 | return (checker.iphone || checker.blackberry || checker.android); 31 | }; 32 | } 33 | 34 | let marketing = new Marketing(); 35 | marketing.initialize(); 36 | -------------------------------------------------------------------------------- /Resources/Private/Build/Sass/Basic.scss: -------------------------------------------------------------------------------- 1 | @import "Settings"; 2 | @import "Pi1"; 3 | -------------------------------------------------------------------------------- /Resources/Private/Build/Sass/Bootstrap.scss: -------------------------------------------------------------------------------- 1 | @import "BootstrapExpanded"; 2 | -------------------------------------------------------------------------------- /Resources/Private/Build/Sass/_Message.scss: -------------------------------------------------------------------------------- 1 | .powermail_message { 2 | padding: 5px 0 10px 20px; 3 | min-height: 65px; 4 | background-color: $red2; 5 | border: 1px solid $red3; 6 | background-position: 98% 10px; 7 | background-repeat: no-repeat; 8 | list-style: circle; 9 | 10 | li { 11 | padding: 5px 50px 0 0; 12 | border: none; 13 | background: none; 14 | } 15 | 16 | &.powermail_message_ok { 17 | background-image: url("/typo3conf/ext/powermail/Resources/Public/Image/icon_ok.png"); 18 | background-color: $green1; 19 | border: 1px solid $green3; 20 | 21 | li { 22 | color: $green3; 23 | } 24 | } 25 | 26 | &.powermail_message_error { 27 | background-image: url("/typo3conf/ext/powermail/Resources/Public/Image/icon_error.png"); 28 | 29 | li { 30 | color: $red3; 31 | } 32 | } 33 | 34 | &.powermail_message_note { 35 | background-image: url("/typo3conf/ext/powermail/Resources/Public/Image/icon_ok.png"); 36 | background-color: $orange1; 37 | border: 1px solid $orange3; 38 | 39 | li { 40 | color: $orange3; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Resources/Private/Build/Sass/_Settings.scss: -------------------------------------------------------------------------------- 1 | $greySoft1: #EEEEEE; 2 | $greySoft2: #BBBBBB; 3 | $greySoft3: #AAAAAA; 4 | $grey1: #444444; 5 | $blue1: #1E5799; 6 | $orange1: #FCF8E3; 7 | $orange2: #FAEBCC; 8 | $orange3: #FFCA4B; 9 | $red1: #F2DEDE; 10 | $red2: #EBCCD1; 11 | $red3: #A43431; 12 | $green1: #CDEACA; 13 | $green2: #58B548; 14 | $green3: #3B7826; 15 | -------------------------------------------------------------------------------- /Resources/Private/Build/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "powermail", 3 | "description": "Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features", 4 | "author": "in2code", 5 | "private": true, 6 | "devDependencies": { 7 | "@babel/core": "^7.16.0", 8 | "@babel/preset-env": "^7.16.4", 9 | "@rollup/plugin-babel": "^5.3.0", 10 | "@rollup/plugin-commonjs": "^21.0.1", 11 | "@rollup/plugin-node-resolve": "^13.0.6", 12 | "gulp": "^4.0.2", 13 | "gulp-plumber": "^1.2.1", 14 | "gulp-rename": "^2.0.0", 15 | "gulp-sass": "^5.0.0", 16 | "gulp-uglify": "^3.0.2", 17 | "node-sass": "^4.14.1", 18 | "rollup": "^2.61.1", 19 | "rollup-plugin-terser": "^7.0.2" 20 | }, 21 | "scripts": { 22 | "build": "./node_modules/gulp/bin/gulp.js build", 23 | "watch": "./node_modules/gulp/bin/gulp.js default" 24 | }, 25 | "dependencies": { 26 | "moment": "^2.29.2" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Resources/Private/Build/readme.md: -------------------------------------------------------------------------------- 1 | Please refer to the contibutors guide in the documentation 2 | 3 | [Contributors Guide](../../../Documentation/ForContributors/Readme.md) 4 | -------------------------------------------------------------------------------- /Resources/Private/Build/rollup.config.js: -------------------------------------------------------------------------------- 1 | const babel = require('@rollup/plugin-babel').babel; 2 | const resolve = require('@rollup/plugin-node-resolve').default; 3 | const commonjs = require('@rollup/plugin-commonjs'); 4 | const { terser } = require('rollup-plugin-terser'); 5 | 6 | module.exports = { 7 | input: './JavaScript/Form.js', 8 | plugins: [ 9 | resolve({ 10 | browser: true 11 | }), 12 | commonjs({ 13 | sourceMap: false 14 | }), 15 | babel({ 16 | exclude: './node_modules/**', 17 | babelHelpers: 'bundled' 18 | }), 19 | terser() 20 | ], 21 | output: { 22 | file: '../../Public/JavaScript/Powermail/Form.min.js', 23 | format: 'iife' 24 | }, 25 | }; 26 | -------------------------------------------------------------------------------- /Resources/Private/Fonts/Segment16.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Private/Fonts/Segment16.txt -------------------------------------------------------------------------------- /Resources/Private/Fonts/Segment16cBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Private/Fonts/Segment16cBold.ttf -------------------------------------------------------------------------------- /Resources/Private/Image/captcha_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Private/Image/captcha_bg.png -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_csh_tx_powermail_domain_model_answers.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | This is the Answer of a User within this field 8 | 9 | 10 | Datatype of this answer 11 | 12 | 13 | The answer is related to this field 14 | 15 | 16 | This is the related mail to this answer 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_csh_tx_powermail_domain_model_forms.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | Enter a title for this form 7 | 8 | 9 | Add one or more pages to this form 10 | 11 | 12 | Choose a Layout (This may change the Frontend Rendering - please ask your administrator for more information) 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_csh_tx_powermail_domain_model_pages.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Add a description to this page 8 | 9 | 10 | Add some fields to your form 11 | 12 | 13 | Choose a Layout (This may change the Frontend Rendering - please ask your administrator for more information) 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/ContentElements/Export/Default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Overwrite the default content element layout for export files to remove the wrapper div 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Default.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Export.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Mail.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/PowermailAll.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Captcha.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Check.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 8 |
9 | 20 |
21 |
22 | 23 | 24 |
25 |
26 |
27 |
28 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Content.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 |
5 | 6 |
7 |
8 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Country.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | {vh:form.countries()} will try to get the country list from the extension static_info_tables (and _de, _fr etc...) 5 | If static_info_tables is not installed, a static list of countries and the ISO3 code will be shown in frontend 6 | If you want to change sorting, Value or Label, please install static_info_tables 7 | 8 | 9 |
10 | 11 | 12 |
13 | 21 |
22 |
23 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Date.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/File.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 12 | 13 | 14 |
    15 | 16 |
  • 17 | {file} 18 | 19 |
  • 20 |
    21 |
  • 22 | Delete All Files 23 |
  • 24 |
25 |
26 |
27 |
28 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Hidden.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Html.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Per default the HTML-Output is parsed through a htmlspecialchars() function for security reasons. 5 | If you are aware of possible security issues from your editory, you can enable html output via TypoScript constants: 6 | plugin.tx_powermail.settings.setup.misc.htmlForHtmlFields = 1 7 | 8 | 9 |
10 |
11 | 12 | 13 | {field.text -> f:format.raw()} 14 | 15 | 16 | {field.text} 17 | 18 | 19 |
20 |
21 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Input.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 15 |
16 |
17 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Location.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 8 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Radio.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 8 |
9 | 19 |
20 |
21 | 22 | 23 |
24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Reset.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Select.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Submit.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Text.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | {field.text} 5 |
6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Textarea.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 | 5 | 6 |
7 | 16 |
17 |
18 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Field/Typoscript.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/FieldLabel.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Partial file for the HTML-structure of nearly all field labels 5 | 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Form/Page.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 |
3 | 4 | {page.title} 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Mail/DisclaimerLink.html: -------------------------------------------------------------------------------- 1 | 2 |

3 | Do you want to delete your request?
4 | delete 5 |

6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Misc/FlashMessages.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Misc/GoogleAdwordsConversion.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 17 | 18 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Misc/HoneyPod.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 |
5 | 8 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Misc/MarketingInformation.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |

4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 27 | 28 | 29 | 30 | 31 | 32 |
7 | 8 |
14 | 15 | {value} 23 | 24 | > 25 | 26 |
33 |
34 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/CheckWrongLocalizedForms.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | Localized Forms 9 |

10 |
11 |
12 |

13 | No failures found 14 |

15 |
16 |
17 |
18 | 19 |
20 |

21 | Localized Forms 22 |

23 |
24 |

25 | Broken localized Forms found 26 |

27 | 28 | 29 |

Please backup before!

30 |
31 |
32 |
33 |
34 |
35 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/CheckWrongLocalizedPages.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | Localized Pages 9 |

10 |
11 |
12 |

13 | No failures found 14 |

15 |
16 |
17 |
18 | 19 |
20 |

21 | Localized Pages 22 |

23 |
24 |

25 | Broken localized Pages found 26 |

27 | 28 | 29 |

Please backup before!

30 |
31 |
32 |
33 |
34 |
35 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/ExtMngConfig.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | 9 |

10 |
11 |
12 |

13 | 14 |

15 |
16 |
17 |
18 | 19 |
20 |

21 | 22 |

23 |
24 |

25 | 26 |

27 |
28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/Mode.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 |
3 |
4 |

5 | Composer mode 6 |

7 |
8 |
9 |

10 | 11 | 12 | Composer Mode 13 | 14 | 15 | Classic Mode 16 | 17 | 18 |

19 |
20 |
21 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/Session.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | 9 |

10 |
11 |
12 |

13 | 14 |

15 |
16 |
17 |
18 | 19 |
20 |

21 | 22 |

23 |
24 |

25 | 26 |

27 |
28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/StaticTemplate.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | 9 |

10 |
11 |
12 |

13 | 14 | ({pid}) 15 |

16 |
17 |
18 |
19 | 20 |
21 |

22 | 23 |

24 |
25 |

26 | 27 | ({pid}) 28 |

29 |
30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/T3Version.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | 9 |

10 |
11 |
12 |

13 | 14 |

15 |
16 |
17 |
18 | 19 |
20 |

21 | 22 |

23 |
24 |

25 | 26 |

27 |
28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/CheckBe/UploadsFolder.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 |

8 | 9 |

10 |
11 |
12 |

13 | 14 |

15 |
16 |
17 |
18 | 19 |
20 |

21 | 22 |

23 |
24 |

25 | 26 |

27 | 28 | 29 | 30 |
31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/Filter.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Forward to this action in dispatchAction 15 | 16 | 17 | 18 | 19 | Keep Sorting on filter or export 20 | 21 | 22 | 23 | 24 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/JsAndCssImport.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/SearchButtons.html: -------------------------------------------------------------------------------- 1 |
2 | 6 | extended search 7 | 8 | 9 | 12 | delete filters 13 | 14 | 15 | 19 |
20 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Module/SelectedLineMessage.html: -------------------------------------------------------------------------------- 1 |
2 | 0 records selected: 3 | 4 | 5 |
-------------------------------------------------------------------------------- /Resources/Private/Partials/Output/Abc.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 |
4 |
5 |
    6 | 7 | 8 | 9 |
  • {letter}
  • 10 |
    11 | 12 |
  • {letter}
  • 13 |
    14 |
    15 |
    16 | 17 | 18 |
  • 19 |
    20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Output/EditHidden.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Resources/Private/Partials/PowermailAll/Mail.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Mail: {mail} 5 | Answer: {answer} 6 | 7 | 8 | 9 | 10 | {answer.field.title} 11 | 12 | 13 | 14 | 15 | {answer.value} 16 | 17 | 18 | 19 | 20 | {subValue}, 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Resources/Private/Partials/PowermailAll/Web.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Mail: {mail} 5 | Answer: {answer} 6 | 7 | 8 | 9 | 10 | {answer.field.title} 11 | 12 | 13 | 14 | 15 | {answer.value} 16 | 17 | 18 | 19 | 20 | {subValue}, 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Form/Disclaimer.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Render Powermail Disclaimer Message 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | Mail deleted 17 | 18 | 19 | Mail not deleted 20 | 21 | 22 |
23 |
24 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Form/OptinConfirm.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Render Powermail Confirm Failed Page 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | The given Link is not correct 15 |
16 |
17 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Form/ValidateAjax.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {"error": "{error.message}"} 4 | 5 | 6 | {"success": "validation ok"} 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Log/SpamNotification.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | ---------------------------------------------------- 3 | 4 | {time} 5 | 6 | PID: {pid} 7 | Spamfactor of this mail: {calculatedMailSpamFactor} 8 | Failed Spamchecks: 9 | - {message} 10 | 11 | Given Form variables: 12 | - {answer.field.title}: 13 | 14 | 15 | 16 | {value} 17 | 18 | 19 | 20 | {answer.value} 21 | 22 | 23 | 24 | Senders IP addess: {ipAddress} 25 | 26 | Complete request array: 27 | {requestPlain} 28 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Mail/DisclaimedNotificationMail.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Render Powermail Disclaimer Notification Mail 5 | This Mail is send to the receiver(s) if a sender disclaimed a mail 6 | 7 | 8 | {mail} Complete Mail Object 9 | {settings} TypoScript Settings 10 | 11 | 12 | 13 |
14 | 15 | 16 | {powermail_all} 17 | 18 |
19 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Mail/OptinMail.html: -------------------------------------------------------------------------------- 1 | {namespace vh=In2code\Powermail\ViewHelpers} 2 | 3 | 4 | Render Powermail Optin Mail 5 | This Mail is send back to the user with an Optin Link that has to be clicked 6 | Mail will only be send, if Optin was enabled by editor 7 | 8 | 9 | {mail} Complete Mail Object 10 | {hash} Hash for optin URI 11 | {settings} TypoScript Settings 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |


24 |
25 | 26 | 27 | {powermail_all} 28 | 29 | 30 | 31 |
32 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Module/ExportTaskMail.html: -------------------------------------------------------------------------------- 1 | New powermail export mail. 2 | 3 | You can download the export file under: 4 | {export.additionalProperties.domain}{export.relativePathAndFileName} -------------------------------------------------------------------------------- /Resources/Private/Templates/Module/List.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | Show Backend Module: Powermail List 10 | 11 | 12 | 13 | 14 | 15 |

16 | 17 | 18 | Filter Area 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |

33 |

34 |
35 |
36 |
37 | 38 |
39 | 40 | 41 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Output/Delete.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render Delete Message 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | Go back 13 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Public/Icons/relation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/relation.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_answer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_answer.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_field.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_field.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_field__h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_field__h.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_field__ht.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_field__ht.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_field__t.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_field__t.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_form.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_form.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_form__h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_form__h.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_form__ht.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_form__ht.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_form__t.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_form__t.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_mail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_mail.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_mail__h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_mail__h.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_mail__t.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_mail__t.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_page.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_page.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_page__h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_page__h.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_page__ht.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_page__ht.gif -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_powermail_domain_model_page__t.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Icons/tx_powermail_domain_model_page__t.gif -------------------------------------------------------------------------------- /Resources/Public/Image/chart_form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/chart_form.png -------------------------------------------------------------------------------- /Resources/Public/Image/chart_form_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/chart_form_overview.png -------------------------------------------------------------------------------- /Resources/Public/Image/chart_function_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/chart_function_check.png -------------------------------------------------------------------------------- /Resources/Public/Image/chart_marketing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/chart_marketing.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon-check.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon-notchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon-notchecked.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon_calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_calendar.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon_csv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_csv.gif -------------------------------------------------------------------------------- /Resources/Public/Image/icon_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_error.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_loading.gif -------------------------------------------------------------------------------- /Resources/Public/Image/icon_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_ok.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon_rss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_rss.gif -------------------------------------------------------------------------------- /Resources/Public/Image/icon_sorting_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_sorting_asc.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon_sorting_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_sorting_desc.png -------------------------------------------------------------------------------- /Resources/Public/Image/icon_xls.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/icon_xls.gif -------------------------------------------------------------------------------- /Resources/Public/Image/upload_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in2code-de/powermail/c690974bc691904b9c31bb62fc895970e9905208/Resources/Public/Image/upload_bg.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/Powermail/Marketing.min.js: -------------------------------------------------------------------------------- 1 | class Marketing{"use strict";initialize=function(){this.#sendMarketingInformation()};#sendMarketingInformation(){var e=document.querySelector("#powermail_marketing_information"),t=e.getAttribute("data-url"),i=new URLSearchParams;i.append("tx_powermail_pi5[language]",e.getAttribute("data-language")),i.append("id",e.getAttribute("data-pid")),i.append("tx_powermail_pi5[pid]",e.getAttribute("data-pid")),i.append("tx_powermail_pi5[mobileDevice]",this.#isMobile()?1:0),i.append("tx_powermail_pi5[referer]",document.referrer),fetch(t,{method:"POST",body:i,cache:"no-cache"})}#isMobile(){var e=navigator.userAgent,t=e.match(/(iPhone|iPod|iPad)/),i=e.match(/BlackBerry/),e=e.match(/Android/);return t||i||e}}let marketing=new Marketing;marketing.initialize(); -------------------------------------------------------------------------------- /crowdin.yaml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /Resources/Private/Language/ 3 | translation: /%original_path%/%two_letters_code%.%original_file_name% 4 | -------------------------------------------------------------------------------- /ext_emconf.php: -------------------------------------------------------------------------------- 1 | 'powermail', 5 | 'description' => 'Powermail is a well-known, editor-friendly, powerful 6 | and easy to use mailform extension with a lots of features 7 | (spam prevention, marketing information, optin, ajax submit, diagram analysis, etc...)', 8 | 'category' => 'plugin', 9 | 'version' => '12.5.1', 10 | 'state' => 'stable', 11 | 'author' => 'Powermail Development Team', 12 | 'author_email' => 'service@in2code.de', 13 | 'author_company' => 'in2code.de', 14 | 'constraints' => [ 15 | 'depends' => [ 16 | 'typo3' => '12.2.0-12.5.99', 17 | 'php' => '8.1.0 - 8.3.99' 18 | ], 19 | 'conflicts' => [ 20 | ], 21 | 'suggests' => [ 22 | 'base_excel' => '', 23 | 'static_info_tables' => '' 24 | ], 25 | ], 26 | ]; 27 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Tests/Unit/ 14 | 15 | 16 | 17 | 18 | Classes/ 19 | 20 | 21 | 22 | --------------------------------------------------------------------------------