Änderungen und Features von MM 2.3
Folgend eine Übersicht der Änderungen und Features zu MetaModels 2.3, die durch das „early adopter Programm“ ermöglicht wurden - mehr dazu unter Fundraising auf der MM Webseite.
Für einen Check nach einem Upgrade zu MM 2.3 sind unten weitere Hinweise.
Bemerkung
Zum Anlegen von mm_*-Tabellen und Spalten der Attribute muss eine DB-Migration durchgeführt werden -
siehe Schemamanager.
Nach Anlegen oder Änderungen der Bezeichnungen von Models, Attributen oder Legenden bitte den (Translation-)-Cache
löschen - siehe Symfony-Translation.
Allgemein und Core
Einbau eines neuen Schemamanagers - Mehr Infos
Einträge für Sortierung/Gruppierung haben einen Toggle-Button und können damit aktiviert/deaktiviert werden (#1380)
Hinweis für Programmierer: es gibt eine neue Klasse, mit der die Attribute nach Namen sortiert werden können (src/CoreBundle/Sorter/AttributeSorter.php) - zum Einsatz kommt diese z. B. bei der Auswahl des Attributes bei der Sortierung (die sind nun aufsteigend sortiert)
wenn die erste Sortierung angelegt wird, ist nun die Checkbox für „Standard“ vorausgewählt (#1472)
wird bei der Eingabemaske der Render-Modus auf „Hierarchie“ gestellt, erscheint nun ein Hinweis, dass die Sortierung auf „Manuell“ einzustellen ist (#1324)
die Checkbox „Variante“ bei den Attributen ist disabled, wenn das Model nicht-variant ist (#884)
die Klasse „getSearchablePages“ (Indexierung der Detailseiten) wurde komplett neu geschrieben und läuft nun effektiver/schneller
es gibt ein neues Event zum Manipulieren der Überschrift der Eingabemaske GetEditMaskSubHeadlineEvent
bei der Eingabemaske kann eingestellt werden, dass in der Überschrift der Maske beim Editieren Werte aus dem Item angezeigt werden
die Insert-Tags wurden komplett überarbeitet - bitte teilweise geänderte Syntax beachten
Anpassung an Contao-Änderung der Locale-Angaben (nun
_
statt-
) - alle Angaben von $GLOBALS[TL_LANGUAGE] als deprercated gekennzeichnetdie Sortierung beim CE/Modul hat eine Einstellung zum Anfügen eines URL-Fragments zum Ansteuern eines Ankerpunktes für
generateSortingLink
undrenderSortingLink
im Listentemplate
metamodels_prerendered
stehen zwei Methoden zur Verfügung, um für ein Attribut Links für einen Sortierwechsel auszugeben - mehr im „Kochbuch“Unterstützung des in Contao 4.10 eingebauten neuen Routings - damit kann das Legacy-Routing über die config.yml abgeschaltet werden (
legacy_routing: false
)das Sessionhandling wurde von der Contao- zur Symfony-Session umgebaut
Behandlung der Routenpriorität - siehe Setzen der Routenpriorität
bei Varianten-Items werden die nicht-variant Attribute in der Maske nun nicht mehr ausgeblendet, sondern als readonly dargestellt
Auswahlmöglichkeit der Widget-Templates für die Eingabemaske (BE) - siehe Attribute
Models, die als Kindtabelle verknüpft sind, können nun Varianten beinhalten (#1054)
Liste im BE kann nach nach Kalenderwoche gruppiert werden - die Formatierung über einen Sprachschlüssen individuell je Sprache angepasst möglich
Übersetzungen wurde vom CCA-Translator und den Global-Lang-Arrays zum Symfony-Translator umgestellt. Damit werden die Übersetzungen im entsprechenden Symfony-Message-Catalog vorgehalten und beschleunigen den Seitenaufbau im BE. Die eigenen Übersetzungen können nun auch im Xliff-Format gepflegt werden.
Im BE ist nur an wenigen Stellen etwas von dem Wechsel zu spüren - gefixt werden konnte z. B. die Tabellenansicht der Items, wenn ein Attribut der Liste nicht in der zugehörigen Eingabemaske vorhanden war. Da erschien bisher nur der Übersetzungsschlüssel - nun der entsprechende Titel des Attributes.
Bestehende eigene Übersetzungstexte, die als PHP-Array angelegt wurden, müssen in eine XLIFF-Datei übertragen werden.
Mehr zu dem Thema unter Symfony-Translationes wurde ein Wechsel des Routings vorgenommen: Die Masken von MM im BE werden künftig nicht mehr über den GET-Parameter
...contao?do=metamodels_<model-name>
angesteuert, sondern über die Route...contao/metamodels/<model-name>
. Hierdurch war eine Verschlankung z. B. die Rechtevergabe im BE möglich. Bisher mussten für die Benutzergruppen sowohl bei den Eingabe- und Renderzuordnungen („letztes Icon“) als auch bei den Benutzergruppen-Einstellungen von Contao entsprechende Klicks durchgeführt werden - die Einstellungen bei Contao sind weg gefallen und man muss nur noch in MM die Rechte zuteilen (Eingabemaske + Zuordnungen).
Mit dem neuen Routing gibt es ein Probleme mit dem Umschalten des Debugmodus im BE - Contao erwartet den wert für den Referer in einer bestimmten Form, den wir aktuell nicht einfach umschreiben können; nach dem Umschalten landet man auf einer „Defaultseite“ von Contao - weitere Auswirkungen hat das nicht (siehe „Known-Issues“).bei den Rendereinstellungen kann nun für die Links der Weiterleitungen (jumpTo) der Referenztyp zur Generierung der URL angegeben werden - z. B. ist es nun möglich, eine absolute URL inkl. Domain zu definieren; siehe Symfony UrlGeneratorInterface
bei mehrsprachigen Models reagiert das Panel (Filter/Suche) in der BE-Liste auf die Spracheneinstellung der Liste
der Core, Attribute und Filter wurden mit der Toolsammlung PHPCQ geprüft und entsprechend angepasst - siehe Github
Attribute
bei allen Attributen wurden die HTML5-Templates überarbeitet: CSS-Klasse mit Attributtyp und Ausgabetyp, PHP-Shortcode, umschließendes HTML-Tag mit Ausgabe der optionalen CSS-Klasse
bei allen Attributen kann das Template für das Backend per Select ausgewählt werden - für das Frontend siehe FEE
- Datei
Support der vordefinierten Dimensionen für die Bildgrößen der config.yaml - siehe contao.image.sizes:…
- Inhalt eines Artikels
Anpassung des Templates
Änderung der Backendausgabe in der Listenansicht - hier erfolgt statt der Übersicht der Elementtypen das originäre Rendering; das ist z. B. für die Indexierung von Volltextsuchen notwendig - das Template der Ausgabe kann individuell angepasst werden
- Langtext
Langtext unterstützt als TinyMCE und ACE das readonly - siehe
Fix der Templates für die Text-Ausgabe: alle HTML-Tags werden entfernt
- Tabelle-Multi (MCW)
Support für readonly und CSS-Klassen für tl_class des Widgets
- Text-Tabelle
Support für readonly
- Übersetzte Datei
Support der vordefinierten Dimensionen für die Bildgrößen der config.yaml - siehe contao.image.sizes:…
- Übersetzter Inhalt eines Artikels
Anpassung des Templates
Änderung der Backendausgabe in der Listenansicht - hier erfolgt statt der Übersicht der Elementtypen das originäre Rendering; das ist z. B. für die Indexierung von Volltextsuchen notwendig - das Template der Ausgabe kann individuell angepasst werden
- Übersetzter Langtext
Langtext unterstützt als TinyMCE und ACE das readonly - siehe
Fix der Templates für die Text-Ausgabe: alle HTML-Tags werden entfernt
- Übersetzte Text-Tabelle
Support für readonly
- Übersetzte Tabelle-Multi (MCW)
Support für readonly und CSS-Klassen für tl_class des Widgets
Filter
beim CE-/FE-Modul Filter sind bei den Bezeichnungen der Filterregeln nun auch der Typ mit angegeben (#1473)
beim CE-/FE-Modul Filter kann die ID für das „FORM_SUBMIT“ überschrieben werden - siehe Filter mit Weiterleitung
passend zum FEE-Rechtemanagement gibt es eine neue Filterregel, der die Liste nach den zugehörigen Items eines eingeloggten Mitgliedes filtert
das Template für die Ausgabe der Filterung als Linkliste wurde überarbeitet, so dass der Contao-Crawler den Links für die Suche-Indexierung nicht mehr folgt
- Checkbox-Status (ehem. Veröffentlichungsstatus) und Übersetzter Checkbox-Status (ehem. Übersetzter Veröffentlichungsstatus)
die Filterregel wurde von „Veröffentlichungsstatus“ in „Checkbox-Status“ umbenannt, da nicht zwingend mit der Checkbox eine Veröffentlichung gesteuert wird
die Option „Filter nicht in Frontendvorschau nutzen“ reagiert nun auf den Contao-Status „Vorschau“ - bisher auf Login im Backend
- Eigenes SQL
bei dem Inserttag-Parameter „aggregate“ wurde nun der Typ „list“ hinzugefügt - der wurde zwar schon immer in der Infobox beschrieben, war aber bisher nicht implementiert; damit können nun kommaseparierte Listenwerte als GET-Wert übergeben werden
Prüfung von eigenen SQL-Queries mit
SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}', '/', -1), '?', 1)
und Anpassung an neues Routing - siehe Eigenes SQL
- Einfache Abfrage
ist die Option „Statischer Parameter“ gesetzt, kann in CE-/Modul-Liste für die Filterregel ein Wert ausgewählt werden - neu ist die Option „ohne Datenwert [null]“, wenn keine Auswahl - auch kein Leerstring - gesetzt werden soll
- Einzelauswahl [select]
Attributstyp Numerisch (Integer) und Kombinierte Werte möglich
Template Listenausgabe Attribut
data-escargot-ignore
eingefügt, damit Links nicht indexiert werden
- Mehrfachauswahl [Tags]
Attributstyp Numerisch (Integer) möglich
Template Listenausgabe Attribut
data-escargot-ignore
eingefügt, damit Links nicht indexiert werden
- Register
das Template für die Ausgabe der Filterung als Linkliste wurde überarbeitet, so dass der Contao-Crawler den Links für die Suche-Indexierung nicht mehr folgt (
data-escargot-ignore
)im Template sind Blocks für formlabel und formfield eingefügt
es kann nun ein URL-Fragment angegeben werden - damit springt nach dem Relaod die Seite an den Ankerpunkt
Frontend-Editing (FEE)
Es wurde ein einfaches Rechtemanagement eingebaut welches nach Aktivierung ermöglicht, dass jedes eingeloggte Mitglied nur noch seine Einträge bearbeiten kann (#14)
passend zum Rechtemanagement gibt es eine neue Filterregel, die die Liste nach den zugehörigen Items eines eingeloggten Mitglieds filtert
es gibt ein neues Event zum Manipulieren der Überschrift der Eingabemaske GetEditMaskSubHeadlineEvent
bei der Eingabemaske kann eingestellt werden, dass in der Überschrift der Maske beim Editieren Werte aus dem Item angezeigt werden (#14) - siehe FEE
der „Create“-Link ist im Standardtemplate des FE-Moduls nicht mehr dabei - das Template wurde an das des CE angeglichen
Änderung der Auflösung der Inserttags beim Dateiupload - ggf. anpassen
Thumbnails von Bilddateien in der Dropzone werden nach einem Seitenreload nun angezeigt
Auswahlmöglichkeit der Form-Templates für die Eingabemaske (FEE) bei allen nichtübersetzten Attributen
bei überschreiben der Buttons für die Eingabemaske, kann nun bei „Parameter“ neben den „Simple-Tokens“ auch ein Inserttag eingefügt werden
das Template der Dropzone wurde angepasst - ggf. eigene Anpassungen prüfen
Support der vordefinierten Dimensionen für die Bildgrößen der config.yaml bei den Thumbnails - siehe contao.image.sizes:…
Option „Einzelner Datei-Upload“ wird wieder unterstützt
Anpassung der BE-Listenausgabe für „Inhalt eines Artikels“ sowie „Übersetzter Inhalt eines Artikels“
Known-Issues
bei Umschaltung zu/vom Debugmodus im BE per Button stimmt die Referenzseite nicht mehr und man muss die Seite erneut ansteuern - z. B. mit „zurück“ im Browser und Reload der Seite
Contao bietet aktuell keine Möglichkeit, an der Stelle den Referer zu beeinflussen
Check für Upgrade auf MM 2.3
Grundsätzlich ist ein Upgrade innerhalb des MM 2.x-Zweiges problemlos möglich und ggf. notwendige Anpassungen an Bezeichnungen und DB-Änderungen werden über Migrationen abgefangen. Es gibt aber ein paar Sachen, die damit nicht oder nur sehr schwer abzufangen sind. Aus dem Grund sollten bei der Umstellungen auf MM 2.3 die folgenden Punkte im Blick behalten werden:
bitte alle Hinweise aus MM 2.2 beachten
wenn ein Upgrade gemacht wurde, bitte bei dem Benutzer im BE die Sessiondaten löschen um Anzeige von „Pseudo-Fehlern“ (z. B. Cannot assign null … $intAmount of type int) zu vermeiden
bei einem Upgrade kleiner 2.2 bitte die Checkliste für MM 2.2 beachten
zum Anlegen von mm_*-Tabellen und Spalten der Attribute eine DB-Migration durchführen - siehe Schemamanager
gespeicherte Bookmarks zu MM im BE sind aufgrund des neuen Routings nicht mehr gültig - siehe Newsletter
Berechtigungen bei Benutzergruppen werden nur noch in MM zugeteilt (s.o. „Wechsel des Routings“) - überflüssige Checkboxen bei Benutzergruppen in „Backend-Module“ löschen
Check der HTML5-Templates - die wurden überarbeitet (siehe Attribute, Filter und FEE)
Check der HTML5-Templates der Filterwidgets, die Linklisten ausgeben - Crawling der URLs wurde unterbunden
Check der HTML5-Templates mit Übersetzungen - z. B. ContentArticle
Fix der Templates für die Text-Ausgabe bei beiden Langtext-Attributen: alle HTML-Tags werden entfernt
bei FEE und FE-Modul ggf. das Template umstellen für den „Create“-Link
Filter mit „auto_item“ Routenpriorität prüfen - siehe Setzen der Routenpriorität
bei FEE Check Upload-Modus Dateiupload
bei FEE Check Auflösung der Inserttags beim Dateiupload
Check der eigenen Übersetzungen - Umstellung auf Xliff-Format
Prüfung der Labels der Eingabemasken bei eigenen Anpassungen - „LABEL NOT SET“
Prüfung von eigenen SQL-Queries mit
SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}', '/', -1), '?', 1)
und Anpassung an neues Routing - siehe Eigenes SQL
Re-Finanzierung
Siehe auch
Für eine Re-Finanzierung der umfangreichen Arbeiten, bittet das MM-Team um finanzielle Zuwendung. Als Richtgröße sollte der Umfang des zu realisierenden Projektes genommen werden und etwa 10% einkalkuliert werden - aufgrund der Erfahrung der letzten Zuwendungen, sind das Beträge zwischen 100€ und 500€ (Netto) - eine Rechnung inkl. MwSt wird natürlich immer ausgestellt. Mehr…