#Notizen der Sessions vom TYPO3camp Munich 2014 ##Keynote Scrum und agile, motivation - intrinsisch/ extrinsisch Book about motivation: Drive, Daniel H. Pink TED talk: \url{http://www.ted.com/talks/dan\_pink\_on\_motivation} ###Drupalg Artikelbasiert Download: Vorgefertigte packages PHP und MySQL Opensource ##Webshop framework Norbert (mit dem unaussprechlichen Namen) Statt standalone Lösung oder TYPO3 Plugin Library: arcarvias in PHP geschrieben Beispiele: Schulungsanbieter oder Ferienwohnungen vermieten oder tassimo.de Vorteile: 100000+ Produkte mit integrierter suche, sonst solr oder elatic search, Superschnell, Unbegrenzte shops pro Installationen Integrateted unit Tests, Lizenz ist GPL und lgpl Library Auf \url{http://github.com/arcavias} und t3 extension im TER \url{http://www.arcavias.com/} \url{http://typo3.org/extensions/repository/view/arcavias} Lokalisiert in de en pl ru fr es via transifex TYPO3: AB 4.5 BIS 6.2 Anbindung an die gängigen zahlungssysteme Nutzt extbase aber nicht fluid (HTML Ausgabe erfolgt aus der lib) Demo \url{http://aimeos.org/demo} Empfehlung: TYPO3 unter 6.2 Hinweis: 2 MS pro link da link Generierung langsam ist Anmerkung Mimi: Das Zeug ist ja mal ficken-schnell... dachte erst, es wäre T3 dabei, scheint aber wohl "reines PHP" zu sein... gibt's ne Demo-Einbindung in T3?j ##Community Christian Müller, Ben van 't Ende * Jeder, der TYPO3 nutzt ist für Christian Mitglied der TYPO3 community * Früher war die Community vor allem Entwickler-zentriert. Das hat sich nur mäßig gebessert (wertfreier: verändert?) * Es gibt zahlreiche Teams (\url{http://typo3.org/teams)}, in denen man sich einbringen kann * Jedoch gibt es noch zahlreiche andere Möglichkeiten, etwas zurück zu geben (wie zB auf Camps, Mailing listen/Foren, Blog-Artikel, Extensions testen und Feedback geben) * Wir sollten versuchen, englisch-sprachig zu kommunizieren - die TYPO3 community ist zu deutsch-zentiert [Anm. des Schreibers: grr.. verdammt] * Die TYPO3 User Experience Week (\url{http://t3uxw.org)} versucht, einerseits internationale, andererseits auch interdisziplinäre Teilnehmer zusammen zu bringen * Jeder kann ein Team gründen, es gibt keine formalen Anforderungen. * Die TYPO3 Association ist ein eingetragener Verein in der Schweiz, der die Weiterentwicklung von TYPO3 unterstützt. Gemäß den Vereinsstatuten geht es hierbei um Open Source Software. * Commitees sind gewählte bzw. aus der TYPO3 Association bestimmte Gruppierungen. Teams sind nicht gewählt. * Es gibt kein Organ, das die Strategie für die Produkte bestimmt. Es ist eine Open Source community, die auf freiwilliger Arbeit basiert. Derzeit laufen die Associateion Meetup Days (\url{http://typo3.org/news/)}, bei denen versucht wird, noch konkreter den Bedarf zu ermitteln, der dann hoffentlich auch umgesetzt wird. * Jederzeit gerne an beliebige Community-Mitglieder geben, wenn es Fragen gibt. Christian Müller (christian.mueller at typo3 dot org, @daskitsunet on twitter) und Ben van't Ende (ben at typo3 dot org, @benvantende on twitter) ##Typoscript für Einsteiger Lib.xxx Definitionen bleibt erhalten. Ist eigentlich nur eine andere Schreibweise für das finale PHP array Tsref.de Beispiele: Typoscript in 45 minutes auf docs.typo3.org/typo3cms/References.html -> tutorials oder CSS styled content ##Solr für Dummies * Buchtipp: \url{http://shop.oreilly.com/product/9780596802288.do} ##Theme packages by JoH asenau Joe explains the concept of themes and mentions the fact that TYPO3 is quite unique not having something like themes. Vorgefertigte Webseite mit einem Design zum "nehmen und benutzen" bekannt von Joomla, WordPress etc. bei TYPO3 eher selten, aufgrund individueller Desgin Ausnahme vielleicht die Introduction Packages ##Upgrade 4.5 to 6.2 Jochen Weiland Slides auf Jweiland.net unter typo3camp Berlin Http://jweiland.net/t3dd14 Http://jweiland.net/62 Änderungen zwischen TYPO3 Versionen dokumentiert von Patrick lohbacher Upgrade nie am live Server Tip: step by step mitschreiben 1. Backup erstellen - vhost oder 2. Aufräumen - nicht verwendete extensions Tipp: extension additional reports zum feststellen ob extension verwendet wurde 3. Installtool DB analyser aufräumen 4. DB leeren cache\_ cacheframework..., cf\_* sys\_log sys\_statt .. TX\_realurl \_errorlog geht auch über installtool 5. Extensions aktualisieren falls sinnvoll Ggf. Aktuellste Version erst nach upgrade installieren und extension deaktivieren 6. Display errors aktivieren 7. BE ExplicitADmode ggf auf ExplicitDeny setzen! 8. Db check manage reference index update am besten via shell Befehl 9. Smooth migration extension installieren 10. Utf-8 als db vorgaben im installtool 11. Typo3 symlink ändern oder neue Version einspielen 12. installtool starten 13. Fehler in folderstruktur beheben lassen 14. Upgrade wizard starten Ggf inkompatible extensions deaktivieren 15. Clear all cache über installtool Optios.clearCache.system = 1 16. Restliche extensions aktualisieren 17. Evt in github repository des Entwicklers schauen Github.com/jweiland-net/Rlmp\_tmplselector Readme Datei 18. Dam To fal migration Sys\_file\_metadata mGithub Froemken/t3ext-dam\_migration 19. Language packages updaten Selbst geschriebene extensions checken New property mapper Recursive validation 20. Scheduler tasks neu planen Slides: \url{https://jweiland.net/uploads/media/Update-6.2-T3CB14.pdf} ##Neos 101 - Grundgedanken, warum und wieso - Vorstellung der Funktionen - Ausblick, Translations, User Rights ##TYPO3 User Groups * München: www.mtug.de * generelle Übersicht: \url{http://typo3.org/community/typo3-user-groups/} # ##Gridelements Jo Hasenau BE Layouts und Gridelements: name = LLL: ... auch möglich Drag \& Drop Kopieren: Steuerungstaste halten Manual Examples: \url{http://manuals.cmsbox.de/extensions/gridelements/} Code Beispiel für dateibasiertes TSconfig als Layoutkonfiguration: Parameter entsprechen auf der ersten Ebene den Feldnamen aus den Layout-Datensätzen tx\_gridelements.setup.tabs { title = LLL:EXT:themes\_gridelements/Resources/Private/Language/Elements.xlf:tabs description = LLL:EXT:themes\_gridelements/Resources/Private/Language/Elements.xlf:tabs\_description flexformDS = FILE:EXT:themes\_gridelements/Configuration/Elements/FlexForms/Tabs.xml icon = horizontal = 1 frame = 12352345 config { colCount = 1 rowCount = 1 rows { 1 { columns { 1 { name = LLL:EXT:themes\_gridelements/Resources/Private/Language/Elements.xlf:tabs\_container colPos = 0 } } } } } } ##Workspace und gridelements Jo hasenau ##Behavior Driven Development (BDD) mit Mink, Behat Irene Höppner * Die Test-Pyramide: \url{http://martinfowler.com/bliki/TestPyramid.html} * Unit tests: sehr schnell, sehr häufig ausführen, testen public API * Functional Tests: testen Funktionalitäten, nicht einzelne Methoden * UI tests: Benutzeroberflächen testen (Seite öffnen, Formular ausfüllen \& absenden, Rückgabe prüfen) * Cucumber ist die ursprüngliche Ruby Implementierung eines BDD-Test-Frameworks * Behat die Portierung auf PHP (was uns sehr hilft) * Beispiel: \url{http://docs.behat.org/en/v2.5/} * Die verwendete Domain Specific Language ist "Gherkin" * die "Given" Blöcke stellen die Vorbedingungen für den aktuellen Test her ("ich bin auf der Startseite") * Installation über Composer \url{https://getcomposer.org/doc/00-intro.md} * Verschiedene Treiber (zB mink-goutte-driver und mink-selenium2-driver) ermöglichen es durch Mink, Webseiten zu testen * Über das *behat* executable lässt sich behat nutzen * in .feature-Dateien werden die Beschreibungen der Tests abgelegt * Behat in TYPO3 Neos: * underlineDoku: underline\url{underlinehttp://docs.typo3.org/neos/TYPO3NVeosDocumentation/DeveloperGuide/Testing/Behat.htmlunderline} * Tests: \url{https://git.typo3.org/Packages/TYPO3.Neos.git/tree/HEAD:/Tests/Behavior} * Feature Context liefert die eigentliche Implementierung zur natürlich-sprachlichen Testdefinition: \url{https://git.typo3.org/Packages/TYPO3.Neos.git/blob/HEAD:/Tests/Behavior/Features/Bootstrap/FeatureContext.php} * \url{https://saucelabs.com/} lässt sich als Service nutzen, der die Tests über Selenium ausführt und Videos aufzeichnet ##**PHPStorm** * Live Preview (Video von Webstorm 5) \url{https://www.youtube.com/watch?v=wCVwdvufTds} * Jetbrains Cheat Sheets * Action Bar (CMD + Shift + A) * Live Templates inkl. Tab Handling * \url{http://www.sitepoint.com/phpstorm-top-productivity-hacks-shortcuts/} * Blaue Pfeile für Code Navigation * Todo Liste sucht todo Kommentare. Liste mit CMD + 6 * Mehrere Zeilen auskommentieren: markieren, dann CMD + - * HMTL Fragmente in PHP mit Alt + Enter in separatem Fenster bearfbeiten * Achtung mit Settings: Es gibt Project Settings und Project Template Settings * cmd + shift + v => Search History * shift shift: search everywhere * Local History zeigt alle Anderungen an den lokalen Dateien (auch ohne Git, etc,) * SSH Terminal kann auch auf remote Server umgebogen werden * cmd + e => recent files * emmet: Plugin, um aus "ul#navi>li" + tab das entsprechende HTML zu machen * www.sitepoint.com/phpstorm-top-productivity-hacks-shortcuts/ * www.getbootstrap.com/components/#navbar * \url{http://www.jetbrains.com/phpstorm/webhelp/keyboard-shortcuts-you-cannot-miss.html} ##Wir gehen (ph)fischen - Bösartige E-Mails erkennen - Was ist Phishing, Ziele - Erkennen, Header, Aufbau und Inhalt verschiedener E-Mails - reply-to , return-path , received ##Grunt sehr praktisch - Javascript Task Runner als node.js Plugin - Anwendungsbeispiel - Alternative gulp.js ##Solr Hans Höchtl \url{http://blog.1drop.de/solr-universeller-keyword-boost/} \url{http://blog.1drop.de/neuerungen-in-extsolr-3-0/} ##tinymce als Backend-RTE Stefan Galinski * EXT:tinymce4\_rte (\url{https://forge.typo3.org/projects/extension-tinymce4\_rte}, \url{http://typo3.org/extensions/repository/view/tinymce4\_rte} * EXT:tinymce ist Basis mit dem tinymce und einer kleinen API zur Einbindung (\url{https://forge.typo3.org/projects/extension-tinymce}, \url{http://typo3.org/extensions/repository/view/tinymce} * Code unter \url{http://gitlab.sgalinski.de/typo3/tinymce} und \url{http://gitlab.sgalinski.de/typo3/tinymce4\_rte} * Anleitung: \url{http://www.sgalinski.de/open-source/tinymce-als-typo3-rte.html} * tinymce-Konfiguration: \url{http://www.tinymce.com/wiki.php/Configuration} * Toolbar-Elemente und Plugins: \url{http://www.tinymce.com/wiki.php/Controls} * Formate: \url{http://www.tinymce.com/wiki.php/Configuration:formats} ##Barrierefreiheit Stefan Farnetani Grundlage aller Arbeit ist die Web Content Accessibility Guidelines (WCAG) 2.0 (\url{http://www.w3.org/Translations/WCAG20-de/)} * Unterteilt in vier Kapitel: Wahrnehmbar, Bedienbar, Verständlich Robust * Guidelines technikunabhängig formuliert > vieles mit gesunden Menschenverstand nachvollziehbar * technische Umsetzungsvorschläge, sind in den sog. "Techniques" in den jeweiligen Prüfschritten festgehalten. Beispiel: Richtlinie 2.1 Per Tastatur zugänglich: Sorgen Sie dafür, dass alle Funktionalitäten per Tastatur zugänglich sind. (\url{http://www.w3.org/Translations/WCAG20-de/#keyboard-operation)}. zu jedem Prüfschritt findet man einen Link "erfüllen". Dieser link für jeweils auf eine Seite mit verschiedenen technischen Möglichkeiten zur erfüllung des Prüfschrittes. Die WCAG kann Anfänger erschlagen. Man sollte sich aber deshalb nicht abwenden. Es gibt eine Reihe von kleinen Prüfschritten, mit dem man bereits viel erreichen kann. Wenn die Seite oder Anwendung am Schluss nachweißlich barrierefrei werden soll, muss natürlich der gesamte Test durchlaufen bzw. noch besser mit echten Nutzern alles gestetet werden. * Prüfen ob man mittels Tastatursteuerung (Tab-Taste, Pfeiltaste und Enter bzw. Space-bar) alle Elemente der Seite erreichen kann * Farbkontrast Analyzer, Colour Contrast Analyser (\url{http://www.paciellogroup.com/resources/contrastanalyser/)} * WAVE Browser Plugin (\url{http://wave.webaim.org/toolbar/)} **Fluid,Flux** Beispielseite für Flux Elemente: fluidtypo3.org, github.com/typo3 - Flux: ist der Viewhelper, das XML das andere XMLs erzeugt welche auf der Webseite verwendet werden - Fluidpages: Definiert Flux-Seite, rendert Backend View, erweitert Seiteneigenschaften, zu finden unter Ressources/Private/Templates - VHS: ist eine Viewhelper-Sammlung Extension: fluidcontent.core Ersetzt CSS styled content, besitzt absichtlich kein Bild mit Text element, da es zum testen zu ungenau ist -> zuviele Optionen In eigener Extension können Core-Elemente überschrieben werden. **Motivation, besser Verkaufen** 1 - Starte mit etwas schwarzem - Beamer aus - Wenn Beamer verwendet so wenig info wie möglich auf die Folie (sowas wie usesless info ganz raus lassen, wie eigene Angaben, Alter usw.) - Wichtig ist: Warum schlage ich DAS vor, warum mach ich das? Eigene Überzeugung 2. Starte mit eigener Story - Wie bin ich zu dem Produkt gekommen was ich verkaufen will - folie Frei voin Nebeninfos wie, Titel, Logo, Design, usw. 3. unnötiges raus - Handout nach Vortrag 4. Du hast was zu sagen nicht der Slide - Folien sollen nicht sagen was ich sagen will - Aufmerksamkeit erzeugen -> wenig info auf Folie 5. Sexy \& seriös - umsehen, bewegen -> die Zuhörer abholen 6. Stehe im Rampenlicht - sagen worauf es ankommt - Sicherheit vermitteln,dass das Ziel ganz sicher erreicht wird 7. Was man selbst verraussetzt Wiederholen (nicht jeder kapierts beim 1. mal) 8. Greif den Kunden an den Eiern - zeig auf, wenn das so nicht gemacht wird wie beschrieben, verliert er Geld - Was kann man für den Kunden besser machen - Vor dem Votrag rausgehen, die Türen schließen, so sieht jeder, der Redner ist da -> maximale Aufmerksamkeit erreichen - Kunden ansehen -> abholen - den oder die passender/n Redner für das Projekt aussuchen, der/die sich am meisten auskennt/en 9.Doppelt hält besser - Redner Dreamteam zusammenstellen - Jeder hat sein eigenes Fachgebiet 10. Schhhhhhhh... Eine Runden mit den Händen über die Zuhörer, dabei "Schhhh" geräusch machen, bewirkt wunder um die Aufmerksamkeit der Zuhörer zu erhalten Wie Diagramme Präsentieren? - Ohne Achsenbeschriftung, nur sagen was die Y-Achse bedeutet, so kann der Schritt 1-2 größer aussehen als er ist z.B. - einfach Botschaften - Vor dem zeigen des Diagramms bereits sagen was darauf zu sehen sein wird - Mit Charm auf interessen eingehen Wie Flipcharts präsentieren? - Draufhauen -> durchbricht Ruhe
{}