You are previewing Alfresco 3 Web Content Management.
O'Reilly logo
Alfresco 3 Web Content Management

Book Description

Create an infrastructure to manage all your web content, and deploy it to various external production systems

  • A complete guide to Web Content Creation and Distribution

  • Understand the concepts and advantages of Publishing-style Web CMS

  • Leverage a single installation to manage multiple websites

  • Integrate Alfresco web applications with external systems

  • In Detail

    Alfresco provides a robust, easy to use, and scalable web content framework for managing multiple websites leveraging a common web infrastructure. If you are interested in configuring and building a new website quickly, determined to create a scalable infrastructure to stage multiple websites, and want to secure and control the content being pushed to external applications, then you have reached the right place.

    This book will guide you through creating, managing and publishing web content in staging, test and production environments. It will help you set up an infrastructure for supporting multiple websites using Alfresco, enabling a shortened web development cycle, and providing high return on investment and low cost of ownership.

    This book will take you from the basics of publishing style CMS - such as web forms, page templates, and staging - to the skills that will make you an Alfresco developer, covering advanced topics such as workflow, web services integration, and more. You will learn the various options used to install Alfresco including File System Deployment receivers on target production servers. You will also learn to configure a single instance of Alfresco to serve multiple web projects. Focus is given to reuse assets such as images, forms, and workflows across multiple web projects.

    It will introduce you to advanced concepts of separating the web content from presentation. The entire process of creating web content, getting it approved and published to a staging environment needs a robust workflow process. You will learn and have extensive hands-on experience with the examples given in the book to create a flexible workflow. You will learn about Alfresco Web Editor, a new feature released with the latest version of Alfresco 3.3. You will learn to configure Web Editor for in-context editing of web pages. You will be able to try out various integration options using Alfresco’s RESTful web services framework. By the end of the book, you will be able to set up an extensible enterprise web content management system for your company and customers.

    Create an infrastructure to manage all your web content, and deploy it to various external production systems

    Table of Contents

    1. Alfresco 3 Web Content Management
      1. Alfresco 3 Web Content Management
      2. Credits
      3. About the Authors
      4. Acknowledgement
      5. About the Reviewers
      6. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Errata
          2. Piracy
          3. Questions
      7. 1. A Publishing Style Web CMS
        1. Good web content management pays big dividends
          1. High labor costs and the shortage of qualified personnel
          2. How long it currently takes to implement site changes
          3. Potential problems caused by erroneous or out-of-date postings
          4. Revenue losses attributable to an inability to respond
          5. Competitive issues related to a lack of planning
        2. Various WCM systems in the market
        3. The Alfresco WCM model
          1. Web projects
          2. Sandboxes
          3. Virtualization and In-context Preview
          4. Transparent layers
          5. Web forms
          6. Rendition templates
          7. Web scripts
          8. Workflows
          9. Content delivery concepts
            1. Static delivery model
            2. Dynamic delivery model
            3. Overview of delivery models
            4. The best of both worlds
        4. Significant enhancements in Alfresco WCM with Version 3.3
          1. Alfresco Web Editor
        5. Summary
      8. 2. Installation and Configuration
        1. Installing a JDK
          1. Verifying the JAVA_HOME environment variable location
        2. Installing MySQL
          1. Verifying the MySQL installation
        3. Alfresco WCM
          1. Installation option that is suitable for you
            1. Enterprise and Community Editions
            2. Operating Systems: Windows, Linux, Unix, MacOS
            3. Databases: MySQL, Oracle, MS SQL Server, PostgreSQL
            4. Application Servers: Tomcat, JBoss
            5. Portals (optional): JBoss portal, Liferay
            6. Choosing a suitable software for your installation
            7. Eclipse installation
              1. Configuring the project for development
              2. Configuring the build path
              3. Source code tree
              4. Build process
                1. Why to use a build tool
                2. Integrating Ant with Eclipse
              5. Debugging the Alfresco application in an Eclipse environment
        4. Installing Alfresco
          1. Installing Alfresco on Windows
            1. Installing Alfresco on Windows (full installation)
            2. Installing Alfresco on Windows (excluding JDK)
            3. Installing the Alfresco Tomcat bundle on Windows
          2. Installing Alfresco on Red Hat Linux
            1. Installing the Alfresco Tomcat bundle on Linux
          3. Installing Alfresco on Mac
          4. Installing the Alfresco WAR on any platform
          5. Modifying the directory paths for Tomcat 6.x
          6. Downloading the extension samples
          7. Deploying Share into a separate Tomcat instance
          8. Installing Alfresco components
            1. Installing Alfresco WCM
            2. Verifying the WCM installation
            3. Installing the WCM standalone deployment receiver
            4. Compiling and deploying the customizations on top of the WCM core
              1. Integrating the code in the existing Alfresco WAR file
              2. Deploying the code as an AMP
            5. Installing OpenOffice
            6. Installing ImageMagick
            7. Installing Microsoft Office add-ins
            8. Installing Flash Player
            9. Installing SWFTools
              1. Installing SWFTools on Windows
              2. Installing SWFTools on Linux
            10. Installing TinyMCE language packs
            11. Installing an Alfresco Module Package
            12. Installing Microsoft Office SharePoint Protocol Support
            13. Installing the SharePoint Protocol Support AMP
              1. Configuring SharePoint Protocol Support
              2. Configuring SharePoint Protocol for Online Editing
            14. Running Alfresco
              1. Starting the Alfresco server
              2. Starting Alfresco Share
              3. Starting Alfresco Explorer
              4. Stopping the Alfresco server
              5. Starting the Alfresco virtualization server
              6. Stopping the Alfresco virtualization server
              7. Starting the deployment engine
              8. Stopping the deployment engine
            15. Starting and stopping Alfresco as a console application
            16. Installation folder structure
            17. Configuring Alfresco as a Windows service
        5. Summary
      9. 3. Getting Started with Alfresco WCM
        1. Understanding the basics of WCM
          1. Log in to Alfresco WCM web interface
          2. My Alfresco Dashboard
          3. Web project Sandboxes
          4. User Sandbox interface
          5. Advanced Versioning Manager (AVM)
        2. The web project
          1. Create the web project
              1. Step one: Web Project Details
              2. Step two: Create From Existing Web Project
              3. Step three: Configure Deployment Receivers
              4. Step four: Configure Web Forms
              5. Step five: Configure Workflow
              6. Step six: Add Users
              7. Step seven: Email Users
              8. Summary
          2. Creating a site easily with web project
          3. Listing User Sandboxes
          4. Add content to the web project
          5. Submit content to the Staging Sandbox
        3. Filesystem projection
        4. Virtualization server
          1. Configuring the virtual server for preview
          2. Virtualization URL format
          3. Virtualization server access to the User Sandbox
          4. Virtual server configuration
        5. Dynamic websites using WCM
          1. Virtual server JSP support
          2. Previewing WARs and getRealPath()
            1. Virtual server configuration
        6. Search
        7. Summary
      10. 4. Web Content Production with Web Forms
        1. Why web forms
        2. Introduction to web forms
        3. Creating web forms
          1. Identifying the structure to be used for each web form
          2. Defining a schema
          3. Defining a complex element
          4. Defining a simple element
            1. Default and fixed values for elements
            2. Optional and required values for elements
          5. Advanced schema attributes
            1. File pickers
            2. Tool tips and labels
                1. Localization
                2. Validation
                3. Customizing the WYSIWYG editor
                4. Dynamically populating lists (in drop-down lists) or conditional drop downs
                5. Reuse of common XSD and JSP
          6. Create a web form in Alfresco
        4. Rendition templates
          1. Using FreeMarker templates for renditions
            1. FreeMarker template engine within Alfresco
            2. Alfresco objects available to FreeMarker
            3. FreeMarker template-node model API
            4. FreeMarker directives
            5. Defining and creating FreeMarker templates
          2. Extensible Stylesheet Language
          3. Using XSLT for renditions
          4. Using XSL-FO for renditions
            1. Associating rendition templates to web forms in Alfresco
        5. Associating web forms and renditions for specific/multiple project(s)
        6. Creating dynamic content
        7. Edit web forms for renditions
                1. First option: Using edit
                2. Second option: Using update
          1. Associating a .xml file to the web form
          2. Static and dynamic include of content
        8. Web publishing dashlets
        9. Summary
      11. 5. WCM Workflows
        1. Why workflows are required
        2. Introduction to the workflow
          1. Workflow process
          2. Out-of-the-box workflow
        3. Configuring workflows
          1. Associating workflows to web forms
          2. Associating workflows to web projects
          3. Submitting content to the Staging box
          4. Using the Edit Web Content wizard
          5. Using Submit Items Wizard
          6. Dynamically changing workflow for each snapshot submission
        4. Creating a custom WCM Workflow for a group
          1. Defining the workflow process
            1. Step 1: Create a Task Model
              1. Define a Content Model name
              2. Create a Type for each task
              3. Define Properties
              4. Define Aspect
            2. Step 2: Create the Process Definition
              1. Define a Process Definition name
              2. Define a Swimlane
              3. Associate a task
            3. Step 3: Create the workflow Resource Bundles
            4. Step 4: Create the Alfresco Explorer Task dialogs
            5. Step 5: Create a custom model Spring Context file
            6. Step 6: Deploy into WCM project
            7. Test the workflow
        5. Expiring content in WCM
          1. Configuration
        6. Summary
      12. 6. Dynamic Deployment and Customizations
        1. Dynamic deployment
          1. Dynamic models
            1. Deploying a model file
              1. First approach
                1. Updating a custom model
              2. Second approach
          2. Dynamic Resource Bundles
            1. Deploying a Resource Bundle
              1. First approach
                1. Reloading the Resource Bundle
                2. Updating a Resource Bundle
              2. Second approach
          3. Dynamic workflows
            1. Deploying a Process Definition file
              1. First approach
              2. Second approach
                1. Display of workflow images
              3. Third approach
          4. Dynamic Alfresco Explorer
            1. Deploying Alfresco Explorer customizations
                1. Reloading web client customizations
                2. Testing the workflow
        2. Customization of existing workflow to use e-mail notifications
        3. Remove workflow for specific staging submission
                1. Test using Submit Items wizard
        4. ZERO Workflow
        5. Workflow Viewer
        6. Summary
      13. 7. Content Delivery and Deployment
        1. Introduction to content delivery
          1. Live server vs. Test server
          2. Static vs. Dynamic delivery model
        2. FSR for static delivery
          1. Installing FSR
            1. Configuring your deployment targets
            2. Start and stop deployment receiver
          2. Using FSR from Alfresco WCM staging
            1. Configuring a web project to use FSR
            2. Deploying a snapshot to FSR manually
            3. Viewing deployment report and history
            4. Reverting or rolling back to an older snapshot
            5. Deploying to multiple servers
          3. Advanced topics on FSR
            1. Configuring prepare and postCommit callbacks
            2. Defining payload transformations
            3. Defining transport adapters
        3. ASR for dynamic delivery
          1. Configuring WCM deployment service
            1. Number of send threads
            2. Number of deployments in parallel
          2. AVM Deployment Target
        4. Auto deployment
        5. Deploying to a test server
          1. Setting up a test server pool
          2. Deploy to a test server
          3. Preview the content
          4. Release the test server
          5. Deploying from workflow
        6. Deploying from Alfresco WCM to DM repository
          1. Setting up Alfresco DM as the deployment target
          2. Deploying to DM
        7. Summary
      14. 8. Managing Multiple Websites Using WCM
        1. Multiple web projects
          1. Reusing forms, templates, and workflows
          2. Using a web project as a template
        2. Managing multiple websites using a single web project
          1. Setting up multiple URLs on the target server
          2. Setting up FSR for each target website
          3. Creating many webapp folders
        3. Layered folders
          1. Creating a transparent folder
          2. Updating a source file
          3. Updating the destination file
          4. Deleting files
          5. Adding new files
        4. Summary
      15. 9. Alfresco Surf and Web Editor
        1. Alfresco Surf platform
          1. Applications using the Alfresco Surf platform
          2. Alfresco Surf architecture
            1. MVC pattern
              1. Single-tier application
              2. Two-tier application
          3. Surf model objects
          4. Surf API
            1. Rendering engines
        2. Design site navigation
          1. Design a page
            1. Use of a component in a page
            2. Design page navigation
            3. Communicating with Web Content Management
            4. Using YUI (Yahoo User Interface) library
            5. Alfresco Web Editor
              1. Deploying and using Alfresco Web Editor
              2. Deploying Web Editor to a Spring Surf Application
              3. Alfresco Web Editor tag library
              4. Sample Web Application using Alfresco Web Editor
              5. Web Editor Framework
                1. Core WEF Components
                2. Core WEF Widgets
            6. Summary
      16. 10. Integrating WCM Using Web Scripts
        1. Concepts of WCM web scripts
          1. Overview of REST architecture
            1. What is REST
            2. REST's main principles
          2. Alfresco web scripts overview
            1. What is a web script
            2. Why to use web scripts
        2. Alfresco web script framework
        3. What's new in Alfresco 3 web scripts
        4. Using web scripts with Alfresco WCM
        5. Implementing web scripts for WCM
          1. Components of web scripts
            1. Description document
            2. Controller script
            3. One or more response templates
            4. Configuration document
            5. Locale message bundle
          2. Creating a description document
            1. Basic elements of description document
            2. Advanced configuration for a description document
          3. Response templates (URI templates)
            1. Response type formats
        6. Root objects of FreeMarker
        7. FreeMarker methods for the AVM repository
          1. AVM API
          2. AVM store API
          3. AVM node API
          4. Response status
          5. Web script controller
          6. Objectives of a controller
          7. JavaScript controller
        8. Root objects for an execution script
        9. JavaScript methods for the AVM repository
          1. AVM API
          2. AVM store API
          3. AVM node API
        10. Java-backed controller
          1. How to declare a Java Bean
          2. Creating a Java Bean class
          3. Implementing web scripts
          4. Creating a web script
          5. Storing the web script
            1. Storing it on the filesystem
            2. Storing it in Alfresco Explorer
          6. Registering the web script
          7. Listing the web scripts for external access
        11. Integrating WCM with external applications—case studies
          1. Integrating Alfresco WCM and Liferay with a news portlet
          2. Web script for getting news headlines
            1. Description document
            2. Execution script
            3. Response template
          3. Storing/registering a web script in Alfresco
          4. Portlet in Liferay
          5. Integrating Alfresco WCM and Drupal with monthly blogs
          6. Web script for getting monthly blogs
            1. Description document
            2. Execution script
            3. Response template
          7. Storing/registering the web script in Alfresco
          8. Calling the web script in Drupal
          9. Integrating Alfresco WCM with any J2EE web application
          10. Web script for getting the details of a particular news item
            1. Description document
            2. Java-backed Bean for a web script
            3. Response template
              1. Storing/registering the web script in Alfresco
        12. Calling web scripts from a JSP page
          1. Enhancing the news item web script
        13. Web script for getting the details of a particular news item
          1. Description document
            1. Java-backed Bean for web scripts
            2. Response template
            3. Storing / registering the web script in Alfresco
            4. Calling the web script from a JSP page
          2. Integrating Alfresco WCM and a Surf-based web application
            1. Response template
            2. Integrating web scripts with a SURF application
        14. Summary
      17. 11. Leveraging Alfresco Framework for WCM
        1. Membership and Security Mechanism
          1. Configuring LDAP for centralized identity management
            1. LDAP configuration with Active Directory
            2. LDAP synchronization
            3. Daisy Chaining
          2. User roles
        2. Common repository
          1. Integrating Alfresco with the FFMPEG Video Transcoder
            1. Various options for video transcoding
            2. Various options for audio transcoding
            3. Integrating transformation as an Action in Alfresco
            4. Configuring FFMPEG transformation as a business rule
          2. Copying videos from DM to WCM
          3. DM to WCM using business rule
          4. DM to WCM using JavaScript
        3. Image transformation in WCM
          1. Image transformation APIs
          2. Configuring new action for image transformation in WCM
          3. Using image transformation action in WCM
        4. Advanced search in WCM
          1. Using JavaScript
          2. AVM API to search in WCM store
          3. Using FreeMarker template
          4. Using the Node browser
          5. Using Java
        5. Case study: User Interface for Advanced Search in WCM
                1. Search text in ROOT folder and for all web forms
                2. Search text in particular web form content
                3. Search text in particular folder of web project
                4. Search text in particular web form and in particular folder of web project
          1. Metadata extraction for WCM
        6. Summary
      18. 12. WCM Administration
        1. Data backup
          1. List of items to back up
            1. Content stored in filesystem
            2. Metadata stored in a relational database
            3. Customization files
            4. Membership data
            5. Log files
          2. Backup frequency
          3. Backup is based on Alfresco deployment
            1. Alfresco deployed as a Repository Application Server
            2. Alfresco deployed as a hot backup
        2. Upgrading to new versions of Alfresco
          1. Upgrading to a minor release
          2. Upgrading to a major release
        3. Cleaning up deployment history
          1. Using Alfresco Explorer
          2. Using scheduler
            1. Deployment report 1 day before
            2. Deployment report 1 day after
        4. General maintenance tips
          1. Examine log files
          2. Reset the administrator password
          3. Providing administrator rights
          4. Reset complete repository data
          5. Migrating servers
        5. Summary