Zum Inhalt springen

TYPO3 12 Backend-Modul – Wie speichere ich eine Checkbox und rufe sie im Frontend ab?

Erstellt am 6. März 2025 · Noch keine Antworten

Tags: Frage

lenjka ·

Hallo TYPO3-Community,

ich erstelle aktuell ein eigenes Backend-Modul in TYPO3 12 und möchte dort eine Checkbox speichern, sodass ich ihren Wert im Frontend (Fluid) abrufen kann.

Ich habe das Backend-Modul erfolgreich erstellt mit Hilfe dieses Videos:
https://www.youtube.com/watch?v=hnksXYtFgbY

Allerdings wird im Video (und auch sonst nirgends) erläutert, wie man Eingaben speichert und weiterverarbeitet.

Meine aktuelle Konfiguration:

BackendController.php

<?php

namespace LjBarrierefrei\Controller;

use TYPO3\CMS\Backend\Attribute\AsController;
use TYPO3\CMS\Backend\Template\ModuleTemplateFactory;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use Psr\Http\Message\ResponseInterface;

#[AsController]
final class BackendController extends ActionController
{
    public function __construct(
        protected readonly ModuleTemplateFactory $moduleTemplateFactory,
    ) {
    }

    public function indexAction(): ResponseInterface
    {
        $this->view->assign('someVar', 'someContent');
        $moduleTemplate = $this->moduleTemplateFactory->create($this->request);

        $moduleTemplate->setContent($this->view->render());
        return $this->htmlResponse($moduleTemplate->renderContent());
    }
}

Fluid-Template Index.html (Backend-Modul UI)

<div class="m-lg-5 border p-4">
    <h1>Barrierefrei Einstellungen</h1>
    <p>Hier können Sie die Moduleinstellungen konfigurieren.</p>
    <f:form action="save">
        <label>
            <f:form.checkbox name="enable_barrierefrei" value="1" checked="{enableBarrierefrei}" />
            Barrierefreiheit aktivieren
        </label>
        <f:form.submit value="Speichern" />
    </f:form>
</div>

Meine Frage:

Wie kann ich den Wert der Checkbox richtig speichern, sodass:
✅ Die Einstellung auch nach einem Speichern erhalten bleibt
✅ Ich den Wert im Frontend abfragen kann (z. B. mit Fluid {settings.enableBarrierefrei})

Ich bin mir nicht sicher, wo und wie ich die Checkbox am besten speichere:

Soll ich die Einstellung in einer TYPO3-Datenbanktabelle speichern?
Kann ich sie auch über die TYPO3-Konfiguration ($GLOBALS['TYPO3_CONF_VARS']) setzen?
Gibt es einen Best Practice für TYPO3 12 Backend-Module, um solche Einstellungen zu speichern?

Falls jemand eine klare Anleitung oder ein Beispiel hat, wäre ich sehr dankbar!

Edit: Hm, leider funktioniert der gedöns nicht