Suche

156 Treffer

Software-Entwicklung mit PPW - Setzen Sie auf digitale Datensouveränität.

Maßgeschneiderte Softwareentwicklung – ganz nach Ihren Bedürfnissen Die digitale Transformation braucht mehr als Standardlösungen. PPW entwickelt gemeinsam mit Ihnen individuelle Software – exakt zugeschnitten auf Ihre Prozesse, Anforderungen und Ziele - und die Ihnen gehören. So behalten Sie die volle Kontrolle über Architektur, Daten und Weiterentwicklung. Und das das Beste, wir sind in der Lage Ihre Software auch in unserem Cloud-Hosting zu betreuen. Skalierbare E-Learning-Plattform CRM-Lösung für Verbandsarbeit und Mitglieder Die Datendrehscheibe, als individuelle Software-Lösung für intelligenten Datenaustausch Warum individuelle Software von PPW? Ihre Daten. Ihre Prozesse. Ihre Software. In Zeiten zunehmender Abhängigkeit von großen Softwareanbietern wird digitale Datensouveränität zum entscheidenden Wettbewerbsfaktor. Als etablierte Digitalagentur mit langjähriger Erfahrung in der Entwicklung von Web-Anwendungen haben wir schon immer individuelle und maßgeschneiderte Lösungen entwickelt. Wir spezialisieren uns zunehmend im Bereich der individuelle Software-Entwicklung. Dabei profitieren Sie von unserem tiefen Verständnis für digitale Prozesse und nutzerfreundliche Lösungen. Ihre Vorteile auf den Punkt gebracht Immer mehr Organisationen erkennen: Standardsoftware stößt schnell an Grenzen – besonders, wenn Prozesse individuell sind oder Datenhoheit eine wichtige Rolle spielt. Mit unserer individuellen Softwareentwicklung schaffen Sie die Grundlage für digitale Unabhängigkeit , effiziente Abläufe und nachhaltige Technologieentscheidungen . Wir begleiten öffentliche Einrichtungen und mittelständische Unternehmen auf dem Weg zu einer Softwarelösung, die wirklich zu ihnen passt – maßgeschneidert, flexibel und transparent . Vollständige Datensouveränität Behalten Sie die volle Kontrolle über Ihre Daten und Systeme. Keine Abhängigkeit von externen Anbietern, keine unerwarteten Preiserhöhungen. Exakt passende Lösung Wir entwickeln Software, die sich Ihren Prozessen anpasst – nicht umgekehrt. Jede Funktion ist auf Ihren konkreten Bedarf zugeschnitten. Planbare Kosten Keine teuren Lizenzgebühren, keine kostenpflichtigen Updates. Sie investieren einmalig in Ihre Lösung und nutzen sie unbegrenzt. Nahtlose Integration Durch unsere Expertise im Bereich CMS und Web-Technologien integrieren wir Ihre Software nahtlos in Ihre bestehende digitale Infrastruktur. Langfristige Partnerschaft Wir sind auch nach der Einführung im dauerhaften Betrieb für Sie da – mit Cloud-basiertem Hosting, Wartung, Support und Weiterentwicklung aus einer Hand. Unsere Leistungen: Von der Idee zur fertigen Software Anforderungsaufnahme mit Analyse & Konzeption Wir analysieren Ihre Anforderungen, Geschäftsprozesse und technischen Rahmenbedingungen. Gemeinsam entwickeln wir ein Konzept, das Ihre Ziele optimal umsetzt. Individuelle Entwicklung auf Basis der Konzeption Unser Software-Entwicklungsteam setzt Ihre Software mit modernsten Technologien und Best Practices um. Dabei legen wir größten Wert auf Sicherheit, Skalierbarkeit und Wartbarkeit. Testing & Qualitätssicherung Umfangreiche Tests garantieren, dass Ihre Software zuverlässig funktioniert und alle Anforderungen erfüllt. Schulung & Einführung Wir schulen Ihre Mitarbeitenden im Umgang mit der neuen Softwarelösung und begleiten Sie in der Einführungsphase mit professioneller Unterstützung und unserem praxiserprobten und bewährten PPW Support. Wartung & Weiterentwicklung Ihre Software wächst mit Ihren Anforderungen. Wir sorgen für Updates, Erweiterungen und kontinuierliche Optimierung. Alle reden von digitaler Datensouveränität, PPW liefert! Wir entwickeln Software, die Ihnen gehört – inklusive Quellcode, Dokumentation und Nutzungsrechten. So bleiben Sie frei in Ihrer Weiterentwicklung und unabhängig von Lizenzmodellen. Dabei setzen auf bewährte Frameworks, sichere Architekturen und nachhaltigen Code. Damit Ihre Anwendung langfristig stabil, wartbar und zukunftssicher bleibt. Typische Anwendungsfäll und Einsatzgebiete für die eigene Software-Lösung Wir sprechen Klartext, beraten ehrlich und denken mit. Agil, transparent, mit kurzen Entscheidungswegen und klaren Ergebnissen. Wir entwickeln Software Lösungen in folgenden Bereichen auf offenen Standards – zukunftssicher und erweiterbar: Geschäftsprozess-Digitalisierung Automatisieren Sie wiederkehrende Abläufe und steigern Sie die Effizienz in Ihrem Unternehmen. Kundenportale & Self-Service-Lösungen Bieten Sie Ihren Kunden moderne Online-Services und entlasten Sie gleichzeitig Ihre Mitarbeiter. Schnittstellen & Systemintegration Verbinden Sie verschiedene Systeme und schaffen Sie durchgängige digitale Prozesse. Branchenspezifische Anwendungen Entwickeln Sie Software, die exakt auf die Besonderheiten Ihrer Branche zugeschnitten ist. Datenauswertung & Reporting Gewinnen Sie wertvolle Einblicke aus Ihren Daten mit individuellen Analyse- und Reporting-Tools. Warum jetzt handeln? Die digitale Transformation wartet nicht. Unternehmen, die heute in eigene, unabhängige Softwarelösungen investieren, verschaffen sich einen dauerhaften Wettbewerbsvorteil: Unabhängigkeit von großen Tech-Konzernen DSGVO-konforme Datenverarbeitung in eigener Hand Flexibilität bei zukünftigen Anpassungen Langfristige Kosteneffizienz Einzigartiger Funktionsumfang als USP So sieht individuelle Software-Entwicklung bei PPW aus Software-Entwicklung Skalierbare E-Learning-Plattform Wir konzipieren, entwickeln und betreuen eine integrierte Lernmanagementsoftware (LMS) für die digitale Weiterbildung. Öffentlicher Sektor Die Datendrehscheibe als individuelle Software-Lösung Die Herausforderung: Komplexe Datenstrukturen effizient verwalten und mehrfach nutzen Software-Entwicklung CRM-Lösung für Verbandsarbeit und Mitglieder Als Digitalagentur mit umfassender Expertise in der Softwareentwicklung haben wir eine zukunftssichere CRM-Lösung entwickelt. Wie wir im Team mit Ihnen zusammen arbeiten und Ihr Software-Produkt entwickeln Am Anfang steht das Verstehen: Gemeinsam analysieren wir Ihre Prozesse, Anforderungen und Ziele – und schaffen so die Grundlage für eine passgenaue Lösung. Auf dieser Basis entwickeln wir eine durchdachte Architektur und Benutzerführung, die Funktionalität und Nutzerfreundlichkeit vereint. In dieser Phase kommen unsere UX Expertinnen und Experten für die digitale Produktentwicklung zum Einsatz und begleiten Sie vom Start bis zum Go-Live Ihres Software-Produkts. In agilen Sprints setzen wir Ihre Software Schritt für Schritt um – transparent, flexibel und mit regelmäßigem Feedback. So entsteht ein digitales Produkt, welches wirklich zu Ihrem Unternehmen und Ihren Prozessen passt. Vor dem Go-Live sorgen gründliche Tests für Stabilität und Sicherheit, und auch danach begleiten wir Sie mit Support, Schulungen und Weiterentwicklung. Unser Prozess Wir beginnen mit einem unverbindlichen Kennlerngespräch, in dem wir Ihre Anforderungen, Ziele und Rahmenbedingungen besprechen. Wir stellen fest, ob wir gut zusammen passen und Ihre Lösung umsetzen können. Auf Basis dieser Vorgespräche erstellen wir eine Kostenplanung mit Funktionsumfang, Technologie-Stack und zeitlicher Meilensteinplanung. In agilen Entwicklungszyklen setzen wir anschließend Ihre Software um, wobei Sie stets informiert bleiben und regelmäßig Feedback geben können. Nach umfangreichen Tests und Ihrer finalen Freigabe geht Ihre Software live – wir begleiten den Launch und stehen für Fragen und Trainings bereit. Auch danach bleibt PPW Ihr Partner für Wartung, Support und kontinuierliche Weiterentwicklung Ihrer Software.

Weiterlesen

Individuelle Software-Entwicklung mit modernem Tech-Stack

Die Herausforderung: Komplexe Datenstrukturen effizient verwalten und mehrfach nutzen Im Rahmen eines umfassenden Website-Relaunchs für einen Entsorgungsdienstleister stand unser Kunde vor einer besonderen Herausforderung: Die Verwaltung von Abfallbegriffen sollte dezentral durch das Kundenservice-Team erfolgen – unabhängig vom TYPO3 CMS der neuen Website. Bislang wurden hunderte Begriffe zur Abfallentsorgung manuell in Excel-Dateien gepflegt , was nicht nur fehleranfällig war, sondern auch keine direkte Anbindung an die Website ermöglichte. Zusätzlich sollten Öffnungszeiten verschiedener Entsorgungsanlagen aus Google My Business automatisiert ausgelesen und auf der Website in Echtzeit dargestellt werden – inklusive dynamischer Geöffnet/Geschlossen-Anzeige . Die Komplexität dieser Anforderungen machte deutlich: Hier war mehr als nur eine CMS-Integration im Rahmen des Website-Relaunchs gefragt. Unsere Lösung: Eine intelligente Datendrehscheibe für das zentrale Schnittstellen-Handling Ihre Daten. Ihre Prozesse. Ihre Software. Unsere Antwort auf diese vielschichtige Anforderung war die Entwicklung einer maßgeschneiderten Software-Lösung – der Datendrehscheibe . Als zentrale Middleware fungiert sie als intelligente Schaltstelle zwischen verschiedenen Systemen und Datenquellen : Kernfunktionalität der ersten Ausbaustufe: Benutzerfreundliches Backend zur dezentralen Pflege von Abfallbegriffen, Abfallarten und Entsorgungsmöglichkeiten durch das Kundenservice-Team Import-Funktion zur Migration bestehender Excel-Datenbestände Automatisiertes Auslesen von Öffnungszeiten aus mehreren Google My Business Profilen API-Schnittstelle zur Website für die Suchfunktion und Standortinformationen Verknüpfung von Abfallarten mit den entsprechenden Entsorgungsmöglichkeiten Zeitabhängige Anzeige des Öffnungsstatus der Entsorgungsanlagen Die Datendrehscheibe ermöglicht es dem Kundenservice-Team, Inhalte schnell und unkompliziert zu aktualisieren, ohne sich mit der Benutzeroberfläche des TYPO3 Content Management Systems auseinandersetzen zu müssen. Einloggen, loslegen und fertig. Agile Umsetzung: In iterativen Sprints zum Erfolg Basissystem mit den Grundfunktionalitäten Im ersten Entwicklungszyklus stand die Implementierung des Kernsystems im Fokus. Wir entwickelten die Verwaltungsoberfläche für Abfallbegriffe, Entsorgungsmöglichkeiten und Abfallarten. Im Anschluss realisierten wir die Anbindung an die Google My Business Profile. Website-Integration Im Anschluss an die Umsetzung der Basisfunktionalitäten konzipierten und implementierten wir die API-Schnittstelle zur neuen TYPO3-Website. Die Suchfunktion ermöglicht es Besucherinnen und Besuchern schnell die richtige Entsorgungsmöglichkeit für ihre Abfallart am richtigen Standort zu finden. Selbstverständlich inkl. der Informationen zu den Öffnungszeiten sowie der Geöffnet/Geschlossen Anzeige in Echtzeit. App-Integration für mobile Nutzung In der zweiten Iteration wurde die Datendrehscheibe an die bestehende Mobile App des Kunden angebunden. Alle Funktionen, die auf der Website verfügbar sind, stehen nun auch den App-Nutzerinnen und Nutzern zur Verfügung. Die nahtlose Integration sorgt für ein konsistentes Nutzererlebnis über alle digitalen Touchpoints hinweg. Kontinuierliche Weiterentwicklung Das agile Vorgehen ermöglichte es uns, flexibel auf neue Anforderungen zu reagieren und die Software sukzessive um weitere Funktionen zu erweitern. Regelmäßige Abstimmungen mit dem Kunden stellten sicher, dass die Entwicklung stets den aktuellen Bedürfnissen entspricht. Langfristige Betreuung: Ihr Partner für digitale Exzellenz in der Software Entwicklung Die Datendrehscheibe ist kein abgeschlossenes Projekt, sondern eine lebendige Software-Lösung, die wir kontinuierlich betreuen und ausbauen. Als zentrale Datenplattform wird sie sukzessive um weitere Funktionen ergänzt und kann flexibel an neue Anforderungen angepasst werden. Bereits während der laufenden Projekt-Realisierung erwies sich der gewählte technologische Ansatz als richtige und zukunftsfähige Entscheidung. So mussten die Daten aus Sensoren, welche die Auslastung der jeweiligen Entsorgungsanlagen ermitteln, auf den Standort-Seiten der Entsorgungsanlagen dargestellt werden. Eine weiterer Akteur im Setup, dessen Daten per Schnittstelle an die Datendrehscheibe angebunden und von dort in Website und App verteilt werden. Die Vorteile dieser individuellen und spezialisierten Lösung Skalierbare Architektur für zukünftige Erweiterungen Kontinuierliche Wartung und technische Betreuung Schnelle Implementierung neuer Features Optimierung und Performance-Monitoring Langfristige Technologie-Partnerschaft Performance-optimiertes Hosting der Anwendung in professioneller Cloud-Infrastruktur Technologie-Stack für moderne Architektur und maximale Performance Unser gewählte Technologie-Stack für die Umsetzung der Datendrehscheibe vereint Enterprise-Stabilität mit moderner Entwicklungspraxis. Diese Architektur gewährleistet nicht nur eine performante und sichere Anwendung, sondern auch eine effiziente Weiterentwicklung und langfristige Wartbarkeit der Datendrehscheibe. Überzeugen Sie sich selbst: Zukunftssichere Technologien als Fundament Bei der Entwicklung der Datendrehscheibe setzten wir auf einen durchdachten, modernen Technologie-Stack, der höchste Ansprüche an Performance, Skalierbarkeit und Wartbarkeit erfüllt. Die Kombination bewährter Enterprise-Technologien mit aktuellen Frameworks garantiert eine zukunftssichere Lösung, die sich flexibel an wachsende Anforderungen anpassen lässt. Robuste API-Architektur mit PHP und Symfony Das Herzstück der Datendrehscheibe bildet ein leistungsstarker API-Server auf Basis von PHP und dem Symfony Framework . Symfony gilt als eines der ausgereiftesten PHP-Frameworks und überzeugt durch seine modulare Architektur, umfangreiche Komponenten-Bibliothek und hohe Entwicklungsgeschwindigkeit. PHP in der aktuellen Version bringt signifikante Performance-Verbesserungen und moderne Sprachfeatures mit, die eine saubere und wartbare Codebasis ermöglichen. Als Persistenzschicht kommt MariaDB zum Einsatz – ein performantes, Open-Source-basiertes relationales Datenbanksystem, das sich durch hohe Zuverlässigkeit und exzellente Performance auch bei komplexen Abfragen auszeichnet. Moderne Benutzeroberfläche mit Vue.js Die Verwaltungsoberfläche der Datendrehscheibe wurde mit Vue 3 entwickelt, einem der führenden Progressive JavaScript Frameworks. In Kombination mit Vuetify als Material Design Component Framework entstand eine intuitive, responsive Benutzeroberfläche, die eine effiziente Datenpflege ermöglicht. Vue 3 überzeugt durch seine hervorragende Performance für sowohl kleine als auch große Anwendungen. Qualitätssicherung auf Basis automatisierter Tests für höchste Zuverlässigkeit Qualität hat bei uns oberste Priorität. Mit PHPUnit implementierten wir umfassende Unit- und Funktionstests, die die korrekte Funktionsweise aller Komponenten sicherstellen. Jede Code-Änderung wird automatisch auf Fehler überprüft, bevor sie in die Produktion gelangt. Deployment & CI/CD: Automatisierte Prozesse für schnelle Releases Für effiziente und sichere Deployments nutzen wir Deployer, ein modernes Deployment-Tool für PHP-Anwendungen. In Kombination mit GitLab CI/CD haben wir eine vollautomatisierte Pipeline aufgesetzt, die bei jedem Push oder Merge automatisch Tests ausführt und – bei erfolgreichem Durchlauf – das Deployment auf die entsprechende Umgebung initiiert. Diese Continuous Integration und Continuous Deployment-Strategie ermöglicht es uns, neue Features und Updates schnell, sicher und ohne manuelle Eingriffe bereitzustellen. Individuelle Software-Entwicklung mit PPW für Ihren digitalen Erfolg Die Datendrehscheibe zeigt exemplarisch, wie durchdachte Software-Entwicklung komplexe Anforderungen in elegante, benutzerfreundliche Lösungen verwandelt . Ob Website-Relaunch, App-Entwicklung oder individuelle Middleware-Systeme – wir entwickeln digitale Lösungen, die perfekt auf Ihre Geschäftsprozesse abgestimmt sind . Profitieren Sie von unserer Expertise: Maßgeschneiderte Software-Entwicklung statt Standard-Lösungen Digitale Unabhängigkeit: Ihre Daten. Ihre Prozesse. Ihre Software Agile Projektmethodik für maximale Flexibilität Erfahrene Entwicklerinnen und Entwickler im Bereich der individuellen Software-Entwicklung Ganzheitliche Betreuung von der UX Konzeption über das UX Interfacedesign bis zum Betrieb und der Weiterentwicklung Integration verschiedenster Systeme und Datenquellen Wie wir arbeiten: Am Anfang steht das Verstehen! Gemeinsam analysieren wir Ihre Prozesse, Anforderungen und Ziele – und schaffen so die Grundlage für eine passgenaue Lösung. Auf dieser Basis entwickeln wir eine durchdachte Architektur und Benutzerführung, die Funktionalität und Nutzerfreundlichkeit vereint.

Weiterlesen

404 - Seite nicht gefunden - PPW Digitalagentur aus Köln

Seite nicht gefunden? Macht nichts! Hier sind drei Dinge, die du stattdessen tun könntest: Zur PPW Startseite und durch zwei Jahrzehnte Expertise navigieren In den PPW Referenzen stöbern Einfach direkt Kontakt mit uns aufnehmen, gerne auch telefonisch unter +49 (0)221 - 277 28 98 0 oder per E-Mail an info(at)ppw.de

Weiterlesen

TYPO3 14.0 - Ausblick auf TYPO3 14.3 LTS

Die 14.0 Version ist der erste Schritt bis zur “Long Term Support” (LTS) Version 14.3 - hier führen wir auf, mit welchen Änderungen gemäß Roadmap die nächsten Verbesserungen und Anpassungen zu rechnen ist. Der wichtigste Grundsatz für die endgültige 14.3 Version ist Stabilität, und vollständige Implementation aller neuen Funktionen. Während die 14.0 Version den Fokus darauf setzt, die Fundamente zu legen und danach keine weiteren “brechenden” Änderungen durchzuführen, werden in den Folgeversionen die eigentlichen Features noch weiter angegangen. Und bestehende Integrationen werden verfeinert. Vor allem steht im Vordergrund: Optimierung des neuen Designs (Schriftarten, Farbwerte, Kontraste) Sinnvolle Modul-Strukturen, Benennungen der Menüpunkte und Menüstruktur im Backend Ausbau der “GenAI-Toolbox”-Grundlagen ("Content-API") Vereinheitlichung der Site Sets / Site Settings, Theming-Optionen, Konfigurations-API Schaffung richtiger “öffentlicher” API der neuen Funktionen Für die Zwischenreleases werden wir an dieser Stelle natürlich auch einen Überblick erstellen. Bis dahin wünschen wir viel Spaß mit dem Erkunden der neuen TYPO3-Version, die vor allem Agenturen nun zeigen soll was möglich ist, und Extension-Entwicklern genügend Zeit geben soll, Kompatibilität zur neuen Version herstellen zu können. Ein paar persönliche Worte Ich bin sehr stolz, an der Entwicklung der 14.0 Version mit fast 150 Änderungen aktiv beteiligt gewesen zu sein. Ich lerne dort im Team ständig dazu und profitiere auch in meiner Projektarbeit von der “Nähe” zur Core-Entwicklung. Einen Überblick über solche Änderungen herzustellen, aktuell und vollständig zu halten ist eine Mammutaufgabe - umso mehr freue ich mich darüber, dass dies von meinem Team bei PPW guten Anklang findet. Ich habe mich nun auch einmal gewagt und eine eigene öffentliche Extension bereitgestellt: https://github.com/garvinhicking/typo3-adhoc-tasks (Packagist: https://packagist.org/packages/garvinhicking/adhoc-tasks ). Mit dieser Extension kann man die moderne EXT:scheduler API nutzen, um auf Konsolen-Ebene direkt beliebige TYPO3 Tasks auszuführen, ohne diese wie bisher als fest konfigurierte Tasks anlegen zu müssen. Alle Konfigurationsparameter können so “on the fly” (adhoc!) durchgereicht werden, und die Tasks müssen nicht extra aufwändig zu Symfony Commands migriert werden. Langlaufende Tasks auf der Konsole direkt auszuführen statt kann z.B. Ressourcen-Engpässe vermeiden, oder auch Fehler leichter reproduzierbar machen - oder auch leichter einen Debugger einzuhängen. Über Feedback, oder noch besser: Nutzung würde ich mich sehr freuen. Zurück: Künftige Entfernung (Deprecations) Übersicht TYPO3 14.1 Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen. Garvin Hicking Senior Developer garvin.hicking(at)ppw.de

Weiterlesen

Digitalagentur PPW Köln: Wir lieben digital!

Bei PPW steht der Erfolg unserer Kunden an erster Stelle. Wir arbeiten intensiv daran, Ihnen erstklassige digitale Lösungen zu bieten, die Ihnen helfen, Ihre Ziele zu erreichen und Ihre Marke zu stärken. Kontaktieren Sie uns noch heute unter 0221 27728980 oder per E-Mail, um herauszufinden, wie wir Ihnen helfen können, Ihr digitales Potenzial voll auszuschöpfen. Jetzt Kontakt aufnehmen PPW als Teil des Kundenteams Unser Vorgehen basiert auf der intensiven Einarbeitung und somit dem tiefen Verständnis für Ihr Unternehmen, Ihrer Marke und Ihrer Ziele. Wir nehmen uns die Zeit, Ihre Marke, Ihre Vision und Ihre Zielgruppe zu verstehen, um eine digitale Strategie zu entwickeln, die Ihre Botschaft effektiv vermittelt und Ergebnisse liefert. Egal, ob Sie eine benutzerfreundliche Website, einen vertriebsorientieren Web-Baustein (Assistent, Ratgeber, etc.) oder eine maßgeschneiderte App benötigen - wir haben die Erfahrung und das Know-how, um Ihre Vision zum Leben zu erwecken und/oder weiterzuentwickeln. Unsere Digitalagentur zeichnet sich durch unsere Liebe zum Detail und unsere Leidenschaft für herausragendes Design aus. Wir legen großen Wert auf Ästhetik und Benutzerfreundlichkeit und sorgen dafür, dass jede von uns entwickelte Lösung sowohl visuell ansprechend als auch funktional ist. Unsere UX Designer:innen haben ein feines Gespür für aktuelle Design-Trends und setzen diese gekonnt ein, um Ihnen ein digitales Produkt zu liefern, das nicht nur gut aussieht, sondern auch Ihre Marke stärkt und Ihre Zielgruppe anspricht. Partner für Ihr digitales Projekt Darüber hinaus sind wir in der Lage, nachhaltige und skalierbare technische Lösungen zu entwickeln. Unsere Entwickler beherrschen eine Vielzahl von Programmiersprachen und Plattformen und können maßgeschneiderte Lösungen programmieren, die perfekt auf Ihre Bedürfnisse abgestimmt sind. Egal, ob Sie eine Corporate Website oder eine komplexe Webkomponente benötigen, wir haben die technische Kompetenz, um Ihre Anforderungen zu erfüllen. Als Service- und lösungsorientierte Digitalagentur unterstützen wir Sie dabei, Ihre Online-Präsenz zu optimieren, Ihre Sichtbarkeit in den Suchmaschinen und KI Assistenten zu erhöhen, passende Landingpages für Social-Media- oder Vermarktungskampagnen zu entwickeln und vieles mehr. Wir hören zu und entwickeln gemeinsam im Projektteam maßgeschneiderte Strategien und Lösungen, die auf Ihre spezifischen Ziele und Anforderungen ausgerichtet sind und dazu beitragen, Ihre Zielgruppe anzusprechen. Unser Team für erfolgreiche Projekte Lernen Sie die Menschen kennen, mit denen Sie zusammen arbeiten Digitalagentur PPW mit Standorten in Köln und Münster Es begann nicht in einer Garage! Historie unserer Digitalagentur Die Agenturentwicklung von PPW auf einen Blick Erfolgreiche digitale Projekte - branchenübergreifende Expertise Industrie und Wirtschaft C. Gerhardt GmbH & Co. KG Smarte Verbindungen zwischen Geräten, Verbrauchsmaterialien und Know-How-Bereichen. Software-Entwicklung Skalierbare E-Learning-Plattform Wir konzipieren, entwickeln und betreuen eine integrierte Lernmanagementsoftware (LMS) für die digitale Weiterbildung. Industrie und Wirtschaft Laudius Mobile-first und TYPO3-Refresh. Modernisierung des Fernstudien-Portals. Öffentlicher Sektor Gesellschaft für Energie- und Gebäude-management Bonn mbH (EGM) Rundumservice für die Gebäudebewirtschaftung Industrie und Wirtschaft Häfen und Güterverkehr Köln AG Im neuen Marken-Gewand: Zentrale Internet-Plattform für HGK Gruppe Öffentlicher Sektor RSAG AöR Bürgerservice im Fokus des Neuauftritts mit dem "Design for All" Prinzip Öffentlicher Sektor Die RSAG App für iOS und Android App-Entwicklung - Der direkteste Draht zu den Bürgerinnen und Bürgern im Rhein-Sieg-Kreis Öffentlicher Sektor SWB Regional SWB Regional verbindet Nähe, Vertrauen und Zukunftsorientierung in einem authentischen Auftritt. Öffentlicher Sektor RegioEntsorgung AöR Moderner und barrierefreier Relaunch für ein kommunales Unternehmen mit umfangreichen Service Öffentlicher Sektor Bonn-Netz GmbH (Haus der Netze) Beim Relaunch des Webauftritts standen eine neue Bildwelt und eine verbesserte Nutzerführung im Fokus. Öffentliche Verwaltung Stadt Bornheim Moderner Bürgerservice der Stadt Bornheim. Benutzerfreundlich und bürgernah. Öffentliche Verwaltung Landkreis Vechta Vom Intranet über die Webseite des Landkreises zu den vielen weiteren Projekten rund um Vechta. Öffentlicher Sektor SWB Karriereportal Über den Auftritt SWB Karriere präsentiert der Konzern sein Stellenangebot. Gesundheitswesen Hebammensuche des Landkreis Vechta Antworten zu Versorgung und Leistungen von Hebammen in einer Web-App. Industrie und Wirtschaft Gehrke Sales Gebäudekommunikation trifft auf moderne Webtechnologie. Software-Entwicklung Die Datendrehscheibe als individuelle Software-Lösung Die Herausforderung: Komplexe Datenstrukturen effizient verwalten und mehrfach nutzen Software-Entwicklung CRM-Lösung für Verbandsarbeit und Mitglieder Als Digitalagentur mit umfassender Expertise in der Softwareentwicklung haben wir eine zukunftssichere CRM-Lösung entwickelt. Öffentlicher Sektor Stadtwerke Bonn Konzern Digitale Strategie und Rundumbetreuung für alle Unternehmensbereiche Gesundheitswesen Kinikum Westmünsterland: Karriereportal Moderne Personalgewinnung im Gesundheitswesen mit eigenem Karriereportal Gesundheitswesen Klinikum Westmünsterland Erfolgreicher Website Relaunch für den größten Gesundheits-versorger im Westmünsterland Gesundheitswesen Nikolaus Groß Stiftung Essen Modernes Karriereportal: barrierearm, mobil, klar positioniert, TYPO3 und skalierbar. Industrie und Wirtschaft Architektenkammer Nordrhein-Westfalen Das digitale Bauvorhaben der Architektenkammer entpuppte sich als wahrhaftes Großprojekt. Industrie und Wirtschaft Mobau Wirtz Classen Web Building für die Bauexperten. Die neue Corporate Website von Mobau Wirtz Classen.

Weiterlesen

Digitalagentur aus Köln

Mit ausgewiesener TYPO3-Expertise unterstützen wir Unternehmen und öffentliche Einrichtungen bei der digitalen Transformation und setzen auf moderne, nachhaltige Technologien. Alles beginnt mit einem guten Plan. Alles zum Thema Website-Projekte mit TYPO3 als Enterprise Content Management System Mehr zu TYPO3 Digitale Barrierefreiheit ist Pflicht. Mehr zu dem Thema TYPO3 in der Version 14 - Ein Ausblick Die neue Zukunft von TYPO3 nimmt Gestalt an. Mit der neuen Version 14 steht eine grundlegende Modernisierung des beliebten Content Management System TYPO3 bevor. zum Artikel Warum gute Bewerber woanders hingehen – und wie Sie das ändern. Mehr Informationen Website Projekte mit dem Government Site Builder und TYPO3 Erfahren Sie mehr Wir sind PPW. Seit 2003 als Digitalagentur für unsere Kunden im Einsatz, mit Sitz in Köln am Barbarossaplatz. Eine neue Website oder digitales Produkt zu konzipieren, zu designen und zu entwickeln ist eine große Aufgabe? Das stimmt. Doch genau das übernehmen wir für Sie als Digitalagentur mit großer Leidenschaft und Fachwissen. Ihr Ergebnis: Überzeugende digitale Erlebnisse für Kunden, Mitarbeiterinnen und Mitarbeiter, Bewerber und User Ihrer digitalen Lösung. Als TYPO3 - und Software-Spezialisten bieten wir: UX Beratung und Konzeption TYPO3-Entwicklung und -Beratung Software- & Website- Umsetzung Entwicklung oder Migration auf den GSB 11 Durchführung von BITV Prüfungen Cloud-basiertes Hosting und Support Digitale Lösungen, individuell nach Ihren Anforderungen KI Anwendungen Im Bereich unserer KI Projekte bestreiten wir den datenschutzkonformen Weg. Wie viele andere Agenturen ist das Thema auf der Tagesordnung. Meist noch Chat-Bot Projekte oder KI Assistenten, die den Kundenservice entlasten. Zunehmend aber auch komplexe Anwendungen wie KI Agenten, die tatsächlich nützliche Aufgaben übernehmen und Mitarbeitende entlasten können. Erfahren Sie hier, wie unser KI Entwicklungsszenario ausgerichtet ist. Web-APP für alle digitalen Touchpoints Web-Apps sind so invidividuell wie Ihr Geschäftsmodell. Egal, ob Sie eine interaktive Plattform, ein Online-Tool oder eine maßgeschneiderte Anwendung benötigen, wir stehen Ihnen zur Seite, um Ihr Projekt erfolgreich umzusetzen. Pillar Pages als SEO-Turbo Gut strukturierte Pillar Pages bündeln Wissen zu einem Kernthema, vernetzen Ihre Inhalte sinnvoll und verbessern die Sichtbarkeit bei Google. So entsteht eine klare Content-Architektur, die Nutzerinnen und Nutzer wie Suchmaschinen überzeugt Landingpages als Lead-Turbo im Online-Marketing Zur Unterstützung der eigenen Website-Strategie, insbesondere bei vertrieblicher Ausrichtung, werden meist Landingpages eingesetzt. Landingpages werden in der Regel dahingehend geplant und gestaltet, um ein Hauptziel zu erreichen. Garvin und unser Team sind bei TYPO3 immer auf dem neuesten Stand Übersicht: TYPO3 Release Notes TYPO3 Version 14.1 veröffentlicht Neuste Release Note zur CMS Versionsreihe 13 Neuste Release Note zur CMS Versionsreihe 12 Erfolgreiche digitale Projekte - branchenübergreifende Expertise Industrie und Wirtschaft C. Gerhardt GmbH & Co. KG Smarte Verbindungen zwischen Geräten, Verbrauchsmaterialien und Know-How-Bereichen. Software-Entwicklung Skalierbare E-Learning-Plattform Wir konzipieren, entwickeln und betreuen eine integrierte Lernmanagementsoftware (LMS) für die digitale Weiterbildung. Industrie und Wirtschaft Laudius Mobile-first und TYPO3-Refresh. Modernisierung des Fernstudien-Portals. Öffentlicher Sektor Gesellschaft für Energie- und Gebäude-management Bonn mbH (EGM) Rundumservice für die Gebäudebewirtschaftung Industrie und Wirtschaft Häfen und Güterverkehr Köln AG Im neuen Marken-Gewand: Zentrale Internet-Plattform für HGK Gruppe Öffentlicher Sektor RSAG AöR Bürgerservice im Fokus des Neuauftritts mit dem "Design for All" Prinzip Öffentlicher Sektor Die RSAG App für iOS und Android App-Entwicklung - Der direkteste Draht zu den Bürgerinnen und Bürgern im Rhein-Sieg-Kreis Öffentlicher Sektor SWB Regional SWB Regional verbindet Nähe, Vertrauen und Zukunftsorientierung in einem authentischen Auftritt. Öffentlicher Sektor RegioEntsorgung AöR Moderner und barrierefreier Relaunch für ein kommunales Unternehmen mit umfangreichen Service Öffentlicher Sektor Bonn-Netz GmbH (Haus der Netze) Beim Relaunch des Webauftritts standen eine neue Bildwelt und eine verbesserte Nutzerführung im Fokus. Öffentliche Verwaltung Stadt Bornheim Moderner Bürgerservice der Stadt Bornheim. Benutzerfreundlich und bürgernah. Öffentliche Verwaltung Landkreis Vechta Vom Intranet über die Webseite des Landkreises zu den vielen weiteren Projekten rund um Vechta. Öffentlicher Sektor SWB Karriereportal Über den Auftritt SWB Karriere präsentiert der Konzern sein Stellenangebot. Gesundheitswesen Hebammensuche des Landkreis Vechta Antworten zu Versorgung und Leistungen von Hebammen in einer Web-App. Industrie und Wirtschaft Gehrke Sales Gebäudekommunikation trifft auf moderne Webtechnologie. Software-Entwicklung Die Datendrehscheibe als individuelle Software-Lösung Die Herausforderung: Komplexe Datenstrukturen effizient verwalten und mehrfach nutzen Software-Entwicklung CRM-Lösung für Verbandsarbeit und Mitglieder Als Digitalagentur mit umfassender Expertise in der Softwareentwicklung haben wir eine zukunftssichere CRM-Lösung entwickelt. Öffentlicher Sektor Stadtwerke Bonn Konzern Digitale Strategie und Rundumbetreuung für alle Unternehmensbereiche Gesundheitswesen Kinikum Westmünsterland: Karriereportal Moderne Personalgewinnung im Gesundheitswesen mit eigenem Karriereportal Gesundheitswesen Klinikum Westmünsterland Erfolgreicher Website Relaunch für den größten Gesundheits-versorger im Westmünsterland Gesundheitswesen Nikolaus Groß Stiftung Essen Modernes Karriereportal: barrierearm, mobil, klar positioniert, TYPO3 und skalierbar. Industrie und Wirtschaft Architektenkammer Nordrhein-Westfalen Das digitale Bauvorhaben der Architektenkammer entpuppte sich als wahrhaftes Großprojekt. Industrie und Wirtschaft Mobau Wirtz Classen Web Building für die Bauexperten. Die neue Corporate Website von Mobau Wirtz Classen. PPW Insights: Lassen Sie sich von digitaler Innovation inspirieren! Jetzt anmelden und digital informiert bleiben Schlaglichter Wir schreiben hier über uns, über Webtrends, CM-Systeme, Frontend-Themen und Webentwicklung im Allgemeinen sowie über UX, Konzeption, BarCamps und Konferenzen.

Weiterlesen

TYPO3 14.2 - Bugfixes und Verbesserung der Performance

Auch kleinere Bugfixes und Performance-Verbesserungen können eine spürbare Verbesserung auslösen. Die meisten relevanten Bugfixes von TYPO3 14 wurden auch immer in die Version 13 (und teilweise auch 12) zurückportiert. In diesem Bereich sind primär Bugfixes für TYPO3 14.1 und 14.0 enthalten. Bugfixes und kleinere Anpassungen Backend: API Goodie Erweiterung des Events ModifyButtonBarEvent für den Zugriff auf das Request-Objekt. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add request object to ModifyButtonBarEvent Goodie Der DatabaseCompare-Prozess kann nun die "Default" Werte im TCA auch für einige weitere TCA-Typen korrekt auswerten und auf Datenbank-Ebene als DEFAULT anwenden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Respect TCA default values for select fields in schema analyzer Einfügung einer neuen internen ArrayUtility::containsOnlyScalarValues() Methode. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add ArrayUtility::containsOnlyScalarValues() for array validation URL Parameter bei der kanonischen URL-Erzeugung werden besser ausgewertet um ausgeschlossen zu werden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Correctly exclude URL parameters in canonical URL generation Bessere Klassen-Konstruktion für das PreviewRendering, um Probleme mit DI für Extension-Entwicklung zu vermeiden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Ensure Preview Rendering is working for extension authors | [BUGFIX] Prevent TypeError in StandardContentPreviewRenderer | [BUGFIX] Use raw record in preview renderer Der be:tableList ViewHelper kann nun Datensätze wieder korrekt anzeigen selbst wenn der neue Sprach-Kontext gesetzt ist. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Remove inherited pageContext from TableListViewHelper Datensätze die in einer Backend-Layout-colpos nicht erlaubt sind, können nun auch nicht mehr übersetzt werden. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Disallow translation of records not allowed in colPos Die TypoScript "dot" Notation für "mod.web_list.table.XX.YY" wird wieder korrekt ausgewertet (wurde in v14 refactort). Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Prevent usage of dot-notation in reworked TSConfig access Der neue AbstractTypolinkBuilder verschluckt nun für die legacy-Implementation keine Werte/Attribute mehr. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Keep target and text in typolink BC path Backend: DataHandler Goodie Die Operationen im DataHandler (copy, move, delete, etc.) können nun TCA ColumnOverrides vollständig auswerten. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Support columnsOverrides in all DataHandler operations | [TASK] Centralize nonFields handling in DataHandler copy/localize methods Backend: User-Interface / Darstellung (UI) Korrektes Escaping der Datensatz-Titel in der Datensatz-Breadcrumb, Erweiterung der Breadcrumb-API für eine "Nur-Text"-Variante. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Escape record path in content preview renderer | [TASK] Add path mode to breadcrumb Goodie Die Inhaltsvorschau im Seitenmodul nutzt nun die Record API vollständig, optimiert die Ausgabe von Listen und HTML Rendering (einige Formatierungen sind nun zugelassen). Zielgruppe: Integration Relevante Commits (GitHub) [TASK] Re-structure standard content preview renderer Goodie Wenn im Layout-Modul nur eine einzige Sprache definiert ist, wird kein Sprachdropdown dargestellt und daraus resultierende Fehler (Zugriffe) werden vermieden. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Fallback to LayoutView when only one language is available Wissenswert Vermeidung von Redirects innerhalb von Ajax-Modals im Backend, wenn man nicht (mehr) eingeloggt ist. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Avoid login redirects in ajax requests Goodie Die Auswertung beim Drücken von der "ESC"-Taste in Backend-Modals wurde überarbeitet, vor allem bei vorhandenen input type=search fokussierten Elementen. Die Nutzung von "ESC" führt nun überall korrekt dazu, dass ein Popup geschlossen werden kann bzw. zuerst ein Suchfeld geleert werden kann. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Streamline ESC handling in Die ColorPicker-Komponente "alwan" wurde aktualisiert, und die Funktionalität in der Extension-Konfiguration im Backend funktioniert wieder. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Properly place TCA colorpicker in HTML dialogs Vermeidung einer unnötigen "*" Ausgabe, wenn für einen Datei-Upload alle Dateitypen zugelassen sind. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Do not show asterisk for "Allowed file extensions" Wissenswert Behebung eines relevanten Memory-Leaks innerhalb der JavaScript-Navigationsverwaltung. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Fix leaking event handlers in content-navigation-toggle Sehr wichtig Überarbeitung der Modul-Icons und Navigationleiste und Farbdefinitionen im neuen Backend-Design, Umpositionierung des Workspace-Switches in die Seitenleiste (per User-Settings steuerbar). Die FormEngine Tabs nutzen nun eine eigene, scrollbare Sektionsleiste (keine Bootstrap Tabs mehr). Zielgruppe: Redaktion Weiterführende Dokumentation Workspace selector moved to sidebar with color and description Relevante Commits (GitHub) [TASK] Improve module menu UX and update module icons | [TASK] Add visual hierarchy lines to nested module menu groups | [TASK] Use non aliased module icon identifiers | [TASK] Introduce decorative state color tokens adding lime and indigo | [BUGFIX] Fix --icon-color-accent on typo3-backend-icon | [BUGFIX] Fix fresh theme corner mask in RTL mode | [TASK] Add workspace selector to module menu | [FOLLOWUP] Add documentation for workspace selector | [BUGFIX] Fix installtool importmap in TYPO3 Development context | [FEATURE] Add user setting option for Live workspace indicator | [BUGFIX] Correct size of trees in element browsers | [TASK] Replace Bootstrap Tabs | [TASK] Do not wrap content in tab-content in NoTabsContainer | [TASK] Add cog icon to view mode buttons in docheader | [TASK] Align general form styling | [TASK] Update @typo3/icons to 5.0.3 | [TASK] Remove obsolete file type icons Kleine Bugfixes für Randfälle in der neuen Backend-Vorschaufunktion. Zielgruppe: Entwicklung Relevante Commits (GitHub) Details | [BUGFIX] Prevent TypeError in RecordFieldPreviewProcessor Wenn keinerlei Inhaltselemente im "Neues Inhaltselement"-Wizard vorhanden sind (z.b. aufgrund von Rechten) wird eine Hinweisnachricht ausgegeben. Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Inform about missing permissions in new record wizard Goodie Die Blätterfunktion der Dateiliste ist nun an die anderen Backend-Blätterfunktionen angeglichen. Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Streamline pagination in Media module | [BUGFIX] Use numerical f:translate arguments instead named arguments Vermeidung von PHP-Fehlermeldung beim Anklicken von Elementen im neuen Breadcrumb-Menü unter gewissen Umständen. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Properly check firstEL in EditDocumentController Goodie Forcierte DateTime-Objektdarstellung im Layoutmodul hat nun keine Darstellungsprobleme mehr. Zudem wurde eine neue "datetime" Webcomponent hergestellt, mit der relative Zeitangaben machbar sind. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Fix rendering of DateTime fields in Layout module | [TASK] Add datetime web component and backend date format service | [TASK] Add relative-show-seconds attribute to the datetime element Vermeidung von mehreren gleichzeitigen Lade-Fortschrittsbalken. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Ensure only one progress-bar-element is rendered at a time Beim TCA-Typ "language" werden nun nur noch Sprachen angezeigt, für die es auch Übersetzungen in einer Site gibt. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Limit language selector to existing page translations Die Möglichkeit der TCA-basierten Sortierung für IRRE-Elemente mittels "ORDERBY" Parameter in foreign_table_where Abfragen wird nun wieder korrekt ausgewertet. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Re-add sorting to foreign table items Goodie Ein neues "schmales" internes Backend-Modul-Template/Layout wurde eingefügt, was nicht auf 100% Breite sondern einen kleineren Bereich beschränkt ist. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Introduce backend module layouts CLI (Kommandozeile) Die automatische Vervollständigung von CLI-Argumenten für den "EXT:styleguide" Generator wurde aktiviert. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add autocomplete to styleguide's generator command Camino-Theme Goodie Detailanpassungen im Camino-Theme. Es wird nun überall das "Record API" Objekt genutzt, wo möglich - inklusive der neuen "f:render" ViewHelper (Best practice). Ausserdem weitere kleine CSS-Fixes und Template-Anpassungen sowie Erstellung der Dokumentation. EXT:felogin wird unterstützt, wie auch mehrsprachige Seitenmenüs. Die TCA-Felder in "pages" für "tsconfig_includes" und "module" werden nicht mehr ausgeblendet. Indexed-Search Suchmarker werden gesetzt. Beim ersten Anlegen der Extension bei der Installation werden Dummy-Daten importiert. Zielgruppe: Integration Relevante Commits (GitHub) [TASK] Use record in theme_camino | [BUGFIX] Adjust css for author card in camino theme | [BUGFIX] Adjust author card in camino theme | [BUGFIX] Set link field required for camino_sociallinks element | [DOCS] Create Camino Theme documentation | [TASK] Improve f:image usage in Camino theme | [TASK] Use f:render.contentArea for Camino page rendering | [BUGFIX] Fix focus styles for buttons and icons in camino | [BUGFIX] Fix visible outline for Camino textmedia teaser elements | [BUGFIX] Add styles for frontend login in camino theme | [TASK] Clean up Theme Camino TCA | [TASK] Add language navigation to Camino header | [TASK] Keep fields module & tsconfig_includes if using camino | [BUGFIX] Limit content area used for searching in theme_camino | [TASK] Add example content for EXT:theme_camino | [TASK] Remove rel attribute from camino setup Dashboard Goodie Widgets können nun als "admin only" deklariert werden, indem das AdminOnlyWidgetInterface Interface implementiert wird. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Allow to restrict widgets to admin only EXT:form (Formularverwaltung) Wissenswert Die neue (interne) Form-Datenpersistierung kann nun auch korrekt mit "variants" auf oberster Ebene umgehen. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Respect top-level form variants when parsing form definitions Goodie Beim erstellen von neuen Formularen wird automatisch der erste Wizard-Schritt vorausgewählt und das Eingabefeld für den Formularnamen hervorgehoben. Zudem nutzt der Wizard nun den neuen Popup-Wizard-Service. Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Auto-select first mode in form wizard ModeStep | [BUGFIX] Forms Wizard: Auto-focus newFormName in settings step | [TASK] Use typo3-backend-wizard component in form wizard EXT:linkvalidator Der Linkvalidator kann nun den TypoLink von "url"-Doktypes korrekt auswerten. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Migrate linkvalidator results for pages.url | [BUGFIX] Fix wrong casting for new doktype=link EXT:redirects (Link-Weiterleitungen) Die Mehrfachauswahl von sys_redirect Einträgen nutzt nun eine korrekte CSS-Dropdown-Klasse; QR-Codes werten keinen integrity-check mehr aus. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Fix table listings in Link Management Beim Rückgängigmachen der Änderung von Seiten-Slugs werden nicht mehr nur Unterseiten sondern auch die betreffende Seite selbst wieder angepasst. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Revert current page on rolling back slug regeneration EXT:reports Die Datensatz-Statistiken sind nun sortiert nach Tabellenname. Zielgruppe: Integration Relevante Commits (GitHub) [TASK] Improve rendering of record statistics EXT:scheduler (Task-Planer) Wissenswert Die Auswertung von Task-Parametern bei Ausführung auf CLI-Ebene für den "next Task" erfolgt nun korrekt. Zielgruppe: Integration Relevante Commits (GitHub) [BUGFIX] Consider all parameters on fetching scheduler-tasks Extbase Das PropertyMapping mit strikter Typisierung wirft nun keine Fehlermeldung mehr, wenn propertyNames nur mit Zahlen genutzt werden (z.b. im Extensionmanager). Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Cast propertyName to string Wissenswert Extbase Identity-Maps erkennen nun ihren Sprachkontext, um sicherzustellen dass Eindeutigkeit von Objekten sprachabhängig sein muss. Andernfalls wurden mit unterschiedlichem LanguageAspect ausgelesene Datensätzen aus dem Cache mit potentiell falscher Sprache ausgeliefert. Zielgruppe: Entwicklung Weiterführende Dokumentation Extbase identity map now language-aware Relevante Commits (GitHub) [BUGFIX] Make Extbase identity map language-aware Die Nutzung von Zahl-indizierten Arrays erzeugt keinen TypeError mehr im Property Mapping. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Cast numeric property key to string in forProperty() Extensionmanager Wissenswert Das Modal für "Versionshinweise" bei Extension-Updates im Extensionmanager nutzt nun moderne UI-Radioboxen, und ist wieder funktionsfähig. De/Aktivierung von Extensions lädt das Backend nun wieder korrekt neu. Zielgruppe: Administration Relevante Commits (GitHub) [BUGFIX] Fix extension update version selection modal | [BUGFIX] Enable extension update in extensionmanager | [BUGFIX] Reload backend after extension state changes FormEngine Die Auflösung von IRRE "useCombination" TCA-Datensätzen kann das referenzierte Datenobjekt nun wieder korrekt auslesen. Weiterer Cleanup der "IRRE container" Funktionalitäten. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Fix child UID resolution for type=group in useCombination | [TASK] Cleanup IRRE container implementation details | [TASK] Extract AJAX endpoints and records container in InlineControlContainer Goodie Formularfelder können nun in FormEngine direkt beim tippen validiert werden (mit Throttling). Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Validate FormEngine fields while typing Sprachhandling Das CLI Kommando "language:domain:search" kann nun korrekt auf Übersetzungen in Sprachlabels zugreifen. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Fix resolving localized strings in language:domain:search CLI Wissenswert Sprachdateien wie "fr_CA.locallang.xlf" können nun korrekt aufgelöst werden vom neuen Symfony Language-Handling (vorher nur "fr-CA" mit Bindestrich). Zielgruppe: Integration Relevante Commits (GitHub) [BUGFIX] Resolve XLIFF files for locale with language and country code Sehr wichtig Lokale Sprachdateien wie "de.locallang.xlf" konnten im Composer-Mode nicht korrekt aufgelöst werden. Zielgruppe: Integration Relevante Commits (GitHub) [BUGFIX] Allow label file override in composer mode Das XML-Attribut "space:preserve" wird nun in XLIFF-Dateien korrekt ausgewertet, und überall entfernt wo nicht benötigt. Zielgruppe: Entwicklung Weiterführende Dokumentation XLIFF whitespace handling now respects xml:space Relevante Commits (GitHub) [BUGFIX] Respect xml:space attribute in XLIFF parser Goodie Performance-Verbesserungen im Cache-Warmup und Parsing von Dateien. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Manage localization fallback and load override files using Symfony Translator | [TASK] Improve localization cache warmup performance Wissenswert Content-Blocks Extensions können nun wieder korrekt eigene XLF-Sprachdateien in Verzeichnissen platzieren und durch das neue XLIFF-Parsing auswerten. Per CI wird nun verhindert dass "locallang.xlf" und "messages.xlf" Dateien im selben Verzeichnis existieren, da sie sonst die Labels gegenseitig überschreiben. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Allow extensions to self-handle localization files in custom directories | [TASK] Enhance XLIFF integrity checks to prevent locallang+messages EXT:form Übersetzungen vererben nun keine Sprachkeys mehr um Probleme zu vermeiden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Prevent language inheritance in form finishers Wissenswert Es wird nun der Sprachkey "en" statt "default" genutzt (z.b. für Spracheinstellungen von Redaktions-Accounts und technischer API-Aufrufe). Zielgruppe: Entwicklung Weiterführende Dokumentation Backend user language default changed to "en" Relevante Commits (GitHub) [TASK] Use "en" instead of "default" as backend user language TCA Schema API Die automatische Datenbankfelderzeugung kann nun das nullable Feld für "select" Felder korrekt auswerten und anhand dessen einen richtigen Datenbanktyp auswählen (nullable INT statt VARCHAR). Zielgruppe: Entwicklung Weiterführende Dokumentation TCA select fields with null item values create nullable columns Relevante Commits (GitHub) [BUGFIX] Handle null item values in TCA select field schema generation Zurück: Neue Funktionen und Features Weiter: Modernisierung des Codes Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen. Garvin Hicking Senior Developer garvin.hicking(at)ppw.de

Weiterlesen

TYPO3 14.0 - Modernisierung des Codes und Entschlackung

Unter der Haube ändern sich bei TYPO3 auch regelmäßig die Code-Basis für notwendige Modernisierung, Umstrukturierungen und neue interne Methoden, die nicht direkt Auswirkung auf Erweiterungen oder Implementationen haben müssen. Aufräumarbeiten im Code und Modernisierung Abhängigkeiten Wissenswert Update von phpstan/phpdoc-parser damit symfony/ai Pakete eingebunden werden können. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Upgrade to phpstan/phpdoc-parser:^2.1 Goodie Die Symfony PropertyInfo-API wurde mit einem Adapter zum modernen Handling von TypInfos ausgebaut, z.b. für Reflection API. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Migrate Property to TypeInfo via TypeAdapter Update von bacon/bacon-qr-code 3.0.4. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Update bacon/bacon-qr-code to 3.0.4 | [TASK] Raise symfony/property-info to ^7.4 Backend: API Goodie SymfonyRoutes können nun einfach in die TYPO3-Route-Objektinstanz gewandelt werden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Introduce \TYPO3\CMS\Backend\Routing\Route::fromSymfonyRoute() Nutzung von mehr PHP 8 Features für einfacheren Code. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Simplify usage of substr by replacing it with str_ends_with Goodie Einfügung einer neuen Backend Sidebar Registry. Hierrüber können Komponenten für den linken Navigationsframe im Backend registriert und eingesetzt werden. Diese API ist vorerst intern. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add backend sidebar component registry Korrekte Nutzung von "@deprecation" annotations in einigen install/scheduler Klassen. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add @deprecation annotations to install/scheduler classes Verbesserte Code-Aufteilung um LiveSuche in der Backend-Navigation isolieren zu können. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Split responsibilities of toolbar search item and live-search Die interne DataHandler property excludedTablesAndFields konnte entfernt werden, da bereits über das BE_USER Objekt zugänglich. Refactoring der copyRecord Methode um "Übersetzen" und "Kopieren" funktional zu entkoppeln. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] DataHandler: Remove internal property excludedTablesAndFields | [TASK] Extract localizeRecord() from DataHandler::copyRecord() Mehrere Events können nun direkt auf den request Kontext zugreifen, und können so $GLOBALS['TYPO3_REQUEST'] vermeiden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add request object to some events Wissenswert Auch timestamp-basierte Datenbankfelder werden nun bei der Darstellung im Backend nun immer in ein DateTime-Objekt konvertiert und sorgen so für Einheitlichkeit. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Transform all dates in DatabaseRowDateTimeFields to DateTime | [BUGFIX] Prevent unsupported casting with \DateTimeImmutable in label Das PageRepository muss keine redundanten Datenbankabfragen für die Methode getWorkspaceVersionOfRecord mehr durchführen . Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Avoid duplicate DB queries in getWorkspaceVersionOfRecord Backend: User-Interface / Darstellung (UI) Sehr wichtig Entfernung einiger Bootstrap CSS Utility Klassen und ungenutzten JS-Komponenten. Die "Popover"-Komponente wird nun eigenständig implementiert. WICHTIG: Falls man diese in eigenen Backend-Modulen genutzt hat, müssen Sie nun mit eigenem CSS/JS integriert werden, oder das HTML angepasst werden! Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Slim down bootstrap CSS | [TASK] Exclude unused bootstrap JavaScript components from bundling | [TASK] Replace Bootstrap dropdown with Popover API | [BUGFIX] Use correct data attribute for modals Das Beschneiden von Seitentiteln in einigen Backendmodulen erfolgt nun nicht mehr hart im PHP/Fluid-Code, sondern mittels CSS. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Improve page title cropping in backend modules Der Seitenbaum des Page-Browser-Modals klappt nun bei Auswahl einer einzelne Seiten-ID auch den Seitenbaum so aus, dass die übergeordneten Seiten im Seitenbaum ausgeklappt werden, im Kontext zur aktuell gewählten Seite. Zielgruppe: Redaktion Relevante Commits (GitHub) [BUGFIX] Page browser: load and expand active node if missing | [BUGFIX] Fix preselection in page browser/tree component Erhöhung der Accessibility (a11y): Nutzung von "label" anstelle von "legend" für das TCA SlugElement, verbesserte TAB-Reihenfolge der Toolbar-Buttons in der Datensatzliste. Dropdowns mit mehrstufigen Inhalten können per Tastatur navigiert und genutzt werden. Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Add label for InputSlugElement | [BUGFIX] Fix tab order of toolbar buttons | [TASK] Add multilevel support to dropdowns Code-Aufräumarbeiten Bereinigung von Fehlern in der PHPStan baseline, Setzung der Option "treatPhpDocTypesAsCertain: false" (war bislang "true"). "Named Arguments" im Core werden nun anhand der festgelegten Regeln forciert. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Solve more trivial phpstan baseline information | [TASK] Use static return type for immutable methods in request classes | [TASK] Resolve PHPStan baseline entries for trivial type issues | [TASK] Remove redundant type checks proven safe by native PHP types | [TASK] Resolve simple issues of phpstan | [TASK] Remove last remaining obvious phpstan issues | [TASK] Various cleanups in recycler | [TASK] phpstan: do not treatPhpDocTypesAsCertain | [TASK] Resolve most frontend-related phpstan issues | [TASK] Remove phpstan warnings in backend-related code | [TASK] Add PHPStan rule to forbid certain PHP attributes | [BUGFIX] Prevent undefined array key in BackendLayoutWizardElement | [BUGFIX] Adjust type declaration to AbstractAuthenticationService | [TASK] Prevent disallowed named arguments usage using phpstan Korrektur der Schreibweise von "createFromDatabaseValueAndTCAConfig()" und "sL()". Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Fix wrong case of method name Die Funktionen zur Verwaltung der "offenen Dokumente" in der Taskleiste wurden zentralisiert (in EXT:opendocs) und modernisiert in Bezug auf die interne Implementation. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Centralize open document tracking in EXT:opendocs | [TASK] Improve message if record is currently opened by a different user Die Verarbeitung der "Cache leeren" Toolbar nutzt intern nun eigenständige Routen und einen dedizierten Handler. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Introduce dedicated AJAX routes for cache clearing actions Eine zentrale interne Methode der FormEngine-Verarbeitung ( FormResultCompiler ) wurde modernisiert und auf eigenständige Service-Bereiche aufgeteilt. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Separate compiling and asset handling concerns of FormEngine | [TASK] Re-add and deprecate FormResultCompiler | [TASK] Use FormDataCompiler in NewMultiplePagesController Goodie Eine der hässlichsten URL-Übertragungsparameter "bParams" im Element-Browser-Popup wurde gegen bessere De/Serialisierung ausgetauscht. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add ElementBrowserParameters DTO for type-safe browser params Goodie Der "Popup-Wizard-Service", primär beim Lokalisierungsworkflow im Einsatz, wurde nun als generische Komponente auch für weitere Wizards ausgelagert (z.B. Inhaltselemente, Formulare). Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Extract generic wizard component from LocalizationWizard for reuse | [BUGFIX] Use correct language query argument for redirect URL in Localization Wizard Entfernung nicht mehr benötigter interner JavaScript-Events sowie HTML-Ausgaben die von webkomponenten übernommen wurden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Remove unused sorting-changed events | [TASK] Remove unnecessary wrapper from avatar field in setup module | [TASK] Convert InlineControlContainer to web component Sehr wichtig Entkoppelung von FormEngine und $GLOBALS['TCA']. FormEngine nutzt nun die TCA Schema API. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Add TCA and schema as state to FormEngine $result | [BUGFIX] Fix site_language icons in site config Wissenswert Keine Nutzung mehr von getIndpEnv zugunsten des PSR-Request-Objekts und NormalizedParams . Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Migrate getIndpEnv to NormalizedParams | [TASK] Migrate more GU::getIndpEnv() to NormalizedParams Anpassung von e2e playwright tests für mehr Stabilität. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Fix flaky Playwright e2e tests Dashboard Dashboard-Verwaltung findet über eigenes Modul statt, daher wird die be_dashboards Tabelle von der Record-Liste ausgeblendet. Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Prevent creating dashboard in Records module EXT:felogin (Benutzerlogin) Goodie Korrekte W3C-Validierung des "ShowChangePassword" HTML templates. Zielgruppe: Integration Relevante Commits (GitHub) [BUGFIX] Fix invalid felogin showChangePasswordAction template EXT:form (Formularverwaltung) Goodie Ersetzung von jQuery durch natives JavaScript in der "Form Editor" GUI, Anpassung an das neue Backend-Design. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Replace jQuery in EXT:form with VanillaJS - Part 1 | [TASK] Migrate EXT:form from jQuery to Vanilla JS - Part 2 | [TASK] Migrate EXT:form from jQuery to Vanilla JS - fadeOut()/fadeIn() | [TASK] Migrate EXT:form from jQuery to Vanilla JS - Replace $.type() | [TASK] Migrate form manager in ext:form to VanillaJS | [TASK] Migrate EXT:form tree-component-adapter from jQuery to Vanilla JS | [TASK] Migrate EXT:form from jQuery to Vanilla JS - $.extend() | [TASK] Migrate stage component in EXT:form to Vanilla JS | [TASK] Migrate modals, mediator and view-model in EXT:form to Vanilla JS | [TASK] Migrate EXT:form from jQuery to Vanilla JS - inspector component | [TASK] Improve form editor UI | [TASK] Move error states in formeditor tree to status api | [BUGFIX] Add missing null checks for collection element configuration | [TASK] Remove unused formeditor css EXT:impexp Goodie Der T3D-Export kann Inhalte überspringen, die anderweitig bereits redundant definiert wurden und für den Import nicht relevant waren. Leere XML-Arrays werden übersprungen. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Skip content on export where SubSchema does not define a field | [BUGFIX] Keep uid and pid in export record data for sys_file handling | [TASK] Avoid writing empty arrays to impexp XML export EXT:recycler Goodie Die Blätterfunktion im Papierkorb-Backendmodul nutzt nun den nativen "ArrayPaginator" statt einer eigenständigen Implementation. Nutzung von mehr Server-Side-Rendering für die Auslieferung der Papierkorb-Modulausgaben statt "AJAX-Pingpong". Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Utilize native TYPO3 paginator in recycler module | [TASK] Render recycler module with initial data server-side EXT:scheduler (Task-Planer) Die TCA-Eigenschaften der "nächste Operation" und "Task-Details" usw. für Scheduler-Tasks werden nun in einer einzigen Palette gruppiert. Zielgruppe: Integration Relevante Commits (GitHub) [TASK] Introduce execution palette for scheduler task TCA Kleine Detailverbesserungen für die neue Taskgruppen-Verwaltungsfunktion. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Improve rendering of tasks in the scheduler Fluid 5 Wissenswert Anpassung von Tests, Nutzung von .fluid.html Suffix, Update auf Fluid Standalone 5.2.0 um Randfälle in der Sortierung von Template/Partial/Layout-Overrides bzw. Vererbung zu beheben. Normalisierung von Slashes in Komponenten-Templatepfaden angepasst. Nutzung von Symfony DI für Delegator Resolver. Besserer Objektvergleich und interne Typ-Deklarationen. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Use Fluid file extension in test fixtures | [BUGFIX] Rename dashboard template to .fluid.html | [BUGFIX] Migrate static template references to .fluid file extension | [TASK] Cover template fallback chain with tests | [TASK] Update Fluid Standalone to 5.1.0 | [BUGFIX] Avoid duplicate slashes in component template paths | [TASK] Provide resolver delegates to Fluid via DI | [TASK] Update Fluid Standalone to 5.1.1 | [TASK] Update Fluid Standalone to 5.2.0 | [TASK] Clarify Fluid namespace override tests Vermeidung von TYPO3_CONF_VARS Zugriff für Fluid-Namespacedefinitionen bei Core-Methoden. Zielgruppe: Entwicklung Relevante Commits (GitHub) [BUGFIX] Avoid TYPO3_CONF_VARS to obtain Fluid namespaces Sprachhandling Weitere Formatierungs- und Text-Verbesserungen bei Labels. Zielgruppe: Redaktion Relevante Commits (GitHub) [TASK] Remove exclamation marks from texts on EXT:backend (MFA) - leftover | [BUGFIX] Use correct intentation in xliff files | [TASK] Replace "OK" label in scheduler modal and use the new domain syntax for delete modal | [TASK] Improve page tree option label | [TASK] Remove exclamation mark from texts on EXT:install | [TASK] Uniform writing styles of Status submodules descriptions | [TASK] Uniform writing styles of "Link Management" descriptions | [TASK] Uniform writing styles of "Reports" descriptions | [TASK] Uniform writing styles of "Maintenance" descriptions | [TASK] Uniform writing styles of "Database" descriptions | [TASK] Move labels in EXT:scheduler to locallang.xlf | Details | [TASK] Remove filling words from bookmarks labels | [TASK] Replace "OK" label in sys_note modals and use the new syntax | [TASK] Remove exclamation marks from texts on EXT:styleguide | [TASK] Remove exclamation marks from texts on EXT:scheduler | [TASK] Improve wording about FileUtility messages and logs | [TASK] Uniform writing styles of "Integrations" descriptions | [TASK] Uniform writing styles of "Settings" descriptions | [TASK] Uniform writing styles of "Environment" descriptions | [TASK] Uniform writing styles of "Upgrade" descriptions | [TASK] Uniform writing style of "Styleguide" description | [TASK] Uniform writing styles of "Database" descriptions | [TASK] Improve writing styles of "Feature toggles" descriptions | [TASK] Consolidate doktype labels into core.db.pages domain | [TASK] Improve writing style of "Manage System Maintainers" description | [TASK] Improve writing style of "Change Install Tool Password" description | [TASK] Move site set enum labels to labels.xlf TCA Schema API Wissenswert Die Schemata Rückgaben sind nun alphabetisch sortiert, und nicht mehr abhängig von Ladereihenfolgen oder ähnlichem. Zielgruppe: Entwicklung Relevante Commits (GitHub) [TASK] Ensure TcaSchema are sorted alphabetically Zurück: Bugfixes und Verbesserungen Weiter: Künftige Entfernung (Deprecations) Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen. Garvin Hicking Senior Developer garvin.hicking(at)ppw.de

Weiterlesen

TYPO3 14.2 - Neue Funktionen und Features

Spürbare Verbesserungen im Bereich Content-Erstellung und neue Schnittstellen oder Funktionen. Dieser Bereich ist sicher für alle der Spannendste, denn hier geht es um die wirklich spürbaren Fortschritte bei TYPO3. In diesem Bereich zeigen wir auch einige Screenshots zur Auflockerung. Backend-UI mit neuen FormEngine Tabs und Context Panel Ein mehrschrittiger "Neue Seite erstellen" Wizard EXT:form Datumsvalidierung Synchroner Bildbeschnitt ("Crop") Neues Modul "Content Report" Neue Funktionen und Schnittstellen Backend: API Goodie Die Registrierung von "allowedRecordTypes" erfolgt nun nicht mehr in PageDoktypeRegistry sondern kann direkt im TCA vorgenommen werden. Zielgruppe: Integration Weiterführende Dokumentation TCA option allowedRecordTypes for Page Types Relevante Commits (GitHub) [FEATURE] TCA option allowedRecordTypes for Page Types | [BUGFIX] Use correct node property for linkable check in page browser | [BUGFIX] Reenable nav_hide toggle in page tree context menu Goodie Auslagerung von FormEngine Hilfsmethoden zum Rendering (vor allem für Preview-Funktionen) in eigenständige Services. Zielgruppe: Entwicklung Weiterführende Dokumentation RecordFieldPreviewProcessor for custom PreviewRenderers Relevante Commits (GitHub) [FEATURE] Extract field rendering helpers into dedicated service | [BUGFIX] Add fallback for GridColumnItem-> getRecordType Goodie Mit einer neuen TCA-Option "isPreviewable" können Seitentypen nun einfacher so konfiguriert werden, ob sie in einer Vorschau angezeigt werden. . Zielgruppe: Integration Dies behebt bisherige Sonderlösungen, wo z.B. "Trenner" und "SysFolder" von Vorschaufunktionen ausgeschlossen wurde. Dies kann nun auch für eigene Seitentypen genutzt werden. Weiterführende Dokumentation TCA option isViewable for Page Types Relevante Commits (GitHub) [FEATURE] Make page type "preview" possibility configurable through TCA Neues Hilfsmethoden im "LocalizationRepository" um Übersetzungsfunktionalitäten auszulesen und TCA Schema API anzuwenden. Zielgruppe: Entwicklung Weiterführende Dokumentation LocalizationRepository methods for fetching record translations Relevante Commits (GitHub) [FEATURE] Add LocalizationRepository methods for record translations Goodie Die Standard-Aktionen für die Suchergebnisse in der Live-Suche können nun per User TSConfig Option bestimmt werden (Vorschau/Seite/Datensatz). Zielgruppe: Integration Weiterführende Dokumentation Add User TSconfig to define default Live Search action Relevante Commits (GitHub) [FEATURE] Add User TSconfig to define default Live Search action Die persönlichen Einstellungen von Backend-Nutzern "(UserSettings) - 'uc' " können nun mit vollständiger TCA-Definition genutzt werden, nicht mehr wie Pseudo-TCA wie bisher. Das Papierkorb-Modul greift nun intern anders auf User-Settings zu. Zielgruppe: Entwicklung Weiterführende Dokumentation User settings configuration migrated to TCA | Introduce UserSettings object for backend user profile settings Relevante Commits (GitHub) [FEATURE] Migrate user settings configuration to TCA | [FEATURE] Introduce UserSettings object for BE_USER profile settings | [TASK] Properly initialize user_settings in EXT:core | [TASK] Use moduleData and module subroutes in EXT:recycler | [BUGFIX] Prevent file list crash without EXT:filemetadata | [TASK] Integrate FormEngine-based rendering for user settings Das Redis Session Backend unterstützt nun wie das Redis Cache Backend auch die Möglichkeit, username+password der Authentifikation getrennt zu konfigurieren. Zielgruppe: Integration Weiterführende Dokumentation Support username and password in Redis session backend Relevante Commits (GitHub) [FEATURE] Support username and password in Redis session backend Wissenswert Einführung einer neuen JavaScript Label API (Ersatz von lll() durch eine getLabel() Methode, Zugriff auf XLIFF-Sprachdateien), die auch mit ICU Pluralformen umgehen kann und im JavaScript-Module-Loading-Kontext evaluiert werden kann. Zielgruppe: Integration Weiterführende Dokumentation Provide language labels as virtual JavaScript modules Relevante Commits (GitHub) [BUGFIX] Resolve search labels in new content element wizard | [FEATURE] Provide language labels as virtual JavaScript modules | [TASK] Migrate bookmark modules to use JavaScript label modules | [TASK] Use JavaScript label imports in EXT:dashboard | [TASK] Use JavaScript label imports in FormEngine components | [TASK] Use JavaScript label imports in EXT:filelist | [TASK] Use JavaScript label imports in EXT:form | [TASK] Use JavaScript label imports in EXT:workspaces | [TASK] Use JavaScript label imports in EXT:extensionmanager | Details | [TASK] Generate types for placeholders in JavaScript label API | [TASK] Allow JavaScript label API usage in install tool | [TASK] Support ICU MessageFormat in JavaScript label API | [TASK] Replace TYPO3.lang usage in EXT:redirects and EXT:recycler | [TASK] Use shared label for collapse_state_search.numberOfSearchMatches | [TASK] Replace TYPO3.lang usage in EXT:backend | [TASK] Replace lll() usage with Label API | [TASK] Remove inlined label references from FormEngine | [TASK] Add virtual label provider for JavaScript unit tests | [TASK] Deprecate PageRenderer-> addInlineLanguageDomain() | [TASK] Cleanup InlineControlContainer rendering and label usage | [TASK] Use JavaScript label imports in CSP module Goodie Die RateLimiterFactory wurde als API-Methode eingefügt um Zugriffsmengenbeschränkungen für Aktionen wie Logins und Extbase-Actions einfach setzen zu können. Dies erfolgt mittels PHP Attributes. Hiermit kann dann gesteuert werden, dass z.B. bei Datensatz-Erstellungs-Actions in Extbase ein Nutzer zum Schutz nur begrenzt viele Aufrufe starten kann. RateLimit+Authorisation Extbase-Attribute werden nun compile-time ausgewertet, nicht runtime (via reflection). Zielgruppe: Entwicklung Weiterführende Dokumentation Unified RateLimiterFactory with admin overrides | Introduce rate limiting for Extbase actions Relevante Commits (GitHub) [FEATURE] Unify RateLimiterFactory as single entry point for rate limiting | [FEATURE] Introduce rate limiting for extbase actions | [BUGFIX] Move #[RateLimit] and #[Authorize] resolution to compile time Die settings.definitions.yaml Site Set Konfigurationsdatei kann nun auch Konfigurationselemente vom Typ "enum" mit Sprachlabels definieren. Zielgruppe: Integration Weiterführende Dokumentation Localize enum labels in site settings definitions Relevante Commits (GitHub) [FEATURE] Localize enum labels in site settings definitions Goodie Es gibt nun ein "Kurz-URL" Modul, mit dem zusätzliche Short-URLs für Seiten erstellt werden können. Wer mir den Unterschied von "Redirects" und "Short-URLs" erklärt, bekommt Bonuspunkte. Zielgruppe: Redaktion Weiterführende Dokumentation Add Short URL module Relevante Commits (GitHub) [FEATURE] Add "Short URLs" module Ein neuer PSR-14 Event "BeforeBackendPageRenderEvent" ermöglicht das Einhaken in die Darstellung aller Backend-Modulseiten (z.B. zum Einfügen von JavaScript/Assets). Zielgruppe: Entwicklung Weiterführende Dokumentation Introduce BeforeBackendPageRenderEvent for BackendController Relevante Commits (GitHub) [FEATURE] Introduce BeforeBackendPageRenderEvent for BackendController Ein neuer PSR-14 Event "AfterRecordListRowPreparedEvent" wurde eingefügt, mit dem die Backend-Datensatzliste von Extensions angepasst werden kann. Zielgruppe: Entwicklung Weiterführende Dokumentation Add event to change record data in list view Relevante Commits (GitHub) [FEATURE] Add event to change the record data in list view Ein neuer PSR-14 Event "BeforePersistingReportEvent" wurde eingefügt, so dass CSP Reports vor der Speicherung angepasst werden können, oder die Speicherung auch ganz übergangen werden kann. Zielgruppe: Entwicklung Weiterführende Dokumentation Introduce BeforePersistingReportEvent for CSP violations Relevante Commits (GitHub) [FEATURE] Introduce BeforePersistingReportEvent for CSP violations Ein neuer PSR-14 Event "IsReferenceConsideredForDependencyEvent" sorgt nun dafür dass bei der Workspace-Verarbeitung für die Referenz-Index-Analyse Modifikationen durchgeführt werden können. Zielgruppe: Entwicklung Weiterführende Dokumentation New PSR-14 event for workspace dependency resolution Relevante Commits (GitHub) [FEATURE] Add PSR-14 event for workspace dependency resolution Goodie Die Exception-Debugging-Ausgabe besitzt nun die Möglichkeit, einen Stacktrace direkt als Textversion in die Zwischenablage zu kopieren, den Stacktrace kompakter darzustellen, und einzelne Dateinamen direkt in die Zwischenablage zu kopieren. Zielgruppe: Entwicklung Weiterführende Dokumentation Improve DebugExceptionHandler with copy functionality Relevante Commits (GitHub) [FEATURE] Improve DebugExceptionHandler with clipboard functionality Goodie Ein neuer Passwort-Generator für die FormEngine-Passwortvergabe für BE/FE-User wurde eingeführt. Dieser kann auch im CLI "backend:user:create" Kontext angesprochen werden. Zielgruppe: Integration Weiterführende Dokumentation Add password generator "wizard" Relevante Commits (GitHub) [FEATURE] Add default password generator wizard for FE and BE users Goodie Für QueryBuilder-Objekte wurde eine generische "Blätterfunktion" namens QueryBuilderPaginator eingefügt. Mittels CTE-Nutzung können hier Ausschnitte einer SQL-Abfrage einfach geblättert werden. Zielgruppe: Entwicklung Weiterführende Dokumentation Introduce QueryBuilderPaginator Relevante Commits (GitHub) [FEATURE] Provide pagination for QueryBuilder Das AutoTagging von Bilderassets kann nun genutzt werden um beim Löschen/Bearbeiten von Dateien die zugehörigen auto-getaggten Caches automatisch zu leeren. Zielgruppe: Entwicklung Weiterführende Dokumentation Flush cache tags for file and folder operations Relevante Commits (GitHub) [FEATURE] Flush cache tags for file and folder operations TSConfig kann nun auch für be_users und be_groups direkt als file includes definiert werden, wie für pages . Zielgruppe: Integration Weiterführende Dokumentation Provide static tsconfig includes for be_users & be_groups Relevante Commits (GitHub) [FEATURE] Provide tsconfig file inclusion for be_users & be_groups Die userFunc für das Slug Element erhält nun mehr Kontext, um TCA-Konfiguration des zugehörigen Feldes auswerten zu können und darauf reagieren. Zielgruppe: Integration Weiterführende Dokumentation Support additional parameters for TCA slug prefix userFunc Relevante Commits (GitHub) [FEATURE] Pass TCA config and field name to slug prefix userFunc Sehr wichtig Die System Resource API erhält nun eine Unter-API für "Publishing" von Inhalten. Zielgruppe: Integration Das Bereitstellen von Dateien im Ordner _assets/ kann nun beeinflusst werden. Ausser SymlLinks ist nun auch das Kopieren von Dateien möglich. Und eigene Publisher können benutzt werden um z.B. Assets auf CDNs hochzuladen und deren URI dann beim Einsatz einer Resource einzubetten. Das interne virtuelle Paket "typo3/app" wurde hierzu noch weiter verfeinert. Die "public" Ordner beim Publishing können nun auch konfiguriert werden. Weiterführende Dokumentation Implement public system resources publishing | Allow configuration of resources Relevante Commits (GitHub) [FEATURE] Implement system resource publishing | Details | [TASK] Integrate virtual app package into package manager | [BUGFIX] Do not write caches in asset:publish command | [TASK] Integrate virtual app package into package manager | [BUGFIX] Fix framework packages for standalone testing framework | [FEATURE] Make resources configurable Sehr wichtig Das "FluidEmail" Objekt kann nun durch eine PHP-Factory erzeugt werden, und dort die Template-Dateien gezielter übermitteln. Ein neues "typo3/email" Site Set erlaubt ebenfalls, für alle Extensions die Fluid Email nutzen eigenständige Templates zu definieren. Zielgruppe: Integration So können zum Beispiel EXT:form Mails oder felogin Mails abhängig von der Site eigenständige Templates nutzen. Auch im CLI-Kontext kann eine Fluid-Mail nun einfach instanziert werden! Weiterführende Dokumentation Introduce TemplatedEmailFactory for centralized email creation Relevante Commits (GitHub) [FEATURE] Introduce TemplatedEmailFactory for centralized email creation | [TASK] Remove named argument usages in TemplatedEmailFactory Goodie Neuer PSR-14 Event CustomFileSelectors um in der Datei-Liste durch Extensions weitere Aktionslinks oder Asset-Einbindungen generieren zu können. Zielgruppe: Integration Weiterführende Dokumentation New PSR-14 CustomFileSelectorsEvent Relevante Commits (GitHub) [FEATURE] Provide event for additional file controls | [BUGFIX] Provide tcaSchemata in FilesControlContainerTest Wissenswert Die Datei "ext_emconf.php" ist nicht mehr erforderlich auch in Classic-Mode Instanzen. Alles wird per composer.json geregelt. Zielgruppe: Entwicklung Weiterführende Dokumentation Allow extensions without ext_emconf.php in classic mode Relevante Commits (GitHub) [FEATURE] Allow extensions to move ext_emconf.php info to composer.json Goodie Der TypoLinkBuilder kann nun queryParams als Array (statt urlencodeten String) auswerten. Zielgruppe: Entwicklung Weiterführende Dokumentation Array-based queryParameters for Page Links Relevante Commits (GitHub) [FEATURE] Allow queryParams as array for typolink Goodie Backend-Module können nun mit einem PHP-Attribut feinere Rechte-Steuerung ("Gates") für das Modul-Routing festlegen. Zielgruppe: Entwicklung Weiterführende Dokumentation Introduce module access gates for backend modules Relevante Commits (GitHub) [FEATURE] Dynamic module access registry Wissenswert Die ContentSecurityPolicy (CSP) kann nun für Ressourcen das "integrity"-Attribut mit Hashing berechnen (SRI) und somit Nonces vermeiden, die beim Caching immer problematisch waren. Diese Hashes werden nun auch bevorzugt genutzt. Zielgruppe: Integration Weiterführende Dokumentation Add integrity property to CSS includes | Prefer CSP hash values over nonce values | Automatic SRI hash resolution for resource includes Relevante Commits (GitHub) [FEATURE] Add SRI integrity support to CSS TypoScript includes | [FEATURE] Prefer CSP hash values over nonce values | [FEATURE] Add SRI integrity support to CSS TypoScript includes Neuer PSR-14 Event ModifyLocalizationHandlerIsAvailableEvent um für den Localization-Wizard (Übersetzungen von Seiten/Inhalten) etwaige Wizard-Varianten zu überspringen. Zielgruppe: Integration Weiterführende Dokumentation Introduce PSR-14 ModifyLocalizationHandlerIsAvailableEvent Relevante Commits (GitHub) [FEATURE] Introduce PSR-14 ModifyLocalizationHandlerIsAvailableEvent Neuer PSR-14 Event RedirectIntegrityCheckEvent mit der beim Check von Redirects Extensions Anpassungen durchführen können. Zielgruppe: Integration Weiterführende Dokumentation PSR-14 event for redirect integrity checks Relevante Commits (GitHub) [FEATURE] Add PSR-14 event for redirect integrity checks Backend: User-Interface / Darstellung (UI) Sehr wichtig Im Seitenbaum und in der Live-Suche können redaktionell nun Seiten anhand der Frontend-URI gefunden werden. Somit muss man nicht über eine Slug-Suche ausweichen oder Seiten gar anhand des Seitenbaums identifizieren müssen. Es werden auch übersetzte Seiten gefunden. Zielgruppe: Redaktion Weiterführende Dokumentation Search in backend page tree and live search can find pages by their frontend URI | New PSR-14 ModifyConstraintsForLiveSearchEvent Relevante Commits (GitHub) [FEATURE] Add search by page URI in page tree filter and livesearch | [FEATURE] Add search by page URI in page tree filter and livesearch Wissenswert Unterschiedliche Record-Typen (z.B. "doktype" bei Seiten, oder "CType" bei Inhalten) können nun typ-abhängig Labels für die Datensatz-Darstellung im TCA definieren. Zielgruppe: Integration Weiterführende Dokumentation Record type specific label configuration Relevante Commits (GitHub) [FEATURE] Add record type specific label configuration | [TASK] Add visual feedback if CType is not allowed in column Goodie Im Seitenlayout / Datensatzliste / Workspace-Modul wird nun ein QR-Code-Button neben der Vorschaufunktion dargestellt, so dass die Frontend-URL direkt als QR-Code gescannt und weitergeteilt werden kann. Zielgruppe: Redaktion Weiterführende Dokumentation QR code button for frontend preview Relevante Commits (GitHub) [FEATURE] Add QR code button for frontend preview URIs | [TASK] Improve QR Code functionality for page preview | [TASK] Reorder actions in QR Code Module | [TASK] Make "Show Qr code" less prominent in context menu | [TASK] Remove QR Code button from Layout module Goodie Modernisierte Bookmark-Verwaltung im Backend (mit AJAX-Routen und besserer interner Aufteilung). Zielgruppe: Redaktion Weiterführende Dokumentation Centralize Bookmark Management Relevante Commits (GitHub) [FEATURE] Centralize Bookmark Management Goodie Die Reihenfolge der Elemente im "Neuer Seiteninhalt"-Wizard kann nun wie bekannt mit before/after mit Page TSConfig festgelegt werden. Bisher ging das nur für die Reihenfolge der Tabs, nicht der Inhaltselemente selbst. Zielgruppe: Integration Weiterführende Dokumentation Make new content element wizard items sort order configurable Relevante Commits (GitHub) [FEATURE] Make new content element wizard items sort order configurable Goodie Im Layout-Modul werden die "slide Modes" nun mit einem Icon repräsentiert. Zielgruppe: Redaktion Weiterführende Dokumentation Add Badge for Slide Mode in Layout Module Relevante Commits (GitHub) [TASK] Use icons for Slide Mode Badge in Layout Module | [TASK] Do not show slideMode info for root pages | [FEATURE] Add Badge for Slide Mode in Layout Module Goodie Ein neues Konfigurationsmodul kann alle Extbase-Persistenzeinstellungen anzeigen. Zielgruppe: Integration Weiterführende Dokumentation Add Configuration Provider for Extbase Class Configuration Relevante Commits (GitHub) [FEATURE] Show Extbase class configuration in Configuration module Sehr wichtig Einfügung eines neuen Overlays (Modal "Context Panel"), mit dem Seiteneigenschaften und Datensätze auf einer Seite in der Layout-Ansicht sofort bearbeitet und gespeichert werden können, ohne eine FormEngine-Vollansicht mit eigenem Seitenaufruf zu benötigen. Zielgruppe: Redaktion Dieses Overlay kann künftig auch an anderen Stellen genutzt werden. Hierbei fand auch Harmonisierung am "inline files control / record control" IRRE-Container und einer Webkomponente statt. Weiterführende Dokumentation Context-aware editing in the page module Relevante Commits (GitHub) [BUGFIX] Remove badge-success style override in contextual record edit | [BUGFIX] Fix context panel save button usability issues | [FEATURE] Context-aware editing in page module | [TASK] Replace ContextPanel with Modal | [BUGFIX] Do not refresh page tree on each context panel save | [TASK] Move record header rendering from FormEngine to controllers | [TASK] Remove position-try-order from dropdown menu | [TASK] Use secondary state for allowed file extension badges | [TASK] Reuse InlineControlContainer for site language records | [BUGFIX] Process command map in ContextualRecordEditController | [TASK] Reuse InlineControlContainer for file references | [TASK] Migrate inline record panels to Bootstrap Collapse | [BUGFIX] Do not resolve subschema name for empty type values | [TASK] Use human-readable labels for fe_users extbase type options | [BUGFIX] Fix docheader buttons alignment when left column is empty Der CodeMirror-Codeeditor für TCA-Elemente kann nun auch Zeilenumbruch als Option anbieten. Zielgruppe: Integration Weiterführende Dokumentation Line wrapping option for code editor Relevante Commits (GitHub) [FEATURE] Provide option to codemirror for lineWrapping Wissenswert Die Bilder-Zuschnittsfunktion (Cropping) kann nun bei mehreren Bildformaten den Beschnittbereich übergreifend für alle Bilder verschieben und synchronisieren. Zielgruppe: Redaktion Weiterführende Dokumentation Synchronized manipulation of all crop variants Relevante Commits (GitHub) [FEATURE] Allow synchronized manipulation of all crop variants Die Vorschaufunktion von Elemente in der Layout-Ansicht im Backend kann nun automatisch mehr Informationen (z.B. Listen, HTML-Elemente mit Sanitizing) darstellen. Zielgruppe: Redaktion Weiterführende Dokumentation Improved page module content preview Relevante Commits (GitHub) [FEATURE] Improve page module preview Die Sprache "Lao" ist nun verfügbar in TYPO3. Zielgruppe: Redaktion Weiterführende Dokumentation Native support for language Lao added Relevante Commits (GitHub) [FEATURE] Add Lao (lo) as supported language | [TASK] Add language files for Loa (lo) language Wissenswert Der Wizard zum Anlegen neuer Seiten (auch via Drag-and-Drop im Seitenbaum) wurde modernisiert und nutzt die Wizard-API zur Erstellung. Die Funktion zum Anlegen mehrerer Seiten in einem Schwung existiert nicht mehr. Zielgruppe: Redaktion Nun kann auch ohne Drag and Drop eine Seite zügig im Seitenbaum unter Beachtung bessserer Accessibility angelegt werden. Weiterhin kann zum erstellen neuer Seitentypen auch für jeden Seitentyp gezielt ein eigener Wizard (mit eigenen Feldern) via TCA definiert werden. Weiterführende Dokumentation Page Position Select Component | New Page Creation Wizard | Add TCA configuration for page creation wizard steps Relevante Commits (GitHub) [FEATURE] Add page-position-select component with insertion options | [TASK] Restructure Toolbar Submenu in TYPO3 page tree | [FEATURE] Implement page creation wizard | [FEATURE] Implement page creation wizard | [BUGFIX] fix page wizard typos, naming, style, unused functions | [TASK] Use default style for "+ Page" button in page tree | [TASK] Replace flexbox card grid with CSS Grid | [TASK] Lazily instantiate wizard providers | [TASK] Define allowed HTTP methods for page wizard endpoints | [TASK] Respect label overrides in page wizard | [TASK] Use functional tests for page wizard controllers | [TASK] Add comments for page creation wizard components | [BUGFIX] Avoid multiple FormEngine delegates in page creation wizard | [BUGFIX] Fix LinkBrowser usage in page creation wizard | [BUGFIX] Add EventDispatcher Singleton for PagesRouter in Unit Tests | [BUGFIX] Protect step methods when loading dynamic wizard steps | [BUGFIX] Fix stale values in page creation wizard confirmation step | [TASK] Respect doktype grouping in page wizard | [BUGFIX] Show previous form values in page creation wizard | [TASK] Merge form-engine page wizard data before submitting | [TASK] Add permission checks to PageWizardController | [TASK] Correct misleading success messages in page, form, and localization wizards | [BUGFIX] Reload page tree after page creation via page wizard | [TASK] Show a no-result indicator in page wizard doktype search | [TASK] Integrate wizard step configuration into tca schema | [TASK] Allow advancing form steps in page creation wizard using "Enter" | [TASK] Allow bulk creation of page doktypes that require title only | [BUGFIX] Fix element browser in page wizard Die History-Ansicht von Elementen erhält nun auch eine Sprachauswahl um den Sprachkontext zu wechseln. Zielgruppe: Redaktion Weiterführende Dokumentation Add a language selector in the record history/undo view Relevante Commits (GitHub) [FEATURE] Add language dropdown in record history CLI (Kommandozeile) Das Command "backend:user:create" kann nun die initiale Sprache des neuen Backendbenutzers festlegen. Zielgruppe: Integration Weiterführende Dokumentation Allow to set user interface language when using CLI to create user Relevante Commits (GitHub) [FEATURE] Add option to set user interface language Die Optionen des CLI messenger:consume (Decorator vom Symfony Command) sind nun mit dem Eltern-Element abgeglichen. Zielgruppe: Integration Weiterführende Dokumentation Align command line arguments of Message consumer with Symfony original Relevante Commits (GitHub) [FEATURE] Align messenger:consume CLI options with Symfony Messenger Goodie Das typo3 CLI binary kann nun mit den aus der TYPO3-Console von Helmut Hummel bekannten "configuration:set" und "configuration:show" Befehlen die TYPO3_CONF_VARS verwalten. Zielgruppe: Integration Weiterführende Dokumentation CLI commands for system configuration Relevante Commits (GitHub) [FEATURE] Add CLI commands for managing TYPO3_CONF_VARS Dashboard Goodie Ein neues Widget zur Darstellung der zuletzt geöffneten Dokumente steht zur Verfügung, um die redaktionelle Arbeit sofort dort fortzusetzen wo man aufgehört hatte. Zielgruppe: Redaktion Weiterführende Dokumentation Recently Opened Documents Widget Relevante Commits (GitHub) [FEATURE] New dashboard widget - Recently opened documents Ein neues Widget "Letzte Backend-Logins" zeigt Administratoren an, welche Redaktionsmitglieder sich zuletzt eingeloggt haben. Zielgruppe: Administration Weiterführende Dokumentation New "Latest backend logins" widget Relevante Commits (GitHub) [FEATURE] Add "Latest backend logins" dashboard widget EXT:form (Formularverwaltung) Für die Finisher EmailToSender und EmailToRecipient ist nun eine Element-Auswahl eingebaut worden, damit für gewisse Felder die Auswahl sofort über ein Popup durchgeführt werden kann statt manueller Texteingabe. Zielgruppe: Integration Weiterführende Dokumentation Add form element selection buttons to property grid Relevante Commits (GitHub) [FEATURE] Add form element selection buttons to property grid rows Wissenswert Der Datums-Validator kann nun relative Datumsangaben ("Samstag vor einer Woche", "in 4 Monaten", ...) festlegen. Zielgruppe: Integration Weiterführende Dokumentation Introduce date editor for ext:form | Support relative date formats in DateRange validator Relevante Commits (GitHub) [FEATURE] Add DateEditor web component for ext:form | [FEATURE] Support relative date formats in ext:form Goodie Der CKEditor kann nun auch in EXT:form Formularen (Finisher für Mailtexte, Elemente) eingesetzt werden. Die E-MailFinisher können zusätzlich nun eine individuelle Nachricht (mit RTE Support) in der Mail aufnehmen. Zielgruppe: Redaktion Weiterführende Dokumentation Custom message in form email finisher | Rich text editor support in TYPO3 form editor Relevante Commits (GitHub) [FEATURE] Introduce custom message in form email finisher | [FEATURE] Support RTE in form editor | [BUGFIX] Let EXT:form RTE integration degrade gracefully w/o CKEditor Goodie Der Seitenbaum für Formular-Schritte innerhab der Formularbearbeitungs-GUI nutzt nun die Seitenbaum-Webkomponente. Damit ist Drag+Drop möglich, eine integrierte Suchfunktion und eine bessere Ein/Ausklappfunktion. Zielgruppe: Redaktion Weiterführende Dokumentation Introduce web component-based form editor tree Relevante Commits (GitHub) [FEATURE] Introduce web component-based form editor tree Wissenswert Die Registrierung neuer Formularelemente wurde deutlich vereinheitlicht, so dass Boilerplate-JavaScript nicht selbständig eingebaut werden muss, sondern zur Verfügung gestellt wird. Neue Inhaltselemente sind somit einfach nur per YAML-Definition schnell verfügbar. Zielgruppe: Integration Weiterführende Dokumentation Simplify registration of a Custom Form Element Relevante Commits (GitHub) [FEATURE] Simplify registration of custom form elements Wissenswert Ein neuer CLI-Befehl "form:cleanup:uploads" ermöglicht das Löschen von obsoleten hochgeladenen Dateien in Formularen. Sehr wichtig, um ein sinnvolles Aufräumen zu ermöglichen! Zielgruppe: Integration Weiterführende Dokumentation Cleanup command for form file upload folders Relevante Commits (GitHub) [FEATURE] Add cleanup command for form file upload folders Wissenswert Der Upload von mehreren Dateien (gleichzeitig) in EXT:form Formularen ist nun möglich. Zielgruppe: Integration Weiterführende Dokumentation Multiple file upload for EXT:form elements Relevante Commits (GitHub) [FEATURE] Add multiple file upload support for EXT:form Goodie Auch das Formular-Element-Attribut "defaultValue" kann nun sprachabhängige Werte (XLIFF) enthalten. Zielgruppe: Integration Weiterführende Dokumentation Translate default value of form elements Relevante Commits (GitHub) [FEATURE] Translate defaultValue of form elements Sehr wichtig Formulare können nun in der Datenbank ( form_definitions ) gespeichert werden statt nur im Dateisystem. Die Datei-Speicherung ist deprecated. Mit einem Wizard/CLI können bestehende FAL-Formulare in die Datenbank migriert werden. Zielgruppe: Integration Weiterführende Dokumentation Database storage for form extension Relevante Commits (GitHub) [FEATURE] Introduce database storage for form extension | [TASK] Remove record list table actions for form definitions | [BUGFIX] Perform access check when reading forms from database storage | [TASK] Rename formdefinition transfer command to form:definition:transfer | [BUGFIX] Use database column as source of truth for form identifier | [TASK] Minor code cleanups in EXT:form Sehr wichtig Die YAML-Formular-Registrierung wird nun automatisch (a la Site Sets in Extensions) erkannt und benötigt keine TypoScript/PHP-Registrierung mehr. Zielgruppe: Integration Weiterführende Dokumentation Relevante Commits (GitHub) Details EXT:impexp Goodie Im T3D-Export kann nun auch die Site Configuration mit eingebunden werden (für Administratoren). Zielgruppe: Entwicklung Weiterführende Dokumentation Include site configurations in import / export Relevante Commits (GitHub) [FEATURE] Include site configurations in import / export EXT:indexed_search Die Indexed-Search Volltextsuche kann nun die Pagination-Typen per TypoScript konfigurieren. Dafür wurde auch ein neuer PSR-14 Event "AfterSearchResultSetsAreGeneratedEvent" eingefügt, mit dem Extensions auf die Suchergebnisdaten zugreifen können. Zielgruppe: Integration Weiterführende Dokumentation Add setting to configure indexed_search pagination | PSR-14 event to modify indexed_search result sets Relevante Commits (GitHub) [FEATURE] Add pagination_type setting for indexed_search | [FEATURE] Add PSR-14 event to modify indexed_search result sets EXT:reports Sehr wichtig Ein neuer Content-Type-Report ermöglicht nun, einen schnellen Überblick über eine Instanz und dessen Inhalte zu erlagen. Die Anzahl der Elemente pro Inhaltstyp werden ausgegeben, wie auch eingesetzt Sprachen. Zielgruppe: Redaktion Weiterführende Dokumentation Introduce report about content type usage Relevante Commits (GitHub) [FEATURE] Provide content statistics report EXT:scheduler (Task-Planer) Goodie Tasks vom Task-Planer können nun eine "Priorität" definieren, um bei der nächsten Ausführung höher priorisierte Tasks zuerst auszuführen. Zielgruppe: Integration Weiterführende Dokumentation Introduce scheduler task priority Relevante Commits (GitHub) [FEATURE] Introduce scheduler task priority EXT:workspace Goodie Vorschau-Links im Workspace-Kontext können nun nicht nur für Seiten sondern auch für Datensätze erstellt werden. Zielgruppe: Integration Weiterführende Dokumentation Extend workspace preview links to all records Relevante Commits (GitHub) [FEATURE] Extend workspace preview links to all record types Extbase Wissenswert Die Extbase Repository Query-Methoden erlauben nun direkte Methoden für: orderBy , concat , trim und coalesce . Zielgruppe: Entwicklung Weiterführende Dokumentation Extbase Query expression builder for orderings Relevante Commits (GitHub) [FEATURE] Add expression builder for Extbase query orderings Sehr wichtig Extbase-Aktionen können nun per PHP Attribut steuern, welche eingeloggten Benutzergruppen Aktionen ausführen dürfen. Hiermit ist nun mit sehr geringem Overhead eine sehr einfache Zugriffssteuerung innerhalb Extbase möglich, die vorher aufwändig manuell geschehen musste. Zielgruppe: Entwicklung Weiterführende Dokumentation Introduce Extbase action authorization attribute Relevante Commits (GitHub) [FEATURE] Introduce Extbase action authorization attribute Wissenswert Alle Extbase-Entities können nun in der sys_history beim Anlegen und Bearbeiten nachverfolgt werden. Hierzu dient ein Feature Toggle, das bewusst aktiviert werden muss. Zielgruppe: Integration Weiterführende Dokumentation Automatic history tracking for Extbase entities Relevante Commits (GitHub) [FEATURE] Automatic history tracking for Extbase entities Fluid Wissenswert CLI Kommando "fluid:analyse" zum Parsing von Fluid-Templates zum Cache-Warmup und Fehleranalyse (CI). Zielgruppe: Integration Weiterführende Dokumentation Console command to analyse Fluid templates Relevante Commits (GitHub) [FEATURE] Console command to analyse Fluid templates | [TASK] Establish internal Template finding API | [TASK] Skip system extensions in fluid:analyse CLI Goodie CLI Kommando "fluid:namespaces" zur Darstellung aller global registrierten Namespaces. Zielgruppe: Integration Weiterführende Dokumentation Console command to inspect global ViewHelper namespaces Relevante Commits (GitHub) [FEATURE] Add Console command to inspect global ViewHelper namespaces Sehr wichtig Einführung einiger neuen "f:render.contentArea" und "f:render.record" sowie "f:render.text" ViewHelper. Hiermit können die Record API Objekte direkt mittels Fluid gerendert werden, und auch vollständige "colPos"-Bereiche ohne Fluid Style Content Integration in einem Rutsch gerendert werden. Alle semantischen Meta-Informationen können dadurch ausgewertet werden, durch das ebenfalls neue ContentArea Object. Auch FSC nutzt nun f:render.text. Zielgruppe: Integration Weiterführende Dokumentation Introduce Fluid f:render.contentArea ViewHelper | Introduce Fluid f:render.record ViewHelper | Add PSR-14 Events ModifyRenderedContentAreaEvent and ModifyRenderedRecordEvent | Introduce Fluid f:render.text ViewHelper | Content area related information in the frontend Relevante Commits (GitHub) [FEATURE] Introduce Fluid render.contentArea/record ViewHelpers | [FEATURE] Introduce Fluid render.contentArea/record ViewHelpers | [FEATURE] Introduce Fluid render.contentArea/record ViewHelpers | [BUGFIX] Fix inline usage of the new f:render.* ViewHelpers | [FEATURE] Introduce Fluid render.text/richtText ViewHelpers | [FEATURE] Introduce Fluid render.text/richtText ViewHelpers | [FEATURE] Introduce ContentArea | [TASK] Merge f:render.richText into f:render.text | [TASK] Use f:render.text in fluid_styled_content | [TASK] Allow Extbase models in f:render.text ViewHelper | [TASK] Make ContentAreaCollection iterable | [TASK] Enhance f:render.contentArea support wrapping content elements | [TASK] Create Page objects out of Record API Goodie Der f:media ViewHelper kann nun mit einem Attribut srcAttribute definieren, dass Youtube/Vimeo-Videos diese nicht sofort per src laden, sondern auch lazy Loading (Consenting) ermöglicht wird. Zielgruppe: Integration Weiterführende Dokumentation Option to modify src attribute for Vimeo/YouTube Relevante Commits (GitHub) [FEATURE] Option to modify src attribute for Vimeo/YouTube Goodie Auch Fluid Components können jetzt ihre Argumente per XSD Schema und IDE-Autovervollständigung anbieten. Zielgruppe: Integration Weiterführende Dokumentation Autocomplete for components via XSD schema Relevante Commits (GitHub) [FEATURE] Components autocomplete via XSD schema Goodie Exceptions innerhalb von Fluid-Template zeigen nun (endlich!) konkreten Zeilen und Dateibezug, auch im Caching-Context. Zielgruppe: Integration Weiterführende Dokumentation Improved exceptions in Fluid templates Relevante Commits (GitHub) [FEATURE] Improved exceptions in Fluid templates | [TASK] Improve exception messages for missing Fluid templates Wissenswert Ein neuer ViewHelper f:image.srcset kann unterschiedliche srcSet-Bildkollektionen mit spezifischen Pixeldichten erstellen. Zielgruppe: Integration Weiterführende Dokumentation ViewHelper and data structure to render srcset attribute Relevante Commits (GitHub) [FEATURE] ViewHelper to render srcset attribute FormEngine Goodie Der Link Browser ermöglicht nun zu TypoLinks auch das rel HTML-Attribut redaktionell festzulegen. Zielgruppe: Integration Weiterführende Dokumentation Enable rel attribute for link fields outside of the RTE Relevante Commits (GitHub) [FEATURE] Enable rel option for non-RTE link fields | [BUGFIX] Fix expected rel attribute order in ContentObjectRendererTest Goodie FormEngine-Felder (vom Typ select, category, language) werden nun versteckt, wenn sie nur einen einzigen gültigen Wert enthalten können. Im Debug-Modus werden sie weiterhin gezeigt. Zielgruppe: Integration Weiterführende Dokumentation Hide form fields with no selectable items Relevante Commits (GitHub) [FEATURE] Hide FormEngine fields with no selectable items Goodie Dateien, die über den Element-Browser zugeordnet werden (auch über die CKEditor-Linkfunktion) können nun mit einem HTML5-Downloadattribut versehen werden. Zielgruppe: Redaktion Weiterführende Dokumentation Support download attribute in file link browser Relevante Commits (GitHub) [FEATURE] Support HTML5 download attribute in file link browser Frontend Goodie Die Standard-Fehlerausgabe (für Besucher der Seite) im Frontend kann nun gezielter mit HTTP-Antwortcodes ausgestattet werden. Zielgruppe: Entwicklung Weiterführende Dokumentation Add generic error action for custom HTTP status codes in ErrorController Relevante Commits (GitHub) [FEATURE] Add generic error action for HTTP status codes in ErrorController Routing API Goodie Neuer PSR-14 Event AfterPageUriGeneratedEvent um eine URI nach Routing-Erzeugung noch zu modifizieren. Zielgruppe: Entwicklung Weiterführende Dokumentation Introduce event after page URI generation Relevante Commits (GitHub) [FEATURE] Add event after page URI generation Wissenswert Für die Option "limitToPages" im Routing können nun auch Symfony Expression Language Ausdrücke verwendet werden um diese Seiten dynamisch zu bestimmen. Zielgruppe: Integration Weiterführende Dokumentation Expression language support for limitToPages in routing Relevante Commits (GitHub) [FEATURE] Add expression language support for limitToPages Sprachhandling Sehr wichtig Das ICU Message-Format für XLIFF-Label wird nun unterstützt, und kann z.B. genutzt werden um Pluralformen für Nachrichten ("2 neue Nachrichten" vs. "1 neue Nachricht") mit nur einem Label zu ermöglichen. Zielgruppe: Integration Weiterführende Dokumentation Support ICU MessageFormat for plural forms Relevante Commits (GitHub) [FEATURE] Support ICU MessageFormat for translations Goodie Das neue Interface TranslatorInterface definiert die neue Sprachhandlings-API und ermöglicht sinnvolles TypeHinting und Factory-Erstellung der Übersetzungs-API. Zielgruppe: Entwicklung Weiterführende Dokumentation Add generic TranslatorInterface Relevante Commits (GitHub) [FEATURE] Add generic TranslatorInterface TypoScript Das HTML Attribut ref="noreferrer" kann nun gezielt mittels TypoScript Option config.linkSecurityRelValue konfiguriert werden. Zielgruppe: Integration Weiterführende Dokumentation Make rel attribute in external links configurable Relevante Commits (GitHub) [FEATURE] Replace hard coded rel="noreferrer" Zurück: Übersicht TYPO3 14.2 Weiter: Bugfixes Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen. Garvin Hicking Senior Developer garvin.hicking(at)ppw.de

Weiterlesen

TYPO3 14.2 - Vorbereitung zur Entfernung von Funktionen und Schnittstellen (Deprecations)

Deprecations sind eine hilfreiche Information, welche Funktionen in der Folgeversion (TYPO3 15) umgestellt werden. Somit kann man sich bei allen Update-Anpassungen auf TYPO3 14 bereits für die Zukunft rüsten. Veraltete Funktionen und Schnittstellen ("Deprecations") für die nächste TYPO3-Version 15 Backend: API Deprecations einiger (eher selten genutzter) BackendUtility Methoden: getTCEFORM_TSconfig() , getTSCpidCached() , getTSCpid() . Zielgruppe: Entwicklung Weiterführende Dokumentation BackendUtility TSconfig-related methods Relevante Commits (GitHub) [TASK] Deprecate various methods in BackendUtility Wissenswert Die nun de facto obsolete PageDoktypeRegistry (durch TCA-Definition) ist deprecated. Die Option "onlyAllowedTables" wurde funktional verändert. . Zielgruppe: Integration Weiterführende Dokumentation TCA option allowedRecordTypes for Page Types | Drop PageDoktypeRegistry onlyAllowedTables option Relevante Commits (GitHub) [FEATURE] TCA option allowedRecordTypes for Page Types | [FEATURE] TCA option allowedRecordTypes for Page Types Der BackendAuthenticationService nutzt nun ein verbessertes Fehlermanagement-Handling, ohne eine interne $errorMsg Property. writeLog() wurde entkoppelt. Zielgruppe: Entwicklung Weiterführende Dokumentation BackendUserAuthentication::recordEditAccessInternals() and $errorMsg Relevante Commits (GitHub) [TASK] Decouple error messages from BackendUserAuthentication | [TASK] Decouple BackendUserAuthentication::writelog Deprecations einiger BackendUtility-Hilfsmethoden für Sprachübersetzungen, die nun besser mittels LocalizationRepository durchgeführt werden können. Zielgruppe: Entwicklung Weiterführende Dokumentation BackendUtility localization-related methods Relevante Commits (GitHub) [TASK] Deprecate language-related methods in BackendUtility Das neue Bookmark-Management hat einige (eigentlich interne) "Shortcut"-Klassen umbenannt. Zielgruppe: Entwicklung Weiterführende Dokumentation Internal shortcut classes renamed to bookmark Relevante Commits (GitHub) [FEATURE] Centralize Bookmark Management Da die Benutzereinstellungen nun mit echtem TCA definiert werden ist die Option ExtensionManagementUtility::addFieldsToUserSettings nun obsolet und deprecated. Zielgruppe: Entwicklung Weiterführende Dokumentation ExtensionManagementUtility::addFieldsToUserSettings Relevante Commits (GitHub) [FEATURE] Migrate user settings configuration to TCA Der Wert "url" muss in den TCA-Optionen von "suggestOptions.default.additionalSearchFields" nicht mehr angegeben werden, seit der neue Seitentyp "Shortcut" in T3v14 eingebaut wurde. Ggf. betrifft dies auch eigene Integrationen! Zielgruppe: Integration Relevante Commits (GitHub) [BUGFIX] Remove outdated fields from suggest wizard configuration Das "doSave" hidden FormEngine HTML-Formularfeld wird nicht mehr ausgewertet (jedoch nur interne API), Formular-Übermittlungen an FormEngine werden intern nun anders ausgewertet. Zielgruppe: Entwicklung Weiterführende Dokumentation FormEngine doSave hidden field Relevante Commits (GitHub) [TASK] Deprecate doSave hidden field in FormEngine | [BUGFIX] Do not disable doc header buttons in FormEngine Die Service-Methode PageRenderer->addInlineLanguageDomain() die mit TYPO3 14.1 eingeführt wurde, wird zugunsten einer neuen LabelImport-API deprecated. Zielgruppe: Entwicklung Weiterführende Dokumentation Deprecate PageRenderer-> addInlineLanguageDomain() Relevante Commits (GitHub) [TASK] Deprecate PageRenderer-> addInlineLanguageDomain() Der alte Passwort-Generator via passwordRules TCA-Option wurde zugunsten des neuen passwordGenerator deprecated. Zielgruppe: Entwicklung Weiterführende Dokumentation Deprecate Random Password generator for frontend and backend users Relevante Commits (GitHub) [FEATURE] Add default password generator wizard for FE and BE users Die alte Redis Session Backend Konfigurationsmöglichkeit um username+password in einem einzelnen Feld zu übermitteln wurde deprecated. Zielgruppe: Integration Weiterführende Dokumentation Deprecate usage of array in password for authentication in Redis session backend Relevante Commits (GitHub) [FEATURE] Support username and password in Redis session backend Die Methoden "setLogTable/getLogTable" des DatabaseWriter sind nicht mehr genutzt, da sie suggerierten dass die "sys_log" Datenbanktabelle leicht austauschbar wäre. Eigene Log-Datenbanktabellen sollten eine eigene API-Methode ableiten und nutzen. Zielgruppe: Integration Weiterführende Dokumentation DatabaseWriter::setLogTable()/getLogTable() Relevante Commits (GitHub) [TASK] Deprecate setLogTable()/getLogTable() in DatabaseWriter Wissenswert Die PageRenderer-API erhält nun überall den $request Kontext eingestellt statt auf ein globales TYPO3_REQUEST zuzugreifen. Vor allem die PageRenderer->render() Methode muss nun künftig den Request beinhalten. Zielgruppe: Entwicklung Weiterführende Dokumentation Explicit request handling in PageRenderer Relevante Commits (GitHub) [TASK] Have explicit request handling in PageRenderer Wissenswert Die FormEngine Feldbeschreibungen werden nun implizit immer ausgegeben und sind nicht mehr im Aufgabenbereich von einzelnen FormEngine-Elementen. Das Attribut tcaDescription solcher Elemente ist in Zukunft nicht mehr relevant. Zielgruppe: Entwicklung Weiterführende Dokumentation FormEngine TcaDescription fieldInformation Relevante Commits (GitHub) [TASK] Render field descriptions next to the label in FormEngine Wissenswert Die Datensatztitel beim Rendering von FormEngine-Elementen (u.a. nun im Einsatz beim Context Panel) werden nun einheitlicher gerendert. Der alte "OuterWrapContainer" Rendertyp kann dadurch entfallen, die Funktion wird von formWrapContainer übernommen. Zielgruppe: Integration Weiterführende Dokumentation FormEngine OuterWrapContainer Relevante Commits (GitHub) [TASK] Move record header rendering from FormEngine to controllers Wissenswert Die Datei "ext_emconf.php" wird auch in Classic-Mode Installationen nicht mehr für Extensions benötigt. Alle Informationen können in der composer.json hinterlegt werden. Zielgruppe: Integration Weiterführende Dokumentation Deprecation of ext_emconf.php Relevante Commits (GitHub) [FEATURE] Allow extensions to move ext_emconf.php info to composer.json Wissenswert Aufgrund der System Publishing API ist die Konfigurationsoption $GLOBALS['TYPO3_CONF_VARS']['FE']['addAllowedPaths'] nun deprecated, und Referenzen ausserhalb der Standardordner "Resources/Publlic", "Resources/Private" und "Configuration" können nicht mehr (ohne eigene Konfiguration) genutzt werden. Zielgruppe: Integration Weiterführende Dokumentation Allowed paths configuration is deprecated | Access to arbitrary resources in extensions Relevante Commits (GitHub) [FEATURE] Make resources configurable | [FEATURE] Make resources configurable Das CSP-Attribut "useNonce" in den f:asset Fluid ViewHelpern ist zugunsten von "csp" deprecated. Zielgruppe: Integration Weiterführende Dokumentation Deprecation of useNonce argument in f:asset:css and f:asset:script view helpers Relevante Commits (GitHub) [FEATURE] Prefer CSP hash values over nonce values Backend: User-Interface / Darstellung (UI) Weitere Verschiebung eines Menüpunkts: "Linkvalidator" ist nun in der "Link Verwaltung"-Gruppe enthalten (statt früher "Status / Info"). Zielgruppe: Entwicklung Weiterführende Dokumentation Move linkvalidator module to Link Management group Relevante Commits (GitHub) [TASK] Move linkvalidator module to "Link Management" module Wissenswert Durch die Entfernung der Bootstrap Tabs für FormEngine-Labels entfallen nun auch künftig die alten JavaScript events show.bs.tab und shown.bs.tab . Stattdessen sind nun eigene Events typo3:tab:show und typo3:tab:shown verfügbar. Zielgruppe: Integration Weiterführende Dokumentation Bootstrap tab events Relevante Commits (GitHub) [TASK] Replace Bootstrap Tabs Wissenswert Die TypoScript Konfigurationsoption options.pageTree.doktypesToShowInNewPageDragArea ist künftig mehr verfügbar, da der Drag-und-Drop-Bereich für die Erstellung neuer Seiten nun sämtliche dokTypes auswertet. Zielgruppe: Integration Weiterführende Dokumentation Deprecate doktypesToShowInNewPageDragArea User TSConfig Relevante Commits (GitHub) [TASK] Restructure Toolbar Submenu in TYPO3 page tree CLI (Kommandozeile) Wissenswert Das Kommando "language:update" wurde (backwards compatible) von EXT:install nach EXT:core verschoben und kann somit ohne Abhängigkeit zu EXT:install in Deployments genutzt werden. Zielgruppe: Integration Weiterführende Dokumentation Move language:update command and events to EXT:core Relevante Commits (GitHub) [TASK] Move command "language:update" to EXT:core EXT:form (Formularverwaltung) Das YAML Feld "fieldExplanationText" wurde in "description" umbenannt um klarer zum Ausdruck zu bringen, wofür ein Key genutzt wird. Dieses Feld kann nun auch für SingleSelect/MultiSelect/CountrySelect genutzt werden. Zielgruppe: Entwicklung Weiterführende Dokumentation Rename fieldExplanationText to description Relevante Commits (GitHub) [TASK] Rename fieldExplanationText to description Wissenswert Der DatePicker der Formulare (im Frontend) basierte auf jQuery. Er wird nun zugunsten von HTML5-Elementen deprecated. Zielgruppe: Integration Weiterführende Dokumentation Form DatePicker element Relevante Commits (GitHub) [TASK] Deprecate DatePicker form element Sehr wichtig Die Speicherung von YAML-Formular-Dateien in FAL-Storages ist deprecated. Innerhalb von Extensions (mit EXT:-Syntax) weiterhin möglich. Ein MigrationWizard ermöglicht den Transfer von Formularen. Zielgruppe: Integration Weiterführende Dokumentation Form file-based storage deprecated Relevante Commits (GitHub) [FEATURE] Introduce database storage for form extension Sehr wichtig Das Formular-Rendering im Backend erfolgt nun mittels lit Webkomponente, die Fluid-Partials wurden deprecated. Anpassungen im HTML-DOM-Rendering müssen nun per JavaScript-Events und ohne Fluid erfolgen. Zielgruppe: Integration Weiterführende Dokumentation Deprecate form editor stage template rendering functions Relevante Commits (GitHub) [TASK] Deprecate form editor stage rendering functions Sehr wichtig Durch die neue automatische YAML-Registrierung müssten formulardefinitionen nicht mehr via TypoScript registriert werden. Zielgruppe: Integration Weiterführende Dokumentation Relevante Commits (GitHub) Details Extbase Wissenswert Die Extbase "errorAction" nutzt nun standardmäßig keine FlashMessages in Sessions, sondern leitet diese über separate Request-Attribute weiter. Hierdurch wird dann kein Session-Cookie notwendig. Zielgruppe: Integration Weiterführende Dokumentation Prevent Extbase errorAction from writing session data Relevante Commits (GitHub) [TASK] Prevent Extbase errorAction from writing session data Fluid 5 Die Debugging-Implementation von f:debug.render wurde umgearbeitet, so dass der Fluid-ViewHelper in v5 komplett entfallen wird. Ersatz würde man auch z.B. mit EXT:includekrexx finden. Zielgruppe: Entwicklung Weiterführende Dokumentation ViewHelper Relevante Commits (GitHub) [TASK] Simplify debugging implementation FormEngine Der Mechanismus "additionalHiddenFields" in Formengine war überflüssig, da versteckte Formularfelder bereits Teil des "rohen" HTML-Arrays sein konnten. Daher wird die Nutzung hiervon nun deprecated, zusätzlich zu der property FormResult::$hiddenFieldsHtml und der Methode FormResultCollection::getHiddenFieldsHtml() . Zielgruppe: Entwicklung Weiterführende Dokumentation FormEngine "additionalHiddenFields" key Relevante Commits (GitHub) [TASK] Deprecate FormEngine additionalHiddenFields Die interne Klasse "formResultCompiler" wurde deprecated, und sollte durch direkte PageRenderer-Nutzung ausgetauscht werden. Zielgruppe: Entwicklung Weiterführende Dokumentation FormResultCompiler Relevante Commits (GitHub) [TASK] Re-add and deprecate FormResultCompiler Frontend: API Sehr wichtig Der zentrale PageRenderer zum Darstellen von Content-Objekten und Assets und dem HTML-Rahmengerüst jeder Seite wurde so umgestellt, dass er künftig nur als "Schreib-Pool" genutzt werden soll. Leseaktionen auf den Zustand des Value-Objekts sollen nicht mehr durchgeführt werden. Inhalte sollen besser aus den request/site-Attributen bezogen werden. Alle Getter dieser Klasse sollen nicht mehr genutzt werden, weitere Migrationsanweisungen siehe ChangeLog. Zielgruppe: Integration Weiterführende Dokumentation PageRenderer get() methods Relevante Commits (GitHub) [TASK] Turn PageRenderer into a data sink Zurück: Modernisierung des Codes Weiter: Zum Überblick von TYPO3 14.3 LTS Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen. Garvin Hicking Senior Developer garvin.hicking(at)ppw.de

Weiterlesen

BITV Check - Wir prüfen Ihre Website oder Ihr digitales Produkt.

Wir setzen die Projekte unsere Kunden nicht nur BITV-konform um, wir prüfen auch Websites, Apps und digitale Produkte hinsichtlich der gesetzlichen Anforderungen. Buchen Sie unser 30-Minten-Erstgespräch - unverbindlich, klar und kompetent. Denn digitale Barriefreiheit ist Pflicht.