TYPO3 Plugin:

modules

Modules

Kleiner Helfer bei der Erstellung von Backendmodules in TYPO3. Ein Beispiel für ein Backend-Modul für TYPO3 finden Sie in der Extension internal_notes.

Definition von Datentabellen

Die Definition einer Datentabelle für das Backend kann einfach mit TypoScript erfolgen.

Achtung:

Stellen Sie sicher, dass dieses TypoScript durch eine Datei ext_typoscript_setup.txt definiert ist, so dass diese Definitionen immer vorhanden sind verfügbar!

module.tx_yourextensionkey {
    einstellungen {
        listen {

            downloadFileCollection {
                # ID der Backend-Modulliste - nehmen Sie einfach den übergeordneten Schlüssel
                id = internalNotes
                # table definiert den Namen der Datenbanktabelle für die Datensätze dieser Liste.
                tabelle = sys_note
                # Modulkennung
                module = web_InternalNotesInternalNotesInternalNotes
                # Plugin-Identifikationsnummer
                plugin = InternalNotes
                # sortingField definiert das Feld, das als Standardsortierung verwendet werden soll
                sortingField = Betreff
                # sortingOrder definiert die Standardsortierreihenfolge für das Standardsortierfeld
                sortingOrder = asc
                # Das Limit definiert, wie viele Datensätze auf jeder Seite angezeigt werden sollen
                grenzwert = 20
                # Felder/Spalten der Datentabelle
                felder {
                    # Definiere die Felder/Spalten deiner Tabelle
                }
                # Aktionen für jede Zeile der Datentabelle
                aktionen {
                    # Definieren Sie die Aktionen für Ihre Tabellenzeilen
                }
            }
            # Mehr Datentabellen auf die gleiche Weise definieren
            aSecondTable {
                # ...
            }
        }
    }
}

Tabellenfelder definieren

Der Feldschlüssel ist in Kleinbuchstaben geschrieben und stellt den Getternamen einer Model-Eigenschaft dar!

Mögliche native Formate

Parameter/Format Einfarbig PlainEditable DatumUhrzeit E-Mail Boolesch Benutzerdefiniert
sortierbar x x x x x ?
dateFormat x
ernte x x
  • crop - Crop ist ein ganzzahliger Wert und schneidet den Zellinhalt nach der definierten Anzahl von Zeichen.

Tabellenaktionen definieren

Die Tabellenaktionen werden im Knoten Aktionen definiert. In diesem Knoten können Sie die Aktionen für jede Tabellenzeile definieren.

Das könnte so aussehen:

aktionen {
    # Der Aktionsschlüssel ist der Bezeichner.
    # Dieser Schlüssel wird zusätzlich für den Übersetzungsschlüssel für den Spaltentitel verwendet.
    bearbeiten {
        aktion = Bearbeiten
        # Übersetzungsschlüssel
        # tx_modules_label.list_topic_action_edit = Thema bearbeiten
    }
    ausblendenZeigen {
        aktion = AusblendenZeigen
        # Übersetzungsschlüssel
        # tx_modules_label.list_topic_action_hide = Thema ausblenden
        # tx_modules_label.list_topic_action_show = Thema anzeigen
    }
    disableEnable { { Deaktivieren/Entfernen
        aktion = DisableEnable
    }
    löschen {
        aktion = Löschen
        # Datenfeld des Datensatzes, in dem ein Label gespeichert ist.
        # Dieses Label wird für die Sicherheitsfrage im Modal verwendet.
        subjectField = Titel
        # Übersetzungsschlüssel
        # tx_modules_label.list_topic_action_delete_title = Dieses Thema löschen?
        # tx_modules_label.list_topic_action_delete_content = Sind Sie sicher, dass Sie das Thema'%1$s' löschen wollen?
        # tx_modules_label.list_topic_action_delete_cancel = Abbrechen
    }
}

Übersetzungen

Die Definition von Übersetzungen für die Datentabellen funktioniert so:

module.tx_yourextensionkey {
    _LOKAL_LANG {
        standard {
            #
            tx_downloadmanager_label.backend_filter = Filter
            tx_downloadmanager_label.backend_filter_submit = aktualisieren

            # Meldung, wenn es keine Datensätze in der Tabelle gibt
            tx_modules_label.list_download_file_collection_no_entries = Keine Download-Dateisammlungen gefunden

            # Titel der Tabellenüberschrift
            tx_modules_label.list_download_file_collection_header = Dateisammlung herunterladen

            # Tabellenkopfspalten
            # Jeder Identifikator ist wie folgt aufgebaut:
            # tx_modules_label.list_ + list id unterstrichen + _col_ + field key
            tx_modules_label.list_download_file_collection_col_title = Titel
            tx_modules_label.list_download_file_collection_col_actions = Aktionen

            tx_modules_label.list_download_file_collection_action_edit = Download-Dateisammlung bearbeiten
            tx_modules_label.list_download_file_collection_action_hide = Download-Dateisammlung ausblenden
            tx_modules_label.list_download_file_collection_action_show = Download-Dateisammlung anzeigen
        }
        de {
            # Deutsche Übersetzung
            tx_modules_label.list_download_file_collection_no_entries = Es konnte keine Download-Datei-Dateisammlung gefunden werden
            tx_modules_label.list_download_file_collection_header = Download-Dateisammlung
            tx_modules_label.list_download_file_collection_col_title = Titel
            tx_modules_label.list_download_file_collection_col_actions = Aktionen
            tx_modules_label.list_download_file_collection_action_edit = Download-Dateisammlung bearbeiten
        }
    }
}

Verwendung von Erstellungsbenutzer, Datum oder Änderungsdatum

Wenn Sie den Erstellungsbenutzer, das Datum oder das Änderungsdatum eines TYPO3-Standarddatensatzes verwenden möchten, müssen Sie die Extbase zuordnen felder:

config.tx_extbase.persistence.classes {

    CodingMs\Newsletter\Domain\Model\Topic.mapping {
        tableName = tx_newsletters_domain_model_topic
        recordType =
        spalten {
            crdate.mapOnProperty = ErstellungDatum
            tstamp.mapOnProperty = ÄnderungDatum
            cruser_id.mapOnProperty = ErstellungBenutzer
        }
    }

}

Zusätzlich benötigen Sie den entsprechenden Getter und Setter im zugehörigen Extbase-Modell.

FAQ

Warum funktioniert die Aktion HideShow nicht wie erwartet?

Vielleicht hast du vergessen, die versteckten Eigenschaften zu deinem Modell hinzuzufügen. Fügen Sie Folgendes hinzu:

/**
 * @var boolean
 */
geschützt $hidden;

/**
 * @return bool
 */
öffentliche Funktion isHidden()
{
    gibt $this->hidden zurück;
}

/**
 * @param bool $hidden
 */
öffentliche Funktion setHidden($hidden)
{
    $this->hidden = $hidden;
}

Warum erscheint das Löschmodal nicht?

Vielleicht hast du vergessen, das benötigte RequireJs-Modul hinzuzufügen:

$pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Modal');

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.

Verteilung:MODULES ist auf

0.04 % aller TYPO3 installiert.

  • 0.27 % aller TYPO3 8.7.x Installationen installiert
  • 0.02 % aller TYPO3 7.6.x Installationen installiert

MODULES Version:Verteilung nach installierten Versionen

  • 100 % MODULES v.2.0.0

PHP Version:MODULES wird benutzt mit

  • 85.71 % PHP/7.1
  • 14.29 % PHP/5.5

Gosign-Responsive Index: TYPO3 Installationen nutzen MODULES zu

  • 93 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
  • 7 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen MODULES zu

  • 14 % wenn der Pagespeed zwischen 80 % und 100 % ist
  • 14 % wenn der Pagespeed zwischen 60 % und 80 % ist
  • 0 % wenn der Pagespeed zwischen 40 % und 60 % ist
  • 29 % wenn der Pagespeed zwischen 20 % und 40 % ist
  • 43 % wenn der Pagespeed zwischen 0 % und 20 % ist


Stichprobe n=37950 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>