SlideShare uma empresa Scribd logo
1 de 38
By Bryce Roberts, MS, MSPH
                                      StoneRidge Corporation
                                        Bryce@stoneridge.net




© 2013 – StoneRidge Corporation
•   Block Based Content – 3/5
                                  •   Configurable Layouts – 3/12
                                  •   In-context Editing – 3/19




          These are technical presentations on advance
          development for Cascade Server, let‟s dive in …


© 2013 – StoneRidge Corporation
Dynamic page layouts through
                                    data definitions and formats




© 2013 – StoneRidge Corporation
   Basic understanding of user-configurable
           layout compared to template layout

          General benefits of user-configurable layout

          How user-configurable layout supports block
           based content

          Limitations of user-configurable layout
           implementations

© 2013 – StoneRidge Corporation
Regions, regions, and more

                                  <system-region name=“more”/>




© 2013 – StoneRidge Corporation
   If all content is in a single WYSIWYG for the
           page, you only need one region (default
           region)

          If content is block based, you need one
           region per block included on the page
           ◦ Template creep
           ◦ Fixed layout
           ◦ Better with inline-block regions




© 2013 – StoneRidge Corporation
   Hard-coded layouts with rows, columns, and
           regions
           ◦ Maintainer‟s nightmare
           ◦ Fixed layout




       BUT, Cascade Server has an elegant solution …




© 2013 – StoneRidge Corporation
Template with Multiple Content Regions
                    Example of a page that has many content system-region for main content.
                                               This example has 15 regions for main content.



© 2013 – StoneRidge Corporation
User-Configurable Content
                                  Layouts

                                  </hassle>




© 2013 – StoneRidge Corporation
   Go back to page content as a single, giant
           WYSIWYG block
           ◦ Step backwards! – Not ideal!
           ◦ Why?


          Just add more regions
           ◦ Harder to maintain and support
           ◦ Requires more training for users
           ◦ Requires users to edit configuration sets
           …



© 2013 – StoneRidge Corporation
   Flexible layouts
           ◦ Flexible implementation
           ◦ Intuitive for most end-users
           ◦ Supports separation of layout and content
           ◦ Allows Cascade‟s agile nature to shine




© 2013 – StoneRidge Corporation
   Data definition based
           ◦ Row  Column  Block
           ◦ Can be nested
           ◦ Highly configurable

          Lego®-like building of page

          Supports grid systems!

          Supports content classing and configuration
           by users


© 2013 – StoneRidge Corporation
   Solution
           ◦ Page level flexible layouts
                Unlimited rows
                Up to two columns
                Can add style class to column
                Unlimited blocks
           ◦ Velocity based format
           ◦ Supports responsive design
           ◦ Validation (processed only know block types)
          Example – Emory Interior Page



© 2013 – StoneRidge Corporation
Flexible Layout - Data Definition
                                      Structure data multiple sections, columns, and blocks.
                                  In addition, it includes class configuration on the column.



© 2013 – StoneRidge Corporation
Flexible Layout – Velocity Format
               Format transform for into an arbitrary number of rows, with up to two columns,
                and an arbitrary number of blocks. The columns are classed for type, style and
                                                                       position automatically.



© 2013 – StoneRidge Corporation
Validation – “Wrong Block Type Selected”
               This is an example of how to alert a user about a misconfiguration on the page.
                             The alert is only visible inside Cascade Server and is not published




© 2013 – StoneRidge Corporation
How do we get here?




© 2013 – StoneRidge Corporation
   Identify types of layouts needed and
           configuration options

          Decide if page-level layouts or block-level
           layouts are needed … or both

          Identify types of blocks needed
           ◦ Examples: Set of links, WYSIWYG, Call to Action, RSS
             feed, Accordion, Tab, etc.




© 2013 – StoneRidge Corporation
       Create intuitive, supportive data definitions

            Include an non-editable auto-type fields
         ◦    Type = „layout‟

            Use consistent structures




© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
<system-data-structure>
             <text identifier="type"
                     label="Block Type"
                     restrict-to-groups="hidden"
                     default=“layout" required="true"/>
             <text identifier="title" label="Title"/>
             <group identifier=“row" label=“Row" multiple="true">
                      <group identifier=“column"
                               label=“column" multiple="true">
                              <asset type=“block" identifier=“block"
                                label=“Content Block” multiple=“true” />
                     </group>
             </group>
       </system-data-structure>




© 2013 – StoneRidge Corporation
<system-data-structure>
             <text identifier="type"
                     label="Block Type"
                     restrict-to-groups="hidden"
                     default=“layout" required="true"/>
             <text identifier="title" label="Title"/>
             <group identifier=“row" label=“Row" multiple="true">
                      <group identifier=“column"
                               label=“column" multiple="true">
                              <asset type=“block" identifier=“block"
                                label=“Content Block” multiple=“true” />
                     </group>
             </group>
       </system-data-structure>




© 2013 – StoneRidge Corporation
<system-data-structure>
             <text identifier="type"
                     label="Block Type"
                     restrict-to-groups="hidden"
                     default=“layout" required="true"/>
             <text identifier="title" label="Title"/>
             <group identifier=“row" label=“Row" multiple="true">
                      <group identifier=“column"
                               label=“column" multiple="true">
                              <asset type=“block" identifier=“block"
                                label=“Content Block” multiple=“true” />
                     </group>
             </group>
       </system-data-structure>




© 2013 – StoneRidge Corporation
   Check block type
           ◦ Notify user of errors in block type choice
           ◦ Validate both as a layout and as correct content blocks


          Formats must be designed to process multiple
           types of blocks with one format (or import if
           using XSLT)

          Output should reflect block content – Can include
           semantic identification and layout information
           ◦ If the input block is a link set, then output a link set.


© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
© 2013 – StoneRidge Corporation
   It is all about organization!
          XSLT
           ◦ Use import to keep the parts of your code separate
              Modularity
           ◦ Tools are your friend – write components!
           ◦ More verbose that Velocity
          Velocity
           ◦ Used macros
           ◦ Test often. It can and will output noncompliant XML
             value, making it harder to debug
           ◦ Terse procedural syntax – embrace the style


© 2013 – StoneRidge Corporation
Having your cake and having
                                  to eat it too




© 2013 – StoneRidge Corporation
   Page layouts are completely configurable!

          Better support for editors!

          Validation is possible!

          Like Lego® blocks, you can build almost
           anything with flexible, user-configurable
           layouts


© 2013 – StoneRidge Corporation
   More steps in the creation of a page

          Less intuitive for editing content
           ◦ Block is not on page
           ◦ Layout is separate from content


          More initial planning on site setup

          Lose Cascade‟s in-context support
           ◦ But … just wait until next week.


© 2013 – StoneRidge Corporation
I wouldn‟t be here without you




© 2013 – StoneRidge Corporation
   Emory University
           ◦ For being a great client whose challenging needs
             and great ideas drive great solutions
          Hannon Hill
           ◦ For continuing to develop and add wonderful
             features to Cascade Server
           ◦ For nurturing a wonderfully vibrant user community
          John, Kat and Holly
           ◦ For making this presentation possible and for all
             your support of the series



© 2013 – StoneRidge Corporation
Bryce Roberts, MS, MSPH

       StoneRidge Corporation
       1050 E Piedmont Rd.
       Suite E-222
       Marietta GA, 30062

       678-391-6173
       Bryce@stoneridge.net
       www.stoneridge.net


© 2013 – StoneRidge Corporation

Mais conteúdo relacionado

Semelhante a Progressive Enhancements to Improve Content Editing and Reuse in Cascade Server: Layouts (part 2 of 3)

Web personalization by Bryce Roberts
Web personalization by Bryce RobertsWeb personalization by Bryce Roberts
Web personalization by Bryce Robertshannonhill
 
GAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStackGAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStackMongoDB
 
GAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStackGAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStackMongoDB
 
Writing an extensible web testing framework ready for the cloud slide share
Writing an extensible web testing framework ready for the cloud   slide shareWriting an extensible web testing framework ready for the cloud   slide share
Writing an extensible web testing framework ready for the cloud slide shareMike Ensor
 
Digibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David WalkerDigibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David WalkerLizzie Hodgson
 
The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013Matt Raible
 
Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Thomas Carney
 
Reducing Database Pain & Costs with Postgres
Reducing Database Pain & Costs with PostgresReducing Database Pain & Costs with Postgres
Reducing Database Pain & Costs with PostgresEDB
 
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?Guido Schmutz
 
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureWebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureFrank Greco
 
IDERA Slides: Managing Complex Data Environments
IDERA Slides: Managing Complex Data EnvironmentsIDERA Slides: Managing Complex Data Environments
IDERA Slides: Managing Complex Data EnvironmentsDATAVERSITY
 
The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013Matt Raible
 
Responsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get StartedResponsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get Startedjennybchicken
 
IDERA Live | Working with Complex Data Environments
IDERA Live | Working with Complex Data EnvironmentsIDERA Live | Working with Complex Data Environments
IDERA Live | Working with Complex Data EnvironmentsIDERA Software
 
When Sightly Meets Slice by Tomasz Niedźwiedź
When Sightly Meets Slice by Tomasz NiedźwiedźWhen Sightly Meets Slice by Tomasz Niedźwiedź
When Sightly Meets Slice by Tomasz NiedźwiedźAEM HUB
 
Pricing and Revenue Projection in a Cloud-Centric World
Pricing and Revenue Projection in a Cloud-Centric WorldPricing and Revenue Projection in a Cloud-Centric World
Pricing and Revenue Projection in a Cloud-Centric WorldMichele Leroux Bustamante
 
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHow Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting Platformlucenerevolution
 

Semelhante a Progressive Enhancements to Improve Content Editing and Reuse in Cascade Server: Layouts (part 2 of 3) (20)

Web personalization by Bryce Roberts
Web personalization by Bryce RobertsWeb personalization by Bryce Roberts
Web personalization by Bryce Roberts
 
GAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStackGAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStack
 
GAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStackGAA Presents "goMongo" and HayStack
GAA Presents "goMongo" and HayStack
 
Writing an extensible web testing framework ready for the cloud slide share
Writing an extensible web testing framework ready for the cloud   slide shareWriting an extensible web testing framework ready for the cloud   slide share
Writing an extensible web testing framework ready for the cloud slide share
 
Digibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David WalkerDigibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David Walker
 
The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013
 
Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Responsivedesign 7-3-2012
Responsivedesign 7-3-2012
 
mongo db EMERSON EDUARDO RODRIGUES
mongo db EMERSON EDUARDO RODRIGUESmongo db EMERSON EDUARDO RODRIGUES
mongo db EMERSON EDUARDO RODRIGUES
 
Reducing Database Pain & Costs with Postgres
Reducing Database Pain & Costs with PostgresReducing Database Pain & Costs with Postgres
Reducing Database Pain & Costs with Postgres
 
Responsive design
Responsive designResponsive design
Responsive design
 
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
 
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureWebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the Future
 
IDERA Slides: Managing Complex Data Environments
IDERA Slides: Managing Complex Data EnvironmentsIDERA Slides: Managing Complex Data Environments
IDERA Slides: Managing Complex Data Environments
 
The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Responsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get StartedResponsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get Started
 
IDERA Live | Working with Complex Data Environments
IDERA Live | Working with Complex Data EnvironmentsIDERA Live | Working with Complex Data Environments
IDERA Live | Working with Complex Data Environments
 
When Sightly Meets Slice by Tomasz Niedźwiedź
When Sightly Meets Slice by Tomasz NiedźwiedźWhen Sightly Meets Slice by Tomasz Niedźwiedź
When Sightly Meets Slice by Tomasz Niedźwiedź
 
Pricing and Revenue Projection in a Cloud-Centric World
Pricing and Revenue Projection in a Cloud-Centric WorldPricing and Revenue Projection in a Cloud-Centric World
Pricing and Revenue Projection in a Cloud-Centric World
 
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHow Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
 

Mais de hannonhill

Cascade + Bootstrap = Awesome
Cascade + Bootstrap = AwesomeCascade + Bootstrap = Awesome
Cascade + Bootstrap = Awesomehannonhill
 
Web Governance Crash Course: Creating a Sustainable Digital Transformation
Web Governance Crash Course: Creating a Sustainable Digital TransformationWeb Governance Crash Course: Creating a Sustainable Digital Transformation
Web Governance Crash Course: Creating a Sustainable Digital Transformationhannonhill
 
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Serverhannonhill
 
Using Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page OptimizationUsing Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page Optimizationhannonhill
 
Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...hannonhill
 
Connecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade ServerConnecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade Serverhannonhill
 
Data Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JSData Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JShannonhill
 
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...hannonhill
 
Fun with Cascade Server!
Fun with Cascade Server!Fun with Cascade Server!
Fun with Cascade Server!hannonhill
 
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
Accessibility in Practice:  Integrating Web Accessibility into Cascade TrainingAccessibility in Practice:  Integrating Web Accessibility into Cascade Training
Accessibility in Practice: Integrating Web Accessibility into Cascade Traininghannonhill
 
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade ServerCrowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Serverhannonhill
 
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...hannonhill
 
Climbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground UpClimbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground Uphannonhill
 
In Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified TemplateIn Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified Templatehannonhill
 
Cusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding PlatformCusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding Platformhannonhill
 
Web Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and SimplicityWeb Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and Simplicityhannonhill
 
Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!hannonhill
 
Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Serviceshannonhill
 
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...hannonhill
 

Mais de hannonhill (20)

Cascade + Bootstrap = Awesome
Cascade + Bootstrap = AwesomeCascade + Bootstrap = Awesome
Cascade + Bootstrap = Awesome
 
Web Governance Crash Course: Creating a Sustainable Digital Transformation
Web Governance Crash Course: Creating a Sustainable Digital TransformationWeb Governance Crash Course: Creating a Sustainable Digital Transformation
Web Governance Crash Course: Creating a Sustainable Digital Transformation
 
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Server
 
Using Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page OptimizationUsing Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page Optimization
 
Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...
 
2 Men 1 Site
2 Men 1 Site2 Men 1 Site
2 Men 1 Site
 
Connecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade ServerConnecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade Server
 
Data Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JSData Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JS
 
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
 
Fun with Cascade Server!
Fun with Cascade Server!Fun with Cascade Server!
Fun with Cascade Server!
 
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
Accessibility in Practice:  Integrating Web Accessibility into Cascade TrainingAccessibility in Practice:  Integrating Web Accessibility into Cascade Training
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
 
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade ServerCrowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
 
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
 
Climbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground UpClimbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground Up
 
In Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified TemplateIn Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified Template
 
Cusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding PlatformCusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding Platform
 
Web Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and SimplicityWeb Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and Simplicity
 
Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!
 
Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Services
 
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
 

Progressive Enhancements to Improve Content Editing and Reuse in Cascade Server: Layouts (part 2 of 3)

  • 1. By Bryce Roberts, MS, MSPH StoneRidge Corporation Bryce@stoneridge.net © 2013 – StoneRidge Corporation
  • 2. Block Based Content – 3/5 • Configurable Layouts – 3/12 • In-context Editing – 3/19 These are technical presentations on advance development for Cascade Server, let‟s dive in … © 2013 – StoneRidge Corporation
  • 3. Dynamic page layouts through data definitions and formats © 2013 – StoneRidge Corporation
  • 4. Basic understanding of user-configurable layout compared to template layout  General benefits of user-configurable layout  How user-configurable layout supports block based content  Limitations of user-configurable layout implementations © 2013 – StoneRidge Corporation
  • 5. Regions, regions, and more <system-region name=“more”/> © 2013 – StoneRidge Corporation
  • 6. If all content is in a single WYSIWYG for the page, you only need one region (default region)  If content is block based, you need one region per block included on the page ◦ Template creep ◦ Fixed layout ◦ Better with inline-block regions © 2013 – StoneRidge Corporation
  • 7. Hard-coded layouts with rows, columns, and regions ◦ Maintainer‟s nightmare ◦ Fixed layout BUT, Cascade Server has an elegant solution … © 2013 – StoneRidge Corporation
  • 8. Template with Multiple Content Regions Example of a page that has many content system-region for main content. This example has 15 regions for main content. © 2013 – StoneRidge Corporation
  • 9. User-Configurable Content Layouts </hassle> © 2013 – StoneRidge Corporation
  • 10. Go back to page content as a single, giant WYSIWYG block ◦ Step backwards! – Not ideal! ◦ Why?  Just add more regions ◦ Harder to maintain and support ◦ Requires more training for users ◦ Requires users to edit configuration sets … © 2013 – StoneRidge Corporation
  • 11. Flexible layouts ◦ Flexible implementation ◦ Intuitive for most end-users ◦ Supports separation of layout and content ◦ Allows Cascade‟s agile nature to shine © 2013 – StoneRidge Corporation
  • 12. Data definition based ◦ Row  Column  Block ◦ Can be nested ◦ Highly configurable  Lego®-like building of page  Supports grid systems!  Supports content classing and configuration by users © 2013 – StoneRidge Corporation
  • 13. Solution ◦ Page level flexible layouts  Unlimited rows  Up to two columns  Can add style class to column  Unlimited blocks ◦ Velocity based format ◦ Supports responsive design ◦ Validation (processed only know block types)  Example – Emory Interior Page © 2013 – StoneRidge Corporation
  • 14. Flexible Layout - Data Definition Structure data multiple sections, columns, and blocks. In addition, it includes class configuration on the column. © 2013 – StoneRidge Corporation
  • 15. Flexible Layout – Velocity Format Format transform for into an arbitrary number of rows, with up to two columns, and an arbitrary number of blocks. The columns are classed for type, style and position automatically. © 2013 – StoneRidge Corporation
  • 16. Validation – “Wrong Block Type Selected” This is an example of how to alert a user about a misconfiguration on the page. The alert is only visible inside Cascade Server and is not published © 2013 – StoneRidge Corporation
  • 17. How do we get here? © 2013 – StoneRidge Corporation
  • 18. Identify types of layouts needed and configuration options  Decide if page-level layouts or block-level layouts are needed … or both  Identify types of blocks needed ◦ Examples: Set of links, WYSIWYG, Call to Action, RSS feed, Accordion, Tab, etc. © 2013 – StoneRidge Corporation
  • 19. Create intuitive, supportive data definitions  Include an non-editable auto-type fields ◦ Type = „layout‟  Use consistent structures © 2013 – StoneRidge Corporation
  • 20. © 2013 – StoneRidge Corporation
  • 21. <system-data-structure> <text identifier="type" label="Block Type" restrict-to-groups="hidden" default=“layout" required="true"/> <text identifier="title" label="Title"/> <group identifier=“row" label=“Row" multiple="true"> <group identifier=“column" label=“column" multiple="true"> <asset type=“block" identifier=“block" label=“Content Block” multiple=“true” /> </group> </group> </system-data-structure> © 2013 – StoneRidge Corporation
  • 22. <system-data-structure> <text identifier="type" label="Block Type" restrict-to-groups="hidden" default=“layout" required="true"/> <text identifier="title" label="Title"/> <group identifier=“row" label=“Row" multiple="true"> <group identifier=“column" label=“column" multiple="true"> <asset type=“block" identifier=“block" label=“Content Block” multiple=“true” /> </group> </group> </system-data-structure> © 2013 – StoneRidge Corporation
  • 23. <system-data-structure> <text identifier="type" label="Block Type" restrict-to-groups="hidden" default=“layout" required="true"/> <text identifier="title" label="Title"/> <group identifier=“row" label=“Row" multiple="true"> <group identifier=“column" label=“column" multiple="true"> <asset type=“block" identifier=“block" label=“Content Block” multiple=“true” /> </group> </group> </system-data-structure> © 2013 – StoneRidge Corporation
  • 24. Check block type ◦ Notify user of errors in block type choice ◦ Validate both as a layout and as correct content blocks  Formats must be designed to process multiple types of blocks with one format (or import if using XSLT)  Output should reflect block content – Can include semantic identification and layout information ◦ If the input block is a link set, then output a link set. © 2013 – StoneRidge Corporation
  • 25. © 2013 – StoneRidge Corporation
  • 26. © 2013 – StoneRidge Corporation
  • 27. © 2013 – StoneRidge Corporation
  • 28. © 2013 – StoneRidge Corporation
  • 29. © 2013 – StoneRidge Corporation
  • 30. © 2013 – StoneRidge Corporation
  • 31. © 2013 – StoneRidge Corporation
  • 32. It is all about organization!  XSLT ◦ Use import to keep the parts of your code separate  Modularity ◦ Tools are your friend – write components! ◦ More verbose that Velocity  Velocity ◦ Used macros ◦ Test often. It can and will output noncompliant XML value, making it harder to debug ◦ Terse procedural syntax – embrace the style © 2013 – StoneRidge Corporation
  • 33. Having your cake and having to eat it too © 2013 – StoneRidge Corporation
  • 34. Page layouts are completely configurable!  Better support for editors!  Validation is possible!  Like Lego® blocks, you can build almost anything with flexible, user-configurable layouts © 2013 – StoneRidge Corporation
  • 35. More steps in the creation of a page  Less intuitive for editing content ◦ Block is not on page ◦ Layout is separate from content  More initial planning on site setup  Lose Cascade‟s in-context support ◦ But … just wait until next week. © 2013 – StoneRidge Corporation
  • 36. I wouldn‟t be here without you © 2013 – StoneRidge Corporation
  • 37. Emory University ◦ For being a great client whose challenging needs and great ideas drive great solutions  Hannon Hill ◦ For continuing to develop and add wonderful features to Cascade Server ◦ For nurturing a wonderfully vibrant user community  John, Kat and Holly ◦ For making this presentation possible and for all your support of the series © 2013 – StoneRidge Corporation
  • 38. Bryce Roberts, MS, MSPH StoneRidge Corporation 1050 E Piedmont Rd. Suite E-222 Marietta GA, 30062 678-391-6173 Bryce@stoneridge.net www.stoneridge.net © 2013 – StoneRidge Corporation

Notas do Editor

  1. Second in a series. First part was last week and is now available in the webinar series archives on HannonHill.com. And next week on March 19 we’ll take a look at improving in-context editing.