MetaModels installieren und aktualisieren

Allgemeine Informationen zur Installation

MetaModels besteht aus mehreren Modulen, die je nach Aufgabenstellung installiert werden müssen.

Im Contao-Manager werden bei Pakete über die Eingabe metamodels/ alle zur Verfügung stehenden Pakete von MetaModels aufgelistet. Das Basispaket metamodels/core muss installiert werden - darüber hinaus sind weitere Attribute und Filter je nach Aufgabenstellung notwendig. Für den ersten Start mit MetaModels steht eine Checkliste zur Verfügung.

Neben den einzelnen Paketen gibt es Bundles, die verschiedene Pakete für eine vereinfachte Installation zusammenfassen.

Für den Einstieg in MetaModels ist das Bundle metamodels/bundle_start zu empfehlen - hiermit werden der Core sowie die wichtigsten Attribute und Filter installiert.

Zudem gibt es auch das Bundle metamodels/bundle_all, welches neben dem bundle_start auch die mehrsprachigen Pakete mit installiert (Hinweis: die Pakete translatedselect translatedtags sind hier seit MM 2.1 nicht mehr inkludiert, da diese nur für Spezialfälle einzusetzen sind).

Weitere Module wie „Registerfilter“, „Umkreissuche“, „Bewertung“ usw. sind als separate Pakete hinzu zu fügen - siehe Erweiterungen

Siehe auch

Erfolgt die Installation über den Contao-Manager und es sind schon Pakete installiert, die noch ein altes Paket vom MultiColumnWizard (MCW) enthalten, kann der Manager (bzw. der Composer) das nicht austauschen und gleichzeitig installieren. Als „Trick“ dazu, erst alle vorhandene Erweiterungspakete für eine Aktualisierung markieren und anschließend das oder die MM-Pakete hinzufügen und übernehmen; alternativ dazu, ein composer update auf der Konsole - siehe ‚Forum‘.

Neben dem Contao-Manager ist die Installation der Pakete und Bundles direkt über die Konsole per Composer möglich - z.B. mit

php web/contao-manager.phar.php composer require metamodels/core

bzw.

php web/contao-manager.phar.php composer require metamodels/bundle_start

Statt php ist ggf. der Pfad zum entsprechenden PHP-Binary anzugeben - siehe Symfony und MM 2.x Tipps.

Nach der Installation ist über das Install-Tool von Contao ein Update der Datenbank nicht zu vergessen!

Es folgen weitere Informationen zu den einzelnen Versionen von MetaModels.

Übersicht der Versionen

  • C 5.x + MM 3.0 + PHP 8.x - aktuell in Entwicklung…

  • C 5.3 + MM 2.4 + PHP 8.2 - aktuell in Entwicklung…

  • C 4.13 + MM 2.3 + PHP 8.1 - Zugang per „EAP“

  • C 4.9 + MM 2.2 + PHP 7.4

  • C 4.4 + MM 2.1 + PHP 7.2/7.4

  • C 3.5 + MM 2.0 + PHP 5.6

Installation von MM 2.3 für Contao 4.13 und PHP 8

MetaModels 2.3 bringt eine volle Kompatibilität zu Contao 4.13 und PHP 8.1. MM 2.3 ist eine Anpassung der Version 2.2 an die neue Contao- und PHP-Version und bringt natürlich alle Änderungen und Features aus MM 2.2 mit.

Mit dem neuen Schemamanager muss der Workflow mit MM angepasst werden - siehe Schemamanager

Die Installationsvoraussetzungen für MetaModels 2.3 sind:

  • ein laufendes Contao 4.13.x (LTS)

  • ab PHP 8.1

  • MySQL ab 5.5.5 (InnoDB), MariaDB (inkl. „strict mode“)

  • memory_limit 512MB oder mehr (Empfehlung)

  • bis zur Veröffentlichung Zugangskey über das EAP

Höhere Versionen von Contao und/oder PHP können möglich sein, werden aber nicht offiziell supportet.

Siehe auch

Während der Entwicklungsphase bekommen die über git zur Verfügung gestellten Pakete bei einer Änderung immer neue Dateinamen. Diese sind in der composer.lock mit abgespeichert. Dadurch kann es vorkommen, dass bei einem composer install die Pakete nicht gefunden werden können und eine Fehlermeldung kommt.
In dem Fall, bitte ein composer update zum Aktualisieren der composer.lock aufrufen.

In den Paketen werden die Abhängigkeiten der Pakete nicht auf die DEV-Version eingetragen - das kann bedeuten, dass man z. B. attribute_numeric für attribute_timestamp selbständig in die composer.json eintragen muss. Bei Fragen steht der Support zur Seite.

Der DCG wird nun ab 2.2.0 auch über PackDis! ausgeliefert. Dabei haben wir festgestellt, dass der Composer ab und an damit nicht zurecht gekommen ist – warum auch immer…
Bei Update kommt z.B. die Meldung
[InvalidArgumentException] Unknown downloader type: . Available types: git, svn, fossil, hg, perforce, zip, rar, tar, gzip, xz, phar, file, path.
Wenn das auftritt, bitte den Ordner vendor/contao-community-alliance/dc-general (ggf. auch /vendor/contao-community-alliance/dc-general-contao-frontend) löschen und das Update neu starten.

Kommt beim Update die Meldung
The checksum verification of the file failed...
bitte die composer.lock löschen und das Update neu starten.

Bei Problemen eines Updates kann es helfen den Composer-Cache zu leeren composer clearcache.

Kommt eine Meldung
... Failed to connect to packages.cyberspectrum.de port 443: Connection refused...
dann ist sehr wahrscheinlich der Packagist-Server down und composer kann die Pakete nicht ziehen. Dann bitte das Update nach einigen Minuten erneut probieren oder das MM-Team kontaktieren.

Wenn ein Upgrade gemacht wurde, bitte bei dem Benutzer im BE die Sessiondaten löschen um Anzeige von „Pseudo-Fehlern“ zu vermeiden.

Vor einem Produktiveinsatz sollte die Seite vollständig durchgetestet werden. MM 2.3 kann über den Composer (Konsole) oder den Contao-Manager installiert werden. Zugang zu dem aktuell noch geschütztem Repository erhält man über unser „early adopter Programm“ - mehr dazu unter Fundraising auf der MM Webseite.

Weitere Features von MM 2.3:
Wir haben eine Übersichtsseite mit den Änderungen und Funktionen zu MM 2.3 zusammengestellt - bitte beachtet bei einem Upgrade die Checkliste.

Das MM-Team unterstützt mit der Arbeit/Finanzierung auch die Arbeiten am DC_General, der u. a. bei MM für die Anzeigen im Backend zuständig ist und viele tolle Funktionen mitbringt.

Installation von MM 2.2 für Contao 4.9

MetaModels 2.2 bringt eine volle Kompatibilität zu Contao 4.9 mit sowie verschiedene Features und Optimierungen. Zum Beispiel ist MM 2.2 kompatibel zum strict mode von höheren MySQL-Versionen oder aktueller MariaDB oder die manuelle Dateisortierung.

Die Installationsvoraussetzungen für MetaModels 2.2 sind:

  • ein laufendes Contao 4.9.x (LTS)

  • PHP 7.4

  • MySQL ab 5.5.5 (InnoDB), MariaDB (inkl. „strict mode“)

  • memory_limit 512MB oder mehr (Empfehlung)

Höhere Versionen von Contao können möglich sein, werden aber nicht offiziell supportet.

Weitere Features von MM 2.2: Wir haben eine Übersichtsseite mit den Änderungen und Funktionen zu MM 2.2 zusammengestellt - bitte beachtet bei einem Upgrade die Checkliste.

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…

Hinweise und Anleitungen für ältere Contao- und MM-Versionen

Umstellung von metamodels/bundle_* auf separate Module

Bei einer Umstellung z.B. von 2.0 auf eine neuere Version oder Neuinstallation ist es eine gute Gelegenheit, nur noch die Attribute und Filter zu installieren, die für das Projekt notwendig sind. War zuvor z.B. metamodels/bundle_start oder metamodels/bundle_all im Einsatz, kann man mit den folgenden SQL-Befehlen die wirklich verwendeten Attribute und Filter abfragen:

1-- Attribute
2SELECT type FROM `tl_metamodel_attribute` GROUP BY type ORDER BY type
3-- Attribut "levensthein" wurde umbenannt nach "levenshtein"
4
5-- Filter
6SELECT type FROM `tl_metamodel_filtersetting` GROUP BY type ORDER BY type
7-- Filterregeln "conditionand, conditionor, customsql, idlist, simplelookup" sind im MM-Core enthalten
8-- Filterregel "checkbox_published" im Attribut Checkbox

Die daraus sich ergebende Liste kann dann über den Contao Manager oder die Konsole installiert werden und nicht genutzte Module bleiben außen vor.

Test von speziellen Paketen

Neben den aktuell verfügbaren und freigegebenen Pakete von MetaModels, gibt es teilweise Pakete mit Bugfixes oder neuen Funktionen, die getestet werden können/müssen - das könnte z.B. für den MetaModels-core das ein Paket hotfix/2.1.25 sein. Zu sehen sind die Pakete u.a. auf Github im entsprechenden Repository (z.B. MetaModels/core) im Reiter ‚branches‘. Die dort angegebene Bezeichnung wie hotfix/2.1.25 muss um den Präfix dev- ergänzt werden, sowie um ein as 2.1.25 am Ende.

Eine Übersicht zu den Angaben in der composer.json hier.

Möchte man ein solches Paket testen, muss es explizit im Contao-Manger mit

dev-hotfix/2.1.25 as 2.1.25

oder in der composer.json

"metamodels/core": "dev-hotfix/2.1.25 as 2.1.25"

mit seiner Version angegeben werden.

Anschließend über den Contao-Manager oder auf der Konsole ein Update machen.

Da MetaModels eng mit dem DC_General (DCG) verzahnt ist, muss zum Testen häufig auch hier auf eine neuere Version geupdatet werden. Das Vorgehen ist das gleiche wie bei MetaModels inklusive der Anpassung des JSON-Eintrages mit „as 2.1.x“.

Die Composer-JSON sollte für die Implementierung der Pakete für Core und DCG in etwa die folgenden Einträge im Knoten „require“ aufweisen (Zeile 8 und 10):

 1{
 2    "name": "local/website",
 3    "description": "A local website project",
 4    "type": "project",
 5    "license": "proprietary",
 6    "require": {
 7        "contao-community-alliance/composer-client": "~0.12",
 8        "contao-community-alliance/dc-general": "dev-hotfix/2.1.42 as 2.1.42",
 9        "metamodels/bundle_all": "^2.1",
10        "metamodels/core": "dev-hotfix/2.1.25 as 2.1.25",
11        ...
12    },
13    ...
14}

Um auf den ursprünglichen Stand zurück zu gelangen, die Pakete wieder auf ihren ursprünglichen Aufruf z.B. „^2.1“ zurücksetzen und ein Update inkl. Datenbank machen..

Wichtig ist nach einem Test die Rückmeldung zum Entwickler bzw. an das MetaModels-Team über Github.

Zwei weitere Möglichkeiten sind die Installation eines Forks oder eines Pull-Requests (PR). Hier muss für die Installation die composer.json angepasst werden.

Bei einem Fork (ggf. in den Einstellungen der Paketverwaltung den eigenen Github oAuth Token eintragen) z.B.

 1{
 2    "name": "local/website",
 3    "description": "A local website project",
 4    "type": "project",
 5    "license": "proprietary",
 6    "require": {
 7        "contao-community-alliance/composer-client": "~0.12",
 8        "contao-community-alliance/dc-general": "^2.1",
 9        "metamodels/bundle_all": "^2.1",
10        "byteworks/metamodelsattribute_multi": ">=1.0.5.0,<1.1-dev",
11        ...
12    },
13    ...
14    "repositories": [
15        ...
16        {
17            "type": "vcs",
18            "url": "https://github.com/byteworks-ch/contao-metamodelsattribute_multi.git"
19        },
20        {
21            "type": "git",
22            "url": "git@gitlab.com:MetaModels/filter_parent.git"
23        }
24    ],
25    ...
26}

oder für einen PR mit dem Hash des Commits - diesen findet man unter Github bei dem PR beim Reiter „Commits“.

 1{
 2    "name": "local/website",
 3    "description": "A local website project",
 4    "type": "project",
 5    "license": "proprietary",
 6    "require": {
 7        "contao-community-alliance/composer-client": "~0.12",
 8        "contao-community-alliance/dc-general": "^2.1",
 9        "metamodels/bundle_all": "^2.1",
10        "metamodels/attribute_alias": "dev-master#a97ec461ae1254fa616811c3ce234515238fb3c7 as 2.1.42",
11        ...