Ok, eigentlich hab ich das soweit ich es verstanden hab eingerichtet.
In der services/provider.php steht jetzt fogendes:
use Joomla\CMS\Extension\Service\Provider\Module as ModuleServiceProvider;
use Joomla\CMS\Extension\Service\Provider\ModuleDispatcherFactory as ModuleDispatcherFactoryServiceProvider;
use Joomla\CMS\Extension\Service\Provider\HelperFactory as HelperFactoryServiceProvider;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
return new class () implements ServiceProviderInterface {
public function register(Container $container): void
{
$container->registerServiceProvider(new ModuleDispatcherFactoryServiceProvider('\\Joomla\\Module\\BasicForms'));
$container->registerServiceProvider(new HelperFactoryServiceProvider('\\Joomla\\Module\\BasicForms\\Site\\Helper'));
$container->registerServiceProvider(new ModuleServiceProvider());
}
};
Alles anzeigen
In src/Dispatcher/Dispatcher.php steht das:
namespace Joomla\Module\BasicForms\Site\Dispatcher;
\defined('_JEXEC') or die;
use Joomla\CMS\Dispatcher\DispatcherInterface;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Helper\ModuleHelper;
use Joomla\Module\BasicForms\Site\Helper\BasicFormsHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Form\Form;
use Joomla\CMS\Application\CMSApplicationInterface;
use Joomla\Input\Input;
use Joomla\Registry\Registry;
use Joomla\CMS\Helper\HelperFactoryAwareInterface;
use Joomla\CMS\Helper\HelperFactoryAwareTrait;
class Dispatcher implements DispatcherInterface, HelperFactoryAwareInterface {
use HelperFactoryAwareTrait;
protected $module;
protected $app;
public function __construct(\stdClass $module, CMSApplicationInterface $app, Input $input) {
$this->module = $module;
$this->app = $app;
}
public function dispatch() {
...
Alles anzeigen
Das Ajax-Script wird wie folgt aufgerufen:
$(\'#form_'.$form_id.'\').submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: \'?option=com_ajax&module=basic_forms&method=get&format=json\',
type: \'POST\',
data: formData,
processData: false,
contentType: false,
success: function(response) {
...
},
error: function(jqXHR, textStatus, errorThrown) {
...
}
});
});
Alles anzeigen
Und die Funktion in der src/Helper/BasicFormsHelper.php ist wie folgt benannt (Funktionsinhalt ist nur ein Beispiel):
public static function getAjax() {
$response = array(
'state' => 0,
'message' => 'MEINE MITTEILUNG',
);
return new JsonResponse($response);
Factory::getApplication()->close();
}
Alles anzeigen
Ich kann erstmal nichts erkennen was fehlt. Oder habe ich was übersehen?
Mirko