SlideShare una empresa de Scribd logo
1 de 76
Le projet Tesseract
                                   Système d’affichage universel pour
                                   TYPO3


                                   François Suter, Développeur TYPO3 senior, fsuter@cobweb.ch




T3UNIFR12 - Annecy, 25 juin 2012
présentation
      •développe avec TYPO3
        depuis 2004
      •membre du Core Team
        depuis 2008
      •dirige équipe de documentation
        depuis 2011
les acteurs
du projet
cobweb.ch
       agence web, depuis 1996

       > 8 ans expertise TYPO3

       intégrateur n°1 en Suisse Romande

       équipe expérimentée en
          consultance
          design web
          développement TYPO3 & autres

       PME, multinationales & ONG
ecodev.ch

       Services IT en Suisse


       > 6 ans d’expertise TYPO3


       7 employés
équipe tesseract
équipe tesseract
        François Suter, Cobweb
         Développeur principal
         Membre du Core Team TYPO3
équipe tesseract
        François Suter, Cobweb
         Développeur principal
         Membre du Core Team TYPO3

        Fabien Udriot, Ecodev
         Développeur
         Intégrateur TYPO3 certifié
équipe tesseract
        François Suter, Cobweb
         Développeur principal
         Membre du Core Team TYPO3

        Fabien Udriot, Ecodev
         Développeur
         Intégrateur TYPO3 certifié

        Roberto Presedo, Cobweb
         Développeur
         Intégrateur TYPO3 certifié
l’origine
le
problème
contacts       offres d’emploi
       chocolats          membres
    coursesdocuments
                    immobilier
        montres
 nouvelles
                     résultats sportifs
                livres
  pharmacies
      rendez-vous       lieux
                   magazines
     employés         communiqués
rapports
ce sont toutes
des choses
des choses
des choses


    lister
des choses


    lister
    parcourir
des choses


    lister
    parcourir
    voir les détails
des choses


    lister
    parcourir
    voir les détails
    chercher
des choses


    lister
    parcourir
    voir les détails
    chercher
    lier
chronologie
 2006:!      premières idées @ T3DD06
 2007:!      premier prototype
 2008:!      brouillon @ T3DD08
 2008-2010:!!développement et
            !épreuve du feu

 T3CON10:! publication
 2011+:!   améliorations continues
la
solution
modularité
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres        fournisseurs                          afficheurs
  D at a              Data                                      Data
  F i l te r        Provider                                  Consumer




                               re
                                qu
                                                              View




                                                         ut
                                    es




                                                     tp
                                     t




                                                    ou
                                     Controller
  D at a              Data
  F i l te r        Provider




                    ...                              output
                                     re q u e s t



Model
filtres          fournisseurs                                    afficheurs
               dataquery (SQL)
  D at a                       Data
               googlequery (Google box)                                     Data
  F i l te r                 Provider                                     Consumer
               tagpackprovider (Tag Pack)




                                        re
                                            qu
                                                                          View




                                                                     ut
                                             es




                                                                 tp
                                                 t




                                                                ou
                                                 Controller
  D at a                       Data
  F i l te r                 Provider




                            ...                                  output
                                                 re q u e s t



Model
filtres          fournisseurs                                     afficheurs
               dataquery (SQL)
  D at a                       Data                        templatedisplay (HTML)
                                                                             Data
               googlequery (Google box)
  F i l te r                 Provider                      fluiddisplay (Fluid)
                                                                           Consumer
               tagpackprovider (Tag Pack)
                                                           phpdisplay (PHP)




                                        re
                                            qu
                                                                           View




                                                                     ut
                                             es




                                                                 tp
                                                 t




                                                                ou
                                                 Controller
  D at a                       Data
  F i l te r                 Provider




                            ...                                  output
                                                 re q u e s t



Model
filtres          fournisseurs                                     afficheurs
               dataquery (SQL)
  D at a                       Data                        templatedisplay (HTML)
                                                                             Data
               googlequery (Google box)
  F i l te r                 Provider                      fluiddisplay (Fluid)
                                                                           Consumer
               tagpackprovider (Tag Pack)
                                                           phpdisplay (PHP)




                                          re
                                            qu
                                                                           View




                                                                     ut
                                               es




                                                                 tp
                                                 t




                                                                ou
                                        displaycontroller
                                                 Controller
                                        displaycontroller_advanced
  D at a                       Data
  F i l te r                 Provider




                            ...                                  output
                                                 re q u e s t



Model
filtres             fournisseurs                                     afficheurs
                  dataquery (SQL)
    D at a                        Data                        templatedisplay (HTML)
                                                                                Data
                  googlequery (Google box)
datafilter r
    F i l te                    Provider                      fluiddisplay (Fluid)
                                                                              Consumer
                  tagpackprovider (Tag Pack)
                                                              phpdisplay (PHP)




                                             re
                                               qu
                                                                              View




                                                                        ut
                                                  es




                                                                    tp
                                                    t




                                                                   ou
                                           displaycontroller
                                                    Controller
                                           displaycontroller_advanced
     D at a                       Data
     F i l te r                 Provider




                               ...                                  output
                                                    re q u e s t



Model
filtres             fournisseurs                                     afficheurs
                  dataquery (SQL)
    D at a                        Data                        templatedisplay (HTML)
                                                                                Data
                  googlequery (Google box)
datafilter r
    F i l te                    Provider                      fluiddisplay (Fluid)
                                                                              Consumer
                  tagpackprovider (Tag Pack)
                                                              phpdisplay (PHP)




                                             re
                                               qu
                                                                              View




                                                                        ut
                                                  es




                                                                    tp
                                                    t




                                                                   ou
                                           displaycontroller
                                                    Controller
                                           displaycontroller_advanced
     D at a                       Data
     F i l te r                 Provider




                               ...                                  output
                                                    re q u e s t
                      tesseract
                      expressions
Model                 overlays
                      context
études
de cas
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données




    Filtre de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données




    Filtre de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données                   Afficheur




    Filtre de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données                   Afficheur




    Filtre de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données                   Afficheur




                            Contrôleur




    Filtre de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données                   Afficheur




                            Contrôleur




    Filtre de données
Fédération Internationale de Motocyclisme
Une grande variété de données provenant de sources
externes
   Fournisseur de données                   Afficheur




                            Contrôleur




                                                Résultat
    Filtre de données
Manpower Suisse SA
Manpower Suisse SA
Manpower Suisse SA
Manpower Suisse SA
Manpower Suisse SA
Ville de Genève
Bobst Group
un petit
exemple
Le fournisseur de données
L’afficheur
Le contrôleur
Correspondance des données
Le résultat
les filtres
de données
extbase? fluid?
flow3? phoenix?
2008
fluiddisplay
à l’épreuve
du futur?
évolutions
        •améliorations continues
        •nouveaux composants
         • simpleprovider
         • mmprovider
utilisez et partagez...

         les extensions sont toutes
         disponibles dans le TER

         site officiel
         www.typo3-tesseract.com
            @TYPO3_tesseract

Más contenido relacionado

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Tesseract, T3UNIFR12

  • 1. Le projet Tesseract Système d’affichage universel pour TYPO3 François Suter, Développeur TYPO3 senior, fsuter@cobweb.ch T3UNIFR12 - Annecy, 25 juin 2012
  • 2. présentation •développe avec TYPO3 depuis 2004 •membre du Core Team depuis 2008 •dirige équipe de documentation depuis 2011
  • 4. cobweb.ch agence web, depuis 1996 > 8 ans expertise TYPO3 intégrateur n°1 en Suisse Romande équipe expérimentée en  consultance  design web  développement TYPO3 & autres PME, multinationales & ONG
  • 5. ecodev.ch Services IT en Suisse > 6 ans d’expertise TYPO3 7 employés
  • 7. équipe tesseract François Suter, Cobweb Développeur principal Membre du Core Team TYPO3
  • 8. équipe tesseract François Suter, Cobweb Développeur principal Membre du Core Team TYPO3 Fabien Udriot, Ecodev Développeur Intégrateur TYPO3 certifié
  • 9. équipe tesseract François Suter, Cobweb Développeur principal Membre du Core Team TYPO3 Fabien Udriot, Ecodev Développeur Intégrateur TYPO3 certifié Roberto Presedo, Cobweb Développeur Intégrateur TYPO3 certifié
  • 12. contacts offres d’emploi chocolats membres coursesdocuments immobilier montres nouvelles résultats sportifs livres pharmacies rendez-vous lieux magazines employés communiqués rapports
  • 15. des choses lister
  • 16. des choses lister parcourir
  • 17. des choses lister parcourir voir les détails
  • 18. des choses lister parcourir voir les détails chercher
  • 19. des choses lister parcourir voir les détails chercher lier
  • 20. chronologie 2006:! premières idées @ T3DD06 2007:! premier prototype 2008:! brouillon @ T3DD08 2008-2010:!!développement et !épreuve du feu T3CON10:! publication 2011+:! améliorations continues
  • 22.
  • 23.
  • 25. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 26. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 27. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 28. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 29. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 30. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 31. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 32. filtres fournisseurs afficheurs D at a Data Data F i l te r Provider Consumer re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 33. filtres fournisseurs afficheurs dataquery (SQL) D at a Data googlequery (Google box) Data F i l te r Provider Consumer tagpackprovider (Tag Pack) re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 34. filtres fournisseurs afficheurs dataquery (SQL) D at a Data templatedisplay (HTML) Data googlequery (Google box) F i l te r Provider fluiddisplay (Fluid) Consumer tagpackprovider (Tag Pack) phpdisplay (PHP) re qu View ut es tp t ou Controller D at a Data F i l te r Provider ... output re q u e s t Model
  • 35. filtres fournisseurs afficheurs dataquery (SQL) D at a Data templatedisplay (HTML) Data googlequery (Google box) F i l te r Provider fluiddisplay (Fluid) Consumer tagpackprovider (Tag Pack) phpdisplay (PHP) re qu View ut es tp t ou displaycontroller Controller displaycontroller_advanced D at a Data F i l te r Provider ... output re q u e s t Model
  • 36. filtres fournisseurs afficheurs dataquery (SQL) D at a Data templatedisplay (HTML) Data googlequery (Google box) datafilter r F i l te Provider fluiddisplay (Fluid) Consumer tagpackprovider (Tag Pack) phpdisplay (PHP) re qu View ut es tp t ou displaycontroller Controller displaycontroller_advanced D at a Data F i l te r Provider ... output re q u e s t Model
  • 37. filtres fournisseurs afficheurs dataquery (SQL) D at a Data templatedisplay (HTML) Data googlequery (Google box) datafilter r F i l te Provider fluiddisplay (Fluid) Consumer tagpackprovider (Tag Pack) phpdisplay (PHP) re qu View ut es tp t ou displaycontroller Controller displaycontroller_advanced D at a Data F i l te r Provider ... output re q u e s t tesseract expressions Model overlays context
  • 39. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes
  • 40. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes
  • 41. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données
  • 42. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données
  • 43. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Filtre de données
  • 44. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Filtre de données
  • 45. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Afficheur Filtre de données
  • 46. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Afficheur Filtre de données
  • 47. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Afficheur Contrôleur Filtre de données
  • 48. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Afficheur Contrôleur Filtre de données
  • 49. Fédération Internationale de Motocyclisme Une grande variété de données provenant de sources externes Fournisseur de données Afficheur Contrôleur Résultat Filtre de données
  • 58. Le fournisseur de données
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 72. 2008
  • 75. évolutions •améliorations continues •nouveaux composants • simpleprovider • mmprovider
  • 76. utilisez et partagez... les extensions sont toutes disponibles dans le TER site officiel www.typo3-tesseract.com @TYPO3_tesseract

Notas del editor

  1. DME\n
  2. \n
  3. DME\n
  4. Founded in 1996, Cobweb is a Swiss web agency in Geneva.\nWith over 6 years experience on TYPO3, we are the leading TYPO3 integrator in Western Swizerland.\n\nOur experienced team consists of 10 senior consultant, webdesigner and developer.\n\nOur clients are local Small and Medium Entreprises, Major companies like Manpower or non-profit organizations like International Federation of Red Cross and Red Crescent Societies.\n
  5. Ecodev is a Swiss IT services company based in Neuchâtel.\nEcodev has been using TYPO3 since 2006 and consists of a team 7 people.\n
  6. François is the initiator and architect of the project. He was supported by Fabien and Roberto.\nMy self, as usual for business developers, I haven't really worked on the project... but I had the pleasure to experience it on various client projects.\n
  7. François is the initiator and architect of the project. He was supported by Fabien and Roberto.\nMy self, as usual for business developers, I haven't really worked on the project... but I had the pleasure to experience it on various client projects.\n
  8. François is the initiator and architect of the project. He was supported by Fabien and Roberto.\nMy self, as usual for business developers, I haven't really worked on the project... but I had the pleasure to experience it on various client projects.\n
  9. Over the years we worked on a large number of web sites. Our experience is that - although every web site is different - there’s one particular requirement that we need to meet in most projects. So we set out to create a general solution to this recurring need.\n
  10. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  11. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  12. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  13. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  14. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  15. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  16. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  17. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  18. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  19. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  20. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  21. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  22. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  23. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  24. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  25. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  26. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  27. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  28. So what’s that requirement? It’s the need to display variously structured information on the web site. This can be...\n- contacts, locations, pieces of real estate, job offers, pharmacies, you name it\nto sum it up “stuff”\n\n
  29. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  30. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  31. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  32. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  33. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  34. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  35. Clients want to display stuff on their web site, stuff that often comes from internal systems and represent their domain of activity\nAnd what do we want to do with that stuff? Most of the time, always the same:\n- list it\n- browse it\n- view its details\n- search it\n- and create cross-links between various pieces of information\nIf you don’t have some special solution, you find yourself repeating the same developments over and over\nThe TYPO3 Extension Repository is full of extensions each dedicated to one particular type of structured information\nThis is not a solution\n
  36. In 2006 I presented my first thoughts about the need for a general solution at T3DD06.\nNothing much happened afterwards, but in late 2007 I had an opportunity to develop a first rough solution, which was presented during T3DD08\nIn 2008 several large projects gave us the opportunity to start the real development and to put the solution to test on large, high-traffic web sites.\nThe project matured all the way to the current day and we chose T3CON10 as a deadline for going public.\n
  37. So now on to the solution itself.\nWhat’s the possible solution to this conundrum? You can see it coming: a generic solution.\nBig words\nDoes that scare you? It should.\n
  38. Generic solutions...\nThat’s often how it ends up. You want to do everything and you end up with an overly complex structure which nobody understands anymore after a while.\nBut it needs not be so\nThere are clever generic solutions!\nThey rely on a simple principle: modularity\n
  39. Generic solutions...\nThat’s often how it ends up. You want to do everything and you end up with an overly complex structure which nobody understands anymore after a while.\nBut it needs not be so\nThere are clever generic solutions!\nThey rely on a simple principle: modularity\n
  40. How did we make this modularity come true?\nThis is the architecture of our solution.\nAt the center is a controller which receives a request to produce some output. It calls on something called a Data Provider which returns a set of data.\nThis data is passed to a Data Consumer to produce some output, which is returned by the controller. A typical output will be HTML to display in the TYPO3 FE.\nHow can that work?\nData Providers and Data Consumers exchange data in standardized formats. This means that there can exist any number of consumers and providers who don’t need to know anything about one another. They must be able to produce or handle the standard data formats. In effect this is an implementation of the Model-View-Controller pattern.\nOn top of that Data Providers may receive input from Data Filters that is used to restrict the data returned by the Data Provider (think browsing, filtering, searching).\n\n
  41. How did we make this modularity come true?\nThis is the architecture of our solution.\nAt the center is a controller which receives a request to produce some output. It calls on something called a Data Provider which returns a set of data.\nThis data is passed to a Data Consumer to produce some output, which is returned by the controller. A typical output will be HTML to display in the TYPO3 FE.\nHow can that work?\nData Providers and Data Consumers exchange data in standardized formats. This means that there can exist any number of consumers and providers who don’t need to know anything about one another. They must be able to produce or handle the standard data formats. In effect this is an implementation of the Model-View-Controller pattern.\nOn top of that Data Providers may receive input from Data Filters that is used to restrict the data returned by the Data Provider (think browsing, filtering, searching).\n\n
  42. How did we make this modularity come true?\nThis is the architecture of our solution.\nAt the center is a controller which receives a request to produce some output. It calls on something called a Data Provider which returns a set of data.\nThis data is passed to a Data Consumer to produce some output, which is returned by the controller. A typical output will be HTML to display in the TYPO3 FE.\nHow can that work?\nData Providers and Data Consumers exchange data in standardized formats. This means that there can exist any number of consumers and providers who don’t need to know anything about one another. They must be able to produce or handle the standard data formats. In effect this is an implementation of the Model-View-Controller pattern.\nOn top of that Data Providers may receive input from Data Filters that is used to restrict the data returned by the Data Provider (think browsing, filtering, searching).\n\n
  43. How did we make this modularity come true?\nThis is the architecture of our solution.\nAt the center is a controller which receives a request to produce some output. It calls on something called a Data Provider which returns a set of data.\nThis data is passed to a Data Consumer to produce some output, which is returned by the controller. A typical output will be HTML to display in the TYPO3 FE.\nHow can that work?\nData Providers and Data Consumers exchange data in standardized formats. This means that there can exist any number of consumers and providers who don’t need to know anything about one another. They must be able to produce or handle the standard data formats. In effect this is an implementation of the Model-View-Controller pattern.\nOn top of that Data Providers may receive input from Data Filters that is used to restrict the data returned by the Data Provider (think browsing, filtering, searching).\n\n
  44. How did we make this modularity come true?\nThis is the architecture of our solution.\nAt the center is a controller which receives a request to produce some output. It calls on something called a Data Provider which returns a set of data.\nThis data is passed to a Data Consumer to produce some output, which is returned by the controller. A typical output will be HTML to display in the TYPO3 FE.\nHow can that work?\nData Providers and Data Consumers exchange data in standardized formats. This means that there can exist any number of consumers and providers who don’t need to know anything about one another. They must be able to produce or handle the standard data formats. In effect this is an implementation of the Model-View-Controller pattern.\nOn top of that Data Providers may receive input from Data Filters that is used to restrict the data returned by the Data Provider (think browsing, filtering, searching).\n\n
  45. How did we make this modularity come true?\nThis is the architecture of our solution.\nAt the center is a controller which receives a request to produce some output. It calls on something called a Data Provider which returns a set of data.\nThis data is passed to a Data Consumer to produce some output, which is returned by the controller. A typical output will be HTML to display in the TYPO3 FE.\nHow can that work?\nData Providers and Data Consumers exchange data in standardized formats. This means that there can exist any number of consumers and providers who don’t need to know anything about one another. They must be able to produce or handle the standard data formats. In effect this is an implementation of the Model-View-Controller pattern.\nOn top of that Data Providers may receive input from Data Filters that is used to restrict the data returned by the Data Provider (think browsing, filtering, searching).\n\n
  46. The modularity translates into a number of extensions, each with its own specialization.\nData Providers: dataquery (SQL-based), googlequery (Google Search Appliance or Google Mini), tagpackprovider (Tag Pack)\nData Consumers: templatedisplay (HTML templates), phpdisplay (straight templating in PHP)\nControllers: displaycontroller and displaycontroller_advanced which allows for more complicated interactions between the components\nData Filters: only datafilter, but it’s very powerful and we’ll come back to that later\nAdditionally there are a number of related extensions: tesseract (which is obviously a base extension), expressions (used by datafilter, more later), overlays (used by dataquery to transparently handle translations) and context (used to define some global values in TypoScript which can be picked up with datafilter - this is a more advanced concept of Tesseract, which I will not cover here)\n\n
  47. The modularity translates into a number of extensions, each with its own specialization.\nData Providers: dataquery (SQL-based), googlequery (Google Search Appliance or Google Mini), tagpackprovider (Tag Pack)\nData Consumers: templatedisplay (HTML templates), phpdisplay (straight templating in PHP)\nControllers: displaycontroller and displaycontroller_advanced which allows for more complicated interactions between the components\nData Filters: only datafilter, but it’s very powerful and we’ll come back to that later\nAdditionally there are a number of related extensions: tesseract (which is obviously a base extension), expressions (used by datafilter, more later), overlays (used by dataquery to transparently handle translations) and context (used to define some global values in TypoScript which can be picked up with datafilter - this is a more advanced concept of Tesseract, which I will not cover here)\n\n
  48. The modularity translates into a number of extensions, each with its own specialization.\nData Providers: dataquery (SQL-based), googlequery (Google Search Appliance or Google Mini), tagpackprovider (Tag Pack)\nData Consumers: templatedisplay (HTML templates), phpdisplay (straight templating in PHP)\nControllers: displaycontroller and displaycontroller_advanced which allows for more complicated interactions between the components\nData Filters: only datafilter, but it’s very powerful and we’ll come back to that later\nAdditionally there are a number of related extensions: tesseract (which is obviously a base extension), expressions (used by datafilter, more later), overlays (used by dataquery to transparently handle translations) and context (used to define some global values in TypoScript which can be picked up with datafilter - this is a more advanced concept of Tesseract, which I will not cover here)\n\n
  49. The modularity translates into a number of extensions, each with its own specialization.\nData Providers: dataquery (SQL-based), googlequery (Google Search Appliance or Google Mini), tagpackprovider (Tag Pack)\nData Consumers: templatedisplay (HTML templates), phpdisplay (straight templating in PHP)\nControllers: displaycontroller and displaycontroller_advanced which allows for more complicated interactions between the components\nData Filters: only datafilter, but it’s very powerful and we’ll come back to that later\nAdditionally there are a number of related extensions: tesseract (which is obviously a base extension), expressions (used by datafilter, more later), overlays (used by dataquery to transparently handle translations) and context (used to define some global values in TypoScript which can be picked up with datafilter - this is a more advanced concept of Tesseract, which I will not cover here)\n\n
  50. The modularity translates into a number of extensions, each with its own specialization.\nData Providers: dataquery (SQL-based), googlequery (Google Search Appliance or Google Mini), tagpackprovider (Tag Pack)\nData Consumers: templatedisplay (HTML templates), phpdisplay (straight templating in PHP)\nControllers: displaycontroller and displaycontroller_advanced which allows for more complicated interactions between the components\nData Filters: only datafilter, but it’s very powerful and we’ll come back to that later\nAdditionally there are a number of related extensions: tesseract (which is obviously a base extension), expressions (used by datafilter, more later), overlays (used by dataquery to transparently handle translations) and context (used to define some global values in TypoScript which can be picked up with datafilter - this is a more advanced concept of Tesseract, which I will not cover here)\n\n
  51. How does that translate into real projects? Tesseract is not some conceptual piece of code. It has been powering large web sites for about two years.\nLet’s look at a couple of them to better understand how the Tesseract components are called into action.\n\n\n
  52. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  53. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  54. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  55. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  56. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  57. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  58. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  59. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  60. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  61. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  62. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  63. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  64. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  65. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  66. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  67. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  68. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  69. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  70. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  71. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  72. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  73. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  74. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  75. The International Motorcycle Federation represent a very typical case. The client has a vast quantity of data in external systems: everything related to races (pilots, manufacturers, championships, results, etc.) in a proprietary database and official documents managed with Alfresco. All this data is imported into TYPO3.\nThanks to Tesseract no specific extension needed to be developed to display this data.\nThe workhorse here is Data Query. We use SQL to query any of the imported tables.\nHere’s an example query, aimed at retrieving a list of races.\nThis query is not executed as is. A Data Filter is applied to it, restricting the selection of races to one particular championship and one particular season.\nOn the other hand is the template. We use templatedisplay to use a HTML template, complete markers mapped to database fields and TypoScript configuration for finer rendering.\nFinally everything is bound together by a Display Controller.\nWhen the Data Query has executed its query, the resulting data set is passed to the Template Display component, which produces output, which is in turn sent to the FE by the Display Controller.\nYou can see how this matches the schema presented before, but this time with real-world components applied to a real-world web site.\n\n\n
  76. A second example of real-life, large web site using Tesseract is Manpower Switzerland.\nHere again we have data coming from third-party system, namely job offers pushed to TYPO3 by a specialized job offers and applications management system.\nThis project relies on a Google Mini Server for searching, but we needed to bind search results with Tesseract to display customized lists of job offers.\nThe overall schema is the same as before, so I’ll mention what is really specific here.\nOne interesting point is that we created special pages using Tesseract that contain the job offer itself plus a number of information relating to it (in particular its primary key) as meta data. Using this information, Google Mini is able to perform a full-text search, but return the corresponding jobs primary keys.\nThe querying itself is performed using the “googlequery” extension which queries the Google server and returns the resulting data according to the Tesseract standards.\nHere are some screenshots of “googlequery”, first is some general information, in the second tab comes the selection of information that we want to retrieve. This information will be available for mapping into the HTML template the same way that we saw in the previous example.\n
  77. A second example of real-life, large web site using Tesseract is Manpower Switzerland.\nHere again we have data coming from third-party system, namely job offers pushed to TYPO3 by a specialized job offers and applications management system.\nThis project relies on a Google Mini Server for searching, but we needed to bind search results with Tesseract to display customized lists of job offers.\nThe overall schema is the same as before, so I’ll mention what is really specific here.\nOne interesting point is that we created special pages using Tesseract that contain the job offer itself plus a number of information relating to it (in particular its primary key) as meta data. Using this information, Google Mini is able to perform a full-text search, but return the corresponding jobs primary keys.\nThe querying itself is performed using the “googlequery” extension which queries the Google server and returns the resulting data according to the Tesseract standards.\nHere are some screenshots of “googlequery”, first is some general information, in the second tab comes the selection of information that we want to retrieve. This information will be available for mapping into the HTML template the same way that we saw in the previous example.\n
  78. A second example of real-life, large web site using Tesseract is Manpower Switzerland.\nHere again we have data coming from third-party system, namely job offers pushed to TYPO3 by a specialized job offers and applications management system.\nThis project relies on a Google Mini Server for searching, but we needed to bind search results with Tesseract to display customized lists of job offers.\nThe overall schema is the same as before, so I’ll mention what is really specific here.\nOne interesting point is that we created special pages using Tesseract that contain the job offer itself plus a number of information relating to it (in particular its primary key) as meta data. Using this information, Google Mini is able to perform a full-text search, but return the corresponding jobs primary keys.\nThe querying itself is performed using the “googlequery” extension which queries the Google server and returns the resulting data according to the Tesseract standards.\nHere are some screenshots of “googlequery”, first is some general information, in the second tab comes the selection of information that we want to retrieve. This information will be available for mapping into the HTML template the same way that we saw in the previous example.\n
  79. A second example of real-life, large web site using Tesseract is Manpower Switzerland.\nHere again we have data coming from third-party system, namely job offers pushed to TYPO3 by a specialized job offers and applications management system.\nThis project relies on a Google Mini Server for searching, but we needed to bind search results with Tesseract to display customized lists of job offers.\nThe overall schema is the same as before, so I’ll mention what is really specific here.\nOne interesting point is that we created special pages using Tesseract that contain the job offer itself plus a number of information relating to it (in particular its primary key) as meta data. Using this information, Google Mini is able to perform a full-text search, but return the corresponding jobs primary keys.\nThe querying itself is performed using the “googlequery” extension which queries the Google server and returns the resulting data according to the Tesseract standards.\nHere are some screenshots of “googlequery”, first is some general information, in the second tab comes the selection of information that we want to retrieve. This information will be available for mapping into the HTML template the same way that we saw in the previous example.\n
  80. A second example of real-life, large web site using Tesseract is Manpower Switzerland.\nHere again we have data coming from third-party system, namely job offers pushed to TYPO3 by a specialized job offers and applications management system.\nThis project relies on a Google Mini Server for searching, but we needed to bind search results with Tesseract to display customized lists of job offers.\nThe overall schema is the same as before, so I’ll mention what is really specific here.\nOne interesting point is that we created special pages using Tesseract that contain the job offer itself plus a number of information relating to it (in particular its primary key) as meta data. Using this information, Google Mini is able to perform a full-text search, but return the corresponding jobs primary keys.\nThe querying itself is performed using the “googlequery” extension which queries the Google server and returns the resulting data according to the Tesseract standards.\nHere are some screenshots of “googlequery”, first is some general information, in the second tab comes the selection of information that we want to retrieve. This information will be available for mapping into the HTML template the same way that we saw in the previous example.\n
  81. A second example of real-life, large web site using Tesseract is Manpower Switzerland.\nHere again we have data coming from third-party system, namely job offers pushed to TYPO3 by a specialized job offers and applications management system.\nThis project relies on a Google Mini Server for searching, but we needed to bind search results with Tesseract to display customized lists of job offers.\nThe overall schema is the same as before, so I’ll mention what is really specific here.\nOne interesting point is that we created special pages using Tesseract that contain the job offer itself plus a number of information relating to it (in particular its primary key) as meta data. Using this information, Google Mini is able to perform a full-text search, but return the corresponding jobs primary keys.\nThe querying itself is performed using the “googlequery” extension which queries the Google server and returns the resulting data according to the Tesseract standards.\nHere are some screenshots of “googlequery”, first is some general information, in the second tab comes the selection of information that we want to retrieve. This information will be available for mapping into the HTML template the same way that we saw in the previous example.\n
  82. \n
  83. \n
  84. To go a step further in understanding how Tesseract works, let’s step through a simple, but more detailed example.\nImage the following scenario: you want to display a list of BE users on your web site, so that people can easily get in touch with the site’s administrators.\nThis is not possible by default in TYPO3 and you would normally have to develop a custom extension or some other workaround.\n\n
  85. This example is actually a summary of the first Tesseract tutorial, which is available on the Tesseract web site and is included in the proceeding of this conference.\nTo get a list of BE users we’re going to use “dataquery”, since it allows us to send a SQL query to the TYPO3 database.\nWe choose to select just the admin’s name, username and e-mail address.\n\n
  86. A simple HTML template is more than enough for this example (as it is - in our experience - 99% of the time).\nThe syntax is fairly simple. It relies on markers close to the usual TYPO3 syntax, plus some control elements like loops and conditions.\nWe’ll come back to this component later.\n\n\n
  87. As a controller we use an instance of extension “displaycontroller”, which acts as a FE plugin. As can be expected from a controller, it defines the relations between the various components.\nIn this case we just have a Data Provider and a Data Consumer.\nNow that these two components have been related with one another, we can go back to the Data Consumer and take the next step...\n
  88. ...which is to map the data coming from the database to the markers that we placed in the template.\nThis is easily achieved with a convenient point and click interface.\nEach marker can be matched to one field. There are different field types, which - roughly - correspond to the base content object types. Additional TypoScript can be entered for each field.\n
  89. Bingo, a list of BE users in under 5 minutes.\nThis is a very simple example of what can be achieved with Tesseract. It’s far more powerful that this, but this example highlights a typical workflow.\n
  90. I would like to dwell a bit longer on one particular component type: the Data Filter. Its flexibility is one important reason for Tesseract’s capability to handle most situations that you can throw at it.\nWe discussed before the danger that looms over all generic solutions: as they try to cover all situations they grow ever more complex until they become unwieldy and unmaintainable.\nOne way we avoided this pitfall in Tesseract is to exclude some features from it: one such feature is search forms.\nIt comes at a little additional efforts for site administrators, but let me try to convince you of this choice.\n
  91. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  92. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  93. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  94. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  95. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  96. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  97. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  98. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  99. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  100. The problem with search forms is that they are often very specific to a project. Since the data is always different, the criteria change all the time.\nAnd there are often very precise design requirements too.\nLook at this first form. That’s just simple drop-down menu to select years.\nNext form. There’s still the year selector, but a few more have been added to that.\nNext is the page browser. That’s also a form of filter. And note that we still have a year selector, but this time represented by actual pages.\nAnd then there are some really sophisticated forms, with many fields, requiring some unusual layouts\nHere’s another one to search for watches on many criteria.\nThis whole variety of search forms and filters is very difficult to achieve with a generic solution without ending up with an extremely complicated piece of software.\nThis is the reason why we chose to leave form building completely out of Tesseract.\n
  101. Instead forms can be built with any solution you choose: any of the existing form extensions, a custom-made plugin, even the standard mailform for simple cases.\nThanks to the expressions library, the Data Filter can retrieve data from many sources including any GET/POST variables, TypoScript values, FE user values, etc.\nThus it does not matter how a search form is built nor how filters or restrictions are defined. It’s possible to catch all these values using a Data Filter.\nThese values then get injected into the Data Consumer to restrict its selection.\nThis is very powerful.\n
  102. So, Tesseract, fine and dandy. But there’s extbase, fluid, flow3, phoenix and all that.\nWith all the wonders promised by recent and upcoming new technologies, you may wonder why we invested so much in the Tesseract project.\n\n
  103. First of all the actual development started back in early 2008. Back then extbase didn’t exist and neither did fluid, flow3 was not even alpha and phoenix was still only conceptual.\nSo we built a solution on an existing base, but we tried to make it as independent as possible: if you consider the whole Tesseract architecture, it’s really just the controller who are built as pibase plugins.\nThe other components are independent.\nThere could be an extbase-based controller.\n
  104. There’s already a Fluid-based Data Consumer on Forge. It’s not released yet because it depends on changes in Fluid that are not stable yet, but which enable Fluid to run outside of an Extbase context.\nBut in the very near future it will be possible to also use Fluid within Tesseract.\n
  105. What with further in the future, with Phoenix?\nThis is very hard to say for now. There are talks about trying to create generic domain models. This might render Tesseract obsolete, but we’re not there yet.\nThe modular structure of Tesseract can certainly be reproduced in the v5 and some of the logic reused.\nIn the meantime Tesseract helps solve real-world problems in a very flexible way and we’re very happy about releasing it to the community.\n
  106. \n
  107. All extensions that make up Tesseract have been released to the TER on Monday this week.\nWe have also set up a dedicated web site with a global overview of the project and some tutorials. We plan to release more tutorials in the future, as well as tips & tricks and examples of advanced usage.\nSo go and look at the web site and watch the introductory screencast. Try out Tesseract and give us your feedback. We hope you will find it as useful as we do.\n