Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Das Skript des Multisite-Installers

Was sevenx-multi-site-installer.php während einer Installation tut, der Reihe nach - seine Einstellungen, die Vorinstallation, die Einstellungen und Rollen, nach denen das Setup fragt, und die 50 Schritte der…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/sevenx-multisite/the-multisite-installer-script.md

On this page

This page is a translation. Read the English original

Das Skript des Multisite-Installers

Diese Seite ist für Entwickler, die die Installation von sevenx_multisite ändern oder untersuchen, und für Hoster, die wissen müssen, was eine Standardinstallation mit einer Datenbank und mit settings/ tut. Sie beantwortet: was settings/sevenx-multi-site-installer.php ausführt, wann und in welcher Reihenfolge. Alle Fakten stammen aus der Datei selbst (7692 Zeilen in 6.0.15) und aus kernel/setup/steps/ezstep_create_sites.php und kernel/classes/ezsiteinstaller.php des Kernels.

Inhalt

  1. Die Klasse und wann sie läuft
  2. Phase 1: Einstellungen, die der Installer ermittelt
  3. Phase 2: die Vorinstallation
  4. Phase 3: Einstellungen, Rollen und Voreinstellungen
  5. Phase 4: die Schritte der Nachinstallation
  6. Wenn ein Schritt scheitert
  7. Die Installationsmethode für die Kommandozeile

Die Klasse und wann sie läuft

Die Datei definiert class sevenxMultiSiteInstaller extends eZSiteInstaller. Der Konstruktor von eZSiteInstaller des Kernels ruft initSettings( $parameters ) und dann initSteps() auf, sodass jedes new sevenxMultiSiteInstaller(...) zuerst seine Einstellungen und seine Liste der Schritte der Nachinstallation ermittelt. Die kleinen Hüllendateien des Pakets (siehe Woraus es besteht) erzeugen jeweils einen und rufen eine Methode auf:

CreateSites (kernel/setup/steps/ezstep_create_sites.php)
  include every <settings-file> of the site package
  eZSitePreInstall()            -> preInstall()
  install the required packages (classes, then content)
  eZSiteINISettings()           -> siteINISettings()
  eZSiteAdminINISettings()      -> adminINISettings()
  eZSiteCommonINISettings()     -> commonINISettings()
  eZSiteRoles()                 -> siteRoles()
  eZSitePreferences()           -> sitePreferences()
  eZSitePostInstall()           -> postInstall() = the 50 steps of initSteps()
  then: exp_adminui in the admin siteaccess, the editor siteaccess, the adminui siteaccess

Die Setup-Frontends (Web-Assistent, Kickstarter, exp:install) führen alle CreateSites aus, sodass das für jede Installationsmethode gleich ist. Siehe Wie der Setup-Assistent Pakete nutzt und Wie der Kickstarter und die Konsole Pakete nutzen.

Phase 1: Einstellungen, die der Installer ermittelt

initSettings() liest die Parameter, die das Setup übergibt, und speichert, was die späteren Schritte brauchen:

EinstellungWert
template_look_class_id, template_look_object_iddie Klasse template_look und ihr erstes Objekt
admin_account_id, guest_accounts_id, anonymous_accounts_idaus der Zuordnung der Remote-IDs von Objekten des Setups
main_site_designmedia
extension_list60 Erweiterungen, siehe Erweiterungen, die es aktiviert
locales, primary_languagedie im Setup gewählten Sprachen, die erste die Hauptsprache
fallback_localeseng-US, wenn es nicht gewählt wurde, weil die mitgelieferten Inhalte in eng-US sind
user_siteaccessder Wert des Setups, standardmäßig site (sevenx_site_user oder leer werden ebenfalls zu site)
admin_siteaccessder Wert des Setups, standardmäßig admin
editor_siteaccesseditor
adminui_siteaccessadminui, wenn der Kernel ihn anlegen kann und exp_adminui installiert ist, sonst leer
site_titleder im Setup eingegebene Titel; wenn er leer ist oder nur die Zusammenfassung des Pakets wiederholt: „Fit & Healthy“ (oder „Bold Agency“, wenn der Benutzer-Siteaccess bold ist)
language_based_siteaccess_list, language_siteaccess_mapein Siteaccess-Name pro zusätzlicher Sprache, siehe Siteaccesses und Sprachen
host, siteaccess_urlsdie Adresse der Website und die Adressen der Siteaccesses für Administration, Redaktion, Benutzer und Übersetzungen
var_dirvar/site

Phase 2: die Vorinstallation

eZSitePreInstall() erzeugt den Installer mit array( 'var_dir' => 'var/site' ) und ruft preInstall() auf, bevor irgendein Paket installiert wird:

  1. Merkt sich die höchste Knoten-ID und Objekt-ID der Basisdaten in $GLOBALS['sevenxBaseMaxNodeID'] und $GLOBALS['sevenxBaseMaxObjectID']. Die Korrektur der Nachinstallation nutzt sie, um Basisdaten von Paketinhalten zu unterscheiden.
  2. Fügt der Klasse folder tags (ezkeyword) und publish_date (ezdatetime) hinzu.
  3. Setzt [FileSettings] VarDir=var/site für den laufenden Prozess, sodass Bilder und Dateien im var-Verzeichnis der Website landen.
  4. activateSiteExtensionSettings(): fügt der laufenden Konfiguration den Ordner settings/ jeder Erweiterung aus extension_list hinzu, sodass die Datentypen und INI-Dateien dieser Erweiterungen bekannt sind, während die Klassen und Objekte importiert werden.
  5. Registriert die Verzeichnisse der Datentypen ezstarrating, ezgmaplocation, exp_enhanced_link, eztags und die Datentypen ezsrrating, ezgmaplocation, ngenhancedlink, eztags in content.ini [DataTypeSettings].
  6. Fügt der Klasse user das Feld Zweistufige Anmeldung hinzu, wenn extension/sevenx_authentication_2fa existiert.
  7. dropExtensionTables(), dann insertDBFile() für jedes Schema einer Erweiterung: Hier kommen die Layouttabellen und ihre Zeilen hinein. Siehe Layoutdaten und share-DBA-Dateien.
  8. Korrigiert die Sprach-IDs der Zeilen eng-GB in eztags_keyword und eztags.

Phase 3: Einstellungen, Rollen und Voreinstellungen

Während CreateSites die Einstellungen baut, fragt es das Paket nach seinen eigenen. Der Installer gibt Listen von INI-Gruppen zurück:

FunktionGeschrieben inDateien
siteINISettings()den Benutzer-Siteaccessmenu.ini, override.ini, toolbar.ini, site.ini, image.ini, content.ini, design.ini, browse.ini, template.ini, contentstructuremenu.ini, odf.ini
adminINISettings()den Siteaccess der Administrationtoolbar.ini, contentstructuremenu.ini, override.ini, site.ini, content.ini, icon.ini, viewcache.ini, odf.ini, ezoe.ini, menu.ini
commonINISettings()settings/override/site.ini, content.ini, menu.ini, viewcache.ini, staticcache.ini, httpcache.ini, override.ini, forum.ini, ezoe_attributes.ini, ezxml.ini und sevenxauthentication2fa.ini, wenn 2FA installiert ist

Die Gruppe settings/override/site.ini wird mit discard_old_values geschrieben: Was sie nicht setzt, ist nach der Installation weg. siteRoles() und sitePreferences() geben die Rollen und die Voreinstellungen des Administrators zurück; siehe Rollen und Richtlinien.

Phase 4: die Schritte der Nachinstallation

postInstall() führt die Liste der Schritte von initSteps() über executeSteps() aus. In Reihenfolge:

#SchrittWas er tut
1-2dbBegin, setVersioneine Transaktion öffnen, die Version der Lösung festhalten (solutionVersion(), aus den Klassenkonstanten MAJOR_VERSION und MINOR_VERSION gebaut)
3postInstallFixContentObjectNameLanguagesSprach-IDs von Namen, Attributen und Masken mit ihrem Locale in Einklang bringen
4postInstallResolveRelationListIdsper Remote-ID gespeicherte Einträge von Relationslisten in Objekt-IDs umwandeln
5postInstallRekeyStarRatingsdie eingespielte Bewertung des „Test Product“ auf das installierte Objekt verschieben
6postInstallImportNewsletterClassesdie Klassen von cjw_newsletter und den Newsletter-Baum importieren
7-8postInstallAdminSiteaccessINIUpdate, postInstallUserSiteaccessINIUpdateDesigns, Startknoten, Wurzelknoten und URLs von admin und site
9-10createTranslationSiteAccesses, createSecondarySiteaccessesein Siteaccess pro zusätzlicher Sprache; bold und bold_ger
11-12updateTemplateLookClassAttributes, updateTemplateLookObjectAttributeszwölf zusätzliche Felder für Aussehen und Bedienung und ihre Werte
13-14swapNodes, removeContentObjectder alte Knoten namens eZ Publish in älteren sauberen Daten wird mit „Home“ getauscht und entfernt; übersprungen, wenn er fehlt
15removeClassAttributeentfernt id aus template_look
16-31Sektionen, Rollen, BenutzergruppenSektion Restricted, Richtlinien für Anonymous/Editor/Partner/Member, Gruppe Partners, Gruppe Members, Rollenzuweisungen
32updateClassAttributesAttributnamen von folder „Summary“ und „Display sub items“
33setRSSExportder Feed „My RSS Feed“ unter /rss/feed/my_feed (nicht für Pakete _clean)
34dbCommitbestätigen
35postInstallFixPackageNodesAndExplayoutsPlatzierung von Knoten, Verweise der Layouts, Menüs, Tags, Einbettungen; leert alle Caches
36postInstallImportAdminLayoutsdie drei Standardlayouts der Administration
37-39postInstallCleanUrlText, postInstallRegenerateURLAliases, postInstallCreateSitePrefixAliasesURL-Aliase beider Websites, mit ihren Pfadpräfixen
40postInstallClearLinksToContentNotInstalledLinks in Blöcken auf Seiten, die das Paket nicht installiert hat, werden ausgeschaltet
41postInstallPlaceOrphanedPackageObjectsohne Knoten installierte Objekte bekommen einen
42postInstallSetSiteHomeAndPrefixPathPrefix, IndexPage, DefaultPage von site, bold, bold_ger und den Übersetzungen
43postInstallCloseInformationPagesOnPublicSiteaccessesdas Modul ezinfo auf öffentlichen Siteaccesses aus
44-45postInstallResyncContentClassNames, postInstallRepairClassNameListsListen von Klassennamen
46postInstallCreateAdminUISiteaccesssettings/siteaccess/adminui aus dem Siteaccess der Administration
47postInstallEnableSearchStatsOnEverySiteaccessLogSearchStats=enabled
48postInstallWriteMultisiteURLSettingssettings/override/ezurlmultisite.ini.append.php
49-50updateObjectAttributeFromString (zweimal)das Logo der Website aus files/default/image/logo.png und der Seitenstil ezwebin_design_blue

Die Details der Schritte 35 bis 41 stehen auf Korrekturen nach der Installation.

Wenn ein Schritt scheitert

executeSteps() hält beim ersten Schritt an, der einen Fehler meldet, den der Installer nicht behandelt; das eigene handleError() des Installers bestätigt die offene Transaktion bei einem Abbruch. Das Setup meldet dann EZSW-080: Die Nachinstallation des Seitenpakets hielt bei Schritt N von M an, und die Schritte danach liefen nicht. Deshalb ordnet der Code die Schritte so, wie er es tut: Die zwei kosmetischen Schritte für das Logo laufen zuletzt, weil executeSteps die ganze Kette beim ersten Schritt abbricht, der einen Fehler meldet, und mehrere Kernel-Schritte sind überschrieben (swapNodes, removeContentObject, setSection, setRSSExport), um einen Hinweis zu protokollieren und weiterzumachen, wenn das, was sie nennen, nicht da ist.

Tipp Nach einer gescheiterten Installation sagt Ihnen die Schrittnummer in EZSW-080, wo Sie in dieser Tabelle nachsehen. Der Installer und das Setup schreiben ihre Hinweise in die Debug-Ausgabe und einige davon über eZLog::write() in die Logdatei setup.log (zum Beispiel no adminui siteaccess).

Die Installationsmethode für die Kommandozeile

Die Klasse hat außerdem eine Methode install() für die Nutzung außerhalb von CreateSites. Sie schreibt die Gruppen für den Benutzer-Siteaccess, den Siteaccess der Administration und settings/override selbst und ruft dann updateRoles(), updatePreferences() und postInstall() auf. Die Setup-Frontends nutzen sie nicht; sie gehen über die Hooks oben.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x