From 7f1580a5f99fa2fd70d2bfe74ea66deb0c4a1f38 Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Mon, 30 Jan 2023 13:57:50 +0100 Subject: [PATCH 01/11] Extend User Model --- Classes/Domain/Model/Domain/User.php | 30 +++++++++++++++++++ Configuration/Extbase/Persistence/Classes.php | 13 ++++++++ ext_tables.sql | 3 ++ 3 files changed, 46 insertions(+) create mode 100644 Classes/Domain/Model/Domain/User.php create mode 100644 Configuration/Extbase/Persistence/Classes.php create mode 100644 ext_tables.sql diff --git a/Classes/Domain/Model/Domain/User.php b/Classes/Domain/Model/Domain/User.php new file mode 100644 index 0000000..d5e1184 --- /dev/null +++ b/Classes/Domain/Model/Domain/User.php @@ -0,0 +1,30 @@ +friendlyCaptcha; + } + + /** + * @param int $friendlyCaptcha + */ + public function setFriendlyCaptcha(int $friendlyCaptcha): void + { + $this->friendlyCaptcha = $friendlyCaptcha; + } + + +} \ No newline at end of file diff --git a/Configuration/Extbase/Persistence/Classes.php b/Configuration/Extbase/Persistence/Classes.php new file mode 100644 index 0000000..3f62cc4 --- /dev/null +++ b/Configuration/Extbase/Persistence/Classes.php @@ -0,0 +1,13 @@ + [ + 'subclasses' => [ + \BalatD\FriendlyCaptcha\Domain\Model\Domain\User::class + ] + ], + \BalatD\FriendlyCaptcha\Domain\Model\Domain\User::class => [ + 'tableName' => 'fe_users', + 'recordType' => 0, + ], +]; \ No newline at end of file diff --git a/ext_tables.sql b/ext_tables.sql new file mode 100644 index 0000000..c9eabee --- /dev/null +++ b/ext_tables.sql @@ -0,0 +1,3 @@ +CREATE TABLE fe_users ( + friendly_captcha tinyint(1) NOT NULL DEFAULT '0' +); \ No newline at end of file From bc03ac8fc0d34d0ddddacfbb2dedae5ec23fdb07 Mon Sep 17 00:00:00 2001 From: Christian Scheibelhut Date: Fri, 27 Jan 2023 18:44:58 +0100 Subject: [PATCH 02/11] Add FeManager Custom Field FriendlyCaptcha --- .../Ext/FeManager/customfields.tsconfig | 14 ++++++++++++ .../Ext/FeManager/fieldvalidations.typoscript | 22 +++++++++++++++++++ .../TypoScript/Ext/FeManager/setup.typoscript | 10 +++++++++ Configuration/TypoScript/setup.typoscript | 8 +++++++ .../FeManager/Fields/FriendlyCaptcha.html | 15 +++++++++++++ ext_localconf.php | 4 ++++ 6 files changed, 73 insertions(+) create mode 100644 Configuration/TSconfig/Ext/FeManager/customfields.tsconfig create mode 100644 Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript create mode 100644 Configuration/TypoScript/Ext/FeManager/setup.typoscript create mode 100644 Resources/Private/Partials/FeManager/Fields/FriendlyCaptcha.html diff --git a/Configuration/TSconfig/Ext/FeManager/customfields.tsconfig b/Configuration/TSconfig/Ext/FeManager/customfields.tsconfig new file mode 100644 index 0000000..462b39e --- /dev/null +++ b/Configuration/TSconfig/Ext/FeManager/customfields.tsconfig @@ -0,0 +1,14 @@ +tx_femanager { + flexForm { + new { + addFieldOptions { + friendlyCaptcha = FriendlyCaptcha + } + } + edit{ + addFieldOptions { + friendlyCaptcha = FriendlyCaptcha + } + } + } +} \ No newline at end of file diff --git a/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript b/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript new file mode 100644 index 0000000..96202f4 --- /dev/null +++ b/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript @@ -0,0 +1,22 @@ +plugin.tx_femanager.settings { + new { + validation { + _enable.client = 1 + _enable.server = 1 + + friendlyCaptcha { + required = 1 + } + } + } + edit { + validation { + _enable.client = 1 + _enable.server = 1 + + friendlyCaptcha { + required = 1 + } + } + } +} \ No newline at end of file diff --git a/Configuration/TypoScript/Ext/FeManager/setup.typoscript b/Configuration/TypoScript/Ext/FeManager/setup.typoscript new file mode 100644 index 0000000..fa6ed98 --- /dev/null +++ b/Configuration/TypoScript/Ext/FeManager/setup.typoscript @@ -0,0 +1,10 @@ +plugin.tx_femanager { + view { + partialRootPaths { + 0 = EXT:femanager/Resources/Private/Partials/ + 50 = EXT:db_friendlycaptcha/Resources/Private/Partials/FeManager/ + } + } +} + + \ No newline at end of file diff --git a/Configuration/TypoScript/setup.typoscript b/Configuration/TypoScript/setup.typoscript index 8ce932c..3a728cf 100755 --- a/Configuration/TypoScript/setup.typoscript +++ b/Configuration/TypoScript/setup.typoscript @@ -22,3 +22,11 @@ page.includeJSFooterlibs{ friendlycaptcha = https://unpkg.com/friendly-challenge@0.8.3/widget.min.js friendlycaptcha.external = 1 } + + +// Includes FeManager + + + +// Includes FeManager + diff --git a/Resources/Private/Partials/FeManager/Fields/FriendlyCaptcha.html b/Resources/Private/Partials/FeManager/Fields/FriendlyCaptcha.html new file mode 100644 index 0000000..700233b --- /dev/null +++ b/Resources/Private/Partials/FeManager/Fields/FriendlyCaptcha.html @@ -0,0 +1,15 @@ +{namespace frc=BalatD\FriendlyCaptcha\ViewHelpers} +{namespace femanager=In2code\Femanager\ViewHelpers} + +
+ +
+
\ No newline at end of file diff --git a/ext_localconf.php b/ext_localconf.php index 6bade3f..0b88d4c 100755 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -18,4 +18,8 @@ 1999 = EXT:db_friendlycaptcha/Configuration/Yaml/FormEditorSetup.yaml } '); + + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(' + + '); }); From 2bcfb5703305d7188b85ccc795d14be73a000597 Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Mon, 30 Jan 2023 14:55:34 +0100 Subject: [PATCH 03/11] Add Validation For FeManager Custom Field FriendlyCaptcha --- .../Domain/Validator/ClientsideValidator.php | 21 +++++++++++++++++++ .../Domain/Validator/ServersideValidator.php | 21 +++++++++++++++++++ .../Ext/FeManager/fieldvalidations.typoscript | 4 ++++ ext_localconf.php | 12 +++++++++++ 4 files changed, 58 insertions(+) create mode 100644 Classes/Domain/Validator/ClientsideValidator.php create mode 100644 Classes/Domain/Validator/ServersideValidator.php diff --git a/Classes/Domain/Validator/ClientsideValidator.php b/Classes/Domain/Validator/ClientsideValidator.php new file mode 100644 index 0000000..f697ca4 --- /dev/null +++ b/Classes/Domain/Validator/ClientsideValidator.php @@ -0,0 +1,21 @@ +validate($value)->hasErrors(); + } +} \ No newline at end of file diff --git a/Classes/Domain/Validator/ServersideValidator.php b/Classes/Domain/Validator/ServersideValidator.php new file mode 100644 index 0000000..ea5a87a --- /dev/null +++ b/Classes/Domain/Validator/ServersideValidator.php @@ -0,0 +1,21 @@ +validate($value)->hasErrors(); + } +} \ No newline at end of file diff --git a/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript b/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript index 96202f4..b06c84a 100644 --- a/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript +++ b/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript @@ -6,6 +6,8 @@ plugin.tx_femanager.settings { friendlyCaptcha { required = 1 + # custom validation method: + friendlyCaptcha = 1 } } } @@ -16,6 +18,8 @@ plugin.tx_femanager.settings { friendlyCaptcha { required = 1 + # custom validation method: + friendlyCaptcha = 1 } } } diff --git a/ext_localconf.php b/ext_localconf.php index 0b88d4c..b6e3697 100755 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -22,4 +22,16 @@ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(' '); + + $extbaseObjectContainer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\Container\Container::class); + $extbaseObjectContainer + ->registerImplementation( + \In2code\Femanager\Domain\Validator\ServersideValidator::class, + \BalatD\FriendlyCaptcha\Domain\Validator\ServersideValidator::class + ); + $extbaseObjectContainer + ->registerImplementation( + \In2code\Femanager\Domain\Validator\ClientsideValidator::class, + \BalatD\FriendlyCaptcha\Domain\Validator\ClientsideValidator::class + ); }); From 93d76a0ab445db47d668d44deb90c95e0a6e8898 Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Mon, 30 Jan 2023 14:56:01 +0100 Subject: [PATCH 04/11] Adjust Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5b0636..17605c5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ### **STILL WIP** -A TYPO3 Extension that brings the Friendly Captcha functionality to EXT:form, based on the work of EXT:recaptcha. +A TYPO3 Extension that brings the Friendly Captcha functionality to EXT:form and EXT:femanager, based on the work of EXT:recaptcha. ## Installation ### Composer From f6486da3a160aaf971129c7a676f69a68559cad1 Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Mon, 30 Jan 2023 15:17:59 +0100 Subject: [PATCH 05/11] Remove FeManager's Default PartialRootPaths.0 From TypoScript --- Configuration/TypoScript/Ext/FeManager/setup.typoscript | 1 - 1 file changed, 1 deletion(-) diff --git a/Configuration/TypoScript/Ext/FeManager/setup.typoscript b/Configuration/TypoScript/Ext/FeManager/setup.typoscript index fa6ed98..d352008 100644 --- a/Configuration/TypoScript/Ext/FeManager/setup.typoscript +++ b/Configuration/TypoScript/Ext/FeManager/setup.typoscript @@ -1,7 +1,6 @@ plugin.tx_femanager { view { partialRootPaths { - 0 = EXT:femanager/Resources/Private/Partials/ 50 = EXT:db_friendlycaptcha/Resources/Private/Partials/FeManager/ } } From dcb8756d6d94ec9f9826ba13a45bfc19b49cf915 Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Mon, 30 Jan 2023 15:19:11 +0100 Subject: [PATCH 06/11] Remove Duplicate TypoScript Include --- Configuration/TypoScript/setup.typoscript | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Configuration/TypoScript/setup.typoscript b/Configuration/TypoScript/setup.typoscript index 3a728cf..7bd3012 100755 --- a/Configuration/TypoScript/setup.typoscript +++ b/Configuration/TypoScript/setup.typoscript @@ -23,10 +23,5 @@ page.includeJSFooterlibs{ friendlycaptcha.external = 1 } - -// Includes FeManager - - - // Includes FeManager From 76a0021ded76430778fb0a15aa29b5040106a06f Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Mon, 30 Jan 2023 16:18:04 +0100 Subject: [PATCH 07/11] Add Validation Error Localizations For English And German --- .../TypoScript/Ext/FeManager/setup.typoscript | 3 ++- .../TypoScript/Ext/FeManager/translation.typoscript | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 Configuration/TypoScript/Ext/FeManager/translation.typoscript diff --git a/Configuration/TypoScript/Ext/FeManager/setup.typoscript b/Configuration/TypoScript/Ext/FeManager/setup.typoscript index d352008..35a9ebe 100644 --- a/Configuration/TypoScript/Ext/FeManager/setup.typoscript +++ b/Configuration/TypoScript/Ext/FeManager/setup.typoscript @@ -6,4 +6,5 @@ plugin.tx_femanager { } } - \ No newline at end of file + + \ No newline at end of file diff --git a/Configuration/TypoScript/Ext/FeManager/translation.typoscript b/Configuration/TypoScript/Ext/FeManager/translation.typoscript new file mode 100644 index 0000000..aaa9f58 --- /dev/null +++ b/Configuration/TypoScript/Ext/FeManager/translation.typoscript @@ -0,0 +1,12 @@ +plugin.tx_femanager { + _LOCAL_LANG { + en { + tx_femanager_domain_model_user.friendlyCaptcha = FriendlyCaptcha + validationErrorFriendlyCaptcha = FriendlyCaptcha required + } + de { + tx_femanager_domain_model_user.friendlyCaptcha = FriendlyCaptcha + validationErrorFriendlyCaptcha = FriendlyCaptcha erforderlich + } + } +} From cd048d5a0354265e832dafc728393159b7cd8e49 Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Tue, 31 Jan 2023 11:10:25 +0100 Subject: [PATCH 08/11] Remove FriendlyCaptcha Validation From FeManager::Edit --- .../Ext/FeManager/fieldvalidations.typoscript | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript b/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript index b06c84a..deedb06 100644 --- a/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript +++ b/Configuration/TypoScript/Ext/FeManager/fieldvalidations.typoscript @@ -11,16 +11,4 @@ plugin.tx_femanager.settings { } } } - edit { - validation { - _enable.client = 1 - _enable.server = 1 - - friendlyCaptcha { - required = 1 - # custom validation method: - friendlyCaptcha = 1 - } - } - } } \ No newline at end of file From da34c58064812f6ba8336060f909266fd933481b Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Wed, 1 Feb 2023 12:02:42 +0100 Subject: [PATCH 09/11] Add UserRepository --- Classes/Domain/Repository/UserRepository.php | 8 ++++++++ ext_localconf.php | 6 ++++++ 2 files changed, 14 insertions(+) create mode 100644 Classes/Domain/Repository/UserRepository.php diff --git a/Classes/Domain/Repository/UserRepository.php b/Classes/Domain/Repository/UserRepository.php new file mode 100644 index 0000000..3bdc05a --- /dev/null +++ b/Classes/Domain/Repository/UserRepository.php @@ -0,0 +1,8 @@ + \BalatD\FriendlyCaptcha\Domain\Repository\UserRepository::class + ]; + } }); From f74da216eadbbca3fc72867ab04a674cf294e8de Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Wed, 1 Feb 2023 12:03:03 +0100 Subject: [PATCH 10/11] Suggest in2code/femanager --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 940effa..378a519 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,8 @@ ], "suggest": { - "typo3/cms-form": "^10.0" + "typo3/cms-form": "^10.0", + "in2code/femanager": "^6" }, "require": { From 7419ac831ee6b614774516c17f719871df9347bf Mon Sep 17 00:00:00 2001 From: Lukas Hormel Date: Wed, 1 Feb 2023 12:03:45 +0100 Subject: [PATCH 11/11] Move User Model To Appropriate Directory --- Classes/Domain/Model/{Domain => }/User.php | 2 +- Configuration/Extbase/Persistence/Classes.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename Classes/Domain/Model/{Domain => }/User.php (89%) diff --git a/Classes/Domain/Model/Domain/User.php b/Classes/Domain/Model/User.php similarity index 89% rename from Classes/Domain/Model/Domain/User.php rename to Classes/Domain/Model/User.php index d5e1184..ccab759 100644 --- a/Classes/Domain/Model/Domain/User.php +++ b/Classes/Domain/Model/User.php @@ -1,6 +1,6 @@ [ 'subclasses' => [ - \BalatD\FriendlyCaptcha\Domain\Model\Domain\User::class - ] + '\BalatD\FriendlyCaptcha\Domain\Model\User' => \BalatD\FriendlyCaptcha\Domain\Model\User::class, + ], ], - \BalatD\FriendlyCaptcha\Domain\Model\Domain\User::class => [ + \BalatD\FriendlyCaptcha\Domain\Model\User::class => [ 'tableName' => 'fe_users', 'recordType' => 0, ],