5517 views
# TYPO3 Camp Berlin-Brandenburg 2024 [t3cb.de](https://www.t3cb.de/) | [twitter Impressionen](https://twitter.com/hashtag/T3CB?src=hashtag_click&f=live) 17.-19. Oktober 2024, Berlin-Kreuzberg im [bum.berlin](https://bum.berlin/) # Sessions - https://www.t3cb.de/programm/ - Live-Stream Tag 1: https://www.youtube.com/live/xVoFipUnaRY - Live-Stream Tag 2: https://www.youtube.com/live/_eyRYMvWDo8 ## Freitag ### Site package in TYPO3 v13 - [Site package Tutorial v13](https://docs.typo3.org/m/typo3/tutorial-sitepackage/main/en-us/Index.html) - [Site package example, source](https://github.com/TYPO3-Documentation/site_package) - [Site sets](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SiteHandling/SiteSets.html) - [PAGEVIEW](https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Pageview/Index.html) ### Neue APIs in TYPO3 v13 - [Slides](https://typo3.slack.com/files/U6G9SK7DZ/F07SPUJLN3E/typo3_new_api_v13.pdf) - [Stream](https://www.youtube.com/live/xVoFipUnaRY?feature=shared&t=12648) ### Software-Qualität von Extensions automatisieren - [Stream](https://youtu.be/xVoFipUnaRY?t=114) - Speaker: [Oliver Klee](https://www.oliverklee.de/) - [Best Practices Team](https://typo3.org/community/teams/best-practices) - [Beispielprojekt](https://github.com/FriendsOfTYPO3/tea/) ### Shop - coding.ms GmbH, Thomas Deuling - [Ext Shop](https://extensions.typo3.org/extension/shop) - Bootstrap CSS als Basis - [Beispiel-Shop](https://www.mutter-erde-saaten.de/) ohne überschriebenes Template - Container definieren im Template - verschiedene Seiten Typen anlegen - Produktliste Plugin mit Infos, Filter definieren - Produkteinzelansicht: Pflichtfelder definieren (Liste und Einzelansicht können auf einer Seite sein) - Warenkorb - Plugin Checkout: hinzufügen - Startseitte: Listen Plugin - Start Produkte anlegen - diverse Varianten anlegen (Farbe, Größe, …) - Standard-Steuersatz - Steuersatz für verschiedene Länder - Produkttypen definieren (T-Shirts, Jacken, Downloads …) - definieren der Varianten (links Produkt, rechts Variante) - Datensatztypen sind jederzeit änderbar - damit soweit fertig für Produkte anlegen :) - Start Produkte anlegen - minimum Bestellwerte definierbar für verschiedene Bezahloptionen - Shop Pro: ermöglicht weitere Bezahloptionen Paypal, Klarna, … - Constanten nutzen für die Definition der Bestellprozesse (Versand-Email, Buttons, etc.) - PDF's werden über Fluid definiert - Logo, Adressdaten im Footer werden über ein Hintergrund PDF eingefügt - Produktpersonalisierungen möglich - verschiedene Preise für verschiedene Varianten möglich - individuelle Preise für weitere Länder - einfaches Lagermanagent, Rückrechnung bei Storno offener Issue - kein Multi-Currency - Rabatt-Aktionen (sehr rudimentär) auf Checkout-Arten, für Produktgruppen - automatische Zuweisung von BE-Usergruppen bei Bezahlung - verschiedene Versandarten nach Gewicht, global, sperrig - Bestellstatus noch nicht vorhanden - UPS Schnittstelle für Etiketten - Stripe Abo System für Buchung von Kursen oder ähnlichem, FE-User kann Abo auch stoppen #### Unterschiede zu anderen - Ext: [Card](https://extensions.typo3.org/extension/cart) (nur eine Persion) - Updates kommen langsam - PDF aktuell nicht dabei - Statistiken nur sehr gering - Ext: [Aimeos](https://extensions.typo3.org/extension/aimeos) - auch für kleinere Shops - konzipiert für größere Shops - Ext: [Shops](https://extensions.typo3.org/extension/shop) - fing mit einem Shop an, inzwischen deutlich ausgebaut #### weitere Extensions - https://www.coding.ms/typo3-extensions - Ext Poll - Ext: Portfolio? - openImmo #### Statistiken - Top10 geklickte Produkte, meist verkaufte Produkte, Umsatz - in Pro-Version höhere Detailierung - Rechnnung als XML kommt zu ### React Einführung (ohne headless Extension) - brandung GmbH, Stephan Jorek - erkennbar an viel Interaktivät - Beispiel: Diakonie Jobsuche - Rahmen: PLZ, Ort ind D. für Suche - Google-Places-Api liefert Geo-Koordinaten - Detailansichten werden mit Standard TYPO3 CE's ausgeliefert (vorteilhaft für Suchmaschinen die nicht mit einem Browser indizieren) - Detailseiten-Links werden in React erstellt - Ausliefernung von JSON Daten - Lastverteilung -> Verlagerung in den Browser - Limitierungen beim Hoster erfragen - existierende React-Komponenten für: - Google-Places-Api - Paging - Beispiel 2: Katastrophenhilfe fürs DRK – Karten - verschiedene Art von Datensätzen - muss / soll später nicht super bekannt werden (Skalierung) - Aufgabe - Datenmodelierung & Erfassung - selbsterklärendes Interface - Ladezeit/Datenmenge vs. Datendarstellungsperformence - flüssige Animationen der Karte - Zoom auf Länder oder Flächen - interaktives Hervorheben der Flächen - mobile Darstellung - |_> sehr komplexes Datenemodell - geschätzt 5 - 25mb Daten (2/3 Geo-Daten) - Rendering im HTML-Canvas (MapLibre – sorgt für sparsame Rechenleistung, die meisten verwenden SVG für Karten; MapLibre verwendet HTML-Canvas pixel basiert) - vorgerendertes Vektor-Kartenmaterial (MapTiler für farbliche Anpassungen möglich) - Karte muss nicht aktualisiert werden, kann aber - Lösung mobil: ist nicht notwendig, da Screen zu klein ##### Warum React? - Performance: Clientseitiges Rendern der Karte - Wartbarkeit - Wiederverwendbarkeit - existierende React-Komponenten für - Karte - CSS Animationen (z.B. Zahlen-Counter) ### Beispiel WWF Deutschland - interaktive Spendenkarte - neuer Einstieg in die Spendenbetragshöhe - soll für viele Theme (Meere, Plastik, Urwald, …) einsetzbar sein - als Kampagne einsetzbar (Spendenziel) #### Zielgruppen - june Spender - Themen-orientierte Spender - Anforderungen: - mobil & Desktop - Einsatz für viele Theme - felxible und optimale Unterleiung des auswählbaren Rasters - Datenmenge bis zu 2.000 x 1.000 – viel JSON - eingrenzte Flächenauswahl - im Urwald keine Flüsse - im Meer keine Inseln - Lösungen: - Pixelbasiert - React-Theming – erlaubt Redakteuren vollständige Konfiguration des Farbschemas und des verwendeten Bildmaterials, Auslieferung durch TYPO3 - Hexagon optimal für Rasterung (hexagonale Mathematik) - Lösung: Karten-Raster als Bit-Map erfassen, 5 Bits möglich - Koordinaten-Auswahl = Editor #### Warum React? - Clientseitiges Rendern - einmaliges Rendern wenn Kampagne abgeschlossen - Existierende React-Komponente ### Vertrauen in Teams und in Führung - Speaker: [Oliver Klee](https://www.oliverklee.de/) - [Folien](https://speakerdeck.com/oliverklee/vertrauen-in-teams-and-fuhrung-dd41320c-c67c-40e8-9829-749c42c6b961) - [Online-Crashkurs zu gewaltfreier Kommunikation](https://www.oliverklee.de/workshops/aktuelle-workshops/) ### Apache Solr: Past, Present and Future Folien: https://drive.google.com/file/d/1VrR8cbVyDkbB-aGY_ViN3bnQu4vxL-dN/view?usp=sharing Speaker: Rafael Kähm und Olivier Dobberkau Github: https://github.com/TYPO3-Solr/ext-solr ddev: https://github.com/TYPO3-Solr/solr-ddev-site Website: https://www.typo3-solr.com/ Bitte testet unsere aktuelle Alpha Version: https://packagist.org/packages/apache-solr-for-typo3/solr#13.0.0-alpha-1 ### Frag den SEO - dskom | Sven Deutschländer - Shopware 5 Upgrade auf 6 – verliert sein Ranking durch das Upgrade - Aufklärung der Kunden für Upgrade 1. Mehr Wahrnehmung 2. Mehr Vorteile 3. Mehr Kunden 4. Mehr Umsatz 5. Mehr Kundenbindung 6. Mehr Service - nach Möglichkeit im bestehenden System bleiben (siehe Relaunch) - aufpassen bei Argumentation für Relaunchs - wenn Seiten / Beiträge / Dokumente nicht mehr gesucht werden, können / sollten diese auch gelöscht werden - Goole beurteilt nicht relevante Inhalte irgendwann die Domain auch als nicht relevant - wenn man ein Archiv pflegt, sollten diese Inhalte auf "no-index" gesetzt werden - expliziter Hinweis auf SEO im Angebot, da es heutzutage für den Kunde selbstverständlich ist! - Google versucht zu verstehen, wer Experte ist – Content Schleudern, Arbitage-Modelle sollen vertrieben (Arbitage-Modelle werden aktiv von Google schlechter gerankt) - organische Suchergebnisse werden durch die visuelle Ausbreitung der Google Shopping-Produkte aus der View gedrängt - um zukünfitg sehr hoch gerankt zu werden, muss Content deutlich besser sein als das was KI genrieren kann - Verweildauer wichtiges Kriterium für Rankings durch Chrome - Inhalte müssen so gut sein, das nach dem Lesen die Suche erledigt ist - warum ist Google so aggressiv? TikTok – ist super durchsuchbar und liefert Filmchen als Antwort auf die gestellte Frage. - Bewegtbild ist mehr vertikal als horizontal! (Jugend kennt nur Bewegtbild-Internet) - klassische Optimierung bleibt weiterhin relevant; siehe 18 Punkte! - redirect - sorgt nicht für das Auffangen der alten URL's - Google trackt alle alten URL's - Google trackt alle neuen URL's - Google macht dann später einen Abgleich alt & neu - besser redirects auf Dokument Ebene - Breadcrumbs -> Schema.org verswenden - gute Idee in GSC - Unterkategorien auf Hauptmenüpunkte / Ordner anlegen - sinnvolle Link-Struktur erstellen; Zielseiten nicht zuweit weg von der Index! - ToDo in GSC - gecrawlt nicht indexiert – möglicherweise Fehler! (ab 5stelligen Fehlern vom Index ausschließen) - wenn als Fehler / rot markiert – fixen! - proaktives Beurteilen ab zu alten Zeitpunkten, dass die Inahlte auf no-index setzen ### Prototyping Integration - Hannes Lau - [Extension pti_twig](https://extensions.typo3.org/package/pti/pti-twig) - Proto-Typing - PHP Classen für Übersetzung der DB-Inhalte ### Spiel: Hindernisse in Teams beseitigen - Speaker: [Oliver Klee](https://www.oliverklee.de/) - [Website des EMPAMOS-Projektes](https://www.empamos.de/), das diese Methode entwickelt hat ## Samstag ### T3Monitoring TYPO3 Instanzen überwachen - Karsten Nowak / [undkonsorten](https://www.undkonsorten.com) - Ext [t3monitoring](https://extensions.typo3.org/extension/t3monitoring) - Check Möglichkeit für verwendete Extensions, TYPO3 Versionen - Achtung: Nicht verwechseln mit t3monitor! Das ist eine andere Extension. - t3monitoring_client auf der zu überwachenden Installation installieren - t3monitoring auf dem Host-System (lokales ddev System) - Extension (nicht die …_client) für v12 hat bei mir noch kleinere Probleme gezeigt, läuft aber an sich - list all - Kreisdiagramm fehlt aktuell noch (kann auch an mir liegen) - Secrets auslagern in .env Datei - Host-System kann ist unabhängig von der TYPO3 Version des Client-Systems - kann E-Mails über den Zustand versenden - kann über Scheduler automatisiert Infos abfragen - auf IP-Adressen einschränkbar - relativ einfach erweiterbar mittels eigener Extension. Beispiel: Überprüfung des Encryption Key, TYPO3 Context, etc… - Undkonsorten hat eine solche Extension gebaut, ist aktuell nicht veröffentlicht – Karsten anfragen - [Unterstützung an Georg](https://github.com/georgringer/t3monitoring) stellt Weiterentwicklung sicher! ### Plattform zum Führen von Teams - Speaker: [Oliver Klee](https://www.oliverklee.de/) - Slack-Channel fürs Projektteam: [#team-management-platform](https://app.slack.com/client/T024TUMLZ/C07TA84NR88) ### Newsletter mit TYPO3 - Karsten Nowak / [undkonsorten](https://www.undkonsorten.com) - gibt mittlerweile neue Tools. Seit direct_mail ist einfach viel passiert. - Slides mit einer Liste von uns genutzter [Tools rund um das Thema Newsletter](https://github.com/undkonsorten/newsletter-typo3camp) - dort gibt es auch die Links für [t3monitoring](https://github.com/undkonsorten/newsletter-typo3camp/blob/main/T3Monitoring.md) - Hauptsächliche Probleme bei Newsletter: Templating und Versand - Für Templating: [email_template](https://packagist.org/packages/undkonsorten/email-template) - Für den Versand: [cute_mailing](https://packagist.org/packages/undkonsorten/typo3-cute-mailing) - ist vor allen Dingen für den Versand - verschickt einfach eine TYPO3 Seite - wie die gebaut ist, ist völlig egal - kann HTML und Text Format verschicken - einfach zu konfigurieren über Page TS-Config - CuteMailing legt sich nicht auf eine Art von Empfängerliste/Empfägerdaten fest. Duch sogenannte "Connector-Extensions" jede Art von Empfängerliste andockbar. Auch externe Listen könnten so verwendet werden. - Beispiel für eine Connector-Extension: [cute_mailing_registeraddress](https://packagist.org/packages/undkonsorten/typo3-cute-mailing-registeraddress) - Beide genannten Extensions sind völlig unabhängig voneinander einsetzbar ### Datenbankabfragen mit recursive CTE reduzieren - Beispiel-SQL inkl. Erläuterungen aus der Live-DEMO: [rCTE SQL](https://github.com/ASchoenfeld-BHT/rCTE-example) - Präsentation als PDF ebenfalls im Git Repo: [Slides](https://github.com/ASchoenfeld-BHT/rCTE-example/blob/main/slides.pdf)