SlideShare a Scribd company logo
1 of 22
Download to read offline
Content Repository,
Versioning and Workspaces
     in TYPO3 Phoenix
   Karsten Dambekalns <karsten@typo3.org>




                                     Inspiring people to
                                    share
History 101
 back in 2006 we looked for a storage solution
 we found JCR, back then in the form of JSR-170
 started to use and port it
 adopted JSR-283 along the way




                                            Inspiring people to
                                            share
Java vs. PHP
 Name clashes

 •   clone, and

 Method signatures

 •   optional parameters

 •   different parameter order

 too many objects




                                 Inspiring people to
                                 share
History 101
 transparent object persistence on top of TYPO3CR

                                 TYPO3

                          FLOW3 Persistence

                      TYPO3 Content Repository
                      PDO                            ...
             SQLite         PgSQL       MySQL                     ...

                                            Inspiring people to
                                            share
History 101
 wanted to move TYPO3CR on top of FLOW3

                               TYPO3

                        FLOW3 Persistence

                     TYPO3 Content Repository
                     PDO                           ...
            SQLite         PgSQL     MySQL                      ...

                                          Inspiring people to
                                          share
History 101
 wanted to move TYPO3CR on top of FLOW3

                               TYPO3

                     TYPO3 Content Repository

                        FLOW3 Persistence
                     PDO                           ...
            SQLite         PgSQL     MySQL                      ...

                                          Inspiring people to
                                          share
History 101
 we decided to not use TYPO3CR anymore at all
 now we use it again after starting from scratch


 http://bit.ly/froscamp2010




                                      Inspiring people to
                                      share
What do we need?
 website content

 •   (sort of) unstructured

 •   dependent on use case

 •   little logic
 domain models

 •   for complex business logic
 display both on a website


                                  Inspiring people to
                                  share
TYPO3CR today
 inspired by—but not bound to—JCR and Sling
 not implementing any specification
 has what we need for TYPO3
 leaves out a loft of cruft
 can combine unstructured content and domain
 models just fine
 spicy workspaces the way we like ‘em

                                        Inspiring people to
                                        share
Using nodes in TYPO3
 website content usually stored in nodes
 content types define properties of content
 Fluid templates and TypoScript define rendering
 paths are the base, context provides details




                                      Inspiring people to
                                      share
/sites/typo3.org/homepage/
typo3.org                                             /sites/typo3.org/homepage/section:main/welcometxt1

                      mul                        en              en
                      ZZ                         EN              EN

             homepage              section:main       welcometxt1

             title: Home                               content: ...


                                                 en              en
                                                 EN              EN

                                   section:side        moreinfo1

                                                       content: ...


                                                 en              en                     en
                                                 EN              EN                     EN

                                         about        section:main            abouttxt1
                                                                                                /sites/typo3.org/homepage/about/section:main/twocolumn1/section:left/lefttxt1
                                   title: About                               content: ...


                                                                                        en                     en                        en
                                                                                        EN                     EN                        EN

                                                                             twocolumn1              section:left             lefttxt1

                                                                            content: void                                    content: ...


                                                                                                               en                        en
                                                                                                               EN                        EN

                                                                                                    section:right             righttxt1

                                                                                                                             content: ...


                                                                                                               de                        de
                                                                                                               DE                        DE

                                                                                                    section:right             righttxt1

                                                                                                                             content: ...
                                                                 en                     en
                                                                 EN                     EN

                                                      section:side            moreinfo2

                                                                              content: ...
                                                                                                                           Inspiring people to
                                                                                                                           share
                                                 de              de                     de
en               en
                                                         EN               EN

                                               section:right    righttxt1

                                                                content: ...


                                                         de               de
                                                         DE               DE

                                               section:right    righttxt1

                                                               content: ...
                           en             en
                           EN             EN

                 section:side   moreinfo2

                                content: ...


            de             de             de
            ZZ             ZZ             DE

  spenden        section:main   spendentxt1

title: Spenden                  content: ...


                                          de
                                          CH

                                spendentxt2

                                content: ...


                           de             de
                           ZZ             DE

                 section:side   mehrinfo1

                                content: ...
            es
            ES

   donar

title: Donar


            en
            EN

   donate

title: Donate                                                  Inspiring people to
                                                               share
Workspaces
 built into TYPO3 right away
 shine through with copy-on-write




                                    Inspiring people to
                                    share
typo3.org

                     mul
                     ZZ

            homepage

            title: Home


                                      en
                                      EN

                              about

                           title: About



                                      de
                                      ZZ

                             spenden

                           title: Spenden




            “live”

                                            Inspiring people to
                                            share
typo3.org                                   typo3.org

                     mul                                            mul
                     ZZ                                             ZZ

            homepage                                       homepage

            title: Home                                    title: Home


                                      en                                                  en
                                      EN                                                  EN

                              about                                               about

                           title: About                                        title: About



                                      de                                                  de
                                      ZZ                                                  ZZ

                             spenden                                             spenden

                           title: Spenden                                      title: Spenden




            “live”                                      “user-liga”

                                                                          Inspiring people to
                                                                          share
typo3.org                                   typo3.org

                     mul                                            mul
                     ZZ                                             ZZ

            homepage                                       homepage

            title: Home                                    title: Home


                                      en                                                  en
                                      EN                                                  EN

                              about                                               about

                           title: About                                        title: About



                                      de                                                  de
                                                                                          lv
                                      ZZ                                                  ZZ
                                                                                          LV

                             spenden                                             spenden
                                                                                  ziedot

                           title: Spenden                                      title: Spenden
                                                                                title: Ziedot




            “live”                                      “user-liga”

                                                                          Inspiring people to
                                                                          share
Workspaces
 can be nested at will
 no editing in live
 every user has a personal workspace




                                 Inspiring people to
                                 share
Versioning
 currently in planning phase
 will be a FLOW3 persistence feature
 TYPO3 user interface will expose the
 underlying data




                                        Inspiring people to
                                        share
Inspiring people to
share
Questions!

        Inspiring people to
        share
Thank you!
Follow me on twitter
twitter.com/k_fish
                       Inspiring people to
                       share
Content Repository, Versioning and Workspaces in TYPO3 Phoenix

More Related Content

Viewers also liked

Label fail pd_p
Label fail pd_pLabel fail pd_p
Label fail pd_pJazli Joe
 
P6.C Explaining Refraction
P6.C Explaining RefractionP6.C Explaining Refraction
P6.C Explaining Refractionpaulbhill
 
AUD Review issue 7_Extract
AUD Review issue 7_ExtractAUD Review issue 7_Extract
AUD Review issue 7_ExtractKevin Martin
 
Rc064 010d Core Html 1
Rc064 010d Core Html 1Rc064 010d Core Html 1
Rc064 010d Core Html 1troopergreen
 
A Content Repository for TYPO3 5.0
A Content Repository for TYPO3 5.0A Content Repository for TYPO3 5.0
A Content Repository for TYPO3 5.0Karsten Dambekalns
 
Sept 19 jobseekers 1
Sept 19 jobseekers 1Sept 19 jobseekers 1
Sept 19 jobseekers 1Hack the Hood
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPKarsten Dambekalns
 
4.1 My Works About Test & Launch
4.1 My Works About Test  &  Launch4.1 My Works About Test  &  Launch
4.1 My Works About Test & LaunchRuby Kuo
 
Ataque Al Corazon
Ataque Al CorazonAtaque Al Corazon
Ataque Al CorazonJoel Ferro
 
How to start an online business:7 stories of success
How to start an online business:7 stories of successHow to start an online business:7 stories of success
How to start an online business:7 stories of successE-Web Marketing
 
Sept 20 2012 ona show me the numbers
Sept 20 2012 ona  show me the numbersSept 20 2012 ona  show me the numbers
Sept 20 2012 ona show me the numbersHack the Hood
 
Hex Colors At A Glance
Hex Colors At A GlanceHex Colors At A Glance
Hex Colors At A GlanceDino Baskovic
 
Fotos im Internet präsentieren
Fotos im Internet präsentierenFotos im Internet präsentieren
Fotos im Internet präsentierenIvan Blatter
 
02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...
02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...
02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...Mohamed Larbi BEN YOUNES
 
How to Build a Successful API Certification Program - Integrate 2015
How to Build a Successful API Certification Program - Integrate 2015How to Build a Successful API Certification Program - Integrate 2015
How to Build a Successful API Certification Program - Integrate 2015Loke Tan
 
Do The Adverts Fool Us
Do The Adverts Fool UsDo The Adverts Fool Us
Do The Adverts Fool Usjordi
 

Viewers also liked (20)

6г клас
6г клас6г клас
6г клас
 
Getstarted Vembustoregrid V1
Getstarted Vembustoregrid V1Getstarted Vembustoregrid V1
Getstarted Vembustoregrid V1
 
Label fail pd_p
Label fail pd_pLabel fail pd_p
Label fail pd_p
 
P6.C Explaining Refraction
P6.C Explaining RefractionP6.C Explaining Refraction
P6.C Explaining Refraction
 
AUD Review issue 7_Extract
AUD Review issue 7_ExtractAUD Review issue 7_Extract
AUD Review issue 7_Extract
 
Rc064 010d Core Html 1
Rc064 010d Core Html 1Rc064 010d Core Html 1
Rc064 010d Core Html 1
 
A Content Repository for TYPO3 5.0
A Content Repository for TYPO3 5.0A Content Repository for TYPO3 5.0
A Content Repository for TYPO3 5.0
 
Princess pyrene
Princess pyrenePrincess pyrene
Princess pyrene
 
Sept 19 jobseekers 1
Sept 19 jobseekers 1Sept 19 jobseekers 1
Sept 19 jobseekers 1
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
 
4.1 My Works About Test & Launch
4.1 My Works About Test  &  Launch4.1 My Works About Test  &  Launch
4.1 My Works About Test & Launch
 
Ataque Al Corazon
Ataque Al CorazonAtaque Al Corazon
Ataque Al Corazon
 
How to start an online business:7 stories of success
How to start an online business:7 stories of successHow to start an online business:7 stories of success
How to start an online business:7 stories of success
 
Sept 20 2012 ona show me the numbers
Sept 20 2012 ona  show me the numbersSept 20 2012 ona  show me the numbers
Sept 20 2012 ona show me the numbers
 
Hex Colors At A Glance
Hex Colors At A GlanceHex Colors At A Glance
Hex Colors At A Glance
 
11!137 sou
11!137 sou11!137 sou
11!137 sou
 
Fotos im Internet präsentieren
Fotos im Internet präsentierenFotos im Internet präsentieren
Fotos im Internet präsentieren
 
02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...
02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...
02 - La Stratégie de Spécialisation Intelligente : Vecteur de Croissance des ...
 
How to Build a Successful API Certification Program - Integrate 2015
How to Build a Successful API Certification Program - Integrate 2015How to Build a Successful API Certification Program - Integrate 2015
How to Build a Successful API Certification Program - Integrate 2015
 
Do The Adverts Fool Us
Do The Adverts Fool UsDo The Adverts Fool Us
Do The Adverts Fool Us
 

More from Karsten Dambekalns

The Perfect Neos Project Setup
The Perfect Neos Project SetupThe Perfect Neos Project Setup
The Perfect Neos Project SetupKarsten Dambekalns
 
Sawubona! Content Dimensions with Neos
Sawubona! Content Dimensions with NeosSawubona! Content Dimensions with Neos
Sawubona! Content Dimensions with NeosKarsten Dambekalns
 
Deploying TYPO3 Neos websites using Surf
Deploying TYPO3 Neos websites using SurfDeploying TYPO3 Neos websites using Surf
Deploying TYPO3 Neos websites using SurfKarsten Dambekalns
 
Profiling TYPO3 Flow Applications
Profiling TYPO3 Flow ApplicationsProfiling TYPO3 Flow Applications
Profiling TYPO3 Flow ApplicationsKarsten Dambekalns
 
Using Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 FlowUsing Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 FlowKarsten Dambekalns
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productiveKarsten Dambekalns
 
How Domain-Driven Design helps you to migrate into the future
How Domain-Driven Design helps you to migrate into the futureHow Domain-Driven Design helps you to migrate into the future
How Domain-Driven Design helps you to migrate into the futureKarsten Dambekalns
 
Transparent Object Persistence (within FLOW3)
Transparent Object Persistence (within FLOW3)Transparent Object Persistence (within FLOW3)
Transparent Object Persistence (within FLOW3)Karsten Dambekalns
 
Transparent Object Persistence with FLOW3
Transparent Object Persistence with FLOW3Transparent Object Persistence with FLOW3
Transparent Object Persistence with FLOW3Karsten Dambekalns
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPKarsten Dambekalns
 
Knowledge Management in der TYPO3 Community
Knowledge Management in der TYPO3 CommunityKnowledge Management in der TYPO3 Community
Knowledge Management in der TYPO3 CommunityKarsten Dambekalns
 
Introduction to Source Code Management
Introduction to Source Code ManagementIntroduction to Source Code Management
Introduction to Source Code ManagementKarsten Dambekalns
 
It Works! Presenting DBAL use in real life
It Works! Presenting DBAL use in real lifeIt Works! Presenting DBAL use in real life
It Works! Presenting DBAL use in real lifeKarsten Dambekalns
 
DB API Usage - How to write DBAL compliant code
DB API Usage - How to write DBAL compliant codeDB API Usage - How to write DBAL compliant code
DB API Usage - How to write DBAL compliant codeKarsten Dambekalns
 

More from Karsten Dambekalns (20)

The Perfect Neos Project Setup
The Perfect Neos Project SetupThe Perfect Neos Project Setup
The Perfect Neos Project Setup
 
Sawubona! Content Dimensions with Neos
Sawubona! Content Dimensions with NeosSawubona! Content Dimensions with Neos
Sawubona! Content Dimensions with Neos
 
Deploying TYPO3 Neos websites using Surf
Deploying TYPO3 Neos websites using SurfDeploying TYPO3 Neos websites using Surf
Deploying TYPO3 Neos websites using Surf
 
Profiling TYPO3 Flow Applications
Profiling TYPO3 Flow ApplicationsProfiling TYPO3 Flow Applications
Profiling TYPO3 Flow Applications
 
Using Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 FlowUsing Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 Flow
 
i18n and L10n in TYPO3 Flow
i18n and L10n in TYPO3 Flowi18n and L10n in TYPO3 Flow
i18n and L10n in TYPO3 Flow
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
Doctrine in FLOW3
Doctrine in FLOW3Doctrine in FLOW3
Doctrine in FLOW3
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productive
 
How Domain-Driven Design helps you to migrate into the future
How Domain-Driven Design helps you to migrate into the futureHow Domain-Driven Design helps you to migrate into the future
How Domain-Driven Design helps you to migrate into the future
 
Transparent Object Persistence (within FLOW3)
Transparent Object Persistence (within FLOW3)Transparent Object Persistence (within FLOW3)
Transparent Object Persistence (within FLOW3)
 
JavaScript for PHP Developers
JavaScript for PHP DevelopersJavaScript for PHP Developers
JavaScript for PHP Developers
 
Transparent Object Persistence with FLOW3
Transparent Object Persistence with FLOW3Transparent Object Persistence with FLOW3
Transparent Object Persistence with FLOW3
 
TDD (with FLOW3)
TDD (with FLOW3)TDD (with FLOW3)
TDD (with FLOW3)
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
 
Knowledge Management in der TYPO3 Community
Knowledge Management in der TYPO3 CommunityKnowledge Management in der TYPO3 Community
Knowledge Management in der TYPO3 Community
 
Unicode & PHP6
Unicode & PHP6Unicode & PHP6
Unicode & PHP6
 
Introduction to Source Code Management
Introduction to Source Code ManagementIntroduction to Source Code Management
Introduction to Source Code Management
 
It Works! Presenting DBAL use in real life
It Works! Presenting DBAL use in real lifeIt Works! Presenting DBAL use in real life
It Works! Presenting DBAL use in real life
 
DB API Usage - How to write DBAL compliant code
DB API Usage - How to write DBAL compliant codeDB API Usage - How to write DBAL compliant code
DB API Usage - How to write DBAL compliant code
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Content Repository, Versioning and Workspaces in TYPO3 Phoenix

  • 1. Content Repository, Versioning and Workspaces in TYPO3 Phoenix Karsten Dambekalns <karsten@typo3.org> Inspiring people to share
  • 2. History 101 back in 2006 we looked for a storage solution we found JCR, back then in the form of JSR-170 started to use and port it adopted JSR-283 along the way Inspiring people to share
  • 3. Java vs. PHP Name clashes • clone, and Method signatures • optional parameters • different parameter order too many objects Inspiring people to share
  • 4. History 101 transparent object persistence on top of TYPO3CR TYPO3 FLOW3 Persistence TYPO3 Content Repository PDO ... SQLite PgSQL MySQL ... Inspiring people to share
  • 5. History 101 wanted to move TYPO3CR on top of FLOW3 TYPO3 FLOW3 Persistence TYPO3 Content Repository PDO ... SQLite PgSQL MySQL ... Inspiring people to share
  • 6. History 101 wanted to move TYPO3CR on top of FLOW3 TYPO3 TYPO3 Content Repository FLOW3 Persistence PDO ... SQLite PgSQL MySQL ... Inspiring people to share
  • 7. History 101 we decided to not use TYPO3CR anymore at all now we use it again after starting from scratch http://bit.ly/froscamp2010 Inspiring people to share
  • 8. What do we need? website content • (sort of) unstructured • dependent on use case • little logic domain models • for complex business logic display both on a website Inspiring people to share
  • 9. TYPO3CR today inspired by—but not bound to—JCR and Sling not implementing any specification has what we need for TYPO3 leaves out a loft of cruft can combine unstructured content and domain models just fine spicy workspaces the way we like ‘em Inspiring people to share
  • 10. Using nodes in TYPO3 website content usually stored in nodes content types define properties of content Fluid templates and TypoScript define rendering paths are the base, context provides details Inspiring people to share
  • 11. /sites/typo3.org/homepage/ typo3.org /sites/typo3.org/homepage/section:main/welcometxt1 mul en en ZZ EN EN homepage section:main welcometxt1 title: Home content: ... en en EN EN section:side moreinfo1 content: ... en en en EN EN EN about section:main abouttxt1 /sites/typo3.org/homepage/about/section:main/twocolumn1/section:left/lefttxt1 title: About content: ... en en en EN EN EN twocolumn1 section:left lefttxt1 content: void content: ... en en EN EN section:right righttxt1 content: ... de de DE DE section:right righttxt1 content: ... en en EN EN section:side moreinfo2 content: ... Inspiring people to share de de de
  • 12. en en EN EN section:right righttxt1 content: ... de de DE DE section:right righttxt1 content: ... en en EN EN section:side moreinfo2 content: ... de de de ZZ ZZ DE spenden section:main spendentxt1 title: Spenden content: ... de CH spendentxt2 content: ... de de ZZ DE section:side mehrinfo1 content: ... es ES donar title: Donar en EN donate title: Donate Inspiring people to share
  • 13. Workspaces built into TYPO3 right away shine through with copy-on-write Inspiring people to share
  • 14. typo3.org mul ZZ homepage title: Home en EN about title: About de ZZ spenden title: Spenden “live” Inspiring people to share
  • 15. typo3.org typo3.org mul mul ZZ ZZ homepage homepage title: Home title: Home en en EN EN about about title: About title: About de de ZZ ZZ spenden spenden title: Spenden title: Spenden “live” “user-liga” Inspiring people to share
  • 16. typo3.org typo3.org mul mul ZZ ZZ homepage homepage title: Home title: Home en en EN EN about about title: About title: About de de lv ZZ ZZ LV spenden spenden ziedot title: Spenden title: Spenden title: Ziedot “live” “user-liga” Inspiring people to share
  • 17. Workspaces can be nested at will no editing in live every user has a personal workspace Inspiring people to share
  • 18. Versioning currently in planning phase will be a FLOW3 persistence feature TYPO3 user interface will expose the underlying data Inspiring people to share
  • 20. Questions! Inspiring people to share
  • 21. Thank you! Follow me on twitter twitter.com/k_fish Inspiring people to share