Notes for all sessions on TYPO3camp Mallorca 2014
##Sessions wanted (for Sunday):
1. Introduction to FluidTYPO3
Please write notes for every session in this document.
##NEOS, 11.15 am
Stefan Regniet from Techdivision talks about NEOS in the j.weiland room Saturday 11.15 am
actual code lives in packages
Application which is NEOS, needs some other packages like TypoScript
typo3cr typo3 content repository stores data in a node structure
2 types of nodes, document type == pages and content type of nodes and both types are in the same database table
all data is stored in the property field as an array (serialized)
on the left you have a content type structure tree
content collections hold content elements inside
typoscript in cms: configuration, navigation, many aspects
neos typoscript is only the controller for the view
drupal, wordpress, joomla use php, html mixture which is ugly
in neos a lot of yaml configuration files
typoscript connects to the fluid templates
keep the convention for the path of your typoscript configuration
you need an instance of the page to get an output on the frontend
instance of the page has to be defined somewhere so it has to have a prototype
page.ts2 defines the prototype of the page
the page is an array
you can add features to the body in the page.ts2
parts.mainMenu in fluid refers to typoscript
for a new site you define the package and the site name
inside the package there is already some folders and files for example resources
in neos multi sites are already possible
to add a content area, define it in typoscript, go to the yaml file and to the fluid template, then you get an error message: failed to render content
Menus can also have namespaces to get the fully qualified name
you always work offline in neos in your own workspace, before it goes online you have to publish
in the settings.yaml file you add content dimensions for languages and countries (not yet released, only in dev-master)
##TYPO3 community session 11.15
* \url{https://flickr.com/#/photos/t3gina/15038655010/}
* \url{https://flickr.com/#/photos/t3gina/15038571509/}
* \url{https://flickr.com/#/photos/t3gina/15224985572/}
* \url{https://flickr.com/#/photos/t3gina/15224992152/}
##Motivation Session 11.15
v
\url{http://en.m.wikipedia.org/wiki/Drive:\_The\_Surprising\_Truth\_About\_What\_Motivates\_Us}
\url{http://m.youtube.com/watch?v=u6XAPnuFjJc}
##40 Reasons to migrate to TYPO3 CMS 6.2
\url{https://notes.typo3.org/p/40ReasonsToMigrateTo62}
##Killer Features of PHPStorm
14.00 room jochenweylandt by Andras, www.marit.ag
Reformat Code: code was hard to read with different tools, difficult to discover the real code changes in the commits
plugins.jetbrains.com/plugin/7463
Install by plugins / restart
Clipboard ctrl+shift+V, hit a number 1-5, you can use then different clipboards to insert, cmd+Shift+v on Mac
pasting changes the order in the stack: most recent goes up
autocompletion: checks the annotations
also for typoscript and for fluid
Typoscript-Plugin for PHPStorm from sgalinski.de \url{http://www.sgalinski.de/open-source.html}
\url{http://buzz.typo3.org/teams/extbase/article/howto-autocompletion-for-fluid-in-phpstorm/}
Live Templates make coding much more easier: example for foreach, you can define where to jump afer one setting has been made
class navigation: people complain how to come back use: crtl+alt+ arrow left or right
it also save the last position of your cursor
for windows built in terminal solution
Search / replace in a directory, is also possible
always easily possible to resize windows
quick definition: shows up in a popup, without searching and navigating
Search for "everything": ctrl+shift+a / cmd+shift+a
Cheat sheet
Keymapper can also easiliy be changed
\url{http://www.jetbrains.com/phpstorm/documentation/PhpStorm\_ReferenceCard.pdf}
##TYPO3 Deployment
* Local development via vagrant / VirtualBox
* Deployment by a Jenkins (former Hudson) server
* Deployment to Integration Server -> Testing Server -> Production Server
* htdocs folder is completely in versioning system
* live DB credentials and other secret stuff is located on live server and replaces the values in the LocalConfiguration
* every release has its own folder on the machine
* the release will be sym-linked if the whole deployment process succeed
* if there are core patches there is a separate file which will be merged into the TYPO3 sources
* fileadmin/uploads/typo3temp are sym-linked in each release
##Upgrade to TYPO3 6.2 - LTS to LTS
Support for TYPO3 4.5 ends in March 2015
Customers love LTS, most projects still on 4.5
\url{http://typo3.org/download/release-notes/whats-new/} -> 550 pages of changes
Preparing the Upgrade:
Never ever on live site!
Use a copy of the live site!
Make sure you have a backup!
Two ways:
Clean-up installation, then make a copy -> faster, but changes in live site
or
make a copy, then clean-up installation -> safer, but slower
Create a copy: complete copy of all files, copy of the database
Duplicate the Database: mysqldump --opt -u username1 -ppassword1 olddatabase | mysql -u username2 -ppassword2 newdatabase
Important parameter: --opt !!
If the old database is not utf-8, it have to be converted in utf-8 before the dump.
\url{http://ci.kay-strobach.de:8008/typo3/utf-8/tree/master}
Clean up installation:
remove local, uninstalled extensions (delete from server)
remove installed, but unused extensions
Are there obsolete Extensions? (e.g. ics\_awstats -> doesn't work in 6.2)
Run database analyzer in install tool, update required tables, remove unused tables/fields
Update extensions for 4.5 (last versions compatible with 4.5)
Beware of the PHP-Versions: the live site (Extensions) may need PHP 5.2.x, but the new version of an extension may need PHP 5.3.x or 5.4.x
Some Extensions have an update Script, e.g. tt\_news 2.x to 3.x
Activate the Deprecation Log (Install tool, [SYS][enableDeprecationLog] = file
(enabled by default -> may cause very large files! Deactivate it on a live system)
[SYS][displayErrors] = 1 -> you'll see an PHP error message instead of a white page ;)
Check \& Update the reference index -> better with shell command (PHP max\_execution\_time could be a problem when updating in the browser)
smoothmigration extension (available in TER)
analyze installed extensions, reports issues
In some old extensions it is sufficient to remove some require\_once calls to make them compatible with 6.2
After clean up, it's time to switch to the new TYPO3 core -> Update symlink (update index.php in DOC\_ROOT, if symlinks to files are not allowed)
Install tool:
Fix file and folder permissions (one click)
Upgrade Wizard checks for broken extensions
Go through the upgrade wizard
Compare database
Clear all cache
Update remaining extensions to newest version
Newest version not available in TER? Try Git!
* \url{http://git.typo3.org}
* e.g Extension rlmp\_tmplselector: \url{http://github.com/jweiland-net/rlmp\_tmplselector}
*
DAM to FAL migration
New system extension filemetadata (not installed by default!) -> install it before the dam-fal-migration!, extends the database table sys\_filemetadata
Extension DAM to FAL Migration \url{https://github.com/fnagel/t3ext-dam\_falmigration} -> see the Readme.md at Github!
Update the language packs (seperate backend module in 6.2)
Changes in Extbase (new property mapper, recursive validation)
It may be necessary to recreate scheduler tasks
\url{http://jweiland.net/t3dd14}
Direct upgrade from 4.5 to 6.2 is possible, you should do it this way!
Older versions (4.4,4.3,...) can not be upgraded directly to 6.2! You have to upgrade to 4.5 first!
Extension: additional\_reports \url{http://typo3.org/extensions/repository/view/additional\_reports}
* Shows you, which extensions are really used in your project
* New reports in the reports backend module
##TYPO3 Contribution
EVERYBODY can contribute!
Today's focus: development
Area "Contribute" on typo3.org: typo3.org/contribute
Portal for developer based contribution on forge.typo3.org. There e.g. an issue list can be found (features, tasks, bugs,...), including status information for each issue. Also new issues can be created there, please provide a speaking subject and good description for each issue you create, so that others can understand what you mean.
Not only for the core but also for community extensions like news. There you also see the respective team member list.
If you want to report a bug, before creating a new issue please first check if this bug has already been reported. For that reason it's really important to give each issue an easy understandable subject.
If you want to patch a bug by yourself, you can either attach the patch or diff to the issue, or better: use gerrit: review.typo3.org
There a direct links from a change/commit in gerrit to the related issue on forge.
Everyone who has an account, can test and review and give a +1 (if it works) or -1 (i
##ForgetIT
15.00 room sitegeist by Olivier Dobberklau
Eu project
computers should also be allowed to forget
a way of learning languages is to repeat it for human beings
2 major types of memories, episodic memory, to memory events
semantic memory: i dont remember the name of an actor but i know the films where he was playing
working memory: sensory input is transformed in a knowledge base
compare it with how the computer memory works
the brain forgets without context
with learning and repeating the forgetting is slowed down and stopped
what kind of content in typo3 we want to keep and what we would like to forget
semantic web look at the essence of the document
how search engines work:
popular word count
metainformation
page rank
computer just see blocks on the website, semantic web, also the computers know whats on the website
semantic web: entity value
concept of triples: subject predicate object arctic skua is a type of bird all are defined by URIs
later ontologies by hierarchies, relations and providing a general structure
ensure interdisciplinary understanding
semantic search create specific and precise queries
have the meaning of the intended information
receive cumulative results from different sources
image search through concept detection
computer should forget personal data, example because of crimes or penalties which happened long ago
target of forgetIT to work with your data
Typo3 as a PoF Adapter (preserve or forget)
CMIS repository
Archival Information System (OASIS)
Storlet engine: computation in storage
preservation planning
##Routing 16.00 room sitegeist
better examples for routing than by realurl in typo3 cms exist in Symfony or typo3.flow.git
parseUrl \& http\_built\_query php Funktionen
symfony routing vermutlich einfacher in typo3 cms zu integrieren als flow routing
##MASK sunday 11.15 room jochen weiland by Gernot Ploiner
Typo3 Seiten und Inhaltsmasken
Gernot Ploiner from Krems in Austria
use tt\_content pages and IRRE technology
repeating content is possible (eg for slider)
generates basic fluid templates on creation
use typo3 standards
extbase extension
offers a wizard that generates the content fields
no php knowledge is required
configuration is stored in text files for versioning
multilanguage and workspaces work out of the box
compatible with other extensions gridelements, l10mgr
Mask Backend Module is not ready now
first you create a backendlayout
Description and short title for the content wizard
you can add fields use existing or create new field
works with drag and drop
field keys name and date you have to remember
new fields with prefix tx\_mask
you can access the fields with typoscript
all configuration is stored in one file mask.json
registration of the content element is done in a tsconfig file
you have to include the extension typoscript
you dont have to use CSS styled content
the release was planned for october but they will be late so the extension will be published at the end of the year
problem is that the sql is put in the ext\_tables.sql, so if the extension is updated, the sql definitions get lost
##
##Session prototyping for Responsive 11.15 Sunday
Software
-clickdummies
-marvel
-
##CDN
Sunday, 1500 ct ;-) by Ingo Schmitt
Warum CDN
bestimmte Ansätze für CDN in Typo3
typo3.org, sehr viele Dateien werden übertragen
from punkt.de over a lot of router to mallorca which is slow for a file
how you know where is the closest server, by resolving the dns of the local client
server is not specialised to distribute data this a cdn can do quicker
performance increases by a cdn a lot
how i get my data to a cdn?
to get my data there is a caching proceeding
works like a huge proxy
first request is slower but then the files are stored on a distribution server next to the client
there is also a push proceeding, where you actively transfer the files to the distribution cdn server
which file can change although the filename stays the same
for example style sheets
proxy stores the file in between
should not deliver old files for example old css or javascript
but stylesheets are delivered with timestamps so they will be recognised as new files after a change
if i refer in stylesheets on icons or pictures i have a problem because i cannot add timestamps to pictures
all static content i can deliver to cdn
provider for example akamai, you dont have to care a lot about it
you have to tell typo3 that instead of the fileadmin url the new url of the cdn is provided
use a condition if you are in dev or live environment, in production tx\_ja extension is used
with a search and replace use instead of fileadmin fa
c.heimwerker.de is the cdn which then delivers the files from the nearest proxy
for german company cdn with 5 or 6 proxy in Germany suitable that it is quick
built versions for css and javascripts
problem when a file has to be changed or removed quickly
delete operation automatic or manually
provider of proxy only wants the data which are requested and are allowed to be cached
proxy has to know if it is allowed to store something in a cache or not
also big files are good to be stored in cdn
you pay for the transfer and the storage you need
at amazon you can calculate your costs for the cdn
is useful for projects with more than 500 GB transfer volume
at this volume you have an relying hit ration
page speed from google evaluates the cdn in a positive way
you have to configure varnish for the cdn
for static files i dont need varnish anymore
first cdn and then varnish
varnish was included in projects within weeks
the call to the varnish goes when the typo3 cache is cleared
hook when the the page cache is cleared to inform the varnish cache for example when a tt\_news record has changed
deliver complete page by the cdn not only the static files could be an idea
push to cdn is more expensive than caching
needs 3 months until the cdn works properly and until you have understood all
if you give an editor a flag to make the page fast he will always use it
static files are important to be fast, video can be some seconds slower
Example configuration for ja\_replacer (\url{http://typo3.org/extensions/repository/view/ja\_replacer)}
tx\_ja\_replacer {
search {
1="fileadmin/
2="/fileadmin/
3="uploads/
4="/uploads/
5="/typo3temp/
6="typo3temp/
* }
* replace {
* 1="\url{http://c.heimwerker.de/fa/}
* 2="\url{http://c.heimwerker.de/fa/}
* 3="\url{http://c.heimwerker.de/up/}
* 4="\url{http://c.heimwerker.de/up/}
* 5="\url{http://c.heimwerker.de/tt/}
* 6="\url{http://c.heimwerker.de/tt/}
* }}
##Fluid Powered TYPO3
Sven Wappler
\url{https://github.com/FluidTYPO3}
\url{http://fluidtypo3.org} -> documentation
vhs = collection of viewhelpers
fluidcontent = custom content elements
\url{http://t3bootstrap.de/}
You can have the template for free. Just send me (Sven) a message, info@wappler.systems
t3 mallorca was a cheap event...