#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