Zum Hauptinhalt springen

Portal Entwicklerhandbuch

Die Portal-Applikation ist als centraQuest-App in apps/portal implementiert. Sie verwendet den DMS-Client, den Template-Manager, Sessions und konfigurierbare Portal-Objekte.

Laufzeitstruktur

Die zentrale Klasse ist PortalApp. Sie initialisiert Portal-Präfix, DMS-Client, Template-Erweiterungen, Pubsub-Listener, Request-Handler und Installationslogik.

ModulAufgabe
apps/portal/__init__.pyStartup, Routing, Login, Sessions, Content-Auslieferung, Admin-Endpunkte.
apps/portal/core.pyPage Context, Boxen, Navigation, ACL-Helfer, Template-API.
apps/portal/lib.pyTemplate-Erweiterungen für Upload, Edit, Suche, SQL/DQL und Hilfsfunktionen.
apps/portal/init.pyInstallation und Bootstrap von Portal-Objekten und Keywords.
apps/portal/services.pyLegacy-Automation für templatebasierte Ordnerinitialisierung.

Request Context

Jede Seitenanfrage erzeugt einen PageRequestContext. Templates greifen typischerweise über page darauf zu.

Wichtige Methoden sind page.zone(name), page.mainNavigation(), page.subNavigation(), page.breadCrumb(), page.includeTemplate(...), page.getProfile(...), page.userGroups() und page.hasAclAccess(...).

Routing

Wichtige Routen sind /portal/login, /portal/logout, /portal/main, /portal/page, /portal/insert, /portal/edit, /portal/view, /portal/search und /portal/admin.

Authentifizierung

Das Portal unterstützt anonyme technische Benutzer, lokales Login über den Access Manager, SSO-Weiterleitung und OpenID-Connect-Auto-Redirect.

Template-Auflösung

Portal-Templates werden über konfigurierte Sprach-, Layout-, Master-, Edit-, View-, Search- und Box-Pfade geladen. Die Parameter mt und et können Master- oder Edit-Templates auswählen und sollten nur bewusst eingesetzt werden.

Template-Erweiterungen

portal.lib.register_template_extensions() registriert portal.Upload, portal.Edit, portal.Search, portal.Query und portal.Util.

Customizing

Kundenspezifische Portal-Arbeiten sollten möglichst in Konfigurationen und kundenspezifischen Templates erfolgen, nicht direkt in apps/portal.

Empfohlene Reihenfolge:

  1. Konfigurationswerte
  2. Portal-Seiten und Boxen
  3. kundenspezifische Templates
  4. Template-Erweiterungen
  5. Produktcode nur, wenn das Verhalten allgemein werden soll