SlideShare a Scribd company logo
1 of 31
Download to read offline
Alfresco Surf Code Camp
Lab 3: Green Energy
Objectives

             Build the Green Energy web site

             Follows the same pattern as the walkthrough

             Adds a few new concepts
              • Navigation
              • Authenticated pages, Login/Logout
              • “Include” component




12/12/08                                                   2
Sample Site

             We will use this as a starting point: alfwf.war
              • A blank Surf framework with no site construction data in it
              • If you want, blow away current alfwf web app and re-deploy a
                fresh alfwf.war (Or don't)‫‏‬

             Sample location:
              • /opt/tomcat/webapps/alfwf
              • http://labs3c:8580/alfwf




12/12/08                                                                       3
What should it look like?

             Intended UI shown on next page




12/12/08                                      4
Green Energy Home Page




12/12/08                            5
Green Energy Solutions Page




12/12/08                                 6
Green Energy Products Page




12/12/08                                7
Pages

            Home Page
             • root page for site
             • uses template: home
             • unauthenticated

            Products Page
             • parent: Home Page
             • uses template: landing
             • authentication: user

            Solutions Page
             • parent: Home Page
             • uses template: landing
             • authentication: user



12/12/08                                8
Templates

             Home Template
              • used by the home page

             Landing Template
              • used by the products page
              • used by the solutions page




12/12/08                                     9
Home Template




                                    navigation template scope




                 box1                            box3
               page scope                      page scope


                 box2a
               page scope
                                   box4a1                    box4b1
                                  page scope                page scope
                 box2b
               page scope


                 box2c             box4a2                    box4b2
               page scope         page scope                page scope


                            footer global scope
12/12/08                                                                 10
Landing Template




                                     navigation template scope




                  box1
                page scope


                  box2a
                page scope
                                                content
                                               page scope
                  box2b
                page scope


                  box2c
                page scope


                             footer global scope
12/12/08                                                         11
Component Bindings

             Recommended component bindings...




12/12/08                                         12
Component Bindings
           Home Page




                                                            Navigation


                      Include                                        Include
             ${url.context}/html/box1.html
                                                           ${url.context}/html/box3.html


                      Include
                                                  Include                             Include
             ${url.context}/html/box2a.html

                      Include                 ${url.context}/html/               ${url.context}/html/
                                                 box4a1.html                        box4b1.html

             ${url.context}/html/box2b.html


                                                  Include                             Include
                      Include
                                              ${url.context}/html/               ${url.context}/html/
             ${url.context}/html/box2c.html
                                                 box4a2.html                        box4b2.html


12/12/08                                                                                                13
Component Bindings Solutions Page




                                              Navigation


                       Include
              ${url.context}/html/box1.html



                       Include

             ${url.context}/html/box2a.html

                       Include

             ${url.context}/html/box2b.html


                       Include

             ${url.context}/html/box2c.html



12/12/08                                                   14
Component Bindings Products Page




                                                  Navigation


                      Include
             ${url.context}/html/box1.html



                      Include

             ${url.context}/html/box2a.html
                                                           Image
                      Include
                                              ${url.context}/images/age/farman.jpg
             ${url.context}/html/box2b.html


                      Include

             ${url.context}/html/box2c.html



12/12/08                                                                             15
High-Level Steps

           1. Deploy “Starter” Assets & Components

           2. Create a new Web Framework Configuration

           3. Create Site Configuration object

           4. Build Site
                  (a)Create pages
                  (b)Create template instances
                  (c)Initial “Smoke” Test
                  (d)Create page associations
                  (e)Create components
                  (f)Final Test




12/12/08                                                 16
1. Deploy “starter” assets & components

             Unzip assets.zip into web application (webapps/alfwf)‫‏‬
              • Static elements – css, js, images, html
              • Templates: home, landing
              • Login/Logout setup: updated web.xml, pages, template-
                instances

             Unzip blocks-include.zip into web application
             Unzip blocks-navigation.zip into web application
             Steps covered in following pages:
              • Create new Web Framework Configuration
              • Set up a new site
              • Build site




12/12/08                                                                17
2. Create Web Framework Configuration‫‏‬

            Configure Surf Framework
                 – Point to your Green Energy site configuration file
                 – Add the mapping to the login and logout pages
                 – Declare Alfresco as your authentication source
                 – Add a new endpoint called http-local which is used by the
                     include component you expanded earlier

            Contents of web-framework-config-custom.xml
              appears on the next slide
            The web-framework-config-custom.xml file goes in:
             • /WEB-INF/classes/alfresco/web-extension




12/12/08                                                                       18
<alfresco-config>
                <config evaluator=quot;string-comparequot; condition=quot;WebFrameworkquot;>
                     <web-framework>
                           <application-defaults>
                                <site-configuration>green.site.configuration</site-configuration>
                                <page-type>
                                      <id>login</id>
                                      <page-instance-id>sample-login</page-instance-id>
                                </page-type>
                                <page-type>
                                      <id>logout</id>
                                      <page-instance-id>sample-logout</page-instance-id>
                                </page-type>
                           </application-defaults>
                           <framework-defaults>
                                <user-factory>alfresco</user-factory>
                           </framework-defaults>
                     </web-framework>
                </config>
                <config evaluator=quot;string-comparequot; condition=quot;Remotequot;>
                     <remote>
                           <endpoint>
                             <id>http-local</id>
                             <name>HTTP access</name>
                             <description>Generic HTTP connector</description>
                             <connector-id>http</connector-id>
                             <endpoint-url>http://localhost:8580</endpoint-url>
                             <identity>none</identity>
                             <unsecure>true</unsecure>
                          </endpoint>
                     </remote>
                </config>
           </alfresco-config>
12/12/08                                                                                      19
3. Create Site Configuration object

             Add a site configuration object

             Points to a page: home

             green.site.configuration.xml
              • /WEB-INF/classes/alfresco/site-data/configurations

                <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>

                <configuration>
                  <title>Green Energy Site</title>
                  <description>Green Energy Site</description>
                  <source-id>site</source-id>
                  <properties>
                    <root-page>home</root-page>
                  </properties>
                </configuration>




12/12/08                                                             20
4a. Create Page objects

             Create one page object for each page in the site

             Make sure each page object points to the right
             template instance

             See earlier slide for page list




12/12/08                                                        21
4b. Create Template Instance objects

             Create one Template Instance object for each
             template

             Make sure the template instance points to the right
             FreeMarker renderer

             The FreeMarker renderers were unzipped into your
             alfwf web application earlier
                  – /WEB-INF/classes/alfresco/templates




12/12/08                                                           22
4c. Initial “Smoke” Test

             Start Alfresco

             Start Surf Tomcat (Restart if already running)‫‏‬

             Refresh the Web Script cache
                  – Browse to http://labs3c:8580/alfwf/service/index
                  – Click ‘Refresh Web Scripts’

             Test your site
              • http://labs3c:8580/alfwf
              • Your home page should display
              • You can navigate to the other two pages using /page?p=[page
                name]
              • The home page should display with a bunch of missing
                components
              • The other two pages should require a login before displaying


12/12/08                                                                       23
4d. Create Page Associations

             Create one Page Association object to represent each
             parent-child relationship in the site page hierarchy
                  – Home → Products
                  – Home → Solutions

             Make sure assoc-type is set to “child”




12/12/08                                                            24
Tips on associating child pages

             Here, the home page links down to the child page

             The association is of type ‘child’

             File name is arbitrary. Recommend <parent>-
             <child>.xml
             <?xml version='1.0' encoding='UTF-8'?>
             <page-association>
                <source-id>home</source-id>
                <dest-id>products</dest-id>
                <assoc-type>child</assoc-type>
             </page-association>




12/12/08                                                        25
4e. Create Component Bindings

             Create one component binding for each region

             If a region is scoped to a page, you have to create one
             component for each region for each page

             The example templates have a lot of regions. Feel free
             to do a couple until you've got the idea, then let the
             rest be broken




12/12/08                                                               26
Tips on Component Bindings

             For example, you may need to create:
             page.box1.home.xml
              • /WEB-INF/classes/alfresco/site-data/components
              • This is a page-scoped binding of the region ‘box1’ on the page
                ‘home’
            <?xml version='1.0' encoding='UTF-8'?>
            <component>
               <scope>page</scope>
               <region-id>box1</region-id>
               <source-id>home</source-id>
               <url>/blocks/include</url>
               <properties>
                  <path>/html/box1.html</path>
               </properties>
            </component>



             Points to the web script: /blocks/include
              • Picks up the property path value of /html/box1.html


12/12/08                                                                         27
Tips on Component Bindings

             You may need to show an image
              • /WEB-INF/classes/alfresco/site-data/components

             Example of a page-scoped binding of the region
             ‘content’ on the page ‘products’
             <?xml version='1.0' encoding='UTF-8'?>
             <component>
                <scope>page</scope>
                <region-id>box1</region-id>
                <source-id>home</source-id>
                <url>/blocks/image</url>
                <properties>
                   <src>${url.context}/images/image.jpg</path>
                </properties>
             </component>



             Points to the web script: /blocks/image
              • Picks up the property src value of /
                {webapp}/images/image.jpg



12/12/08                                                         28
Tips on creating a global footer

             You will need to create a globally-scoped footer
             component
              • /WEB-INF/classes/alfresco/site-data/components

             global.footer.xml

             <?xml version='1.0' encoding='UTF-8'?>
             <component>
                <scope>global</scope>
                <region-id>footer</region-id>
                <source-id>global</source-id>
                <url>/age/footer</url>
             </component>




             You will need to write the web script to implement
             global footer

             How and what you do is up to you!
12/12/08                                                          29
4f. Final Test

             Refresh the Web Scripts cache
                  – Browse to http://labs3c:8580/alfwf/service/index
                  – Click on ‘Refresh Web Scripts’

             Test your site
              • http://labs3c:8580/alfwf
              • You should be able to navigate between the three pages
              • The components you configured should be showing up




12/12/08                                                                 30
Wrap-up

                 In this lab, you...
                     • Set up login pages and configured Surf to use Alfresco as the
                       authentication source
                     • Added navigation and include components
                     • Configured page associations
                     • Created template instances, page instances, and component
                       bindings for Green Energy
                     • Implemented a global footer web script component




12/12/08   Optaros and Client confidential. All rights reserved.                       31

More Related Content

What's hot

Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An IntroductionThorsten Kamann
 
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)Carles Farré
 
<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into Wordpress<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into WordpressMatt Harris
 
Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESSjsmith92
 
Web Frontend development: tools and good practices to (re)organize the chaos
Web Frontend development: tools and good practices to (re)organize the chaosWeb Frontend development: tools and good practices to (re)organize the chaos
Web Frontend development: tools and good practices to (re)organize the chaosMatteo Papadopoulos
 
Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Michael Greene
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuAppUniverz Org
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress PluginBrad Williams
 
浜松Rails3道場 其の弐 Model編
浜松Rails3道場 其の弐 Model編 浜松Rails3道場 其の弐 Model編
浜松Rails3道場 其の弐 Model編 Masakuni Kato
 
Ruby on Rails 2.1 What's New
Ruby on Rails 2.1 What's NewRuby on Rails 2.1 What's New
Ruby on Rails 2.1 What's NewLibin Pan
 
Extreme Web Productivity with Spring Roo
Extreme Web Productivity with Spring RooExtreme Web Productivity with Spring Roo
Extreme Web Productivity with Spring RooStefan Schmidt
 

What's hot (16)

Advanced Fluid
Advanced FluidAdvanced Fluid
Advanced Fluid
 
Open Social Summit Korea
Open Social Summit KoreaOpen Social Summit Korea
Open Social Summit Korea
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
 
<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into Wordpress<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into Wordpress
 
Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESS
 
BPMS1
BPMS1BPMS1
BPMS1
 
Web Frontend development: tools and good practices to (re)organize the chaos
Web Frontend development: tools and good practices to (re)organize the chaosWeb Frontend development: tools and good practices to (re)organize the chaos
Web Frontend development: tools and good practices to (re)organize the chaos
 
Java presentation
Java presentationJava presentation
Java presentation
 
Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)
 
Ugo Cei Presentation
Ugo Cei PresentationUgo Cei Presentation
Ugo Cei Presentation
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. Wu
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress Plugin
 
浜松Rails3道場 其の弐 Model編
浜松Rails3道場 其の弐 Model編 浜松Rails3道場 其の弐 Model編
浜松Rails3道場 其の弐 Model編
 
Ruby on Rails 2.1 What's New
Ruby on Rails 2.1 What's NewRuby on Rails 2.1 What's New
Ruby on Rails 2.1 What's New
 
Extreme Web Productivity with Spring Roo
Extreme Web Productivity with Spring RooExtreme Web Productivity with Spring Roo
Extreme Web Productivity with Spring Roo
 

Viewers also liked

Debatdevi Presentacion S Tolliver Vcat
Debatdevi Presentacion S Tolliver VcatDebatdevi Presentacion S Tolliver Vcat
Debatdevi Presentacion S Tolliver VcatSTolliver
 
Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp ApiJeff Potts
 
Alfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketAlfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketJeff Potts
 

Viewers also liked (6)

Debatdevi Presentacion S Tolliver Vcat
Debatdevi Presentacion S Tolliver VcatDebatdevi Presentacion S Tolliver Vcat
Debatdevi Presentacion S Tolliver Vcat
 
Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp Api
 
Alfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketAlfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM Market
 
Review
ReviewReview
Review
 
Hot spring
Hot springHot spring
Hot spring
 
Caracteristicas1
Caracteristicas1Caracteristicas1
Caracteristicas1
 

Similar to Optaros Surf Code Camp Lab 3

Optaros Surf Code Camp Lab 1
Optaros Surf Code Camp Lab 1Optaros Surf Code Camp Lab 1
Optaros Surf Code Camp Lab 1Jeff Potts
 
Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Jeff Potts
 
Web applications with Catalyst
Web applications with CatalystWeb applications with Catalyst
Web applications with Catalystsvilen.ivanov
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedGil Fink
 
Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Pantheon
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSJumping Bean
 
Advanced Front End Architecture in D8: Sass, Gulp, & Living Style Guides
Advanced Front End Architecture in D8: Sass, Gulp, & Living Style GuidesAdvanced Front End Architecture in D8: Sass, Gulp, & Living Style Guides
Advanced Front End Architecture in D8: Sass, Gulp, & Living Style GuidesAidan Foster
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Robert Lemke
 
企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践Jacky Chi
 
Functional FIPS: Learning PHP for Drupal Theming
Functional FIPS: Learning PHP for Drupal ThemingFunctional FIPS: Learning PHP for Drupal Theming
Functional FIPS: Learning PHP for Drupal ThemingEmma Jane Hogbin Westby
 
Leveraging the Power of Custom Elements in Gutenberg
Leveraging the Power of Custom Elements in GutenbergLeveraging the Power of Custom Elements in Gutenberg
Leveraging the Power of Custom Elements in GutenbergFelix Arntz
 
Apache Wicket Web Framework
Apache Wicket Web FrameworkApache Wicket Web Framework
Apache Wicket Web FrameworkLuther Baker
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Estelle Weyl
 
Step by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts ApplicationStep by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts Applicationelliando dias
 
High Performance Web Sites, With Ads: Don't let third parties make you slow
High Performance Web Sites, With Ads: Don't let third parties make you slowHigh Performance Web Sites, With Ads: Don't let third parties make you slow
High Performance Web Sites, With Ads: Don't let third parties make you slowTobias Järlund
 
EWD 3 Training Course Part 20: The DocumentNode Object
EWD 3 Training Course Part 20: The DocumentNode ObjectEWD 3 Training Course Part 20: The DocumentNode Object
EWD 3 Training Course Part 20: The DocumentNode ObjectRob Tweed
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!David Gibbons
 

Similar to Optaros Surf Code Camp Lab 3 (20)

Optaros Surf Code Camp Lab 1
Optaros Surf Code Camp Lab 1Optaros Surf Code Camp Lab 1
Optaros Surf Code Camp Lab 1
 
Drupal 8 Render Cache
Drupal 8 Render CacheDrupal 8 Render Cache
Drupal 8 Render Cache
 
Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1
 
Web applications with Catalyst
Web applications with CatalystWeb applications with Catalyst
Web applications with Catalyst
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8
 
Webpack DevTalk
Webpack DevTalkWebpack DevTalk
Webpack DevTalk
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Advanced Front End Architecture in D8: Sass, Gulp, & Living Style Guides
Advanced Front End Architecture in D8: Sass, Gulp, & Living Style GuidesAdvanced Front End Architecture in D8: Sass, Gulp, & Living Style Guides
Advanced Front End Architecture in D8: Sass, Gulp, & Living Style Guides
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)
 
企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践
 
Functional FIPS: Learning PHP for Drupal Theming
Functional FIPS: Learning PHP for Drupal ThemingFunctional FIPS: Learning PHP for Drupal Theming
Functional FIPS: Learning PHP for Drupal Theming
 
vitepress-en.pdf
vitepress-en.pdfvitepress-en.pdf
vitepress-en.pdf
 
Leveraging the Power of Custom Elements in Gutenberg
Leveraging the Power of Custom Elements in GutenbergLeveraging the Power of Custom Elements in Gutenberg
Leveraging the Power of Custom Elements in Gutenberg
 
Apache Wicket Web Framework
Apache Wicket Web FrameworkApache Wicket Web Framework
Apache Wicket Web Framework
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
Step by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts ApplicationStep by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts Application
 
High Performance Web Sites, With Ads: Don't let third parties make you slow
High Performance Web Sites, With Ads: Don't let third parties make you slowHigh Performance Web Sites, With Ads: Don't let third parties make you slow
High Performance Web Sites, With Ads: Don't let third parties make you slow
 
EWD 3 Training Course Part 20: The DocumentNode Object
EWD 3 Training Course Part 20: The DocumentNode ObjectEWD 3 Training Course Part 20: The DocumentNode Object
EWD 3 Training Course Part 20: The DocumentNode Object
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
 

More from Jeff Potts

No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleJeff Potts
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesJeff Potts
 
Flexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesFlexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesJeff Potts
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryJeff Potts
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Jeff Potts
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISJeff Potts
 
The Challenges of Keeping Bees
The Challenges of Keeping BeesThe Challenges of Keeping Bees
The Challenges of Keeping BeesJeff Potts
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMISJeff Potts
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should knowJeff Potts
 
CMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentCMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentJeff Potts
 
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...Jeff Potts
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco communityJeff Potts
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public APIJeff Potts
 
Apache Chemistry in Action
Apache Chemistry in ActionApache Chemistry in Action
Apache Chemistry in ActionJeff Potts
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsJeff Potts
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMISJeff Potts
 
Relational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsRelational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsJeff Potts
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECMJeff Potts
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsJeff Potts
 

More from Jeff Potts (20)

No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to Microservices
 
Flexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesFlexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL Templates
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMIS
 
The Challenges of Keeping Bees
The Challenges of Keeping BeesThe Challenges of Keeping Bees
The Challenges of Keeping Bees
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMIS
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
CMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentCMIS: An Open API for Managing Content
CMIS: An Open API for Managing Content
 
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco community
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
Apache Chemistry in Action
Apache Chemistry in ActionApache Chemistry in Action
Apache Chemistry in Action
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 Results
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
 
Relational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsRelational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric Apps
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECM
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & Integrations
 

Recently uploaded

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Recently uploaded (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

Optaros Surf Code Camp Lab 3

  • 1. Alfresco Surf Code Camp Lab 3: Green Energy
  • 2. Objectives Build the Green Energy web site Follows the same pattern as the walkthrough Adds a few new concepts • Navigation • Authenticated pages, Login/Logout • “Include” component 12/12/08 2
  • 3. Sample Site We will use this as a starting point: alfwf.war • A blank Surf framework with no site construction data in it • If you want, blow away current alfwf web app and re-deploy a fresh alfwf.war (Or don't)‫‏‬ Sample location: • /opt/tomcat/webapps/alfwf • http://labs3c:8580/alfwf 12/12/08 3
  • 4. What should it look like? Intended UI shown on next page 12/12/08 4
  • 5. Green Energy Home Page 12/12/08 5
  • 6. Green Energy Solutions Page 12/12/08 6
  • 7. Green Energy Products Page 12/12/08 7
  • 8. Pages Home Page • root page for site • uses template: home • unauthenticated Products Page • parent: Home Page • uses template: landing • authentication: user Solutions Page • parent: Home Page • uses template: landing • authentication: user 12/12/08 8
  • 9. Templates Home Template • used by the home page Landing Template • used by the products page • used by the solutions page 12/12/08 9
  • 10. Home Template navigation template scope box1 box3 page scope page scope box2a page scope box4a1 box4b1 page scope page scope box2b page scope box2c box4a2 box4b2 page scope page scope page scope footer global scope 12/12/08 10
  • 11. Landing Template navigation template scope box1 page scope box2a page scope content page scope box2b page scope box2c page scope footer global scope 12/12/08 11
  • 12. Component Bindings Recommended component bindings... 12/12/08 12
  • 13. Component Bindings Home Page Navigation Include Include ${url.context}/html/box1.html ${url.context}/html/box3.html Include Include Include ${url.context}/html/box2a.html Include ${url.context}/html/ ${url.context}/html/ box4a1.html box4b1.html ${url.context}/html/box2b.html Include Include Include ${url.context}/html/ ${url.context}/html/ ${url.context}/html/box2c.html box4a2.html box4b2.html 12/12/08 13
  • 14. Component Bindings Solutions Page Navigation Include ${url.context}/html/box1.html Include ${url.context}/html/box2a.html Include ${url.context}/html/box2b.html Include ${url.context}/html/box2c.html 12/12/08 14
  • 15. Component Bindings Products Page Navigation Include ${url.context}/html/box1.html Include ${url.context}/html/box2a.html Image Include ${url.context}/images/age/farman.jpg ${url.context}/html/box2b.html Include ${url.context}/html/box2c.html 12/12/08 15
  • 16. High-Level Steps 1. Deploy “Starter” Assets & Components 2. Create a new Web Framework Configuration 3. Create Site Configuration object 4. Build Site (a)Create pages (b)Create template instances (c)Initial “Smoke” Test (d)Create page associations (e)Create components (f)Final Test 12/12/08 16
  • 17. 1. Deploy “starter” assets & components Unzip assets.zip into web application (webapps/alfwf)‫‏‬ • Static elements – css, js, images, html • Templates: home, landing • Login/Logout setup: updated web.xml, pages, template- instances Unzip blocks-include.zip into web application Unzip blocks-navigation.zip into web application Steps covered in following pages: • Create new Web Framework Configuration • Set up a new site • Build site 12/12/08 17
  • 18. 2. Create Web Framework Configuration‫‏‬ Configure Surf Framework – Point to your Green Energy site configuration file – Add the mapping to the login and logout pages – Declare Alfresco as your authentication source – Add a new endpoint called http-local which is used by the include component you expanded earlier Contents of web-framework-config-custom.xml appears on the next slide The web-framework-config-custom.xml file goes in: • /WEB-INF/classes/alfresco/web-extension 12/12/08 18
  • 19. <alfresco-config> <config evaluator=quot;string-comparequot; condition=quot;WebFrameworkquot;> <web-framework> <application-defaults> <site-configuration>green.site.configuration</site-configuration> <page-type> <id>login</id> <page-instance-id>sample-login</page-instance-id> </page-type> <page-type> <id>logout</id> <page-instance-id>sample-logout</page-instance-id> </page-type> </application-defaults> <framework-defaults> <user-factory>alfresco</user-factory> </framework-defaults> </web-framework> </config> <config evaluator=quot;string-comparequot; condition=quot;Remotequot;> <remote> <endpoint> <id>http-local</id> <name>HTTP access</name> <description>Generic HTTP connector</description> <connector-id>http</connector-id> <endpoint-url>http://localhost:8580</endpoint-url> <identity>none</identity> <unsecure>true</unsecure> </endpoint> </remote> </config> </alfresco-config> 12/12/08 19
  • 20. 3. Create Site Configuration object Add a site configuration object Points to a page: home green.site.configuration.xml • /WEB-INF/classes/alfresco/site-data/configurations <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <configuration> <title>Green Energy Site</title> <description>Green Energy Site</description> <source-id>site</source-id> <properties> <root-page>home</root-page> </properties> </configuration> 12/12/08 20
  • 21. 4a. Create Page objects Create one page object for each page in the site Make sure each page object points to the right template instance See earlier slide for page list 12/12/08 21
  • 22. 4b. Create Template Instance objects Create one Template Instance object for each template Make sure the template instance points to the right FreeMarker renderer The FreeMarker renderers were unzipped into your alfwf web application earlier – /WEB-INF/classes/alfresco/templates 12/12/08 22
  • 23. 4c. Initial “Smoke” Test Start Alfresco Start Surf Tomcat (Restart if already running)‫‏‬ Refresh the Web Script cache – Browse to http://labs3c:8580/alfwf/service/index – Click ‘Refresh Web Scripts’ Test your site • http://labs3c:8580/alfwf • Your home page should display • You can navigate to the other two pages using /page?p=[page name] • The home page should display with a bunch of missing components • The other two pages should require a login before displaying 12/12/08 23
  • 24. 4d. Create Page Associations Create one Page Association object to represent each parent-child relationship in the site page hierarchy – Home → Products – Home → Solutions Make sure assoc-type is set to “child” 12/12/08 24
  • 25. Tips on associating child pages Here, the home page links down to the child page The association is of type ‘child’ File name is arbitrary. Recommend <parent>- <child>.xml <?xml version='1.0' encoding='UTF-8'?> <page-association> <source-id>home</source-id> <dest-id>products</dest-id> <assoc-type>child</assoc-type> </page-association> 12/12/08 25
  • 26. 4e. Create Component Bindings Create one component binding for each region If a region is scoped to a page, you have to create one component for each region for each page The example templates have a lot of regions. Feel free to do a couple until you've got the idea, then let the rest be broken 12/12/08 26
  • 27. Tips on Component Bindings For example, you may need to create: page.box1.home.xml • /WEB-INF/classes/alfresco/site-data/components • This is a page-scoped binding of the region ‘box1’ on the page ‘home’ <?xml version='1.0' encoding='UTF-8'?> <component> <scope>page</scope> <region-id>box1</region-id> <source-id>home</source-id> <url>/blocks/include</url> <properties> <path>/html/box1.html</path> </properties> </component> Points to the web script: /blocks/include • Picks up the property path value of /html/box1.html 12/12/08 27
  • 28. Tips on Component Bindings You may need to show an image • /WEB-INF/classes/alfresco/site-data/components Example of a page-scoped binding of the region ‘content’ on the page ‘products’ <?xml version='1.0' encoding='UTF-8'?> <component> <scope>page</scope> <region-id>box1</region-id> <source-id>home</source-id> <url>/blocks/image</url> <properties> <src>${url.context}/images/image.jpg</path> </properties> </component> Points to the web script: /blocks/image • Picks up the property src value of / {webapp}/images/image.jpg 12/12/08 28
  • 29. Tips on creating a global footer You will need to create a globally-scoped footer component • /WEB-INF/classes/alfresco/site-data/components global.footer.xml <?xml version='1.0' encoding='UTF-8'?> <component> <scope>global</scope> <region-id>footer</region-id> <source-id>global</source-id> <url>/age/footer</url> </component> You will need to write the web script to implement global footer How and what you do is up to you! 12/12/08 29
  • 30. 4f. Final Test Refresh the Web Scripts cache – Browse to http://labs3c:8580/alfwf/service/index – Click on ‘Refresh Web Scripts’ Test your site • http://labs3c:8580/alfwf • You should be able to navigate between the three pages • The components you configured should be showing up 12/12/08 30
  • 31. Wrap-up In this lab, you... • Set up login pages and configured Surf to use Alfresco as the authentication source • Added navigation and include components • Configured page associations • Created template instances, page instances, and component bindings for Green Energy • Implemented a global footer web script component 12/12/08 Optaros and Client confidential. All rights reserved. 31