SlideShare a Scribd company logo
1 of 10
Download to read offline
Current situation                  Monilith architecture demands that any
                                   deviation in content or logic results in a fork of
                                                                                          As a result a libraries except Copenhagen has
                                                                                          forked the ding.TING code requirering high
                                                                                                                                          Thick, complete basetheme never designer for
                                                                                                                                          subtheming requires every instance to override
                                   the complete ding.TING code repository.                maintenance and high(er) barrier to sharing     and maintain a complete theme, resulting in
                                                                                          patches and features.                           high maintenance costs.


                       København              Aarhus                                    Randers                             Kolding                            Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)   ding.TING         ding.TING                                ding.TING                             ding.TING
                    hovedspor         Aarhus-fork                              Randers-fork                          Kolding-fork




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Example: Drupal                 Drupal Core and Contrib modules. De nes core
                                concepts as entities, elds, RDFa integrations,
                                views, page manager, editorial tools and so
                                forth.


                    København             Aarhus                                 Randers   Kolding   Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Example: ding.TING2             De nes speci c con gurations, settings and
                                custom developed modules including all
                                integration to search.



                    København             Aarhus                             Randers   Kolding   Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Example: Content                The content layers contains ding.TING2’s
                                panels settings, and de nes logic and content.
                                                                                   Example: Should the site print a ‘Share to
                                                                                   Facebook’ button, on what content and in what
                                What content get printet, when and in what         region.
                                region, in what order to the other content.


                    København             Aarhus                                 Randers                           Kolding         Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Example: Structure              The structure layer contains ding.TING2’s
                                panels layout templates. They de ne the
                                                                                   Example: Where is the panels pane containing
                                                                                   the ‘Share to Facebook’ button printet in the
                                structure and wrapping markup for the separate     markup.
                                panels panes.


                    København             Aarhus                                 Randers                            Kolding        Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Example: Theme                  Theme layer de nes elements such as general
                                typography, spacing/layout, general branding
                                                                                    collections and so forth.

                                neutral styling and styling/ui/ixD for shared
                                features such as search, news, ting objects and


                    København             Aarhus                                  Randers                       Kolding   Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Example: Branding               Branding layer de nes elements such as logos,
                                branding colour schemes, local adaptions to
                                menus and other idiosyncrasies.



                    København             Aarhus                                Randers   Kolding   Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
The ideal                       Every layer except a thin branding layer
                                containing local logos, colours and idiosyncra-
                                                                                    In reality this is hardly attainable though.
                                                                                    Differences between multi-branch and
                                sies are shared unforked among all partner          single-branch partners will in probability result
                                libraries.                                          in fragmentation of codebase.


                    København              Aarhus                                 Randers                               Kolding         Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Realistic model                 Maintaining two separate content and structure
                                layers - one for multibranch libraries and one for
                                                                                       make long term collaboration and code sharing
                                                                                       possible.
                                (mainly) single branch libraries - should protect
                                against further, unplanned fragmentation and


                    København              Aarhus                                    Randers                            Kolding        Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)
Possible model                  A multilayer model still includes the freedom for
                                individual partners to fork a speci c layer and
                                                                                      In this example one partner has created it’s own
                                                                                      base theme and another partner has created it’s
                                still use the rest of the stack unchanged.            own panels layouts, while still building on
                                                                                      shared components in other layers.


                    København              Aarhus                                   Randers                             Kolding          Vejle


Brand layer
(subtheme)




Theme layer
(basetheme)




Structure layer
(panels layouts)




Content layer
(panels settings)




ding.TING 2
(custom modules,
con g)




Drupal
(core + contrib)

More Related Content

Similar to Layered architecture for Ding2 [proposal]

Keep Calm and Specialize your Content Model
Keep Calm and Specialize your Content ModelKeep Calm and Specialize your Content Model
Keep Calm and Specialize your Content Modelctnitchie
 
What “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information ModelincWhat “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information ModelincDon Day
 
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...Adelle Frank
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Anne Tomasevich
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011Kristof Van Tomme
 
DITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel PublishingDITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel PublishingBruce Conway
 
Drupal 8: frontend development
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend developmentsparkfabrik
 
Drupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentDrupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentsparkfabrik
 
Creating a Component Library
Creating a Component LibraryCreating a Component Library
Creating a Component Librarynathanacurtis
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For TechiesRobert Carr
 
Web Content Management Systems From A Designer's Perspective (Drupal Technica...
Web Content Management Systems From A Designer's Perspective (Drupal Technica...Web Content Management Systems From A Designer's Perspective (Drupal Technica...
Web Content Management Systems From A Designer's Perspective (Drupal Technica...Chris Charlton
 
Twig in the wild august 2018 drupal govcon draft
Twig in the wild   august 2018 drupal govcon draftTwig in the wild   august 2018 drupal govcon draft
Twig in the wild august 2018 drupal govcon draftJeremyKoulish
 
Under the covers of Drupal Commons - the "Instant Community" distribution
Under the covers of Drupal Commons - the "Instant Community" distributionUnder the covers of Drupal Commons - the "Instant Community" distribution
Under the covers of Drupal Commons - the "Instant Community" distributionAcquia
 
Creating and Theming Custom Content Types
Creating and Theming Custom Content TypesCreating and Theming Custom Content Types
Creating and Theming Custom Content Typesheatherrumd
 
Why DITA?
Why DITA?Why DITA?
Why DITA?akashjd
 
Creating and Theming Custom Content Types
Creating and Theming Custom Content TypesCreating and Theming Custom Content Types
Creating and Theming Custom Content Typesheatherrumd
 
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015Andrey Vykhodtsev
 
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScriptLotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScriptBill Buchan
 

Similar to Layered architecture for Ding2 [proposal] (20)

Keep Calm and Specialize your Content Model
Keep Calm and Specialize your Content ModelKeep Calm and Specialize your Content Model
Keep Calm and Specialize your Content Model
 
What “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information ModelincWhat “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information Modelinc
 
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011
 
Advanced Layout Techniques @ CMSExpo
Advanced Layout Techniques @ CMSExpoAdvanced Layout Techniques @ CMSExpo
Advanced Layout Techniques @ CMSExpo
 
DITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel PublishingDITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel Publishing
 
Drupal 8: frontend development
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend development
 
Drupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentDrupal 8 - Corso frontend development
Drupal 8 - Corso frontend development
 
Creating a Component Library
Creating a Component LibraryCreating a Component Library
Creating a Component Library
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
 
Web Content Management Systems From A Designer's Perspective (Drupal Technica...
Web Content Management Systems From A Designer's Perspective (Drupal Technica...Web Content Management Systems From A Designer's Perspective (Drupal Technica...
Web Content Management Systems From A Designer's Perspective (Drupal Technica...
 
Twig in the wild august 2018 drupal govcon draft
Twig in the wild   august 2018 drupal govcon draftTwig in the wild   august 2018 drupal govcon draft
Twig in the wild august 2018 drupal govcon draft
 
Under the covers of Drupal Commons - the "Instant Community" distribution
Under the covers of Drupal Commons - the "Instant Community" distributionUnder the covers of Drupal Commons - the "Instant Community" distribution
Under the covers of Drupal Commons - the "Instant Community" distribution
 
Creating and Theming Custom Content Types
Creating and Theming Custom Content TypesCreating and Theming Custom Content Types
Creating and Theming Custom Content Types
 
Why DITA?
Why DITA?Why DITA?
Why DITA?
 
Creating and Theming Custom Content Types
Creating and Theming Custom Content TypesCreating and Theming Custom Content Types
Creating and Theming Custom Content Types
 
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
 
MongoDB is the MashupDB
MongoDB is the MashupDBMongoDB is the MashupDB
MongoDB is the MashupDB
 
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScriptLotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Layered architecture for Ding2 [proposal]

  • 1. Current situation Monilith architecture demands that any deviation in content or logic results in a fork of As a result a libraries except Copenhagen has forked the ding.TING code requirering high Thick, complete basetheme never designer for subtheming requires every instance to override the complete ding.TING code repository. maintenance and high(er) barrier to sharing and maintain a complete theme, resulting in patches and features. high maintenance costs. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING ding.TING ding.TING ding.TING hovedspor Aarhus-fork Randers-fork Kolding-fork ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 2. Example: Drupal Drupal Core and Contrib modules. De nes core concepts as entities, elds, RDFa integrations, views, page manager, editorial tools and so forth. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 3. Example: ding.TING2 De nes speci c con gurations, settings and custom developed modules including all integration to search. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 4. Example: Content The content layers contains ding.TING2’s panels settings, and de nes logic and content. Example: Should the site print a ‘Share to Facebook’ button, on what content and in what What content get printet, when and in what region. region, in what order to the other content. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 5. Example: Structure The structure layer contains ding.TING2’s panels layout templates. They de ne the Example: Where is the panels pane containing the ‘Share to Facebook’ button printet in the structure and wrapping markup for the separate markup. panels panes. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 6. Example: Theme Theme layer de nes elements such as general typography, spacing/layout, general branding collections and so forth. neutral styling and styling/ui/ixD for shared features such as search, news, ting objects and København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 7. Example: Branding Branding layer de nes elements such as logos, branding colour schemes, local adaptions to menus and other idiosyncrasies. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 8. The ideal Every layer except a thin branding layer containing local logos, colours and idiosyncra- In reality this is hardly attainable though. Differences between multi-branch and sies are shared unforked among all partner single-branch partners will in probability result libraries. in fragmentation of codebase. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 9. Realistic model Maintaining two separate content and structure layers - one for multibranch libraries and one for make long term collaboration and code sharing possible. (mainly) single branch libraries - should protect against further, unplanned fragmentation and København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)
  • 10. Possible model A multilayer model still includes the freedom for individual partners to fork a speci c layer and In this example one partner has created it’s own base theme and another partner has created it’s still use the rest of the stack unchanged. own panels layouts, while still building on shared components in other layers. København Aarhus Randers Kolding Vejle Brand layer (subtheme) Theme layer (basetheme) Structure layer (panels layouts) Content layer (panels settings) ding.TING 2 (custom modules, con g) Drupal (core + contrib)