# Paribus Holding GmbH & Co. KG – TYPO3 v13 Multi-Site Projekt > Zentrales TYPO3 v13.4 LTS Multi-Site-Projekt der Paribus-Unternehmensgruppe (Hamburg) mit > zwei produktiven Frontends: dem Konzernauftritt **paribus.de** sowie dem Finanzportal > **paribus-finance.de**. Die Plattform bündelt Unternehmens-Kommunikation, Fonds-Übersichten, > Ansprechpartner, FAQs, Nachrichten, Stellenangebote (HRworks-Sync), Glossar und Sitemaps > in einer gemeinsamen Codebasis. Das Projekt nutzt eine projekt­spezifische Sitepackage-Extension > (`sitetemplate`), eine KI-gestützte SEO-Backend-Extension (`seo_ai`, OpenAI) sowie eine > kuratierte Auswahl an Standard-Extensions (news, container, dce, om_cookie_manager, > staticfilecache, yoast_seo u. a.). Newsletter werden über CleverReach abgewickelt, Jobs > automatisiert aus HRworks synchronisiert. Dieses Repository enthält ausschließlich konfigurations- und projektrelevante Dateien (`typo3conf/`, `composer.json`, `.htaccess`). Der TYPO3-Core wird per Composer in eine nicht versionierte Web-Root-Installation gezogen; Inhalte (Seiten, News, Mediendateien) liegen in der TYPO3-Datenbank bzw. im FAL-Storage und sind kein Bestandteil des Repos. Die Datei `llms.txt` folgt der Spezifikation unter https://llmstxt.org/ und richtet sich an KI-Systeme (LLMs, Such-/Indexierungs-Crawler, Coding-Assistenten), die das Projekt oder die zugehörigen Websites kontextualisieren möchten. ## Unternehmen & Projektkontext - [Paribus Holding GmbH & Co. KG](https://www.paribus.de/): Unternehmens-Website der Paribus-Gruppe (Sachwert-Investments, Asset-Management, Schienenfahrzeuge, Immobilien) - [Paribus Finance / Invest](https://www.paribus-finance.de/): Spezialisiertes Finanzportal mit Fokus auf Fonds und Investment-Angebote - Zielgruppe: Privatanleger 35–60 Jahre mit Interesse an Sachwert-Investments, institutionelle Investoren, Vertriebspartner - Sprache: primär Deutsch (`de_DE`), englische Sprachvariante vorbereitet, derzeit deaktiviert ## Technischer Stack - TYPO3 CMS **v13.4 LTS** (constraints: `13.4.0–13.9.99`) - PHP **8.2+** (kompatibel bis 8.4) - MySQL/MariaDB (Datenbank `paribus_typo3_v12`, charset `utf8mb4_unicode_ci`) - Composer-basiertes Setup (`composer.json` im Projekt-Root) - ImageMagick als Bildprozessor (`/usr/bin/`) - Apache Webserver mit `.htaccess`-basierter Konfiguration (Compression, Caching, Rewriting) - Static File Cache aktiv für Performance - Frontend-Build: SCSS/CSS, jQuery (slick, swiper, niceselect, AOS), Cookie-Manager - WebP-Konvertierung via `plan2net/webp` (PHP-GD-Converter) - E-Mail-Versand via `sendmail` ## Projektstruktur - [composer.json](./composer.json): Root-Composer-Konfiguration, Hauptabhängigkeiten (`rdoepner/cleverreach`, `sioweb/hrworks`) - [.htaccess](./.htaccess): Apache-Konfiguration (Kompression, Caching, MIME-Typen, Security, Rewriting) - [.htpasswd](./.htpasswd): Basic-Auth-Schutz (Staging/Preview) - [favicon.ico](./favicon.ico): Globales Favicon der Sites - [typo3conf/](./typo3conf/): TYPO3 v13 Konfigurations- und Extension-Verzeichnis - [typo3conf/system/settings.php](./typo3conf/system/settings.php): Globale TYPO3-Konfiguration (DB, Caching, Mail, FE/BE-Settings, Extension-Konfiguration) - [typo3conf/sites/main/config.yaml](./typo3conf/sites/main/config.yaml): Site-Konfiguration für `www.paribus.de` (rootPageId 1) - [typo3conf/sites/paribus-invest/config.yaml](./typo3conf/sites/paribus-invest/config.yaml): Site-Konfiguration für `www.paribus-finance.de` (rootPageId 72) ## Eigenentwickelte TYPO3-Extensions - [typo3conf/ext/sitetemplate](./typo3conf/ext/sitetemplate): Projektspezifisches Sitepackage (Provider-Extension v2.0.0, T3X Developer / Patrick Wiermann). Enthält alle Templates, TypoScript, Domain-Modelle und Plugins für die Paribus-Websites. - [typo3conf/ext/seo_ai](./typo3conf/ext/seo_ai): KI-gestütztes SEO-Backend-Modul (v1.0.0, OpenAI). Bietet Rechtschreib-/Grammatik-Prüfung, Alt-Text-Generierung, SEO-Textanalyse und Keyword-Recherche mit verbindlichem Dry-Run/Approval-Workflow. - [typo3conf/ext/form_element_linked_checkbox](./typo3conf/ext/form_element_linked_checkbox): Erweiterung des Formframeworks um eine Checkbox mit verlinktem Label (DSGVO-Hinweise). ## Sitepackage `sitetemplate` – Inhalte & Plugins Die Sitepackage stellt folgende Extbase-Plugins über die Sites bereit: - [Fonds-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/FondsController.php): Listendarstellung von Fonds-Datensätzen (`tx_sitetemplate_domain_model_fonds`) - [Contacts-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/ContactsController.php): Ansprechpartner-Übersicht und Zitat-/Quote-Variante - [FAQs-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/FaqsController.php): FAQ-Liste und Detailansicht inkl. SEO-freundlicher URL-Pfade - [Jobs-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/JobsController.php): Stellenanzeigen, automatisiert synchronisiert aus HRworks - [Glossary-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/GlossaryController.php): Glossar-/Lexikon-Funktion - [News-Detail-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/NewsController.php): Ajax-Detailansicht für News (in Verbindung mit `georgringer/news`) - [Sitemap-Plugin](./typo3conf/ext/sitetemplate/Classes/Controller/SitemapsController.php): Generiert XML-Sitemaps (Index, Pages, News, FAQs, Images) ### Domain-Modelle (sitetemplate) - [Fonds](./typo3conf/ext/sitetemplate/Classes/Domain/Model/Fonds.php) – `tx_sitetemplate_domain_model_fonds` - [Contacts](./typo3conf/ext/sitetemplate/Classes/Domain/Model/Contacts.php) – `tx_sitetemplate_domain_model_contacts` - [Faqs](./typo3conf/ext/sitetemplate/Classes/Domain/Model/Faqs.php) – `tx_sitetemplate_domain_model_faqs` - [Jobs](./typo3conf/ext/sitetemplate/Classes/Domain/Model/Jobs.php) – `tx_sitetemplate_domain_model_jobs` - [Glossary](./typo3conf/ext/sitetemplate/Classes/Domain/Model/Glossary.php) – `tx_sitetemplate_domain_model_glossary` - [Category](./typo3conf/ext/sitetemplate/Classes/Domain/Model/Category.php) – Kategorisierung von Inhalten - [FileReference](./typo3conf/ext/sitetemplate/Classes/Domain/Model/FileReference.php) – FAL-Helper ### Middleware & Tasks (sitetemplate) - [HrWorksJobsApiSync](./typo3conf/ext/sitetemplate/Classes/Middleware/HrWorksJobsApiSync.php): PSR-15 Middleware zur Job-Synchronisation - [HrWorksJobsApiSyncTask](./typo3conf/ext/sitetemplate/Classes/Task/HrWorksJobsApiSyncTask.php): Scheduler-Task „HR WORKS Jobs API Sync" - [HtmlCompress](./typo3conf/ext/sitetemplate/Classes/Middleware/HtmlCompress.php): HTML-Minifier-Middleware ### ViewHelper (sitetemplate) - [FormGridViewHelper](./typo3conf/ext/sitetemplate/Classes/ViewHelpers/FormGridViewHelper.php) – Grid-Layout für Formulare - [FormLinkWordsViewHelper](./typo3conf/ext/sitetemplate/Classes/ViewHelpers/FormLinkWordsViewHelper.php) – Verlinkte Wörter in Formular-Labels (z. B. AGB) - [GetCategoriesViewHelper](./typo3conf/ext/sitetemplate/Classes/ViewHelpers/GetCategoriesViewHelper.php) - [GetContactsViewHelper](./typo3conf/ext/sitetemplate/Classes/ViewHelpers/GetContactsViewHelper.php) - [GetPageCategoryViewHelper](./typo3conf/ext/sitetemplate/Classes/ViewHelpers/GetPageCategoryViewHelper.php) - [InlineCssViewHelper](./typo3conf/ext/sitetemplate/Classes/ViewHelpers/InlineCssViewHelper.php) – CSS-Inlining für Critical-Path ### TypoScript & Konfiguration (sitetemplate) - [Configuration/TypoScript/constants.typoscript](./typo3conf/ext/sitetemplate/Configuration/TypoScript/constants.typoscript): Storage-PIDs, Asset-Pfade, Meta-Defaults - [Configuration/TypoScript/setup.typoscript](./typo3conf/ext/sitetemplate/Configuration/TypoScript/setup.typoscript): Page-Setup, Plugin-Konfigurationen - [Configuration/TCA](./typo3conf/ext/sitetemplate/Configuration/TCA): Tabellendefinitionen für die eigenen Domain-Modelle - [Configuration/Flexforms](./typo3conf/ext/sitetemplate/Configuration/Flexforms): Plugin-Konfigurationen (Fonds, Contacts, FAQs, Jobs, Glossary) - [Resources/Private/Templates](./typo3conf/ext/sitetemplate/Resources/Private/Templates): Fluid-Templates für alle Plugins, Container, DCE, News, Forms, Mails ## SEO-AI-Extension `seo_ai` - [README](./typo3conf/ext/seo_ai/README.md): Vollständige Dokumentation der Extension - [Backend-Controller](./typo3conf/ext/seo_ai/Classes/Controller/SeoAiBackendController.php): TYPO3-Backend-Modul „SEO AI" - [AnalysisRunner](./typo3conf/ext/seo_ai/Classes/Service/AnalysisRunner.php): Orchestriert Analyse-Läufe - Vier Analyzer: `spell_grammar`, `alt_text` (Vision-API), `seo_text`, `keywords` + kombinierter `full_audit` - Whitelist-basiertes Schreiben über `DataHandler` auf `pages`, `tt_content`, `sys_file_reference`, `sys_file_metadata` - Konfiguration via Extension-Manager oder `OPENAI_API_KEY`-Umgebungsvariable - Persistiert Runs/Suggestions in `tx_seoai_domain_model_run` und `tx_seoai_domain_model_suggestion` ## Routing & SEO Beide Sites verwenden identische Route-Enhancer: - `PageTypeSuffix`: Mappt PageTypes auf URLs (`sitemap.xml` → 1533906435, `sitemap-pages.xml` → 1533906436, `news-details.html` → 1533906440) - `FaqsPlugin`: SEO-freundliche FAQ-Detail-URLs via `PersistedPatternMapper` auf `tx_sitetemplate_domain_model_faqs` - `NewsPlugin`: Pagination (`/seite-N`) und Detail-Routen (`/{news_title}`) für `georgringer/news` - 404-Errorhandling: Page-Handler auf interner Seite (uid 4) - `robots.txt`: Disallow `/typo3/`, `/typo3_src/`, mit Sitemap-Referenz auf jeweilige Domain ## Eingebundene Standard-Extensions (Auswahl) Konfiguriert/aktiviert (vgl. [settings.php](./typo3conf/system/settings.php) und [README sitetemplate](./typo3conf/ext/sitetemplate/README.md)): - `georgringer/news` + `georgringer/numbered-pagination`: News-System mit Pagination - `container`: Content-Container-Elemente (Bootstrap-Grid) - `dce`: Dynamic Content Elements - `staticfilecache`: Static File Cache (gzip-Generator aktiv) - `om_cookie_manager`: DSGVO-konformes Cookie-Banner - `imageoptimizer`: Bildoptimierung (jpegoptim, optipng, gifsicle, svgo, cwebp) - `webp` (plan2net): WebP-Konvertierung mit GD - `vhs`: Erweiterte Fluid-ViewHelper - `recaptcha`: Google reCAPTCHA für Formulare - `yoast_seo`: SEO-Editor mit Basic-Auth-geschütztem Preview - `redirects`: TYPO3 Core Redirects-Modul - `rte_ckeditor_image`: Bild-Plugin für CKEditor - `scheduler`: Cronjob-Verwaltung (HRworks-Sync, Cache-Pflege) - `form_element_linked_checkbox`: Eigenes Formular-Element ## Composer-Abhängigkeiten (Root-Projekt) - [`rdoepner/cleverreach`](https://packagist.org/packages/rdoepner/cleverreach): Newsletter-Anbindung an CleverReach (Double-Opt-In, Listen-Management) - [`sioweb/hrworks`](https://packagist.org/packages/sioweb/hrworks): HRworks-API-Client für Stellenanzeigen-Synchronisation ## Datenschutz, Sicherheit & Workflow - TYPO3 BE-Debug deaktiviert, Argon2i-Passwort-Hashing - `cacheHash.enforceValidation = true`, `disableNoCacheParameter = true` - `security.system.enforceAllowedFileExtensions = true` - `extbase.consistentDateTimeHandling = true`, `frontend.cache.autoTagging = true` - Yoast-SEO-Preview Basic-Auth-geschützt (Credentials in `settings.php` → `EXTCONF.yoast_seo`) - DSGVO: Cookie-Manager, verlinkte Checkbox-Elemente in Formularen, reCAPTCHA - KI-Analysen (seo_ai) erfolgen ausschließlich im Dry-Run; jede Änderung muss vom Editor manuell bestätigt werden - AVV mit OpenAI erforderlich, wenn `seo_ai` produktiv genutzt wird ## Optional - [SEO AI – Roadmap](./typo3conf/ext/seo_ai/README.md): Phase-2-Features (Mehrsprachigkeit, Bulk-Analyse, Page-Tree-Kontext, Hooks) - [Sitetemplate – Required Extensions](./typo3conf/ext/sitetemplate/README.md): Liste aller benötigten Begleit-Extensions - Frontend-Sitemaps: https://www.paribus.de/sitemap.xml und https://www.paribus-finance.de/sitemap.xml - Robots-Routen werden direkt aus den Site-Konfigurationen ausgeliefert (kein statisches `robots.txt` im Web-Root) ## Hinweise für KI-Crawler & Coding-Assistenten - Inhaltliche Texte (Marketing, Fonds-Beschreibungen, News, FAQs) liegen **nicht** im Repository, sondern werden redaktionell im TYPO3-Backend gepflegt und über die Datenbank ausgespielt. - Für Code-Analysen: relevante Verzeichnisse sind ausschließlich `typo3conf/ext/sitetemplate/Classes`, `typo3conf/ext/seo_ai/Classes` sowie die zugehörigen `Configuration/`- und `Resources/Private/`-Bäume. - Builds, Vendor-Verzeichnisse, TYPO3-Core und FAL-Uploads sind **nicht** Bestandteil des Repos und werden serverseitig provisioniert. - Verantwortlich (Entwicklung): Patrick Wiermann · T3X Developer · `patrick@t3x-developer.de` - Lizenz aller Eigenentwicklungen: `GPL-2.0-or-later`