sorry, natürlich...
dadurch, dass ich mehreres ausprobiert habe habe ich nicht DEN einen Weg, aber hier die zwei, die mir am vielversprechendsten vorkamen:
Weg 1 (Contao Dokumentation)
1. Unter "app/Resources/contao/config" die Datei "config.php" angelegt:
PHP-Code:
<?php
// app/Resources/contao/config/config.php
use App\EventListener\LoadFormFieldListener;
$GLOBALS['TL_HOOKS']['loadFormField'][] = [LoadFormFieldListener::class, '__invoke'];
2. Unter "vendor/contao/core-bundle/src/EventListener" die Datei "LoadFormFieldListener.php" angelegt:
PHP-Code:
<?php
// src/EventListener/LoadFormFieldListener.php
namespace App\EventListener;
use Contao\CoreBundle\ServiceAnnotation\Hook;
use Contao\Form;
use Contao\Widget;
/**
* @Hook("loadFormField")
*/
class LoadFormFieldListener
{
public function __invoke(Widget $widget, string $formId, array $formData, Form $form): Widget
{
if ('63' === $formId) {
$widget->class.= 'ManipulateForm';
}
return $widget;
}
}
Hier bin ich mir mit der Konfiguration absolut unsicher, allerdings wird ja schon die Klasse nicht anerkannt, sodass ich hier noch nicht herausfinden konnte wie was dann wirklich funktioniert.
3. In der composer.json den autoload-Eintrag hinzugefügt:
PHP-Code:
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
4. Mittels Contao Manager den Anwendungs-Cache geleert.
-> führte (beim Laden von Seiten mit Formularen) zum besagten Fehler
5. Composer Class Loader über den Manager ausgeführt
-> gleicher Fehler
Weg 2 (Ideen aus dem Forum / von anderen Websites)
1. Anlegen der Modul-Ordnerstruktur unter "system/modules":
ManipulateForm
-config
2. Unter "system/modules/ManipulateForm" die Datei "ManipulateForm.php" angelegt:
PHP-Code:
<?php
class ManipulateForm extends Backend
{
public function CoastLoadFormField(Widget $objWidget, $strForm, $arrForm)
{
if ($arrForm['id'] == '63' && $objWidget->id == '817') {
$arrOptions = array();
}
return $objWidget;
}
}
3. Unter "system/modules/ManipulateForm/config" die Datei "config.php" angelegt:
PHP-Code:
<?php
$GLOBALS['TL_HOOKS']['loadFormField'][] = array('ManipulateForm', 'CoastLoadFormField');
4. Mittels Contao Manager den Anwendungs-Cache geleert.
-> führte (beim Laden von Seiten mit Formularen) zum Fehler:
Code:
[2021-08-27 14:31:43] request.CRITICAL: Uncaught PHP Exception RuntimeException: "System::import() failed because class "ManipulateForm" is not a valid class name or does not exist." at /html/domain.de/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php line 198 {"exception":"[object] (RuntimeException(code: 0): System::import() failed because class \"ManipulateForm\" is not a valid class name or does not exist. at /html/domain.de/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php:198)"} []
5. Composer Class Loader über den Manager ausgeführt
-> gleicher Fehler
Lesezeichen