Le projet Tesseract                                   Système d’affichage universel pour                                   ...
présentation      •développe avec TYPO3        depuis 2004      •membre du Core Team        depuis 2008      •dirige équip...
les acteursdu projet
cobweb.ch       agence web, depuis 1996       > 8 ans expertise TYPO3       intégrateur n°1 en Suisse Romande       équipe...
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        Fabi...
équipe tesseract        François Suter, Cobweb         Développeur principal         Membre du Core Team TYPO3        Fabi...
l’origine
leproblème
contacts       offres d’emploi       chocolats          membres    coursesdocuments                    immobilier        m...
ce sont toutesdes 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:!!...
lasolution
modularité
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres        fournisseurs                          afficheurs  D at a              Data                                   ...
filtres          fournisseurs                                    afficheurs               dataquery (SQL)  D at a           ...
filtres          fournisseurs                                     afficheurs               dataquery (SQL)  D at a          ...
filtres          fournisseurs                                     afficheurs               dataquery (SQL)  D at a          ...
filtres             fournisseurs                                     afficheurs                  dataquery (SQL)    D at a  ...
filtres             fournisseurs                                     afficheurs                  dataquery (SQL)    D at a  ...
étudesde cas
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de données
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de données
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes   Fournisseur de donné...
Manpower Suisse SA
Manpower Suisse SA
Manpower Suisse SA
Manpower Suisse SA
Manpower Suisse SA
Ville de Genève
Bobst Group
un petitexemple
Le fournisseur de données
L’afficheur
Le contrôleur
Correspondance des données
Le résultat
les filtresde données
extbase? fluid?flow3? phoenix?
2008
fluiddisplay
à l’épreuvedu futur?
évolutions        •améliorations continues        •nouveaux composants         • simpleprovider         • mmprovider
utilisez et partagez...         les extensions sont toutes         disponibles dans le TER         site officiel         ww...
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Tesseract, T3UNIFR12
Prochain SlideShare
Chargement dans…5
×

Tesseract, T3UNIFR12

745 vues

Publié le

Présentation de la suite d'extensions Tesseract, outil d'affichage générique pour TYPO3, faite à l'Université d'Eté TYPO3 France 2012.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
745
Sur SlideShare
0
Issues des intégrations
0
Intégrations
84
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • DME\n
  • \n
  • DME\n
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • \n
  • \n
  • 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
  • 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
  • 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
  • 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
  • ...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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • \n
  • 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
  • Tesseract, T3UNIFR12

    1. 1. Le projet Tesseract Système d’affichage universel pour TYPO3 François Suter, Développeur TYPO3 senior, fsuter@cobweb.chT3UNIFR12 - Annecy, 25 juin 2012
    2. 2. présentation •développe avec TYPO3 depuis 2004 •membre du Core Team depuis 2008 •dirige équipe de documentation depuis 2011
    3. 3. les acteursdu projet
    4. 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. 5. ecodev.ch Services IT en Suisse > 6 ans d’expertise TYPO3 7 employés
    6. 6. équipe tesseract
    7. 7. équipe tesseract François Suter, Cobweb Développeur principal Membre du Core Team TYPO3
    8. 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. 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é
    10. 10. l’origine
    11. 11. leproblème
    12. 12. contacts offres d’emploi chocolats membres coursesdocuments immobilier montres nouvelles résultats sportifs livres pharmacies rendez-vous lieux magazines employés communiquésrapports
    13. 13. ce sont toutesdes choses
    14. 14. des choses
    15. 15. des choses lister
    16. 16. des choses lister parcourir
    17. 17. des choses lister parcourir voir les détails
    18. 18. des choses lister parcourir voir les détails chercher
    19. 19. des choses lister parcourir voir les détails chercher lier
    20. 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
    21. 21. lasolution
    22. 22. modularité
    23. 23. 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 tModel
    24. 24. 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 tModel
    25. 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 tModel
    26. 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 tModel
    27. 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 tModel
    28. 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 tModel
    29. 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 tModel
    30. 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 tModel
    31. 31. 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 tModel
    32. 32. 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 tModel
    33. 33. 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 tModel
    34. 34. 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 tModel
    35. 35. 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 expressionsModel overlays context
    36. 36. étudesde cas
    37. 37. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes
    38. 38. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes
    39. 39. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données
    40. 40. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données
    41. 41. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Filtre de données
    42. 42. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Filtre de données
    43. 43. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Afficheur Filtre de données
    44. 44. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Afficheur Filtre de données
    45. 45. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Afficheur Contrôleur Filtre de données
    46. 46. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Afficheur Contrôleur Filtre de données
    47. 47. Fédération Internationale de MotocyclismeUne grande variété de données provenant de sourcesexternes Fournisseur de données Afficheur Contrôleur Résultat Filtre de données
    48. 48. Manpower Suisse SA
    49. 49. Manpower Suisse SA
    50. 50. Manpower Suisse SA
    51. 51. Manpower Suisse SA
    52. 52. Manpower Suisse SA
    53. 53. Ville de Genève
    54. 54. Bobst Group
    55. 55. un petitexemple
    56. 56. Le fournisseur de données
    57. 57. L’afficheur
    58. 58. Le contrôleur
    59. 59. Correspondance des données
    60. 60. Le résultat
    61. 61. les filtresde données
    62. 62. extbase? fluid?flow3? phoenix?
    63. 63. 2008
    64. 64. fluiddisplay
    65. 65. à l’épreuvedu futur?
    66. 66. évolutions •améliorations continues •nouveaux composants • simpleprovider • mmprovider
    67. 67. utilisez et partagez... les extensions sont toutes disponibles dans le TER site officiel www.typo3-tesseract.com @TYPO3_tesseract

    ×