Go to main content
1/105
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Access to Oracle Support
Related Documents
Conventions
What's New in This Guide
Part I Getting Started with Oracle WebCenter Sites
1
Introduction to Developing with WebCenter Sites
1.1
About Developing with WebCenter Sites
1.2
Typical Tasks for WebCenter Sites Developers
1.2.1
Data Models for Content Display
1.2.2
Content Entry Forms for Content Management Sites
1.2.3
Templates and Elements to Render Content on the Website
1.2.3.1
Element Files
1.2.3.2
APIs and JSP Tags
1.2.3.3
Sessions and Cookies
1.2.4
WebCenter Sites Systems for Development, Management, Delivery, and Testing
1.2.5
Approvals and Publishing
1.2.6
Caching to Optimize Performance
1.2.6.1
Page Caching
1.2.6.2
Resultset Caching
1.2.6.3
Asset Caching
1.2.6.4
Satellite Server Caching
1.2.6.4.1
HTTP Requests
1.2.6.4.2
Satellite Server Servlets
1.3
WebCenter Sites Utilities
1.4
WebCenter Sites Interfaces
1.5
Use Case Scenarios for WebCenter Sites
1.5.1
Developing Informational (Branding) Websites
1.5.2
Creating Marketing-Oriented Websites
1.5.3
Creating Mobile Websites
2
Overview of the Avisports Sample Site
2.1
Touring the Avisports Sample Site as a Content Contributor
2.2
Touring the Infrastructure of the Avisports Sample Site
3
The WebCenter Sites Development Process
3.1
Step 1: Set Up the Team
3.2
Step 2: Create Functional and Design Specifications
3.2.1
Functional Requirements
3.2.2
Page Design
3.2.3
Caching Strategy
3.2.4
Security Strategy (Access Control)
3.2.5
Separate Format from Content (Elements from Assets)
3.2.5.1
Determine the Asset Types (Content)
3.2.5.2
Decide How to Handle Images and Other Blobs
3.2.5.3
Map Out the Functional Design and Format (Elements)
3.2.6
Data Design
3.2.6.1
Asset Types
3.2.6.2
Auxiliary Tables That Support Your Asset Types
3.2.6.3
Visitor Data
3.3
Step 3: Set Management System Requirements
3.4
Step 4: Implement the Data Design
3.5
Step 5: Build the Online Site
3.6
Step 6: Set Up the Management System
3.6.1
Import Content as Assets
3.6.2
Import Catalog Data and Flex Asset Data
3.6.3
Instruct the Editorial Team About Site Design
3.7
Step 7: Set Up the Delivery System
3.8
Step 8: Publish to the Delivery System
Part II Building Your Data Model
4
Understanding the Asset Types and Asset Models
4.1
What Are Asset Models?
4.1.1
Two Data Models
4.1.2
What Are Asset Types?
4.1.2.1
Asset Types Delivered with WebCenter Sites
4.1.2.2
Asset Types Delivered with Engage
4.1.3
Which Asset Model Should You Use to Represent Your Content?
4.1.3.1
When to Use the Basic Model
4.1.3.2
When to Use the Flex Model
4.2
The Basic Asset Model
4.2.1
Relationships Between Basic Assets
4.2.1.1
Associations
4.2.1.2
Unnamed Relationships
4.2.2
Category, Source, and Subtype
4.2.2.1
Category
4.2.2.2
Source
4.2.2.3
Subtype
4.2.3
Basic Asset Types and the Database
4.2.3.1
Template Asset Type and the Database
4.2.3.2
Default Columns in the Basic Asset Type Database Table
4.3
The Flex Asset Model
4.3.1
The Flex Family
4.3.1.1
Parent, Child, and Flex Assets
4.3.2
The Flex Family in the Avisports Sample Site
4.3.3
Flex Attributes
4.3.3.1
Data Types for Attributes
4.3.3.2
Default Input Styles for Attributes
4.3.3.3
Foreign Attributes
4.3.4
Flex Parents and Flex Parent Definitions
4.3.4.1
Business Rules and Taxonomy
4.3.5
Flex Assets and Flex Definition Assets
4.3.6
Flex Families and the Database
4.3.6.1
Default Columns in the Flex Asset Type Database Table
4.3.6.2
The _Mungo Tables
4.3.6.3
The MungoBlobs Table
4.3.6.4
The _AMap Tables
4.4
Assetsets and Searchstates
4.5
Search Engines and the Two Asset Models
4.6
Tags and the Two Asset Models
4.7
Summary: Basic and Flex Asset Models
5
Designing Basic Asset Types
5.1
About the AssetMaker Utility
5.1.1
How AssetMaker Works
5.1.2
Asset Descriptor Files
5.1.2.1
About the Asset Descriptor File
5.1.2.2
About Format and Syntax
5.1.2.3
About the AssetMaker Tags
5.1.3
Columns in the Asset Type's Database Table
5.1.3.1
The Source Column: A Special Case
5.1.3.2
Storage Types for the Columns
5.1.3.3
Input Types for the Fields
5.1.3.4
Data Types for Standard Asset Fields
5.1.4
Elements and SQL Statements for the Asset Type
5.1.4.1
The Elements
5.1.4.1.1
About PreUpdate and PostUpdate Elements
5.1.4.2
The SQL Statements
5.2
Before You Begin Creating Basic Asset Types
5.2.1
Planning the Asset Type Design
5.2.2
Setting Up Your Development System
5.3
Creating Basic Asset Types
5.3.1
Coding the Asset Descriptor File
5.3.2
Uploading the Asset Descriptor File to WebCenter Sites
5.3.3
Creating the Asset Table
5.3.4
Configuring the Asset Type
5.3.5
Enabling the Asset Type on Your Site
5.3.6
Fine-Tuning the Asset Descriptor File
5.3.7
Customizing the Asset Type Elements (Optional)
5.3.8
Adding Subtypes (Optional)
5.3.9
Configuring Association Fields (Optional)
5.3.10
Configuring Categories (Optional)
5.3.11
Configuring Sources (Optional)
5.3.12
Adding Mimetypes (Conditional)
5.3.13
Editing Search Elements to Enable Indexed Search (Optional)
5.3.14
Creating and Assigning Asset Type Icons (Contributor Interface Only)
5.3.15
Coding Templates for the Asset Type
5.3.16
Moving the Asset Types to Other Systems
5.4
Deleting Basic Asset Types
6
Designing Flex Asset Types
6.1
About Designing Flex Asset Types
6.2
Design Tips for Flex Families
6.2.1
Visitors on the Delivery System
6.2.2
Users on the Management System
6.2.3
How Many Attribute Types Should You Create?
6.2.4
Designing Flex Attributes
6.2.4.1
Which Data Types Are Available for Attributes
6.2.4.2
About Using Attribute Editors
6.2.4.3
Where Will Each Attribute Be Used?
6.2.4.4
Attribute Dependencies Imposed by Hierarchy
6.2.5
How Many Definition Types Should You Create?
6.2.6
Designing Parent Definition and Flex Definition Assets
6.2.6.1
Determining Hierarchical Place
6.2.6.2
Determining Attribute Inheritance
6.2.6.3
How Many Flex Parent Definition Assets?
6.2.6.4
How Many Flex Definition Assets?
6.3
The Flex Family Maker Utility
6.4
Flex Asset Elements
6.5
Setting Up Your Development System
6.6
Creating a Flex Asset Family
6.6.1
Creating a Flex Family
6.6.2
(Conditional) Creating Additional Flex Family Members
6.6.3
(Conditional) Configuring the Flex Family Members
6.6.4
Enabling the New Flex Asset Types
6.6.5
Create Flex Attributes
6.6.5.1
Creating Flex Attributes: Basic Procedure
6.6.5.2
Creating Flex Attributes of Type Blob (Upload Field)
6.6.5.3
Creating Flex Attributes of Type Asset
6.6.5.4
Creating Foreign Flex Attributes
6.6.6
(Conditional) Creating Flex Filter Assets
6.6.7
Creating Parent Definition Assets
6.6.8
Creating Flex Definition Assets
6.6.9
Creating Flex Parent Assets
6.6.10
Creating and Assigning Asset Type Icons (Contributor Interface Only)
6.6.11
Coding Templates for the Flex Assets
6.6.12
Testing Your Design (Creating Test Flex Assets)
6.6.13
(Conditional) Creating Flex Asset Associations
6.6.14
Moving Asset Types to Other Systems
6.7
What You May Need to Know About Editing Flex Attributes, Parents, and Definitions
6.7.1
What You May Need to Know About Editing Attributes
6.7.2
What You May Need to Know About Editing Parent Definitions and Flex Definitions
6.7.3
What You May Need to Know About Editing Parents and Flex Assets
6.8
Using Product Sets
6.8.1
About Using Product Sets
6.8.2
Creating a Product Set
7
Creating a Hierarchical Flex Family
7.1
Hierarchical Organization
7.2
Flex Family Specifications
7.3
Creating a Sample Flex Family Using a Real-World Example
7.3.1
Creating a Flex Family
7.3.2
Enabling the New Flex Asset Types
7.3.3
Adding a Flex Family Tab to the WebCenter Sites Tree
7.3.4
Creating Parent Definition Assets
7.3.5
Creating Flex Parent Assets
7.3.6
Creating Flex Definition Assets
7.3.7
Creating Flex Assets
7.3.8
Translating the Formulaic Data Model into a Real-World Data Model
7.3.9
Developing Your Real-World Model
8
Creating Flex Filters
8.1
About Flex Filter Classes and Assets
8.1.1
Flex Filter Classes
8.1.2
Flex Filter Assets
8.2
Defining a Flex Filter Class and Creating a Flex Filter Asset
8.2.1
Implementation of a Flex Filter Class
8.2.1.1
AbstractFlexFilter Class Extension
8.2.2
Defining a Custom Flex Filter Class
8.2.3
Creating a Flex Filter Asset
8.3
Document Transformation Flex Filter
8.3.1
Default Solution
8.3.2
About Custom Solutions
8.3.3
Using a Default Transformation Engine
8.3.4
Customizing Document Transformation Flex Filter
8.3.4.1
Writing and Deploying a Document Transformer Flex Filter
8.3.4.2
Registering the Transformation Engine
8.3.4.3
Registering the Document Transformer
9
Designing Attribute Editors
9.1
About Attribute Editors
9.1.1
The presentationobject.dtd File
9.1.2
The Attribute Editor Asset
9.1.2.1
The Syntax and the Default Tags
9.1.2.2
CHECKBOXES
9.1.2.3
CKEditor
9.1.2.4
PICKASSET
9.1.2.5
PULLDOWN Example
9.1.2.6
RADIOBUTTONS
9.1.2.7
TEXTAREA
9.1.2.8
TEXTFIELD
9.1.2.9
TYPEAHEAD
9.1.2.10
UPLOADER
9.1.3
The Attribute Editor Elements
9.1.4
Conventions for the Attribute Editor Elements
9.2
Creating Attribute Editors
9.3
Customizing Attribute Editors
9.3.1
Example: Customized Attribute Editor
9.3.1.1
Step 1: Editing the presentationobject.dtd File
9.3.1.2
Step 2: Specifying Permission for the Example Attribute Editor
9.3.1.3
Step 3: Editing the TEXTAREA Element
9.3.2
Adding Custom Logic to Validate an Uploaded File
9.4
Considerations About Editing Attribute Editors
10
Configuring Bundled Attribute Editors
10.1
Configuring CKEditor
10.1.1
Before You Begin
10.1.2
How to Create a CKEditor Instance and Enable It for a Field
10.1.3
How to Enable CKEditor for Use in Web Mode
10.1.4
How to Enable Selected Asset Types for the CKEditor
10.1.5
How to Set the Approval Dependency for Included Assets
10.1.6
How to Customize the CKEditor Toolbar
10.1.7
How to Configure Spell Check Support in CKEditor
10.2
Configuring the Clarkii Online Image Editor
10.2.1
How to Create a Clarkii OIE Instance and Enable it for a Field
10.2.2
How to Configure Clarkii OIE Properties
10.2.3
How to Implement a Field Copier Filter to Classify Assets
10.3
Configuring the Image Picker
10.3.1
How to Categorize Image Assets for Display in Image Picker
10.3.2
How to Create Image Picker Attribute Editor Definition Code
11
Working with the WebCenter Sites Database
11.1
Types of Database Tables
11.1.1
Object Tables
11.1.2
Tree Tables
11.1.3
Content Tables
11.1.4
Foreign Tables
11.1.5
System Tables
11.1.6
Identifying a Table's Type
11.2
Types of Columns (Fields)
11.2.1
Generic Field Types
11.2.2
Database-Specific Field Types
11.2.3
Indirect Data Storage with the WebCenter Sites URL Field
11.3
About Adding to the System Tables
11.4
About Property Files and Databases
12
Managing Data in Non-Asset Tables
12.1
Using Methods and Tags to Program Data Management in Non-Asset Tables
12.1.1
About Writing and Retrieving Data
12.1.1.1
Security Through CatalogManager
12.1.1.2
Tree Manager Commands for Managing the Tree Tables
12.1.2
Methods for Querying for Data
12.1.3
Lists and Listing Data
12.2
Coding Data Entry Forms
12.2.1
How To Add a Row
12.2.1.1
The addrowFORM Element
12.2.1.2
Root Element for the addrow Page
12.2.2
How To Delete a Row
12.2.2.1
The deleterowFORM Element
12.2.2.2
Root Element for the deleterow Page
12.2.3
How To Query a Table
12.2.3.1
The SelectNameForm Element
12.2.3.2
The Root Element for the QueryEditRowForm Page
12.2.3.3
The Root Element for the QueryEditRow Page
12.2.4
How To Query a Table with an Embedded SQL Statement
12.2.4.1
QueryInlineSQLForm
12.2.4.2
The Root Element for the QueryInlineSQL Page
12.3
Consideration About Deleting Non-Asset Tables
Part III Developing a Website
13
Website Development with the MVC Framework and APIs
13.1
Server-Side and Client-Side Development Methodologies
13.2
Server-Side MVC Framework
13.2.1
Developer’s Samples Website
13.2.2
WebCenter Sites MVC Framework Overview
13.2.3
Controllers
13.2.4
Views
13.3
Pages, Pagelets, and Elements
13.4
Template and CSElement Assets
13.5
Page Assets and Site Navigation
13.6
Date-Based Preview
13.7
Multilingual Support
13.8
Caching in the MVC Framework
13.9
Server-Side Java APIs
13.9.1
Asset Reader
13.9.2
Navigation Reader
13.9.3
Link Builder
13.9.4
Blob Link Builder
13.9.5
Searcher
13.9.6
Recommendation Reader
13.9.7
Table Reader
13.10
REST APIs
13.11
Sample Websites
14
Developing a Server-Side Website
14.1
About Developing a Server-Side Website
14.2
Working with the Controller Interface
14.3
Creating a Controller
14.4
Creating a Template
14.5
Setting Up the Home Page
14.6
Adding Site Navigation
15
Developing a Client-Side Website
15.1
About Client-Side Websites
15.2
REST Calls for Developing REST-Avisports: Examples
15.2.1
Getting Navigation Menus
15.2.2
Getting the Home Page
15.2.3
Getting an Additional Website Page
15.2.4
Calling an Article from a Page
15.2.5
Calling a Collection Resource with Pagination
15.2.6
Calling a Search Resource
15.2.7
Calling Page Segments
15.2.7.1
Calling a Page Without Segments
15.2.7.2
Calling a Page with Segments That Target Specific Visitors
15.2.7.3
Calling a Page with Segments That Target Different Visitors
15.2.7.4
Calling a Page with Segments That Target More Visitors
16
Website Development with Tag Technologies
16.1
About Choosing a Coding Language
16.2
About the Oracle WebCenter Sites Context
16.2.1
The ICS Object
16.2.2
The FTCS tag
16.3
Understanding WebCenter Sites JSP
16.3.1
About the WebCenter Sites Standard Beginning
16.3.1.1
Taglib Directives
16.3.1.2
Page Directives
16.3.1.3
The cs:ftcs Tag
16.3.2
About JSP Implicit Objects
16.3.3
About JSP Syntax
16.3.4
About JSP Actions
16.3.5
About JSP Declarations
16.3.6
About Scriptlets and Expressions
16.3.7
About JSP Directives
16.3.8
About Oracle WebCenter Sites Tag Libraries
16.3.8.1
Tag Libraries for Both Basic and Flex Assets
16.3.8.2
Tag Libraries for Basic Assets
16.3.8.3
Tag Libraries for Flex Assets
16.4
Understanding WebCenter Sites XML
16.4.1
WebCenter Sites Standard Beginning
16.4.1.1
XML Version and Encoding
16.4.1.2
The DTD File
16.4.1.3
The FTCS Tag
16.4.2
XML Entities and Reserved Characters
16.4.3
XML Parsing Errors
16.5
Understanding WebCenter Sites Tags
16.5.1
Tags That Create the WebCenter Sites Context
16.5.2
Tags That Handle Variables
16.5.3
Tags That Call Pages and Elements
16.5.4
Tags That Create URLs
16.5.5
Tags That Control Caching
16.5.6
Tags That Set Cookies
16.5.7
Programming Construct Tags
16.5.8
Tags That Manage Compositional and Approval Dependencies
16.5.9
Tags That Retrieve Information About Basic Assets
16.5.9.1
Performance Notes About the Asset Tags
16.5.10
Tags That Create Assetsets (Flex Assets)
16.5.11
Tags That Create Searchstates (Flex Assets)
16.6
About Variables Supported in WebCenter Sites
16.6.1
Reserved Variables
16.6.2
Regular Variables
16.6.2.1
Variables with SETVAR
16.6.2.2
Variables Using a URL
16.6.2.3
Default Variables for Elements and Templates with Explorer
16.6.2.4
Variables Using HTML Forms
16.6.3
Session Variables
16.6.4
Working With Variables
16.6.4.1
Syntax to Read Variables' Values
16.6.4.2
Tags to Display Variables' Values
16.6.4.3
Assigning of One Variable Value to Another Variable
16.6.4.4
Variables in HTML Tags
16.6.4.5
Evaluation of Variables with IF/THEN/ELSE
16.6.5
Variables and Precedence
16.6.6
Best Practices with Variables
16.7
Other WebCenter Sites Storage Constructs
16.7.1
Built-ins
16.7.2
Lists
16.7.2.1
Looping Through Lists
16.7.3
Counters
16.8
About Values for Special Characters
17
About Sessions and Cookies
17.1
About Sessions
17.2
Session Lifetime
17.2.1
Session Variables Maintained by WebCenter Sites
17.2.2
Logging In and Logging Out
17.3
Sessions Example
17.3.1
FeelingsForm Element
17.3.2
SetFeeling Element
17.3.3
Meat Element
17.4
About Cookies
17.4.1
CookieServer
17.4.2
Cookie Tags
17.5
Cookie Example
17.5.1
Start.xml
17.5.2
ColorForm
17.5.3
CreateCookie
17.5.4
DisplayWelcome
17.5.5
Running the Cookie Example
17.6
Tips and Tricks
17.7
Satellite Server Session Tracking
17.7.1
Flushing a Session Using a URL
17.7.2
Flushing Current Session Information
17.7.3
Flushing Other Session Information
18
Creating Template, CSElement, and SiteEntry Assets
18.1
About Template, CSElement, and SiteEntry Assets
18.2
About Pages
18.2.1
Elements, Pagelets, and Caching
18.2.2
Calling Pages and Elements
18.2.3
Page vs. Pagelet
18.3
Using CSElement, Template, and SiteEntry Assets
18.3.1
Template Assets
18.3.2
CSElement Assets
18.3.3
SiteEntry Assets
18.3.4
Non-Asset Elements
18.4
Creating Template Assets
18.4.1
Before You Begin Creating a Template Asset
18.4.1.1
Naming a Template Asset
18.4.1.2
Designating a Template as Typed or Typeless
18.4.1.3
Template Sharing and Site Replication
18.4.2
Creating a Template Asset
18.4.2.1
Open the Template Form
18.4.2.2
Name and Describe the Template Asset
18.4.2.3
Configure the Template's Element
18.4.2.4
Configure SiteEntry
18.4.2.5
Configure the Map
18.4.2.6
Create a Thumbnail (Optional)
18.4.2.7
Inspect the Template
18.5
Creating CSElement Assets
18.5.1
Before You Begin Creating a CSElement
18.5.1.1
Naming the CSElement
18.5.1.2
CSElement Sharing and Site Replication
18.5.2
Creating a CSElement Asset
18.5.2.1
Open the CSElement Form
18.5.2.2
Name and Describe the CSElement Asset
18.5.2.3
Configure the Element
18.5.2.4
Configure the Map
18.5.2.5
Save and Inspect the CSElement
18.5.2.6
Add the CSElement to Bookmarks
18.6
Creating SiteEntry Assets
18.6.1
Before You Begin Creating SiteEntry Assets
18.6.2
Creating a SiteEntry Asset
18.6.2.1
Open the SiteEntry Form
18.6.2.2
Create the SiteEntry Asset
18.6.2.3
Save and Inspect the SiteEntry Asset
18.7
Managing Template, CSElement, and SiteEntry Assets
18.7.1
Designating Default Approval Templates (Static Publishing Only)
18.7.2
Editing Template, CSElement, and SiteEntry Assets
18.7.3
Sharing Template, CSElement, and SiteEntry Assets
18.7.4
Deleting Template, CSElement, and SiteEntry Assets
18.7.5
Previewing Template, CSElement, and SiteEntry Assets
18.7.5.1
Templates and Preview
18.7.5.2
CSElement and SiteEntry Assets and Preview
18.8
Using Oracle WebCenter Sites Explorer to Create and Edit Element Logic
18.8.1
Creating Templates and CSElements
18.8.2
Editing Templates and CSElements
19
Creating Templates and Wrappers
19.1
Working with Templates
19.1.1
Layout Templates
19.1.1.1
A layout template can be invoked from a browser
19.1.1.2
A layout template can be assigned to an asset
19.1.1.3
A layout template typically renders an entire web page
19.1.1.4
Use Case 1: Building a Layout Template for Article Assets
19.1.2
Pagelet Templates
19.1.2.1
A pagelet template cannot be invoked directly from a browser
19.1.2.2
A pagelet template cannot be assigned to an asset
19.1.2.3
A pagelet template renders a page fragment
19.1.2.4
Use Case 2: Using Pagelet Templates
19.1.3
Page Templates
19.1.3.1
A Page Template Can be Invoked from a Browser
19.1.3.2
A Page Template Cannot be Assigned to an Asset
19.1.3.3
A Page Template Can be Used for Previewing
19.2
Working with Wrappers
19.2.1
Creating a Wrapper Page
19.2.2
Previewing Wrappers
20
Coding Elements for Templates and CSElements
20.1
About Dependencies
20.1.1
The Publishing System and Approval Dependencies
20.1.1.1
Calculating Approval Dependencies
20.1.1.2
Exists vs. Exact vs. None
20.1.1.3
Approval Templates for Export to Disk
20.1.1.4
Subtypes, Flex Definitions, and Approval Templates
20.1.2
Page Generation and Compositional Dependencies
20.1.2.1
CacheManager and Dynamic Publish Sessions
20.1.2.2
CacheManager and the Preview Function
20.2
About Coding to Log Dependencies
20.2.1
ASSET.LOAD and asset:load
20.2.2
The ASSETSET (assetset) Tag Family
20.2.2.1
Setting the Approval Dependency Type
20.2.3
RENDER.GETPAGEURL and render:getpageurl
20.2.4
RENDER.LOGDEP (render:logdep)
20.2.4.1
Setting the Approval Dependency Type
20.2.5
RENDER.FILTER and render:filter
20.2.6
RENDER.UNKNOWNDEPS and render:unknowndeps
20.3
About Invoking CSElement and SiteEntry Assets
20.4
Coding Elements to Display Basic Assets
20.4.1
Assets That Represent Simple Content
20.4.2
Associations
20.4.3
ImageFile Assets or Other Blob Assets
20.4.4
Basic Assets That Can Have Embedded Links
20.4.5
Collections
20.4.5.1
Collection Templates and Approval Dependencies
20.4.5.2
Collection Templates and Compositional Dependencies
20.4.6
Query Assets
20.4.7
Page Assets
20.5
About Coding Elements that Display Flex Assets
20.5.1
Assetsets
20.5.2
Searchstate Objects
20.5.3
Assetsets, Searchstates, and Flex Attribute Asset Types
20.5.4
Scope
20.6
Coding Templates That Display Flex Assets
20.6.1
Example Data Set for the Examples in This Section
20.6.2
Examples of Assetsets with One Product (Flex Asset)
20.6.2.1
Create a Searchstate and Apply It to an Assetset
20.6.2.2
Get the Price of the Product
20.6.2.3
Display the Price of the Product
20.6.2.4
Get the Colors for the Product
20.6.2.5
Display the Colors of the Product
20.6.2.6
Create a List Object for the ASSETSET.GETMULTIPLEVALUES tag
20.6.2.7
Get the Value for Both Price and Color with ASSETSET.GETMULTIPLEVALUES
20.6.2.8
Display the Value of Price and Color for the jeans-2 Product
20.6.3
Special Cases: Flex Attributes of Type Text, Blob, and URL
20.6.3.1
About Flex Attributes of Type Text
20.6.3.2
About Flex Attributes of Type Blob
20.6.3.3
Creating a BlobServer URL
20.6.3.4
Getting and Displaying the Value of a Blob Flex Attribute
20.6.4
Examples of Assetsets with Multiple Products (Flex Assets)
20.6.4.1
Creating a Searchstate and Apply it to an Assetset
20.6.4.2
Displaying the Number of Assets in the Assetset
20.6.4.3
Displaying the Colors That the Jeans Are Available In
20.6.4.4
Displaying Both the Colors and the Styles for the Jeans in the Assetset
20.6.4.5
Creating a Table That Displays All the Jeans and Their Attribute Values
20.6.4.6
Searching for Jeans Based on a Range of Prices
20.6.4.7
Searching for Jeans with a Wildcard for Color
20.6.4.8
Searching for Jeans with Specific Colors
20.7
Creating URLs for Hyperlinks
20.7.1
RENDER.GETPAGEURL (render:getpageurl)
20.7.2
RENDER.SATELLITEBLOB (render:satelliteblob)
20.7.3
RENDER.GETBLOBURL (render:getbloburl)
20.7.4
Using the referURL Variable
20.8
Handling Error Conditions
20.8.1
Using the Errno Variable
20.8.2
Ensuring that Incorrect Pages Are Not Cached
20.9
Encoding Page Arguments
20.10
What You May Need to Know About Securing Your Site Against XSS Attacks
21
Coding Templates for In-Context and Presentation Editing
21.1
Coding Templates for In-Context Content Editing
21.1.1
Attribute Data Types
21.1.2
Making String Fields Editable
21.1.2.1
Variants of the <insite:edit/> Tag
21.1.3
Making Text Fields Editable
21.1.4
Making Date Fields Editable
21.1.4.1
Date Formatting APIs
21.1.4.2
Enabling Date Fields for Editing in Web Mode
21.1.5
Making Binary Fields Editable
21.1.6
Making Asset Fields Editable
21.1.6.1
Editing an Association
21.1.6.2
Editing a Parent Asset
21.1.7
Number Fields
21.1.8
Multivalued Fields
21.1.8.1
Example 1: Editing Multivalued Text Fields
21.1.8.2
Example 2: Modifying Multivalued Text Fields
21.1.8.3
Specifying a Different Ordering
21.1.8.4
Editing Mode and Caching
21.2
Coding Templates for Presentation Editing
21.2.1
Selecting a Different Layout for the Entire Web Page
21.2.2
Selecting a Different Layout for a Page Fragment
21.2.2.1
Defining a Slot for Presentation Editing
21.2.2.2
Adjusting the Slot Title
21.2.2.3
Controlling Template Arguments
21.2.3
Editing Presentation and Content Simultaneously
21.2.3.1
Understanding Content-Editable Slots and Presentation-Editable Slots
21.2.3.2
Combining Content-Editable Slots and Presentation-Editable Slots
21.2.4
Understanding the Context System Variable
21.2.4.1
About Defining the Scope of the Slot
21.2.4.2
Using the Context Variable in Action
21.2.4.3
Initializing the Context Value
21.2.4.4
Overriding Context
21.2.4.5
Caching Context
21.2.5
Using Slots with CSElement and SiteEntry Assets
21.2.5.1
Defining a Slot Containing a CSElement Asset
21.2.5.2
When to Use CSElement or SiteEntry Assets
21.2.5.3
About Defining Legal Arguments
21.2.5.4
Consideration About Using Nested Slots
21.2.6
Constraining Asset Types
21.2.7
Preventing CSS and JavaScript Conflicts
21.3
Enabling Content Creation for Web Mode
21.3.1
Defining a Start Menu for In-Context Creation
21.3.2
Providing Layout Templates for In-Context Creation
21.3.2.1
Adjusting Stylesheets
21.3.2.2
Adjusting Stylesheets for Slots
21.3.3
Providing Empty Value Indicators
21.3.4
Providing Editing-Specific Presentation Logic
22
Template Element Examples for Basic Assets
22.1
Creating Basic Modular Design
22.1.1
Home Element
22.1.2
MainStoryList Element
22.1.3
LeadSummary Element
22.1.4
TeaserSummary Element
22.1.5
Back to LeadSummary
22.1.6
Back to MainStoryList
22.1.7
Back to Home
22.2
Coding Links to the Article Assets in a Collection Asset
22.2.1
SectionFront Element
22.2.2
PlainList Element
22.3
Using the ct Variable
22.3.1
SectionFront Element
22.3.2
TextOnlyLink Element
22.3.3
ColumnistFront
22.4
Coding Templates for Query Assets
22.4.1
Home Element
22.4.2
WireFeedBox Element
22.4.3
ExecuteQuery Element
22.4.4
Back to WireFeedBox
22.5
Displaying an Article Asset Without a Template
22.5.1
Full Element
22.5.2
AltVersionBlock Element
22.5.3
EmailFront Element
22.6
Displaying Site Navigation Information
22.6.1
Home Element
22.6.2
SiteBanner Element
22.6.3
TopSiteBar Element
22.6.3.1
Creating the Link for the Home Page
22.6.3.2
Creating the Links to the Home Page's Child Pages
22.6.4
Back to SiteBanner
22.7
Displaying Non-Asset Information
22.7.1
Home Element
22.7.2
ShowMainDate Element
23
Creating Collection Assets, Query Assets, and Page Assets
23.1
About Creating Assets
23.2
Creating Collection Assets
23.2.1
Before You Begin
23.2.2
Creating a Collection Asset
23.2.3
Sharing a Collection Asset
23.3
Creating Query Assets
23.3.1
How to Use Query Assets and Other Assets
23.3.2
How to Store the Query
23.3.3
Commonly Used Fields for Queries
23.3.4
Before You Begin Creating Query Assets
23.3.5
Creating a Query Asset
23.3.6
Sharing Query Assets
23.3.7
Previewing and Approving Query Assets
23.4
Creating Page Assets
23.4.1
Understanding the Page Asset Model
23.4.2
How To Design Page Attributes
23.4.3
How to Create a Page Asset
23.4.4
How To Place Page Assets
23.4.5
How To Move Page Assets in the Site Tree
23.4.5.1
Reordering Child Pages
23.4.5.2
Changing Parent Pages
23.4.6
Considerations About Placing Page Assets and Workflow
23.4.7
Tips About Editing Page Assets
23.4.8
Considerations About Deleting Page Assets
24
Best Practices for Creating Future Site Preview Assets and Templates
24.1
About Implementing Future Site Preview
24.2
Creating Sets of Assets
24.3
Writing Templates for Future Site Preview
24.3.1
The asset:filterassetsbydate Tag
24.3.2
The Input List
24.4
Caching Considerations
25
Configuring Sites for Multilingual Support
25.1
About Configuring a Site for Multilingual Support
25.1.1
Dimensions
25.1.2
Dimension Sets
25.1.3
Cross-Site Multilingual Support
25.1.4
Master Assets, Translations, and Multilingual Sets
25.1.5
Translations and Asset Relationships
25.1.6
Approval Dependencies
25.2
Working with Locale Filtering
25.2.1
Options for Implementing Asset Relationships Through Locale Filtering
25.2.2
Understanding the Included Locale Filters
25.2.2.1
The Simple Filter
25.2.2.2
The SimpleLookup Filter
25.2.2.3
The Hierarchical Filter
25.2.3
About Using Custom Locale Filters
25.2.4
Accounting for Compositional Dependencies
25.2.4.1
Asset Lookup Chain
25.2.4.2
Caching Rules
25.2.5
About Adding Filtering Support to Your Site
25.2.5.1
About Adding Filtering to Templates
25.2.5.2
About Obtaining and Maintaining a Visitor's Locale Preference
25.2.5.3
About Filtering Search Results
25.3
Planning Multilingual Support for a Site
25.4
Configuring Multilingual Support for a Site
25.4.1
Configuration Quick Reference
25.4.2
Enabling the Dimension and DimensionSet Asset Types
25.4.3
Enabling the Locale Subtype of the Dimension Asset Type
25.4.4
How To Create a Locale
25.4.5
How to Share a Locale to Another Site
25.4.6
How To Create and Configure a Dimension Set
25.4.7
How To Share a Dimension Set to Another Site
25.4.8
How To Configure a Locale Filter
25.4.9
How to Configure the Fallback Hierarchy of the Hierarchical Filter
25.4.10
How to Bulk-Assign a Default Locale to Assets in a Site
25.4.10.1
Sample Element Code for Bulk-Assigning a Default Locale
25.5
Tips for Using WebCenter Sites Translation Mechanism
25.5.1
What Do Customers Want?
25.5.2
Use of WebCenter Sites Translation Mechanism to Effectively Meet Customers' Requirements
Part IV Developing Mobile Websites
26
Configuring WebCenter Sites to Support Mobile Websites
26.1
Prerequisites for Mobility Developers
26.2
Understanding Key Mobility Concepts
26.2.1
About Device Repository
26.2.2
About Device Groups and Suffixes
26.2.3
About Device Assets
26.2.4
About Site Navigations
26.2.5
About Mobile Templates
26.3
Prerequisites for Configuring Mobility Features
26.4
Configuring Mobility Features
26.4.1
How to Configure the Device Repository
26.4.2
How to Create Custom Filters for Device Group Criteria
26.4.2.1
Using the Default DefaultCustomFIlter.java Custom Filter Provided with WebCenter Sites
26.4.2.2
Creating Your Own DeviceGroupFilter Implementation
26.4.3
How to Activate Your Device Repository
26.4.4
How to Configure Device Groups
26.4.5
How to Prioritize Device Groups
26.4.6
How to Create Device Assets
26.4.7
How to Create Site Navigations
26.4.8
How to Organize Site Navigations
26.5
Mirror Publishing the Device Repository to Delivery System
26.6
Creating Templates
26.6.1
Basic Guidelines for Creating Template Variants
26.6.2
Understanding Mobility Tags
26.6.3
Tags Modified to Support Device Detection and Page Rendering
26.6.4
Creating Template Variants
26.6.4.1
How to Create a Variant of a Single Template
26.6.4.2
How to Create Template Variants in Bulk
26.7
Optimizing Images for Mobile Websites
26.7.1
How to Optimize Images Using the Image Optimization Filter
26.7.1.1
Create a Flex Filter of the ImageOptimizationFilter Type
26.7.1.2
Include the Filter in Your Site's Image Definition
26.7.1.3
Create Instances of the blob Type Attribute Asset
26.7.1.4
Set Image Properties for Optimization
26.7.1.5
Apply the Image Optimization Filter on Existing Images
26.7.1.6
Verify If the Image Optimization Filter Has Been Applied
26.7.1.7
Use the Optimized Images in Your Site
26.7.2
How to Optimize Images Using a Pluggable Interface
26.8
How Device Detection Works
Part V Coding with Developer Tools
27
About Developer Tools
27.1
Introduction to Developer Tools Architecture
27.2
IDE Integration
27.3
The Developer Tools Workspace
27.4
Connecting to WebCenter Sites Instances
27.5
Synchronization
27.6
JSP Management
27.7
Command Line Interface (CLI)
27.8
About Using a Version Control System
28
Installing and Configuring Developer Tools
28.1
Prerequisites
28.2
Setting Up Developer Tools
28.2.1
How to Install the Developer Tools Plug-in
28.2.2
How to Verify the Developer Tools Plug-In Installation
28.2.3
How to Integrate WebCenter Sites with the Eclipse IDE
28.2.4
How to Enable Code Completion for Remote Hosts
28.2.5
How to Use Developer Tools to Work with Existing Resources
28.2.6
How to Manage WebCenter Sites Resources
28.2.7
How to Work with a Pre-Existing Project in Eclipse
28.3
Updating Developer Tools
28.3.1
How to Update the Location of the Developer Tools Plug-In
28.3.2
How to Check for Updates to Existing Plug-Ins
28.3.3
How To Verify That the Developer Tools Plug-In Has Been Updated
28.4
Managing WebCenter Sites Resources in Eclipse
28.4.1
How to Create Resources
28.4.2
How to Display Developer Tools Views in Panels
28.4.3
How to Export and Import Data Between WebCenter Sites and Developer Tools
28.5
Uninstalling Developer Tools
29
Introducing Developer Tools Features in Eclipse
29.1
About the Oracle WebCenter Sites Perspective
29.2
Understanding the Configuration Form
29.3
Understanding Projects and Workspaces in Eclipse
29.4
About Developer Tools Views
29.4.1
Workspace
29.4.2
Log Viewer
29.4.3
Templates View
29.4.4
Preview View
29.4.5
Sites View
29.4.6
Controllers View
29.4.7
Logging Configuration View
29.4.8
Developer Reference View
29.4.9
Wizards
29.5
Data Synchronization (Export/Import) Tool
29.5.1
Export (Sync Resources to Workspace from WebCenter Sites)
29.5.2
Import (Sync Resources to WebCenter Sites from the Workspace)
30
Developing JSPs with Developer Tools
30.1
JSP Development with Developer Tools
30.2
Tag and Java API Completion
30.3
Debugging
31
Creating Templates for Mobile Websites Using Developer Tools
31.1
About Mobility Support in Developer Tools
31.2
Creating Mobile Templates from the Sites Workspace Tab
31.3
Creating Mobile Templates in Sites and Device Groups Views
32
Synchronizing and Exchanging Data Using Developer Tools
32.1
Synchronization Using Developer Tools
32.2
Synchronization Scenarios
32.3
About Dependency Resolution
32.4
ID Mapping
32.4.1
About ID Mapping
32.4.2
Overriding a Resource's fw_uid
32.4.3
What You Should Know About Using Developer Tools with Pre-Existing Resources
32.5
Working with Site Mappings
32.5.1
About Natural Site Mappings
32.5.2
About Overriding Natural Site Mappings With the Command Line Interface (CLI)
33
Using Workspaces in Developer Tools
33.1
Introduction to Workspaces
33.2
Workspace Structure
33.3
Asset Storage Structure
33.4
Code-Based Resource Storage Structure
33.5
Attribute Editor Storage Structure
33.6
Asset Type Storage Structure
34
Using Developer Tools Command Line Interface (CLI)
34.1
Running and Using the Command Line Interface (CLI)
34.2
Example Commands
34.3
About Importing Modules
34.4
Status Codes for Operations Invoked from the Developer Tools Command Line Interface (CLI)
35
Integrating Developer Tools Workspaces with Version Control Systems
35.1
About Version Control With Developer Tools
35.2
About Integrating Developer Tools With a VCS
35.3
Using a Developer Tools-Integrated VCS: Example
36
Using Developer Tools to Manage and Exchange Resources
36.1
Today: Develop a Site and Associated Resources
36.2
Three Days Later... Deployment
37
Using the Developer Tools Command Line Interface (CLI) to Create Reusable Modules
37.1
Creating a Reusable Model
37.2
List the Resources in the WebCenter Sites Instance
37.3
List Start Menu Items
37.4
Export All Resources to a Workspace
37.5
Inspect the Module's Content
37.6
Archive the Module
37.7
Import the Module to a WebCenter Sites Instance
Part VI Managing Caching
38
Understanding Page Design and Caching
38.1
About Modular Page Design
38.2
About Caching
38.2.1
WebCenter Sites Caching
38.2.2
BlobServer and Caching
38.2.3
Satellite Server Caching
38.2.3.1
Cache Expiration
38.2.3.2
Caching with the Satellite Servlet
38.2.3.3
Viewing the Contents of the Satellite Server Cache
38.2.3.3.1
CacheManager
38.2.3.3.2
The SiteCatalog Table
38.2.3.3.3
The Cache Key
38.2.3.3.4
Caching Properties
38.2.3.3.5
Page Caching Properties
38.2.3.3.6
Satellite Server Properties
38.3
Double-Buffered Caching
38.3.1
About Implementing Double-Buffered Caching
38.3.1.1
Pagelet Caching Strategies
38.3.2
Setting cscacheinfo
38.3.3
Coding for Caching
38.3.4
Caching and Security
38.3.4.1
WebCenter Sites Security
38.3.4.2
Satellite Server Security
39
Working with Resultset Caching and Queries
39.1
About Resultset Caching and Queries
39.2
Caching Frameworks
39.3
Database Queries
39.4
How Resultset Caching Works
39.5
Reducing the Load on the Database
39.6
Specifying the Table Name
39.6.1
SELECTTO
39.6.2
EXECSQL
39.6.3
CALLSQL
39.6.4
Search Forms in the WebCenter Sites Interface
39.6.5
Query Asset
39.6.6
SEARCHSTATE
39.7
Flushing the Resultset Cache
39.8
Switching Between Caching Frameworks
39.9
About Resultset Caching Strategy and Properties
39.9.1
Planning Your Resultset Caching Strategy
39.9.2
Default Properties
39.9.3
Table-Specific Properties
40
Using Cache Management with WebCenter Sites
40.1
About the WebCenter Sites Rendering Engine Cache
40.2
About the CacheManager
40.3
Enabling CacheManager
40.3.1
Tier 1 Cache Configuration Properties
40.3.2
Tier 2 Cache Configuration Properties
41
Using Advanced Page Caching Techniques
41.1
About Advanced Page Caching
41.2
Configuring the WebCenter Sites Cache
41.2.1
Configuring Maximum Cache Size
41.2.2
Setting Expiration Time for an Individual Entry
41.2.3
Explicitly Removing Entries from Cache
41.2.3.1
Manual Removal
41.2.3.2
Automatic Removal
41.3
Configuring the Blob Server Cache
41.3.1
Consideration About Configuring Maximum Cache Size
41.3.2
Setting Expiration Time for an Individual Entry
41.3.3
Explicitly Removing Entries from Cache
41.3.3.1
Manual Removal
41.3.3.2
Automatic Removal
41.4
Configuring the Satellite Server Cache
41.4.1
Configuring Maximum Cache Size
41.4.2
Explicitly Removing Entries from Cache
41.5
CacheInfo String Syntax
41.6
Caching Best Practices
41.6.1
Few Pagelets Per Page
41.6.2
Share Cache Between Pages
Part VII Migrating Your Work to Your Content Management System
42
Importing Assets of Any Type
42.1
About Importing Assets Using the XMLPost Utility
42.1.1
What the Developer Does
42.1.2
What XMLPost and WebCenter Sites Do
42.2
Using XMLPost Configuration Files
42.2.1
Configuration Properties for XMLPost
42.2.2
Configuration Properties for the Posting Element
42.2.3
Configuration Properties for the Source Files
42.2.3.1
Site Properties
42.2.3.2
Asset Type Properties
42.2.4
Sample XMLPost Configuration File
42.3
Using XMLPost Source Files
42.3.1
Sample XMLPost Source File
42.3.2
XMLPost and File Encoding
42.4
Using the XMLPost Utility
42.4.1
Before You Begin
42.4.2
Running XMLPost from the Command Line
42.4.3
Identifying Source Files
42.4.3.1
A Single File
42.4.3.2
A Directory of Files
42.4.3.3
A List File
42.4.4
Running XMLPost as a Batch Process
42.4.5
Running XMLPost Programmatically
42.5
Customizing RemoteContentPost and PreUpdate
42.5.1
Setting a Field Value Programmatically
42.5.2
Setting an Asset Association
42.6
Troubleshooting XMLPost
42.6.1
XMLPost Does Not Run and Does Not Create a Log File Message
42.6.2
XMLPost Fails and there is a Missing Entity Statement in the Log File
42.6.3
Error 105 is Triggered when XMLPost Tries to Save an Asset
42.6.4
Debugging the Posting Element
43
Importing Flex Assets
43.1
About Importing Flex Assets
43.1.1
Before You Begin Importing the Data Structure Flex Asset Types
43.1.2
About Importing the Flex Assets
43.1.2.1
When to Use BulkLoader
43.1.2.2
When to Use XMLPost
43.1.3
Overview of the Process to Import Flex Assets
43.1.4
About Custom Data Delimiters
43.2
Understanding XMLPost and the Flex Asset Model
43.3
About Importing the Structural Asset Types in the Flex Model
43.3.1
Attribute Editors
43.3.1.1
Sample Configuration File: Attribute Editor
43.3.1.2
Sample Source File: Attribute Editor
43.3.2
Flex Attributes
43.3.2.1
Sample Configuration File: Flex Attribute
43.3.2.2
Sample Source File: Attribute
43.3.3
Flex Definitions and Flex Parent Definitions: Sample Files
43.3.3.1
Sample Configuration File: Flex Definition
43.3.3.2
Sample Source File: Flex Definition
43.3.4
Flex Parents
43.3.4.1
Sample Configuration File: Individual Flex Parent
43.3.4.2
Sample Source File: Individual Flex Parent
43.4
Importing Flex Assets with XMLPost
43.4.1
Configuration File Properties and Source File Tags for Flex Assets
43.4.1.1
For the addData Posting Element
43.4.1.2
For the RemoteContentPost Posting Element
43.4.2
Sample Flex Asset Configuration File for addData
43.4.3
Configuration File Properties and Attributes of Type Blob (or URL)
43.4.3.1
Attribute of Type Blob (or URL) As an Upload Field
43.4.3.2
Attribute of Type Blob (or URL) As a Text Field
43.4.4
Sample Flex Asset Source File for addData
43.4.4.1
Sample File
43.4.4.2
Handling Special Characters
43.4.4.3
Flex Assets and Their Parents
43.4.4.4
Specifying the Parents of a Flex Asset
43.4.4.5
Setting Attribute Values for Parents
43.4.4.6
Setting Multiple Values in a Flex Source File
43.4.5
Sample Flex Asset Configuration File for RemoteContentPost
43.4.6
Sample Flex Asset Source File for RemoteContentPost
43.5
Editing Flex Assets with XMLPost
43.5.1
Configuration Files for Editing Flex Assets
43.5.2
Source Files for Editing Flex Assets
43.5.2.1
Changing the Value of an Attribute
43.5.2.2
Removing an Attribute Value
43.5.2.3
Editing Parent Relationships
43.6
Deleting Assets with XMLPost
43.6.1
Configuration Files for Deleting Assets
43.6.2
Source Files for Deleting Assets
44
Importing Flex Assets with the BulkLoader Utility
44.1
About the BulkLoader Utility
44.1.1
Understanding BulkLoader Features
44.1.2
How BulkLoader Works
44.1.3
About Using the BulkLoader Utility
44.1.4
Importing Flex Assets from Flat Tables
44.1.4.1
The Basic Steps
44.1.4.2
Driver Requirements
44.1.4.3
Requirement for DB2
44.1.5
When to Use XMLPost to Import Structural Assets
44.1.6
Creating the Input Table (Data Source)
44.1.6.1
Inserts
44.1.6.2
Updates
44.1.7
Creating the Mapping Table
44.1.8
Creating the BulkLoader Configuration File
44.1.8.1
BulkLoader Configuration File Properties
44.1.8.2
Setting the initID Parameter
44.1.8.3
Example Configuration File
44.1.9
Running the BulkLoader Utility
44.1.10
Enabling Access to Imported Assets in the Contributor Interface
44.1.11
Reviewing Feedback Information
44.1.12
Approving and Publishing the Assets to the Delivery System
44.2
Importing Flex Assets Using a Custom Extraction Mechanism
44.2.1
IDataExtract Interface
44.2.2
IPopulateDataSlice
44.2.3
IFeedback Interface
44.3
Approving Flex Assets with the BulkApprover Utility
44.3.1
Configuring BulkApprover
44.3.2
Using BulkApprover
Part VIII Security: Managing Content Management Users
45
Managing Users on the Management System
45.1
About the Directory Services API
45.1.1
Entries
45.1.2
Hierarchies
45.1.3
Groups
45.1.4
Directory Services Tags
45.1.5
Directory Operations
45.1.5.1
Searching
45.1.5.2
Looking Up a User
45.1.5.3
Listing Users
45.1.5.4
Directory Services Code Samples
45.1.6
Error Handling
45.1.7
Directory Services Applications Troubleshooting
45.2
Working with Custom User Manager
45.2.1
What is Custom User Manager?
45.2.2
Sample Implementation of Custom User Manager
45.2.3
Integrating the Sample Implementation with WebCenter Sites
45.2.4
What You May Need to Know About the Custom User Manager
45.3
Controlling User Access
45.3.1
ACL Tags
45.3.2
USER Tags
45.3.3
WebCenter Sites and Encryption
Part IX Publishing Your Site
46
Publishing Your Content Management Site to Make it Available Online
Part X Developing Personalized and Targeted Websites with Engage
47
Creating Visitor Data Assets
47.1
About Visitor Data Assets
47.1.1
Visitor Attributes
47.1.2
History Attributes and History Definitions
47.1.3
Segments
47.1.4
Developing Visitor Data Assets: Process Overview
47.2
Creating Visitor Data Assets
47.2.1
Creating Visitor Attributes
47.2.1.1
Configure the Data Type
47.2.1.2
Configure the Constraint Criteria
47.2.1.3
Save the Attribute
47.2.2
Creating History Attributes
47.2.2.1
Configure the Constraint Criteria
47.2.2.2
Save the History Attribute
47.2.3
Creating History Definitions
47.3
Verifying Visitor Data Assets
47.4
Approving Visitor Data Assets
48
Understanding Recommendation Assets
48.1
About Recommendation Assets
48.2
Development Process for Setting Up Recommendations
48.3
About Creating a Dynamic List Element
49
Working with Memory-Centric Visitor Tracking
49.1
About Memory-Centric Visitor Tracking
49.1.1
Database-Centric Model
49.1.2
Memory-Centric Model
49.2
Enabling Memory-Centric Visitor Tracking
49.2.1
Visitor Tracking Property
49.2.2
Supporting Code
49.2.3
Batch-Saving History Attributes to the Database
49.3
How Memory-Centric Visitor Tracking Works
49.3.1
Visitor Detection
49.3.2
Retrieval of Scalar Values
49.3.3
Collection of History Attribute Values
49.3.4
Computation of Sums and Counts
49.3.5
Computation of Segments
49.3.6
Display of Recommended Assets
49.3.7
Logging of Dependencies
50
Coding Engage Pages
50.1
Commerce Context and Visitor Context
50.2
Identification of Visitors and Linking Sessions
50.3
Collection of Visitor Data
50.4
Coding of Site Pages That Collect Visitor Data
50.4.1
Example 1: Visitor Attributes
50.4.2
Example 2: History Definition
50.4.3
Example 3: Visitor Attribute of Type Binary
50.5
Templates and Recommendations
50.5.1
Creating Templates for Recommendations
50.5.2
Creation of Templates for Recommendations Using Oracle Real-Time Decisions
50.6
What You May Need to Know About Shopping Carts and Engage
50.7
Debugging Site Pages
50.7.1
Session Links
50.7.2
Visitor Data Collection
50.7.3
Recommendations and Promotions
Part XI Running A/B Testing
51
Developing for A/B Testing
51.1
A/B Testing Prerequisites
51.2
Scripting Templates for A/B Testing
51.3
Updating Cache Criteria for A/B Testing
51.4
Viewing A/B Test Details as JSON
51.5
Understanding Confidence Algorithms
Part XII Customizing Blogs
52
Customizing Blog Components
52.1
Customizing the Blog Asset Form
52.1.1
Creating a Blog Attribute
52.1.2
Adding a Blog Attribute to the Blog Asset Definition
52.2
Adding Blog Functionality to CM Sites
52.2.1
Creating Blog Pages
52.2.2
Adding Blog Code
52.2.3
Adding Blog Parameters to Your Site's SiteEntry Asset
52.3
Customizing URLs for the RSS Feed
Part XIII Developing WebCenter Sites: Visitor Services
53
Developing WebCenter Sites: Visitor Services
53.1
Visitor Services Overview
53.2
Configuring the Visitor Services URL
53.3
Configuring an Identity Provider
53.3.1
Configuring Identity Provider Settings
53.3.2
Integrating Oracle Access Manager (OAM) with Visitor Services
53.3.3
Creating a Custom Identity Provider: Example
53.4
Configuring an Access Provider
53.5
Configuring One or More Profile Providers
53.5.1
Configuring Profile Provider Settings and Enrichment Rules
53.5.1.1
About Configuring Eloqua Profile Provider
53.5.2
Creating a Custom Profile Provider: Example
53.6
Creating One or More Aggregation Templates
53.7
Optimizing Experiences Using Visitor Services Data
53.7.1
How WebCenter Sites Components Request Visitor Services Profile Information
53.7.2
Configuring Visitor Services with Engage
53.7.3
Linking Visitor Profiles and Managing Cookies
53.7.4
Storing Additional Information with Extended Attributes and Activities
53.7.4.1
About Extended Attributes and Activities
53.7.4.2
How to Use Extended Attributes and Activities in Visitor Services
53.8
Visitor Services Reference
53.8.1
About the Visitor Services Architecture
53.8.2
Identity Provider Reference
53.8.2.1
About the Identity Providers
53.8.2.2
How Visitor Services Identifies Visitors to Your Website
53.8.3
Access Provider Reference
53.8.3.1
About Container Protection and Visitor Services Protection
53.8.3.2
How Container Protection Works
53.8.3.3
How Visitor Services Protection Works
53.8.4
Profile Provider Reference
53.8.4.1
About the Profile Providers and Enrichment Service
53.8.4.1.1
Profile Providers
53.8.4.1.2
Enrichment Service
53.8.4.1.3
How Profile Provider and Enrichment Services Work
53.8.4.2
How Visitor Services Gathers and Enriches Visitor Attributes from Multiple Channels
53.8.5
Aggregation Template Reference
53.8.5.1
About Aggregation Templates
53.8.5.1.1
How the Aggregation Service Works
53.8.5.2
How Visitor Services Merges Raw Visitor Profiles into a Single Aggregated Profile
53.8.5.3
How Visitor Services Makes Aggregated Visitor Profiles Available for Targeting, Testing, and Analysis
53.8.6
About the Visitor Services Data Model
53.8.7
Glossary
Part XIV Controlling the Site Capture Process
54
Coding the Crawler Configuration File
54.1
About Controlling a Crawler
54.2
BaseConfigurator Methods
54.2.1
getStartUri
54.2.2
createLinkExtractor
54.3
Crawler Customization Methods
54.3.1
getMaxLinks
54.3.2
getMaxCrawlDepth
54.3.3
getConnectionTimeout
54.4
getSocketTimeout
54.5
getPostExecutionCommand
54.6
getNumWorkers
54.7
getUserAgent
54.8
createResourceRewriter
54.9
createMailer
54.10
getProxyHost
54.11
getProxyCredentials
54.12
Interfaces
54.12.1
LinkExtractor
54.12.1.1
LinkExtractor Interface
54.12.1.2
Using the Default Implementation of LinkExtractor
54.12.1.3
Writing and Deploying a Custom Link Extractor
54.12.2
ResourceRewriter
54.12.2.1
ResourceRewriter Interface
54.12.2.2
Using the Default Implementations of ResourceRewriter
54.12.2.3
Writing a Custom ResourceRewriter
54.12.3
Mailer
54.12.3.1
Mailer Interface
54.12.3.2
Using the Default Implementation of Mailer
54.12.3.3
Writing a Custom Mailer
54.13
Summary of Methods and Interfaces
54.13.1
Methods
54.13.2
Interfaces
Part XV Integrating with Third-Party Content Sources
55
Integrating Third-Party Content Sources Using Proxy Assets
55.1
Proxy Asset Architecture and the Contributor Interface
55.2
Installing Sample Proxy Assets
55.2.1
Set up a Proxy Asset Directory
55.2.2
Create a Proxy Asset
55.2.3
Add the Search Functionality for the Proxy Asset
55.2.4
Add the Thumbnail Grid Functionality for the Proxy Asset
55.2.5
Add the Tree Functionality for the Proxy Asset
55.3
Integrating External Content in the Contributor Interface
55.3.1
Case Study: The ProxyTest Repository
55.3.2
Registering a New Proxy Asset Type
55.3.3
About Implementing UI Integration Code
55.3.4
Customizing Search
55.3.4.1
Getting Search Results Using the Provided Third-Party API
55.3.4.2
Turning Search Results into Proxy Assets, Filter Incoming Search Results, Register External Content, and Gather Data for Search Grid Widget
55.3.4.3
Building a Data Store for the Grid Widget
55.3.4.4
Testing Custom Search
55.3.4.5
Additional Customizations
55.3.5
Implementing a Custom Tree
55.3.5.1
Registering the Custom Tree Tab
55.3.5.2
Implementing the Tree Code
55.4
Setting Up YouTube Proxy Assets
55.5
User Interface Customizations
55.5.1
Customizing the Search Start Menu
55.5.2
Customizing the Content Tree
55.6
Information About Embedding Proxy Assets in Web Pages
55.6.1
Writing a Template for Proxy Assets
55.6.2
Using Proxy Assets in Slots
55.6.3
About Caching Proxy Assets
Part XVI Developing Applications with the Web Experience Management (WEM) Framework
56
About the Web Experience Management (WEM) Framework
56.1
About the WEM Framework
56.2
Prerequisites for Application Development
56.2.1
Technologies
56.2.2
WebCenter Sites Interfaces, Objects, and APIs
56.2.3
Documentation
56.2.4
Sample Applications and Files
56.2.5
Application Access
56.3
Getting Started
57
Understanding the WEM Framework and Services
57.1
Support for Application Development
57.2
REST Services
57.3
UI Container
57.3.1
Registration
57.3.2
WEM Context Object
57.4
Single Sign-On
57.5
Authorization Model
57.6
Custom Applications
57.7
Requirements for REST Resources
58
Working with the Articles Sample Application
58.1
About the Articles Sample Application
58.2
Launching the Articles Sample Application
58.2.1
Building and Deploying the Articles Application
58.2.2
Registering the Articles Sample Application
58.3
Testing the Articles Application
59
Developing Applications with WEM Framework
59.1
About the Articles Sample Application's Structure
59.2
About the Articles Sample Application's Configuration Files
59.3
Making REST Calls
59.3.1
Making REST Calls from JavaScript
59.3.2
Making REST Calls from Java
59.4
Constructing URLs to Serve Binary Data
59.5
Accessing Parameters from the WEM Framework
59.5.1
Initializing and Using Context Object in the Same Domain
59.5.2
Initializing and Using Context Object for Cross-Domain Applications
59.5.3
Methods Available in Context Object
59.6
Registering Applications with Different Views
59.6.1
Registering Applications with an iframe View
59.6.2
Registering Applications with JavaScript and HTML Views
59.6.2.1
Rendering JavaScript View
59.6.2.2
Rendering HTML View
60
Developing Custom REST Resources with WEM Framework
60.1
Creating REST Resources for WebCenter Sites and Satellite Server: Example
60.1.1
Building and Deploying the Recommendations Sample Application
60.1.2
Testing the Recommendations Sample Application
60.2
Creating REST Resources
60.2.1
About the Recommendations Sample Application's Structure
60.2.2
Implementing Custom REST Resources
61
Working with Single Sign-On for Production Sites
61.1
Deploying the SSO Sample Application
61.2
Understanding SSO Sample Application's Structure
61.3
Implementing Single Sign-On
61.4
Implementing Single Sign-Out
62
Using REST Resources with the WEM Framework
62.1
Authentication for REST Resources
62.1.1
Acquiring Tickets from Java Code
62.1.2
Acquiring Tickets from Other Programming Languages (Over HTTP)
62.1.3
Using Tickets and Multitickets
62.1.4
SSO Configuration for Standalone Applications
62.1.4.1
Beans and Properties
62.1.4.2
Query Parameters Processed by SSO Filter
62.2
About Configuring CAS
62.3
REST Authorization
62.3.1
Security Model
62.3.2
Use of the Security Model to Access REST Resources
62.3.3
About Configuring REST Security
62.3.4
Privilege Resolution Algorithm
62.4
Management of Assets Over REST
63
Introducing Customizable Single Sign-On Facility in WEM Framework
63.1
About Customizing Login Behavior for the WEM Framework
63.2
About Components of the Default CSSO Implementation
63.3
Configuring and Deploying Custom SSO Behavior
63.3.1
About Extending the Default CSSO Classes
63.3.2
Settings Resolver Credentials
63.3.3
About Identifying Your Java Classes to Spring for Instantiation
63.3.3.1
About Creating a Spring Configuration File
63.3.3.2
About Placing Your Spring Configuration File
63.3.4
Mapping External User Identifiers to WebCenter Sites Credentials
63.3.5
Restarting the CAS Web Application
63.4
Running the CSSO Sample Implementation
63.4.1
Sample CSSO Classes
63.4.2
Sample Spring Configuration File
63.4.2.1
Analysis of the Sample Spring Configuration File
63.4.2.2
Placing the Sample Spring Configuration File
63.4.3
Sample CSSO Components
64
Buffering in WEM Framework
64.1
Architecture of Buffering System
64.2
Using Buffering
65
Registering Applications Manually in WEM Framework
65.1
Registering Applications in WEM Framework
65.2
Reference: Registration Asset Types
65.2.1
FW_View Asset Type
65.2.2
FW_Application Asset Type
Part XVII Customizing Oracle WebCenter Sites
66
Customizing the Tree in the Admin Interface
66.1
About the Tree in the Admin Interface
66.1.1
Loading the Tree Tabs
66.1.1.1
Applet-Wide Parameters
66.1.1.2
Tree-Specific Parameters
66.1.1.3
Node Parameters
66.1.1.4
Adding a Command Node Context Menu
66.1.2
Refreshing the Tree
66.2
About Trees and Security
66.3
About Tree Error Logging
67
About Customizing Components of the Contributor Interface
67.1
Before You Begin
67.2
What Can You Customize in the Contributor Interface?
67.3
Where to Find Sample Code?
67.4
Where to Begin?
68
Understanding the Contributor Interface Framework and UI Controller
68.1
About the Contributor Interface Framework
68.2
UI Controller
68.2.1
How the UI Controller Processes Requests
68.2.2
UI Controller Processing an Element Request: Example
68.3
Custom Elements
68.3.1
Element Storage
68.3.2
How the UI Controller Locates Elements
68.3.3
Element Naming Conventions
69
Customizing the Contributor Interface Dashboard
69.1
About Dashboard Customization
69.2
Customizing the Dashboard
69.3
Examples of Customizing the Dashboard
69.3.1
Adding a Hello World Widget
69.3.2
Adding a Widget that Shows Recently Modified Assets
70
Customizing Search Views of the Contributor Interface
70.1
About Search View Customization
70.1.1
Types of Search Views
70.1.2
What You Can Customize in Search Views
70.1.3
View-Rendering Process
70.1.4
Configuration Elements for Search Views
70.2
Customization Processes
70.3
Customizing Undocked Views
70.3.1
Basic Steps for Customizing Undocked Views
70.3.2
Setting the Default Undocked View to List or Thumbnail
70.3.3
Customizing the Undocked List View
70.3.4
Customizing the Undocked Thumbnail View
70.3.4.1
More About the <assettypes> Section in the ThumbnailViewConfig Element
70.3.4.1.1
Use of Static Icons
70.3.4.1.2
Re-using the System-Defined Image Thumbnail Element
70.3.4.1.3
Using a Custom Thumbnail-Rendering Element
70.4
About Customizing Docked Views
70.5
Customizing Sort Menus and Tooltips
70.5.1
Customizing Sort Menus
70.5.2
Customizing Tooltips for Search Results
70.5.3
Customizing Context Menus
71
Customizing Global Properties, Toolbar, and Menu Bar in the Contributor Interface
71.1
Customizing Global Configuration Properties
71.1.1
About the Configuration Properties
71.1.2
Default Configuration Properties That Can Be Modified
71.1.3
Adding Custom Configuration Properties
71.1.3.1
Adding Custom Global Properties
71.1.3.2
Adding Site-Specific Properties
71.2
Customizing the Toolbar
71.2.1
About Toolbar Customization
71.2.2
Examples of Toolbar Customization
71.2.2.1
Customizing the Toolbar with Standard Actions for Web Mode
71.2.2.2
Customizing the Toolbar with Standard Actions for Asset Type and Subtype
71.2.2.3
Customizing the Toolbar with Custom Actions
71.3
Customizing the Menu Bar
71.3.1
About Menu Bar Customization
71.3.2
Adding a Custom Action to the Menu Bar
71.4
Customizing Context Menus
72
Customizing Asset Forms for the Contributor Interface
72.1
About Asset Forms Customization
72.2
Modifying the Header of Asset Forms
72.3
Building an Attribute Editor
72.3.1
Creating a Dojo Widget and its Template
72.3.1.1
Create a Template for the Dojo Widget
72.3.1.2
Creating a Dojo Widget
72.3.2
Defining the Attribute Editor as a Presentation Object
72.3.3
Creating the Attribute Editor Element
72.3.4
Creating the Attribute Editor
72.3.5
Implementing a Multi-Valued Attribute Editor
73
Customizing Workflow
73.1
Workflow Step Conditions
73.2
Workflow Actions
73.2.1
Step Action Elements
73.2.2
Timed Action Elements
73.2.3
Deadlock Action Elements
73.2.4
Group Deadlock Action Elements
73.2.5
Delegation Action Elements
74
Working with RealTime Publishing Customization Hooks
74.1
About RealTime Publishing
74.2
Writing a Custom Transporter
74.2.1
Writing Your Own Transporter
74.2.2
Considerations About Overriding AbstractTransporter Methods
74.2.3
Helper Methods in AbstractTransporter
74.2.4
Implementing a Transporter: Example
74.2.5
Code for Writing RealTime Publishing Transporter
74.2.6
Understanding Edge-Case Scenarios
74.2.7
Intercepting Asset Publishing Events on the Management Instance
74.2.8
Distinguishing Between Unpackers and CacheUpdates
75
Understanding Asset and Publish Events in WebCenter Sites
75.1
Asset Events
75.1.1
Writing an Asset Event Listener
75.1.2
Registering an Asset Event Listener
75.2
Publishing Events
75.2.1
Writing a Publishing Event Listener
75.2.2
Registering a Publishing Event Listener
Part XVIII Troubleshooting
76
Logging and Debugging Errors
76.1
About Writing Custom Messages to the WebCenter Sites Log File
76.2
Using Error Codes with Tags
Part XIX Reference
77
Using Asset API: Tutorial
77.1
Understanding the Asset API
77.2
Primary Interfaces
77.3
Getting Started
77.4
Asset API Read
77.4.1
A Simple Example: Reading Field Values
77.4.2
Reading AssetId
77.4.3
Reading Attributes Given the Asset ID
77.4.4
Running a Query
77.4.5
Running a Complex Query
77.4.6
Retrieving the Results by Sorting
77.4.7
Reading BlobObject
77.4.8
Retrieving Multi-Valued Attributes
77.4.9
Multilingual Assets: Retrieving Translations
77.4.10
Reading Asset and Attribute Definitions
77.4.11
Reading Key-Value Mappings
77.5
Asset API Write
77.5.1
Creating New Assets
77.5.2
Updating Existing Assets
77.5.3
Deleting Existing Assets
77.5.4
Multilingual Assets
77.6
Development Strategies
77.6.1
Data Types and Attribute Data
77.6.2
Query Types
77.6.3
Data Types and Valid Query Operations
77.7
Optional: Setting Up to Use the Asset API from Standalone Java Programs
78
Using Public Site Search
78.1
About the Search Framework
78.2
Index Types
78.2.1
Global Index
78.2.2
Asset Type Index
78.3
About Search API
78.3.1
SearchEngine
78.3.2
QueryExpression
78.3.3
Configuring Query Expression
78.4
Advanced Configuration
78.4.1
Configuration of Lucene Parameters
78.4.2
Configuration of Custom AnalyzerFactory
Part XX Appendixes for Oracle WebCenter Sites Core
79
Introducing WebCenter Sites Tools and Utilities
79.1
Oracle WebCenter Sites Explorer
79.2
Connecting to a WebCenter Sites Database
79.3
CatalogMover
79.3.1
Starting CatalogMover
79.3.2
Connecting to WebCenter Sites
79.3.3
CatalogMover Menu Commands
79.3.4
Catalog Menu
79.3.5
Exporting Tables
79.3.5.1
Exporting Selected Table Rows
79.3.5.2
Selecting Rows for Export
79.3.5.3
Exporting to a ZIP File
79.3.6
Importing Tables
79.3.6.1
Importing HTML Files Previously Exported
79.3.6.2
Importing a Previously Exported ZIP File
79.3.6.3
Merging Existing CatalogMover Files
79.3.6.4
Replacing Existing CatalogMover Files
79.3.7
Command Line Interface
79.4
Property Management Tool
79.4.1
Accessing the Property Management Tool
79.4.2
Setting Properties
79.4.3
Adding Properties to the wcs_properties.json File
79.5
About Importing with XMLPost
80
Understanding White Space and Compression
80.1
White Space and JSP
80.2
White Space and XML
80.3
Compression
80.4
JSP Design
81
Using WebCenter Sites URL Assemblers
81.1
About WebCenter Sites URL Assemblers
81.1.1
URL Assembly
81.1.2
Assembler Discovery and Disassembly
81.1.3
URL Assembly and Disassembly Using GET and POST Requests
81.2
Assemblers Installed with WebCenter Sites
81.2.1
Query Assembler
81.2.2
QueryAsPathInfo Assembler
81.3
Working with Assemblers
81.3.1
Creating Assemblers
81.3.2
Registering and Ranking Assemblers
81.3.3
Link Tags Modification
81.4
Vanity URL Links in a Web Page
Scripting on this page enhances content navigation, but does not change the content in any way.