Web Publisher Administration Guide Version 5.3 SP4 December 2006
Copyright 1994-2006 EMC Corporation. All rights reserved.
Table of Contents Preface... 13 Chapter 1 Introduction... 15 Chapter 2 Sequence for con guring Web Publisher and setting up websites... 17 Chapter 3 Setting Up Users, Groups, and Roles... 19 Users in Web Publisher... 19 Groups in Web Publisher... 20 Roles in Web Publisher... 21 Chapter 4 Setting Up Security... 23 Permissions... 23 Access levels... 25 Extended permissions... 25 Additional access control entries... 26 Folder security... 27 Default alias sets... 28 Permission sets and the Web Publisher DocApp... 28 Editing permissions in the Permissions tab... 29 Chapter 5 Setting Up Lifecycles... 33 Lifecycles overview... 33 Required lifecycle states... 34 Reconfiguring the default lifecycle... 36 Default lifecycle configuration... 37 Advancing files through their lifecycle states... 39 Lifecycles and permissions on active and expired objects... 39 Chapter 6 Creating and Installing Work ow Templates... 43 Workflow templates overview... 43 Demoting a change set... 49 Custom dynamic performer values... 50 Simple process workflows... 51 Translation workflows... 52 Workflow tasks... 62 Workflow methods... 62 Chapter 7 De ning Web Publisher Integrations... 65 Web Publisher Administration Guide 3
Table of Contents Activating the Web Publisher extended search option (ECI Services)... 65 Saved searches... 66 Defining imarkup... 66 Storing annotations... 67 Localizing imarkup... 68 Authoring in supported languages in ewebeditpro... 68 Setting up a link checker... 69 Configuring clients to open web files in authoring applications... 70 Editing XML files in Internet Explorer 5.5 or higher... 70 Setting up Web Publisher to send HTML mail... 71 Integrating Web Publisher with Business Process Services... 73 Configure listeners and message processors for Web Publisher... 74 Prepare and register inbound message handlers and add supporting files... 76 Create a Web Publisher email alias... 77 Create a cabinet to store messages... 78 Copy Web Publisher SBO... 79 Defining integration with CI Server... 79 Integrating Web Publisher and CI Server... 80 Defining CI Server system settings... 81 Mapping CI Server properties with repository properties... 82 Defining automatic property population... 83 Setting property population... 84 Chapter 8 Creating Websites... 87 Overview of creating websites... 87 Site publishing configurations... 87 Default publishing configurations for exporting editions... 88 Synchronous and asynchronous publishing... 89 Site protection... 90 Mirror objects... 91 Determining what content is published... 92 Publishing to multiple sites... 92 Publishing a site in multiple languages... 93 Publishing with different effective dates on different sites... 93 Publishing change sets... 94 Storing multiple effective and expiration dates... 94 Setting effective date as a date in the past... 96 Resetting effective and expiration dates upon checkout... 96 Publishing externally created XML... 96 Web-safe characters... 97 Sequence for creating a new website... 98 Example of setting up a protected site... 99 Creating a site publishing configuration... 105 Viewing site publishing configurations... 107 Chapter 9 Creating Templates... 109 Overview of creating templates... 109 Web page creation... 110 Templates... 110 Supporting files... 111 Replication of templates and supporting files... 112 File locations... 113 4 Web Publisher Administration Guide
Table of Contents Updated XML and XSL... 114 Dynamic content using XDQL... 114 Automatically generated names... 115 Extended characters in XML files... 116 XSL includes... 116 Sequence for creating templates... 117 Creating templates for external applications... 118 Creating presentation files for external applications... 118 Presentation files for external applications... 118 Presentation files for ewebeditpro... 119 Defining folder structures for templates... 120 Testing a template... 120 Deleting a rendition... 121 Updating the structure of XML files... 122 Updating XML structure... 122 Creating an instruction file... 123 Examples of instruction files... 126 Updating multiple XML files... 126 Example of how an instruction file updates the structure of an XML file... 127 Chapter 10 Creating Templates for Web Publisher Editor... 131 Web Publisher Editor overview... 131 Transforming content through XDQL and Web Publisher Editor... 132 Sequence for creating Web Publisher Editor templates... 134 Creating content templates for Web Publisher Editor... 134 Creating a content template... 135 Creating an XML-based content template... 136 Creating an HTML-based content template... 138 Examples of Web Publisher Editor templates... 141 Using symbols in XML... 141 Web Publisher Editor attribute extraction... 142 Web Publisher Editor comments... 143 Link management... 144 Creating Editor rules files... 145 Overview of Editor rules files... 145 Absolute and relative paths... 147 Path rule matching... 147 Attribute name value matching... 147 Preview and web view... 148 Repeatdef... 148 Component types... 149 <calendar> element... 149 <checkbox> element... 152 Sample checkbox rules... 154 <choice> element... 154 Sample choice rules... 157 <content> element... 158 <content> element attributes... 159 Customizing the default toolbar... 170 Sample content rule... 171 <graphic> element... 172 Sample graphic rules... 179 <repeatdef> element... 181 Sample repeatdef rules... 184 Web Publisher Administration Guide 5
Table of Contents <repeatdef> nesting elements... 187 1.4 multiple nesting levels... 188 <tabledef> element... 190 Sample <tabledef> elements... 192 <tagcontent> element in non-xml templates... 193 <textarea> element... 193 <textline> element... 197 Sample textline rules... 199 <textselector> element... 200 Sample textselector rules... 209 <xselector> element... 211 Sample xselector rules... 219 Sample xselector filters... 221 Defining a format list... 223 The rules file on the sample website... 224 Creating Editor presentation files (XSL stylesheets)... 231 Validating Web Publisher Editor templates... 236 Chapter 11 Creating Templates for Page Builder... 239 Understanding Web Publisher Page Builder... 239 Understanding the content template... 240 Understanding the blueprint... 241 What a web page looks like... 243 Updating and rendering content for a web page... 244 Using views... 246 Layout view... 246 Content view... 246 Preview... 247 Site view... 247 Rendering content into HTML... 247 Creating a translated web site... 248 Channels... 248 Understanding the blueprint descriptor... 248 Creating a new Page Builder template... 250 Editing Page Builder templates... 250 Importing Page Builder templates... 251 Importing Page Builder Dreamweaver template... 252 Exporting Page Builder templates... 254 Globalization support in Page Builder... 254 How it works?... 254 Choosing an image of a specific locale... 256 Content migration... 256 Update template... 261 Enabling SSI support on the Web View server... 262 Chapter 12 De ning Folder Mapping... 265 Folder mapping overview... 265 Folder mapping elements... 267 <attr_list>... 267 <path_list>... 268 Example of a folder map file... 269 Repeating properties... 270 Repeating properties in <attr_list>... 270 6 Web Publisher Administration Guide
Table of Contents Repeating properties in <path_list>... 272 Rules-searching order... 273 How to debug or create a catch-all rule... 275 How folder mapping handles symbols... 275 How folder mapping handles special characters... 276 Specifying that an attribute has no value... 276 Dynamic folder mapping... 277 Dynamic folder mapping with full or partial paths... 278 How dynamic folder mapping handles special characters... 279 How folder mapping uses language_code... 279 Chapter 13 Setting Up Multi-Language Websites... 281 Sequence for setting up multi-language websites... 281 Enabling globalization... 282 Adding a new country and language to the locale creation page... 282 Specifying Web Publisher Editor s dictionary... 283 Chapter 14 Setting Up Portlets... 287 Portlets overview... 287 Sequence for creating a portal and its components... 289 Creating a new portal... 290 Creating a new target portal server... 291 Creating portlet templates... 294 Portlet Builder templates overview... 294 Creating a new portlet template by an extension of an existing template... 295 Customizing your portlet template components... 296 Examples of customizing portlet template components... 296 Deleting a portlet template... 300 Publishing a portal... 300 Manually publishing a portal... 302 Deploying a web archive (war) file on BEA WebLogic Workshop... 303 Configuring the connection to an LDAP server... 304 Resolving links repository content at runtime... 305 Chapter 15 Using Taxonomies and Categories... 307 How taxonomies work in Web Publisher... 307 Using taxonomies in Web Publisher... 308 Assigning taxonomies to web cabinets... 310 Publishing taxonomies to websites... 310 Storing taxonomy values in properties other than keywords... 311 Chapter 16 Setting Up In-Context Editing (ICE)... 313 How Web Publisher determines a page is editable through ICE... 313 ICE uses a mini-proxy to render frames... 315 Sequence for setting up ICE... 316 Removing dm_relation objects... 317 Enabling authors to edit content displayed through <include>... 317 Web Publisher Administration Guide 7
Table of Contents Enabling authors to create new content files from the web page... 318 Chapter 17 Creating Custom Tags... 321 Overview of custom tags... 321 Create custom tags in an element definition file... 322 Assign a custom tag set to a content rule... 324 Chapter 18 Understanding Discussions and Comments... 327 Discussion permissions... 327 Using discussions... 328 Searching discussions... 330 Chapter 19 Monitoring Web Publisher... 331 Content transfer... 331 Tracing... 332 Turning on the DFC tracing tool... 332 Accessing tracing... 332 Setting tracing... 333 Testing your API... 334 Testing your DQL... 335 Java Method Server... 336 Verifying the Method Server... 338 Tracing details... 339 Web Publisher application-level settings... 343 Log files... 345 Chapter 20 Troubleshooting... 347 Shared memory error... 347 Java Method Server errors... 347 Effective and expired content... 348 Problems sending HTML mail... 348 Web view... 349 Translation workflows... 349 Troubleshoot Business Process Services... 350 Site publishing configuration... 350 Setting the error_threshold key in Site Caching Services... 350 Translation workflow configuration... 351 In-context editing... 351 Java plug-in install... 352 Formatted text appears different when previewing... 352 Appendix A The Web Publisher Object Model... 353 Object model diagram... 353 dm_sysobject... 355 wcm_config... 356 wcm_user_pref... 362 dm_folder... 364 wcm_change_set... 364 dm_cabinet... 365 wcm_channel... 365 8 Web Publisher Administration Guide
Table of Contents wcm_edition... 366 wcm_channel_fld... 367 wcm_edition_fld... 367 wcm_supporting_doc_folder... 368 wcm_auto_naming... 368 wcm_locale... 368 dm_relation (relations)... 369 DM_TRANSLATION_OF... 370 wcm_category... 370 wcm_default_workflow... 371 wcm_doc_template... 371 wcm_dynamic_content... 372 wcm_layout_template... 372 wcm_my_template... 373 wcm_process_workflow... 374 wcm_publishing_template... 374 wcm_rules_template... 375 wcm_template_thumbnail... 375 wcm_html_editor... 376 wcm_rules_editor... 377 wcm_editor_link... 377 wcm_ewebeditpro_link... 378 wcm_native_edit... 378 wcm_link... 378 wcm_link_internal... 379 wcm_managed_link... 379 wcm_pb_template_blueprint... 380 Web Publisher Administration Guide 9
Table of Contents List of Figures Figure 1 1. Typical 5.3 Web Publisher system configuration... 16 Figure 6 1. Submit to Web Site Workflow... 46 Figure 6 2. Request New Content Workflow... 47 Figure 6 3. Sample French Translation workflow... 47 Figure 6 4. Sample translate and submit to Web Site workflow... 49 Figure 6 5. Simple Process Workflow with Translation Task... 54 Figure 10 1. Transforming content through XDQL and Web Publisher Editor... 133 Figure 10 2. XML-based Web Publisher Editor template and supporting files... 136 Figure 10 3. Rules Editor... 146 Figure 10 4. Calendar... 150 Figure 10 5. Checkbox... 152 Figure 10 6. Choice field... 155 Figure 10 7. Content field in Web Publisher Editor... 158 Figure 10 8. Graphic list selector... 172 Figure 10 9. Graphic tree selector globalization disabled... 173 Figure 10 10. Graphic tree selector globalization enabled... 174 Figure 10 11. Block of repeatable fields... 182 Figure 10 12. A block of nested fields... 187 Figure 10 13. Multiple nested fields... 189 Figure 10 14. Table Editor... 190 Figure 10 15. Textarea field... 194 Figure 10 16. cdata support in <textarea> element... 196 Figure 10 17. Unformatted text in Web Publisher Editor... 197 Figure 10 18. Field for Read-only text... 198 Figure 10 19. Textselector using a list generated by a query... 201 Figure 10 20. Textselector using a tree globalization disabled... 201 Figure 10 21. Textselector using a tree globalization enabled... 202 Figure 10 22. Any type selector page... 212 Figure 10 23. Graphic type selector page... 212 Figure 10 24. File selector... 219 Figure 11 1. Template and blueprint association... 241 Figure 11 2. Content schema example... 244 Figure 16 1. How Web Publisher determines editable content... 315 Figure A 1. Web Publisher 5 Object Model... 354 10 Web Publisher Administration Guide
Table of Contents List of Tables Table 4 1. Access levels... 25 Table 4 2. Extended permissions... 25 Table 4 3. Additional access control entries... 26 Table 4 4. Permissions required under folder security... 27 Table 6 1. Sample language codes and email addresses... 60 Table 6 2. Workflow tasks... 62 Table 6 3. Workflow methods... 63 Table 8 1. Multiple effective and expiration dates... 95 Table 8 2. Example users for site protection... 99 Table 8 3. Example user groups for site protection... 101 Table 8 4. Other example user groups for site protection... 101 Table 8 5. Example group assignments for site protection... 101 Table 8 6. Example alias set for site protection... 104 Table 9 1. Instruction elements... 124 Table 9 2. Elements that set instruction parameters... 125 Table 10 1. Date format patterns... 151 Table 10 2. Date format pattern examples... 152 Table 19 1. Web Publisher 5.3 Methods Configurations (Java Method Server Support)... 336 Table 19 2. Java Method Server Details on Server Machine... 339 Table 19 3. Web Publisher Server Side Tracing Details... 339 Table 19 4. Web Publisher application level configurations in the properties file... 343 Table A 1. dm_sysobject... 355 Table A 2. wcm_config... 356 Table A 3. wcm_user_pref... 362 Table A 4. dm_folder... 364 Table A 5. wcm_change_set... 364 Table A 6. wcm_channel... 366 Table A 7. wcm_edition... 367 Table A 8. wcm_edition_fld... 367 Table A 9. wcm_auto_naming... 368 Table A 10. wcm_locale... 368 Table A 11. wcm_category... 370 Table A 12. wcm_default_workflow... 371 Table A 13. wcm_doc_template... 372 Table A 14. wcm_dynamic_content... 372 Table A 15. wcm_layout_template... 373 Web Publisher Administration Guide 11
Table of Contents Table A 16. wcm_my_template... 373 Table A 17. wcm_process_workflow... 374 Table A 18. wcm_publishing_template... 374 Table A 19. wcm_rules_template... 375 Table A 20. wcm_template_thumbnail... 376 Table A 21. wcm_html_editor... 376 Table A 22. wcm_rules_editor... 377 Table A 23. wcm_editor_link... 377 Table A 24. wcm_ewebeditpro_link... 378 Table A 25. wcm_native_edit... 378 Table A 26. wcm_link... 379 Table A 27. wcm_link_internal... 379 Table A 28. wcm_managed_link... 380 Table A 29. wcm_pb_template_blueprint... 380 12 Web Publisher Administration Guide
Preface This manual explains how to define Web Publisher settings and how to create websites. You should read this publication if you are responsible for designing and maintaining templates and websites, and defining Web Publisher settings. You should have basic knowledge of Documentum s Web Development Kit, of XML, and of Documentum repositories. For more information on configuring XML definition files in Web Publisher, refer to the Web Publisher Development Guide. Intended audience This guide is intended for system administrators who need to configure Web Publisher to work in their specific business environments, and web developers who need to create websites and website publishing configurations. Revision History The following changes have been made to this publication since the previous edition: Revision history Revision Date December 2006 Description Initial release. Related documentation You should be familiar with the following Web Publisher documentation: Web Publisher User Guide Web Publisher Release Notes Web Development Kit and Applications Installation Guide Web Publisher Administration Guide 13
Preface To download related documentation, go to the support area of http://www.documentum.com/. 14 Web Publisher Administration Guide
Introduction Chapter 1 Web Publisher simplifies and automates the creation, review and publication of content to websites. Web Publisher manages all content (including code) that goes into a website. Web Publisher runs as part of a Documentum system. The following diagram shows the system architecture for a typical Web Publisher system configuration. Web Publisher Administration Guide 15
Introduction Figure 1-1. Typical 5.3 Web Publisher system con guration 16 Web Publisher Administration Guide
Sequence for con guring Web Publisher and setting up websites Chapter 2 This guide explains how to configure Web Publisher for your business environment and how to create and publish websites. To do so, you perform the sequence of procedures listed here. Your sequence might differ, depending on your organization s setup: To con gure Web Publisher and set up websites, use the following sequence of procedures: 1. Use Documentum Administrator to create Web Publisher users, groups, and roles; and assign users and groups to groups and roles. Refer to: Chapter 3, Setting Up Users, Groups, and Roles Chapter 4, Setting Up Security 2. Create lifecycles and workflows for use with Web Publisher. Refer to: Chapter 5, Setting Up Lifecycles Chapter 6, Creating and Installing Workflow Templates 3. Define Web Publisher s system-wide default settings. For information on doing so, see the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help. 4. Define integrations. Refer to Chapter 7, Defining Web Publisher Integrations 5. Set up your websites. Refer to Chapter 8, Creating Websites 6. Create the templates authors will use to create content for the web. Define the folder mapping rules that determine where content is located on a website. Refer to: Chapter 9, Creating Templates Web Publisher Administration Guide 17
Sequence for con guring Web Publisher and setting up websites Chapter 10, Creating Templates for Web Publisher Editor Chapter 12, Defining Folder Mapping 7. Design websites that publish in multiple languages. Refer to Chapter 13, Setting Up Multi-Language Websites 8. Set up alternate taxonomies for organizing content for your authors to access. Refer to Chapter 15, Using Taxonomies and Categories 9. Optionally, set up in-context editing, which allows your authors to find content by navigating websites as they appear on the web. Refer to Chapter 16, Setting Up In-Context Editing (ICE) 10. Create custom tags to enable authors to generate special information for websites. Refer to Chapter 17, Creating Custom Tags 11. Monitor Web Publisher operations and activities. Refer to Chapter 19, Monitoring Web Publisher 12. Address any errors that occur in Web Publisher using error messages and notifications. Refer to Chapter 20, Troubleshooting 13. Familiarize yourself with the repository object types that are used in Web Publisher. Refer to Appendix A, The Web Publisher Object Model 18 Web Publisher Administration Guide
Chapter 3 Setting Up Users, Groups, and Roles To use Web Publisher, you must set up Web Publisher-specific users, groups, and roles. To do so, you use Documentum Administrator, which you access through Web Publisher s Administration node. For documentation on how to use Documentum Administrator, see the Documentum Administrator User Guide. This chapter gives overview information on setting up users, groups, and roles in Web Publisher: Users in Web Publisher, page 19 Groups in Web Publisher, page 20 Roles in Web Publisher, page 21 Users in Web Publisher To access a repository, a person must be defined as a user in that repository. Adding someone as a user to a non-federated repository does not give that person access to every repository in the enterprise. The person must be explicitly added to each repository. Before you create Web Publisher users in Documentum Administrator, determine what type of privileges each user must have in Web Publisher. User privileges authorize certain users to perform activities that are required to administer and maintain the system. The privilege levels are: None Create Type Create Cabinet Create Cabinet and Type Create Group Create Group and Type Create Group and Cabinet Create Group, Cabinet, and Type Web Publisher Administration Guide 19
Setting Up Users, Groups, and Roles System Administrator Superuser User client capabilities enable users to perform various operations in a repository such as create objects, view objects, manage lifecycles, and manage workflows. There are four types of users: Consumer Contributor Coordinator System Administrator These four client capability levels available to users, can be set as client_capability attributes on the dm_user object in the repository. Content Server does not recognize or enforce these client capability settings. Some capability actions check permissions in the launch or precondition class, or the component checks repository permissions, but the action or component does not specifically check the client capability level. For more information on users, refer to the Documentum Administrator User Guide. Groups in Web Publisher A group represents multiple repository users and can contain groups, users, or roles. (Roles are found in 5.x and later repositories only.) You can add users, groups, or roles to a group by following instructions in the Documentum Administrator User Guide. By default, a group is owned by the user who creates the group. Groups can be public or private. By default, groups created by a user with Create Group privileges are private, while groups created by a user with Sysadmin or Superuser privileges are public. In a 5.x repository, a group can own sysobjects and permission sets. In 5.3 and later repositories, you can create dynamic groups. A dynamic group is a group, of any group class, whose list of members is considered a list of potential members. A dynamic group is created and populated with members like any other group. Whether a group is dynamic is part of the groups definition. It is recorded in the is_dynamic attribute and may be changed after the group is created. For more information on groups, refer to the Documentum Administrator User Guide. For more information on dynamic groups, refer to the Documentum Administrator User Guide and Content Server Administrator s Guide. 20 Web Publisher Administration Guide
Setting Up Users, Groups, and Roles Roles in Web Publisher A role is a type of group that contains a set of users or other groups that are assigned a particular role within a client application domain. If you create a role as a domain, it is listed on the Groups list page, not the Roles list page. For information on roles and domains, refer to the section on security services in Content Server Fundamentals. Roles are found only in 5.1 and later repositories. You can modify Web Publisher roles using XML files to change the functionality available to Web Publisher roles and to replace or add roles to your Web Publisher application. Web Publisher can be configured to use any role that is defined in the repository. Web Publisher is already configured with the roles that are defined in the Web Publisher DocApp. If no roles are configured in the repository, or if the repository is pre-5.1, Web Publisher defaults to using the client capability model. For further details on configuring Web Publisher roles, refer to the Web Publisher Development Guide. Note: If you create role groups in the repository, you can create roles named consumer, contributor, coordinator, and administrator. Your custom roles can contain these roles, so that Web Publisher components will not need to be reconfigured for your custom roles. For more information on roles, refer to the Documentum Administrator User Guide. Web Publisher Administration Guide 21
Setting Up Users, Groups, and Roles 22 Web Publisher Administration Guide
Chapter 4 Setting Up Security Web Publisher enables you to control access to repository content using permission sets and folder security. A permission set defines the object-level permissions applied to objects to which the permission sets are assigned. Folder security is an additional level of security that supplements the existing repository security and may require you to have Write permission or greater for the folder in order to access an object. This chapter describes the following: Permissions, page 23 Access levels, page 25 Extended permissions, page 25 Additional access control entries, page 26 Folder security, page 27 Default alias sets, page 28 Permission sets and the Web Publisher DocApp, page 28 Editing permissions in the Permissions tab, page 29 Permissions Permissions determine the access that each user has to each item in the repository. Permissions are governed by permission sets. Each item in the repository is assigned a permission set by the item s owner. The permission set lists specific users and groups and assigns them specific access levels. An access level determines which operations (such as read, edit, or delete) the user or group can perform on the item. Each entry in a permission set is called an access control entry. There are seven possible access levels. Each higher access level includes the capabilities of the preceding access levels. The access levels are listed in Access levels, page 25. Web Publisher Administration Guide 23
Setting Up Security In addition to the seven levels of basic access, there are six levels of extended permissions. For more information on extended permissions, refer to Extended permissions, page 25. Each user is assigned a default permission set. When a user creates an item, the repository assigns the user s default permission set to the item. For example, if your default permission set gives all members of your department Write access and all other users Read access, then those are the access levels assigned to the item. You can change an item s access levels by changing the item s permission set. To do so you must be the item s owner (typically the owner is the user who created the item) or you must have Superuser privileges in the item s repository. When you modify a permission set, the permission set is saved as a permission set assigned to you. You can then apply the permission set to other items in the repository. Your ability to edit permission sets depends on your user privileges in the repository: If you have Superuser privileges, you can modify any permission set in the repository. You can designate any user as the owner of a permission set, and you can change the owner of a permission set. This permission is usually assigned to the repository administrator. If you have SysAdmin privileges, you can modify any permission set owned by you or by the repository owner. You can designate yourself or the repository owner as the owner of a permission set that you create and you can change whether you or the repository owner owns the permission set. This permission is usually assigned to the repository administrator. If you have any privileges less than the above, you are the owner only of the permission sets that you create. You can modify any permission set you own, but you cannot change the owner of the permission set. If you designate the repository owner as the owner of a permission set, that permission set is a System (or Public) permission set. Only a Superuser, System Administrator, or the repository owner can edit the permission set. If a different user is the owner of the permission set, it is a Regular (or Private) permission set. It can be edited by the owner, a Superuser, System Administrator, or the repository owner. A user with Write or Delete permission can change which permission set is assigned to an object. Web Publisher users only: If the user does not assign the default permission set, the Content Server assigns a default permission set according to the setting in the default_acl attribute in the server config object. 24 Web Publisher Administration Guide
Setting Up Security Access levels The following table lists the basic access levels that you can assign a user. You assign access levels in permission sets. Table 4-1. Access levels Access level None Browse Read Relate Version Write Delete What it allows No access is permitted to the item. Users can view the item s properties but not the item s content. Users can view both the properties and content of the item. Users can do the above plus they can add annotations to the item. Users can do the above plus they can modify the item s content and they can check in a new version of the item (with a new version number). Users cannot overwrite an existing version or edit the item s properties. Users can do the above plus they can edit item properties and check in the item as the same version. Users can do all the above, and they can delete items. Extended permissions Extended permissions are used to give users or groups permission to perform additional actions, beyond what is allowed by their assigned access level. Only sysadmins and superusers may grant or modify extended permissions. Table 4-2. Extended permissions Extended permission Execute Procedure Change Location What it allows Superusers can change the owner of an item and can use Execute Procedure to run external procedures on certain item types. Users with Change Location permissions can move an item in the repository. Web Publisher Administration Guide 25
Setting Up Security Extended permission Change State Change Permission Change Ownership Delete Object What it allows Users with Change State permissions can change the state of an item that has a lifecycle applied to it. Users with Change Permissions can modify the basic permissions of an item. Users with Change Ownership permissions can change the owner of the item. Users with the Delete Object extended permission have the right only to delete the object. Additional access control entries Under Content Server 5.3 and later, when Trusted Content Services is enabled in a repository, additional access control entries are available. The access control entries described in the table are independent of each other, not hierarchical. Table 4-3. Additional access control entries Access control entry Access Restriction Extended Restriction Effect of the entry An access restriction entry denies a user the right to the base object-level permission level specified in the entry. For example, if a user would otherwise have delete permission as a member of a particular group, an access restriction might limit the user to, at most, version permission. The user would therefore lose write and delete permission. An extended restriction entry denies a user or the members of a specified group the specified extended object-level permission. For example, if a user would otherwise have Change Permission rights as a member of a particular group, an extended restriction would remove that right. 26 Web Publisher Administration Guide
Setting Up Security Access control entry Required Group Required Group Sets Effect of the entry A required group entry requires a user requesting access to an object governed by the permission set to be a member of the group identified in the entry. If there are entries for multiple groups, the user must be a member of all of the groups before Content Server allows access to the object. A required group set entry requires a user requesting access to an object governed by the permission set to be a member of at least one group in the set of groups. Folder security Folder security is an additional level of security that supplements the existing repository security. Implementing this security option further restricts allowable operations in a repository. When folder security is in use, operations such as copying or moving documents may require you to have Write permission or greater for the folder in order to access an object. For information about assigning folder security to a repository, refer to the Content Server Administrator s Guide. If you use Documentum s Web Publisher, and if folder security is used in a repository, any content files in the WIP state must have the same permission as the folder. To use the same folder permission, the administrator must ensure the lifecycle in WIP state does not apply any set ACL action. For example: WIP - folder acl Staging - WP "Default Staging ACL" Approved - WP "Default Approved ACL" The following table lists the actions affected by folder security. Table 4-4. Permissions required under folder security Action Create an object Import a file(s) or folder Move an object Requires at least write permission for: Cabinet or folder in which you create the new object Cabinet or folder to which you import the file(s) or folder Both the cabinet or folder from which you remove the object and the destination folder or cabinet Web Publisher Administration Guide 27
Setting Up Security Action Requires at least write permission for: Copy an object Link an object Unlink an object Delete one version of a document Delete all versions of a document Delete unused versions of a document Destination cabinet or folder Destination cabinet or folder Cabinet or folder from which you unlink the object The document s primary folder The document s primary folder The document s primary folder Consult the repository administrator for information on whether folder security is enabled in the repository. Default alias sets The Content Server adds these default aliases to a permission set: dm_owner: Represents the owner of the permission set. dm_world: Represents all repository users. Permission sets and the Web Publisher DocApp Web Publisher s default permission set (or ACL) is the Web Publisher User Default ACL. If a user does not identify a permission set for an object or does not explicitly choose that the object should not have a default permission set, Content Server attempts to assign the new object a default permission set. To identify which permission set to assign as the default, the Content Server uses the value in the default_acl attribute of its server configuration object. This attribute contains an integer value that represents one of three candidate permission sets: 1, which is the folder permission set; 2, which is the type permission set; or 3, which is the user permission set. A value of 4 means that there is no default permission set. When you install Content Server, the default_acl attribute is set to 3, for the user permission set. This means that whenever a user creates an object and does not explicitly assign it a permission set or grant it permissions, the server assigns the default permission set associated with the users dm_user object to the new object. The Web Publisher DocApp assumes the value of the Content Servers default_acl attribute is set to 3. 28 Web Publisher Administration Guide
Setting Up Security If the Content Server s default permission set (default_acl) mode is incorrect during your Web Publisher DocApp installation your cannot reinstall the Web Publisher DocApp. A DocApp installation cannot be rolled back and reinstalled. You must create a new repository. For details on installing the Web Publisher DocApp refer to the Web Development Kit and Applications Installation Guide. Editing permissions in the Permissions tab This procedure describes how to enter information in the Permissions tab. This procedure is used in numerous procedures. This procedure assumes you have already either opened a permission set or opened an object s properties. To edit permissions in the Permissions tab: Note: This procedure includes steps for setting required groups, required group sets, and access restrictions. These are used in 5.3 or later repositories where Trusted Content Services is enabled. 1. If you have not already done so, click the Permissions tab. This tab displays four different sections, each with a hyperlink at the top for a title. Each hyperlink has either a [-] or [+] in front of it, indicating whether the section is expanded or collapsed. You expand or collapse a section by clicking the hyperlink. When a section is expanded, the hyperlink has a [-] in front of it and the section s items are displayed. 2. To add a required group, make sure the Required Groups section is expanded and do the following: a. Click Add. b. Select all groups of which a user must be a member. c. Click the right arrow. d. Click OK. 3. To remove a required group, make sure the Required Groups section is expanded. Then select the group and click Remove. 4. To add a required group set, make sure the Required Group Set section is expanded and do the following: a. Click Add. b. Select the groups. c. Click the right arrow. d. Click OK. Web Publisher Administration Guide 29
Setting Up Security 5. To remove a required group set, make sure the Required Group Set section is expanded. Then select the group and click Remove. 6. To add a user or group to the permission set and assign the access level for the user or group, make sure the Permissions section is expanded. Note: If you are creating a new permission set, the Permissions section displays the default access control entries: dm_owner The owner of the permission set. dm_world All repository users. In the Permissions section, do the following: a. Click Add. b. To select from all users or groups, click the All tab. To select from recently used users and groups, click the Recently Used tab. c. Check the checkboxes adjacent to the users or groups you want to add and click Add. To remove an item from the list of selected items, select the item s checkbox and click Remove. d. Click OK. e. In the Basic Permissions area, select the access level. f. In the Extended Permissions area, check the checkboxes of any extended permissions you want to add. g. If you have added multiple users or groups, you can click Next to apply different permissions to each. When you are done, click OK. 7. To edit a user or group s permissions, make sure the Permissions section is expanded. Then do the following: a. Select the checkboxes for the users or groups for which you want to edit permissions. b. Click Edit. c. In the Permission area, select the access level. d. In the Extended Permissions area, check the checkboxes of any extended permissions you want to add. e. Click OK. 8. To remove users or groups, make sure the Permissions section is expanded. Then select the checkboxes for the users or groups and click Remove. 30 Web Publisher Administration Guide
Setting Up Security 9. To add access restrictions, make sure the Access Restrictions section is expanded. Then do the following: a. Click Add. b. Select users and groups whose rights must be restricted. c. Click the right arrow. d. Click OK. If there are validation conflicts, they are displayed along with reasons for the conflicts. To continue despite the conflicts, click OK. To resolve the conflicts, click Cancel and select new users or groups. e. Select the permission level to deny the accessor. f. Select the extended permission level to deny the accessor. g. Click Next to go on to the next accessor or Finish to apply the same restrictions to all accessors. 10. To delete or edit Access Restrictions, make sure the Access Restrictions section is expanded. Then select the accessors and click Remove or Edit. 11. Do one of the following: To save your changes, click OK. To go to another tab, click the tab or click Next (if available). Web Publisher Administration Guide 31
Setting Up Security 32 Web Publisher Administration Guide
Chapter 5 Setting Up Lifecycles Lifecycles specify the states of documents as they move through different phases on their way to publication. This chapter describes the following: Lifecycles overview, page 33 Required lifecycle states, page 34 Reconfiguring the default lifecycle, page 36 Advancing files through their lifecycle states, page 39 Lifecycles and permissions on active and expired objects, page 39 Lifecycles overview Many companies have policies that govern how specific types of content work their way through their useful lives, and beyond. Such policies typically specify the stages that content passes through and the activities that occur at each stage. Content policy can be separated into two concepts: lifecycles, which define the life stages of content, and workflows, which direct a sequence of actions that users must perform on the content. Document lifecycles and workflows complement each other. A lifecycle specifies the states content occupies during its life. The lifecycle does not define what activities happen to content while it resides in a state, who is responsible for those activities, or when the content should move to another state. A workflow uses a template to define a connected set of activities, including who performs the activities and when. The workflow itself is a running version of the workflow template. Document lifecycles enable you to automate the publishing and expiration of files by specifying the states of a document as it moves through the stages of its life (for example, review, publishing, and end-of-life) on its way to being published on an Active website. All Web Publisher lifecycles have a minimum of four states: Start, WIP, Staging, and Approved. Web Publisher provides you with a default lifecycle, but administrators can Web Publisher Administration Guide 33
Setting Up Lifecycles create custom lifecycles with additional states between the WIP and Approved states, and different names for the default states. Every file in Web Publisher must have a valid lifecycle. Web Publisher provides a default lifecycle or you can use Documentum Administrator to create a custom lifecycle. For information on creating lifecycles, refer to the Documentum Administrator User Guide. When you create a lifecycle, it inherits your permissions (ACL) so you must ensure your permissions enable users to access the lifecycle. Users need to access the lifecycle to assign it to content templates during import into a Web Publisher repository. We recommend using the Web Publisher User Default ACL or using a permission set with identical permissions. Creating a system-level option on a user s permission set allows objects to be updated by a specific user. The system-level option enables changes to an object even if the object s status is Staging or above regardless of the user s permission set. Changes include changing locations, changing attributes and editing content. Once you create a custom lifecycle you can include the lifecycle in your custom DocApp to propagate the lifecycle to your repository. If you store lifecycles in the Web Publisher application, you should insert them into your custom DocApp to retain them as part of your configuration for future installations. If you create a lifecycle to use as the Web Publisher default, you must set it as the default in the document lifecycle setting in system settings. For information on defining system settings, see the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help. Web Publisher automatically assigns lifecycles to content files, based on the lifecycles of templates. In Web Publisher s settings, the following settings affect how lifecycles operate. Lifecycle States Lifecycle State Aliases Delay Publish Active Required lifecycle states All Web Publisher lifecycles must have the four states listed here or have aliases of these states. If you use a different name for a state, you must use the name in all Web Publisher lifecycles and indicate the name in Web Publisher s system settings. For information on system settings, see the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help. These are the four required states and their required values: Start 34 Web Publisher Administration Guide
Setting Up Lifecycles General tab: Set the State name to Start. Uncheck Demote document to base state on checkin. Check Allowed attachment directly to this state. WIP General tab: Set State name to WIP. Uncheck Demote document to base state on checkin. Check Allowed attachment directly to this state. Check Allow Demotion to previous state. Action tab: Set Add Version Label: to WIP. Set Remove Version Label: to Active. Set Remove Version Label: to Approved. Set Remove Version Label: to Expired. Set Set Permission Set to Default WIP ACL. Post Change tab: Set Repository Path Name: to the following: /System/Applications/WebPublisher/wcmLifecycleScript Staging General tab: Set State name to Staging. Uncheck Demote document to base state on checkin. Check Allow Demotion to previous state. Action tab: Set Add Version Label: to Staging. Set Remove Version Label: to Approved. Set Set Permission Set to Default Staging ACL. Approved General tab: Set State name to Approved. Web Publisher Administration Guide 35
Setting Up Lifecycles Uncheck Demote document to base state on checkin. Check Allow Demotion to previous state. Action tab: Set Add Version Label: to Approved Set Set Permission Set to Default Approved ACL Post Change tab: Set Repository Path Name: to the following: /System/Applications/WebPublisher/wcmLifecycleScript You must create these lifecycle states using Documentum Application Builder. Log in to Documentum Application Builder, open an existing application for example, Web Publisher, and navigate to DefaultLifecycle under the lifecycle node. For information on creating lifecycle states, refer to Documentum Application Builder Help. Recon guring the default lifecycle When a file is demoted to WIP, Web Publisher looks at the version tree. If there is an Active version of the file, Web Publisher promotes the file to Staging and push the Active version of the file to the Staging site. This is done via a lifecycle post change script. A lifecycle script is now added to the WIP state by Web Publishers DocApp. When the lifecycle WIP state is entered, the wcmlifecyclescript is called. If the file enters WIP state via demote from Staging the updated script promotes the Active file to Staging and pushes the Active version to the Staging site. Remove Staging Version Label action is removed from the WIP state. Staging state no longer refers to lifecycle script. Web Publisher DocApp bundles a sample default lifecycle called. We strongly recommend using an identical copy of the lifecycle rather than the default lifecycle. If you are using default lifecycle without any customizations then perform the following changes. To con gure the default lifecycle: 1. Open the Web Publisher default DocApp using Documentum Application Installer. 2. Check out the default lifecycle. 3. Uninstall the default lifecycle. 4. Select WIP state and click the View State button. 5. Navigate to the Action tab and remove the Remove Version Label = Staging action. 36 Web Publisher Administration Guide
Setting Up Lifecycles 6. Navigate to the Post Change tab and browse to locate the wcmlifecyclescript script under the /System/Applications/WebPublisher folder. Select it. Make sure it is a current version. This step configures the wcmlifecyclescript to run in the WIP state. 7. Select the Staging state and click the View State button. 8. Navigate to the Post Change tab and remove the wcmlifecyclescript reference from the state. For example, Staging state should not run wcmlifecyclescript. 9. Check in the default lifecycle as a Same Version. 10. Install the default lifecycle. Changes in the lifecycle can be explained as follows: When a file is demoted to WIP, Web Publisher looks at the version tree. If there is an Active version of the file, Web Publisher promotes the file to Staging and push the Active version of the file to the Staging site. This is done via the lifecycle post change script. A lifecycle script is now added to the WIP state by Web Publishers DocApp. When the lifecycle WIP state is entered, the wcmlifecyclescript is called. If the file is entering the WIP state via demote from Staging state the updated script demotes the file back to Staging, to the Active version, and push the Active version to the Staging site. The Remove Staging Version Label action is removed from the WIP state. Staging state no longer refers to lifecycle script. Default lifecycle con guration The wcmlifecyclescript only handles the default case of Web Publishers default lifecycle states. The wcmlifecyclescript assumes the next state of WIP is Staging. If there are additional custom states between WIP and Staging or between Staging and Approved, some customizations to the wcmlifecyclescript may be needed depending on your usage. If you have custom states between WIP and Staging or between Staging and Approved, you may need to customize the wcmlifecyclescript object. You do not need to customize the script if you only change the alias of the default states. The wcmlifecyclescript itself already includes sample code to handle a lifecycle between Staging and Approved called QA. Here is what the lifecycle looks like: WIP -> Staging -> QA -> Approved -> Active When a file is demoted from QA to Staging, we want to make sure the Active version of the file is pushed to the QA site so that no link is broken. Here is a portion of the wcmlifecyclescript code shipped. Fix Bug 67235: restore the previous version label and data Dim prevstate As String Dim republish As Boolean if TargetState = wipsymbol then prevstate = stagingsymbol if demote from Staging republish = TRUE re-publish the Active version to Staging server again Web Publisher Administration Guide 37
Setting Up Lifecycles status = AdjustVersionLabel(ObjectId, TargetState, sessionid, docbase, prevstate, republish) LifeCycleAction = status status = CloseLogFile() exit Function Done else if TargetState = stagingsymbol then Bug 67235 fix: customize the follow commented out code if demoting to staging from a state that you want to restore the previous data to the cache server for that state. Republish may not be necessary once we fix the other code to include demote. Dim prevstate As String Dim republish As Boolean prevstate = "QA" previous state is QA republish = TRUE TRUE if you publish the Active version to QA server again status = AdjustVersionLabel(objectID, TargetState, sessionid, docbase, prevstate, republish) LifeCycleAction = status status = CloseLogFile() exit Function Done end if You must uncomment out the else part. Fix Bug 67235: restore the previous version label and data Dim prevstate As String Dim republish As Boolean if TargetState = wipsymbol then prevstate = stagingsymbol if demote from Staging republish = TRUE re-publish the Active version to Staging server again status = AdjustVersionLabel(ObjectId, TargetState, sessionid, docbase, prevstate, republish) LifeCycleAction = status status = CloseLogFile() exit Function Done else if TargetState = stagingsymbol then Bug 67235 fix: customize the follow commented out code if demoting to staging from a state that you want to restore the previous data to the cache server for that state. Republish may not be necessary once we fix the other code to include demote. Dim prevstate As String Dim republish As Boolean prevstate = "QA" previous state is QA republish = TRUE TRUE if you publish the Active version to QA server again status = AdjustVersionLabel(objectID, TargetState, sessionid, docbase, prevstate, republish) LifeCycleAction = status status = CloseLogFile() exit Function Done end if If you have more states, you can do the similar thing like Staging state. 38 Web Publisher Administration Guide
Setting Up Lifecycles Advancing les through their lifecycle states When you manually promote a document, Web Publisher checks if the document is linked to any other objects that are candidates for promotion. Candidate objects must satisfy the following conditions: Have lifecycles that are compatible with the original lifecycle, for example the lifecycle is a super set or subset of the original lifecycle. Are in the same lifecycle state (or below) as the original object. For example, if you promote a WIP object, Web Publisher checks for linked WIP objects. If promoting a Staging object, Web Publisher checks for linked WIP and Staging objects. Are not in a change set. Content must not be bundled together in a change set to be routed through a workflow and lifecycle as a group. Are either an automatically linked object (for example, created via an editing application) or a manually linked object where the link type has been defined as one that automatically includes links. If the object has at least one linked object that is a candidate for promotion, Web Publisher prompts you if you want to promote all linked objects in addition to the original object. If you specify Yes, all candidate objects are promoted to the same target state as the original object. If you specify No, only the selected object(s) are promoted. All promotions of linked objects are asynchronous regardless of how many objects were originally selected. Synchronization fails if filenames contain commas or if Web configuration objects have names or titles that contain commas, semicolons, or apostrophes. Lifecycles and permissions on active and expired objects In the 4.2 and earlier versions of Web Publisher, the default DocApp contained an alias set called WebPublisherAliasSet. Starting in version 4.3, a new alias set called ACL was introduced. Each of these alias sets contained different alias values that need to be resolved to work with future Web Publisher versions. Web Publisher uses a lifecycle PostProcedure script called wcmlifecyclescript to resolve alias values from an object s alias set. The lifecycle PostProcedure script uses a logic to try and resolve the alias value from an object s alias set (Web Publisher Default lifecycle Web Publisher Administration Guide 39
Setting Up Lifecycles always has one default alias set WPGroups. The PostProcedure lifecycle script works in the following way: If Web Publisher first uses the alias set, WPGroups, which is the default alias set for the Default Lifecycle, and an object is attached to Default Lifecycle with the alias entries ActiveACL and ExpiredACL then Web Publisher tries to resolve the alias values using the default alias set. If Web Publisher does not find any alias values in the default alias set then the PostProcedure script tries to resolve the alias values from the WebPublisherAliasSet alias set. If Web Publisher does not find any aliases in the WebPublisherAliasSet alias set then the PostProcedure script tries to resolve the alias values from the ACL alias set. Web Publisher uses an ACL and the ACL alias set to set permissions on an object in the Active or Expired state. The ACL alias set contains the following aliases: ActiveACL = Default Active ACL ExpiredACL = Default Expired ACL Each value is a permission set template. Content Server resolves alias values using the alias set called WPGroups. You can set different ACL values on any object in the Active or Expired state by adding the following entries in Documentum Application Builder with custom ACL values to the default lifecycle alias set, WPGroups. ActiveACL = Custom ACL name ExpiredACL = Custom ACL name To assign new aliases to WPGroups: 1. Launch Documentum Application Builder. 2. Choose File>Open from Docbase. 3. Navigate to the Web Publisher DocApp and double-click its icon to open it. 4. Double-click Default Lifecycle under the Document Lifecycles folder, and click View. The default alias set says WPGroups. 5. Double-click ACL under the Alias Sets node, and click View. Two default aliases are defined in this alias set, ActiveACL and ExpiredACL. 6. Double-click WPGroups under the Alias Sets node, and click Edit. Four default aliases are defined in this alias set, administrator, content author, content manager, web developer. 7. To assign custom ACLs to objects in the Active and Expired state you must modify the WPGroups alias set. a. In the WPGroups alias set, click Add, and complete the Alias Object dialog box. 40 Web Publisher Administration Guide
Setting Up Lifecycles Add the ActiveACL and ExpiredACL aliases. For more information on adding a new alias, see the Documentum Application Builder online help. Web Publisher Administration Guide 41
Setting Up Lifecycles 42 Web Publisher Administration Guide
Creating and Installing Work ow Templates Chapter 6 This chapter describes the following: Workflow templates overview, page 43 Custom dynamic performer values, page 50 Simple process workflows, page 51 Translation workflows, page 52 Workflow tasks, page 62 Workflow methods, page 62 For the procedures for making workflow templates available, associating them, and removing them, see the chapter on Managing Workflow Templates in the Web Publisher User Guide or Web Publisher online help. Work ow templates overview Many companies have policies that govern how specific types of content work their way through their useful lives, and beyond. Such policies typically specify the stages that content passes through and the activities that occur at each stage. Content policy is separated into two concepts: lifecycles, which define the life stages of content; and workflows, which direct a sequence of actions that users must perform on the content. Document lifecycles and workflows complement each other. A lifecycle specifies the states content occupies during its life. The lifecycle does not define what activities happen to content while it resides in a state, who is responsible for those activities, or when the content should move to another state. A workflow uses a template to define a connected set of activities, including who performs the activities and when. The workflow itself is a running version of the workflow template. Workflows are procedures that electronically coordinate tasks, data, and users. Web Publisher Administration Guide 43
Creating and Installing Work ow Templates Web Publisher provides default process workflows that enable you to create and publish websites through a series of tasks. You make a workflow the default for a particular type of content by making it the default for the template that creates that content. Web Publisher uses process workflows to ensure that Web pages adhere to your organization s review and management requirements before they are published to a production website. Process workflows manage Web page content from its creation in a repository to its publication on an external website. A process workflow consists of a standard workflow integrated with a lifecycle. You can use the same workflow for all content or create many different workflows for different kinds of content or different authoring groups. Administrators can use default process workflows as a basis for creating new process workflows with different reviewers, steps, and actions, depending on your organization s requirements. Administrators can modify task performers using groups or alias sets, modify approval and rejection paths, and customize workflow source files to provide their own alias suggestion values for every alias. Using a process workflow, you can set Web Publisher to promote content objects automatically to the next state in their lifecycle when a particular task owner submits the change set. The lifecycle controls the publishing and end-of-life processing for the objects in the change set. The creator of a workflow or lifecycle needs to have the Web Publisher Default ACL assigned to them. This allows users to participate in the workflow or lifecycle. All Web Publisher workflows must begin with a Start task, which is an automatic task that runs the method wcminitializeprocessworkflow. The Start task ensures that while a workflow is in progress, attached files are blocked from being sent to other workflows. After the Start task begins Web Publisher labels the file as in a workflow using a special icon. Web Publisher automatically launches a process workflow when a user submits a WIP file and the file has a mandatory default workflow. If the file does not have a mandatory default workflow then users will need to select a workflow from a list of default workflows. Web Publisher then automatically creates a change set for the file. Once the process workflow begins, the change set appears as a task for the next performer. Performers can view or edit the files and supporting files in the change set and they can add files or delete files from the change set before the change set is in Staging. Only local files and replicated files residing in the same repository as the local files can be added to the same change set. Replicas can be added to the change set only as supporting files. When a performer forwards the task, Web Publisher automatically promotes the change set (if configured to do so) to the next state in the lifecycle. The change set then appears as a task for the next performer in the workflow. Administrators can configure Web Publisher so that any reviewer can reject a workflow task, which means they do not approve of the content. A rejection of a task could return Web Publisher to the previous task and demote the change set from its current state 44 Web Publisher Administration Guide
Creating and Installing Work ow Templates back to the previous state. The actions of a reject task are determined by the workflow template designed by the workflow designer. By default, demoting a change set demotes all the files in the change set. Administrators can change the default so only the change set, not the files in the change set, are demoted. If a workflow task is rejected, and the workflow template rejection path points back to a group, all users of that group will receive the rejection notice, not just the user who originally acquired the task in the group. All Web Publisher workflows must end with a Cleanup task, which is an automatic task that runs the method wcmterminateprocessworkflow. The Cleanup task removes the block that bars files from being sent to other workflows. Workflow templates are a reusable network of activities and the relationships between the activities that can be used to create workflows. Administrators use Workflow Manager (WFM) or Business Process Manager (BPM) to create workflow templates that specify a series of tasks to be performed by specific participants in a specific order. Workflow Manager or Business Process Manager provides a graphical environment to design or modify workflow templates. Workflow templates behave like other objects in the repository. You can check them out, modify them, and check them in as new versions. You can access Workflow Manager through Web Publisher or through Documentum Application Builder. Business Process Manager is a separate application that must be installed using Business Process Manager Installation Guide. Web Publisher provides you with a default workflow template, but administrators can create custom workflow templates to meet business specific needs. When you create a workflow template, it inherits your permissions so you must ensure your permissions enable users to access the workflow template. Users need to access the workflow template to assign it to files during import into a Web Publisher repository. We recommend using the Web Publisher User Default ACL or an ACL with identical permissions. To create a new workflow template in Workflow Manager, use Web Publisher s New Workflow Template command or File>New>Workflow Template command. Workflow Manager opens. For information on creating a new workflow template, open Workflow Managers online help. To create a new workflow template from Business Process Manager use the instructions in the Business Process Manager Administration Guide. Default Web Publisher workflow templates are stored in Cabinets/System/ Applications/Web Publisher. Custom workflow templates are stored in Cabinets/System/Applications/Web Publisher/user defined. Only Web Publisher workflow templates stored in the user defined folder can be added or removed from the Web Publisher workflow template list stored in Administration/Web Publisher Admin/Workflow Templates. Once a workflow is installed using Workflow Manager, you must make it available to Web Publisher users. Web Publisher Administration Guide 45
Creating and Installing Work ow Templates If you create a custom workflow template to use as the Web Publisher default, you must set the workflow default on the Properties page of a specific locale or the Associate page of a specific content template. To add workflow templates to Web Publisher, refer to the chapter on Managing Workflow Templates in the Web Publisher User Guide or Web Publisher online help. Because workflows route change sets, all Web Publisher workflow templates must have one, and only one, package that contains a dm_sysobject. This allows Web Publisher to attach the change set to any workflow template. A change set is an object that contains the files being routed. Only local files and replicated files residing in the same repository as the local files can be added to the same change set. Replicas can be added to the change set only as supporting files. When a user submits a content file to a workflow, Web Publisher automatically creates a change set to hold the file. The change set allows users to add or remove files from the workflow, and promote or demote groups of files within a workflow as it progresses. Note: By default, demoting a change set demotes all the files in the change set. Administrators can change the default so only the change set not the files in the change set are demoted. Web Publisher provides the default workflow templates described here. These templates are shown in Workflow Manager not Business Process Manager. Submit to Web site is a simple workflow intended to be used by content authors to publish their content to the website. When a content author submits a file to this workflow template, Web Publisher creates a change set and promotes the change set to Staging prior to review. If a reviewer rejects the task, Web Publisher demotes the change set to WIP and routes it back to its originator. If a reviewer approves the task, Web Publisher routes the change set to an approver, who forwards it, and the change set is promoted to Approved. Figure 6-1. Submit to Web Site Work ow Request new content, which allows content managers to assign authors to create content. When starting this workflow template (either with or without a file in the change set), the content manager specifies an author to work on the content. The author might need to first create the content file and add the file to a workflow. After the content author completes the work, Web Publisher promotes the change to Staging prior to review. If a reviewer rejects the task, Web Publisher demotes the change set to WIP and routes it 46 Web Publisher Administration Guide
Creating and Installing Work ow Templates back to the author. If a reviewer approves the task, Web Publisher routes the change set to an approver who forwards it for promotion to Approved. Figure 6-2. Request New Content Work ow Sample French translation workflow allows participants, users and groups inside or outside your organization to work on translations. When a participant works on a translate task, Web Publisher automatically filters on the locale specified in the subject to indicate which objects need to be translated. Participants are then able to launch the object to be translated into the appropriate editing application and look at the previously translated version, if one exists. After the participant completes the translation, Web Publisher promotes the translation to Staging prior to review. If a reviewer rejects the task, Web Publisher demotes the translation to WIP and routes it to the translator participant. If a reviewer approves the task, Web Publisher forwards it for promotion to Approved. This workflow is a sample because you may not be able to use this workflow template out of the box. You must modify the translation workflow for your specific locales. Figure 6-3. Sample French Translation work ow Web Publisher Administration Guide 47
Creating and Installing Work ow Templates Sample translate and submit to website is an example of three different types of workflows; business process workflow, internal workflow and external workflow. This workflow enables participants to assign translators, users, and groups inside or outside your organization, assign content to be translated, and then enables participants to publish the translated content to the Website upon approval. When a content author submits a file to this workflow template, Web Publisher creates a change set and sends for the first level of review before translation files are created. When a participant works on a translate task, Web Publisher automatically filters on the locale specified in the task name to indicate which objects need to be translated. The files in a change set can be translated into German using a business process workflow, and Spanish using an internal workflow by different translators but within the same running workflow, or French using an external workflow. Participants are then able to launch the object to be translated into the appropriate editing application and look at the previously translated version, if one exists. If a reviewer rejects the task, Web Publisher demotes the translation and routes it to the translator participant. If a reviewer approves the translation, Web Publisher promotes the translation to Staging prior to final review. If a reviewer rejects the task, Web Publisher demotes the change set to WIP and routes it back to its originator. If a reviewer approves the task, Web Publisher routes the change set to an approver, who forwards it, and the change set is promoted to Approved. By default, demoting a change set demotes all the files in the change set. Administrators can change the default so only the change set, not the files in the change set, are demoted. This workflow is a sample because you may not be able to use this workflow template out of the box. You must modify the translation and submit to website workflow for your specific locales, and you must have Business Process Services installed and configured. 48 Web Publisher Administration Guide
Creating and Installing Work ow Templates Figure 6-4. Sample translate and submit to Web Site work ow Demoting a change set By default, demoting a change set demotes all the files in the change set. Administrators can change the default so only the change set, not the files in the change set, are demoted. To modify the demote change set parameter: 1. On your application server navigate to Documentum/config/WcmApplicationConfig. properties. 2. Open the WcmApplicationConfig.properties file in a text editor. 3. Modify the following change set parameter to true: wcmchangeset-demote.demotecsfiles="true" 4. Save and close the WcmApplicationConfig.properties file. 5. Restart your application server to pick up the change. Web Publisher Administration Guide 49
Creating and Installing Work ow Templates Custom dynamic performer values You can create a workflow that requires the workflow initiator or designer to select a dynamic performer value for an alias. By default, Web Publisher displays all groups and all users as alias suggestion values for a performer. You can create your own alias suggestion values to display for any existing default or custom alias. The following component definitions can include performer settings: startwpwfperformers_component.xml, forwardwpworkflowtask_component. xml, finishwpworkflowtask, rejectwpworkflowtask_component.xml, and repeatwpworkflowtask_component.xml. The configurable elements for specifying dynamic performers are described in the following table: <performers> <aliasperformerfilters> <aliasperformerfilters>.<class> <aliasperformerinit> <aliasperformerinit>.<class> <aliasperformerinit>.<class>.<role> <aliasperformerinit>.<class>.<aliasname> <dynamicperformerfilters> Contains the definition of custom performers in the following elements: <aliasperformerfilters>, <aliasperformerinit>, <dynamicperformerfilters>, <dynamicperformerinit> Default alias values Fully qualified filter class name that implements IAliasPerformerFilter. Can contain optional configuration information. Alias initializer classes Fully qualified initializer class name that implements IAliasPerformerInit. Specifies the minimum role the user must have in order to be assigned to the defined alias. Valid values: content author, content manager, developer and administrator. Users are assigned to the alias specified in this element when they have the role specified in the corresponding <aliasperformerinit>.<class>.<role>. Dynamic performer values 50 Web Publisher Administration Guide
Creating and Installing Work ow Templates <dynamicperformerfilters>.<class> <dynamicperformerinit> <dynamicperformerinit>.<class> Fully qualified filter class name that implements IDynamicPerformerFilter. Can contain optional configuration information. Dynamic performers initializer classes Fully qualified initializer class that implements IDynamicPerformerInit. Can contain optional configuration information. For more information on dynamic performers, refer to the Workflow Manager User Guide. Simple process work ows Administrators use Workflow Manager or Business Process Manager to create workflow templates which specify a series of tasks to be performed by specific participants in a specific order. You can access Workflow Manager through Documentum Application Builder and Business Process Manager through the Start menu once you have installed the application. Both applications provides a graphical environment in which you can design, modify, validate and install workflow templates. To start creation of a workflow template from Workflow Manager use the instructions in To start creation of a workflow template:, page 51. To start creation of a workflow template from Business Process Manager use the instructions in Business Process Manager Administration Guide. To start creation of a work ow template: 1. Open Workflow Manager. 2. Log in to Workflow Manager as a Web Publisher administrator. A Web Publisher administrator should have super user permissions. 3. Select File>Open and select a Web Publisher default workflow. For example, Submit to Web site. This opens a default Web Publisher workflow on which to base your custom workflow. 4. Select File>Save As and save the workflow with a name that represents the workflow. All workflows must be saved in System>Applications>Web Publisher><user_ defined_workflow_folder>. You can create a new subfolder or save directly to the Web Publisher folder. 5. Click OK. 6. Select Copy and click OK. Web Publisher Administration Guide 51
Creating and Installing Work ow Templates This choice copies activities from the default template to the new template. Copying enables you to modify activities without affecting the default template. For more information on creating workflows, refer to the Workflow Manager User Guide or Business Process Manager Administration Guide. In the following example, a content author creates content and submits it to a reviewer at which time Web Publisher creates a change set containing the content file. When the reviewer finishes the task, the reviewer submits it to the content author. The content author looks at the task and notes from the reviewer, and submits the change set to the Web developer, and the lifecycle of the change set (and the files in the change set) changes from WIP to Staging. If the Web developer submits the task, Web Publisher promotes the change set to Approved and the workflow ends. If the Web developer rejects the task, Web Publisher demotes the change set to WIP and returns it to the content author. Note: Only local files and replicated files residing in the same repository as the local files can be added to the same change set. Replicas can be added to the change set only as supporting files. Translation work ows Translation workflows are simple process workflows with special tasks used to translate a document. Using Business Process Services users and groups inside or outside your organization can contribute content through Web Publisher translation workflows as email attachments. When content arrives, Business Process Services will launch a workflow that routes the content through all appropriate stages, including approval and publication. If your organization uses email to request translations via Business Process Services (BPS), then when you send a translation workflow, you should alert translators to the following: 52 Web Publisher Administration Guide
Creating and Installing Work ow Templates Translators should not modify the subject line when replying to an email with translated content. If the files for translation are sent via HTTP, then a Reply.html file is sent along with the files for translation. Translators must open Reply.html, attach their translated files, and then submit Reply.html. Note: When you add a translation to a replicated object residing in a target repository the translation of the replicated object becomes a local file in the target repository. The translation will not be a replicated object. If you try to replicate an object with translations, and one of the translations locales is missing from the target repository, the replication will not occur. You will see an error message. For more information on Business Process Services, refer to the Business Process Services Installation Guide and Business Process Services Development Guide. Web developers can customize the user or group receiving a task and the language into which the translation should occur. To enable this process, the workflow task must be named trans_internal, trans_external, trans_launch_wf depending on the type of translation workflow you are creating. For example, trans_internal would mean please perform a translation for Italian (it_it). Once the task is correctly named Web developers can set up a process workflow with these translation tasks. The workflow initiator starts a process workflow with these translation steps on a change set that includes one or more files. Only local files and replicated files residing in the same repository as the local files can be added to the same change set. Replicas can be added to the change set only as supporting files. When each participant on a workflow forwards a task, Web Publisher checks if the next manual tasks are Translate tasks. If the next task is a Translate task, Web Publisher prompts the participant to select the file(s) in the change set to translate before forwarding the workflow task. Web Publisher also notes which locales are specified on the workflow task names. For each selected file, Web Publisher creates a new translation object for each locale. If no translated object for that locale exists, Web Publisher creates the object as a copy of the primary object, sets the appropriate locale, establishes the translation relation, and adds the object to the change set. If a translated object for that locale does exist, Web Publisher adds a copy of the primary language object as a new version of the translated object and adds it to the change set. If the object has at least one linked object the object(s) are promoted automatically. When you create a change set you must select to include or exclude linked files. Including files means that all linked files will be Web Publisher Administration Guide 53
Creating and Installing Work ow Templates automatically promoted when the original file is promoted. Excluding linked files means that only the original file is promoted. When a participant works on a Translate step, Web Publisher automatically filters on the locale specified in the step name to indicate which objects need to be translated. Participants are then able to launch the object to be translated into the appropriate editing application and look at the previously translated version, if one exists. A Web developer or administrator can define a default process translation workflow for each locale. Through these workflows, individual objects are sent to a translator and returned to the originator. A default translation workflow contains a translation step (for the appropriate locale) and may contain promotion steps (if the workflow is initiated by authors or managers). Below is a diagram of a simple process workflow with a translation task. Figure 6-5. Simple Process Work ow with Translation Task Following is a description of the tasks and their correct settings. Start: This is the workflow starting task. You must set the performer to be a repository owner, and the automatic Web Publisher method to be wcminitializeprocessworkflow. At this time Web Publisher creates a change set to include all the documents to be translated. The documents display in Web Publisher with a change set and workflow icon. 54 Web Publisher Administration Guide
Creating and Installing Work ow Templates Note: Only local files and replicated files residing in the same repository as the local files can be added to the same change set. Replicas can be added to the change set only as supporting files. Translate: This is the document translation task. The Description must be set to one of the three descriptions. trans_internal: <comment to next performer><(locale)> trans_external: <comment to next performer><(locale)> trans_launch_wf: <comment to next performer><(locale)> The three translation tasks will have different information in this dialog box. Please refer to the following examples for more information. The locale is especially important because internally Web Publisher does not allow the original language files in the change set to be translated. Web Publisher makes a copy of the original files and enables only the copies to be translated. For example, if two English documents need to be translated the trans_internal change set will contain four documents after translation, two English original documents and two translated documents. All users will see four documents except the translator, who will see only two documents. With this information, Web Publisher determines which translation activity to run, and which documents to display to the performer for translation. Promote To Staging: This is an automatic promote task. Once the translation task is complete the documents are automatically promoted for review. You must set the performer to be a repository owner, and you must set the automatic Web Publisher method to be wcmpromotetostaging. This method automatically promotes all the files in the change set from WIP to Staging in the lifecycle unless this is a trans_launch_wf. If this is a launch task only the files in the trans_launch_wf change set are promoted. Web Publisher Administration Guide 55
Creating and Installing Work ow Templates Reviewer: This is the reviewer of the translated document task. The reviewer can only view the documents, they cannot add or edit documents. If the reviewer is not satisfied with the translation they can reject the documents, sending them back to the translation task. If the reviewer is satisfied with the translation they can finish their task. Promote To Approved: This is an automatic promote task. Once the review task is complete the documents are automatically promoted to approved. You must set the performer to be a repository owner, and you must set the automatic Web Publisher method to be wcmpromotetoapproved. This method promotes the translated documents from Staging to Approved in the lifecycle, and enables users to see the document as an approved file. 56 Web Publisher Administration Guide
Creating and Installing Work ow Templates Clean Up: This is an automatic clean up task. Once the approved task is complete Web Publisher does cleanup of the workflow. You must set the performer to be a repository owner, and you must set the automatic Web Publisher method to be wcmterminateprocessworkflow. This method removes the translated files from the change set, deletes the change set, and displays the documents to users as an approved document removing the change set and workflow icon. Example 6-1. trans_internal task A trans_internal task integrates with a process workflow created for the specific use of moving documents through a translation process. This task assumes that for a given locale defined in the task description, documents will be translated by an in-house translator. In the following example, a content author creates English documents that need to be translated into one other language and published to a Website. Following is a description of all the task and its correct settings. Translate: This is the document translation task. The Description must be set to trans_internal: <comment to next performer><(locale)>. For example, trans_internal: Translate to French (fr_fr). trans_internal tells Web Publisher that the documents will be translated by an in-house translator. (fr_fr) tells Web Publisher that the documents in the change set are going to be translated into French. The locale is especially important because internally Web Publisher does not allow the original language files in the change set to be translated. Web Publisher makes a copy of the original files and enables only the copies to be translated. For example, if two English documents need to be translated the trans_internal change set will contain four documents after translation, two English original documents and two translated documents. Web Publisher will only display two documents to the French translator not four documents. With this information, Web Publisher Administration Guide 57
Creating and Installing Work ow Templates Web Publisher determines which translation activity to run, and which documents to display to the performer for translation. Example 6-2. trans_external task A trans_external task integrates with a process workflow created for the specific use of moving documents through a translation process. This type of workflow assumes all translations will be completed by an outside translator. The trans_external task indicates that documents will be sent outside the company to be translated. The process workflow calls Documentum Business Process Services to start an email process through which documents can be emailed to the outside translator. To begin this process you need to change the workflow performer method in the Translate task and associate the task with the automatic performer method wcmsendtranslationviasmtp to send files using SMTP (Simple Mail Transfer Protocol), or to wcmsendtranslationviahttp to send files using HTTP (HyperText Transfer Protocol). Web Publisher uses its own custom workflow methods (wcmsendtranslationviasmtp and wcmsendtranslationviahttp) instead of the ones delivered with Business Process Manager (BPM). These custom workflow methods get the target email address from an alias set (TranslatorEmailAddress) instead of from the BPM activity definition itself. These custom workflow methods enable the activity/workflow to be created and edited in Workflow Manager or Business Process Manager. The HTTP protocol is suggested for sending large files (2 MB and higher). The SMTP protocol is suitable for sending smaller files. If you use the HTTP method wcmsendtranslationviahttp requests for translations of all locales are sent to the same HTTP host URL specified in the configuration file. A Reply.html file is sent along with the files sent to external translators. You must then 58 Web Publisher Administration Guide
Creating and Installing Work ow Templates download the files to your local file system and edit the files, and ensure you use the same filename. You must then open the Reply.html file and attach all translated files and submit. This would post the translations back to the BPS server. Translate: This is the document translation task. The Description must be set to trans_external: <comment to next performer><(locale)>. For example, trans_external: Translate to German (de_de). trans_external tells Web Publisher that the documents will be translated by an outside translator so an email process needs to be launched. (de_de) tells Web Publisher which documents in the change set are going to be translated into German. The locale is especially important because internally Web Publisher does not allow the original language files in the change set to be translated. Web Publisher makes a copy of the original files and enables only the copies to be translated. For example, if two English documents need to be translated the trans_external change set will contain four documents after translation, two English original documents and two German documents. With this information, Web Publisher determines which translation activity to run, and which documents to display to the performer for translation. Web Publisher Administration Guide 59
Creating and Installing Work ow Templates The workflow template properties can link to a default alias set. If there is no alias set linked, Web Publisher takes a global alias set defined for the application named TranslatorEmailAddress. The TranslatorEmailAddress alias set provides translator email addresses for each language code. The email addresses tell Web Publisher where to send the documents for translation given the different language codes. Following is a table of some language code and email address examples. Table 6-1. Sample language codes and email addresses Language Code fr_ca fr_fr de_de it_it es_es en_en Email Addresses cafrench@translationsource.org frenchtranslations@francais.fr learngerman@deutschbersetzen.de italianisgreat@imparareitalian.it speakspanish@hablarespaol.net englishrules@englishgrammar.com Receive Translation: This task follows an external translation task and is a manual task with a defined trigger. You can give the trigger any applicable name. This task appears in a performer s inbox when the translations are received from an external source through email, and after the Business Process Service and a server method finish processing the received files. Example 6-3. trans_launch_wf task A trans_launch_wf task is a translation task that can either be a trans_internal task or a trans_external task. To begin this task you need to associate the task with the automatic performer method wcmsendtranslationworkflow. 60 Web Publisher Administration Guide
Creating and Installing Work ow Templates Translate: This is the document translation task. The Description must be set to trans_launch_wf: <comment to next performer><(locale)>. For example, trans_launch_wf: Launch Translation Workflow (fr_fr). trans_launch_wf tells Web Publisher that a translation task needs to be launched to translate the documents by another workflow. (fr_fr) tells Web Publisher which translation task to launch. With this information, Web Publisher determines which translation activity to run, and which documents to display to the translator. Web Publisher Administration Guide 61
Creating and Installing Work ow Templates Work ow tasks Tasks are assignments that must be performed manually by specific participants or automatically by methods in a workflow in a specific order. Tasks are built into a workflow template by the workflow template creator. The following table displays tasks found in the default workflow templates. Table 6-2. Work ow tasks Task Performed by Alias Set Method Used Start Repository owner N/A Author author Web Publisher N/A promote to Staging Repository owner N/A Reviewer reviewer Web Publisher N/A Approver Web master Web Publisher N/A demote to WIP promote to Approved clean up Repository owner Repository owner Repository owner N/A N/A N/A wcminitializeprocess- Workflow wcmdemotetowip wcmpromotetostaging wcmpromotetoapproved wcmterminateprocessworkflow Work ow methods Methods are automatic tasks that are performed in a specific order. Methods are built into a workflow template by the workflow creator. The following table displays the eight workflow methods. Six control lifecycle activity. One initializes the workflow. One ends the workflow. 62 Web Publisher Administration Guide
Creating and Installing Work ow Templates Table 6-3. Work ow methods Method wcmdemote wcmdemotetostaging wcmdemotetowip wcmpromote wcmpromotetoapproved wcmpromotetostaging wcminitializeprocessworkflow wcmsendtranslationworkflow wcmstarttranslationworkflow wcmsendtranslationviasmtp Description This method causes a particular workflow task to demote change sets to the previous lifecycle state. Use this demote for additional lifecycle states you created. By default, demoting a change set demotes all the files in the change set. Administrators can change the default so only the change set not the files in the change set are demoted. Refer to Demoting a change set, page 49. This method causes a particular workflow task to demote the change set to the Staging lifecycle state. This method causes a particular workflow state to demote change sets to the WIP lifecycle state. This method ensures that while a change set is in a workflow that is in progress, it is restricted from being sent in another workflow until the first is complete. Use this activity as the first workflow task, Start. This method causes a particular workflow task to advance files to the next lifecycle state. Use this promote for additional lifecycle states you created. If you have multiple files in a workflow that need to be promoted, batch promote is used. This method causes a particular workflow task to advance the change set to the Approved lifecycle state. This method causes a particular workflow task to advance the change set to the Staging lifecycle state. This method causes an internal or external translation workflow to start. This method causes an internal translation workflow to start. This method causes an external workflow task to send objects using SMTP. Web Publisher Administration Guide 63
Creating and Installing Work ow Templates Method wcmsendtranslationviahttp wcmterminateprocessworkflow Description This method causes an external workflow task to send objects using HTTP. This method removes the restriction of the wcminitializeprocessworkflow method. Use this activity as the last workflow task, Cleanup. 64 Web Publisher Administration Guide
Chapter 7 De ning Web Publisher Integrations This chapter describes the following: Activating the Web Publisher extended search option (ECI Services), page 65 Defining imarkup, page 66 Authoring in supported languages in ewebeditpro, page 68 Setting up a link checker, page 69 Configuring clients to open web files in authoring applications, page 70 Editing XML files in Internet Explorer 5.5 or higher, page 70 Setting up Web Publisher to send HTML mail, page 71 Integrating Web Publisher with Business Process Services, page 73 Defining integration with CI Server, page 79 Defining automatic property population, page 83 Activating the Web Publisher extended search option (ECI Services) The extended search option allows users to search external sources during advanced searches in Web Publisher. You can activate the extended search option if your organization has installed Enterprise Content Integration Services (ECIS). (For details on running searches see the Web Publisher User Guide or Web Publisher online help.) The activation of the Web Publisher extended Search (ECI option) is the following: Install ECI Services on a dedicated machine as described in the Enterprise Content Integration Services Installation Guide. Install Web Publisher as described in the Web Development Kit and Applications Installation Guide. Connect Web Publisher to ECI Services. Web Publisher Administration Guide 65
De ning Web Publisher Integrations To connect Web Publisher to ECI Services, there are two options: The Web Publisher installation includes the ECI Services configuration panel where administrators need to set the ECI server machine and port number. If Web Publisher has already been installed administrators must then edit the dfc.properties file located in $DM_HOME/dfc/config. The following values need to be modified: dfc.search.ecis.enable=true dfc.search.ecis.host=<machine where ECI has been installed> dfc.search.ecis.port=3005 <this is the default value> For more information on using ECI Services, see the Enterprise Content Integration Services Administration Guide. You search external sources by selecting an external source from a list on the Advanced Search page. The list of external sources is populated during your Web Publisher installation. You may be required to enter your username and password to access the external source. Saved searches After performing a search, you can save the search to run again later. You cannot save searches that were run on external sources. Searches are saved to the repository in Cabinets>YourHomeCabinet>Saved Searches, and can be accessed from the My Saved Searches tab on the Advanced Search page. You cannot change where searches are saved. De ning imarkup This section explains the integration between imarkup and Web Publisher. Integration between imarkup and Web Publisher lets you attach records, annotations and free-form drawings, to a web page during web view, and store annotations and drawings in a database. The imarkup integration is achieved through the imarkup Java SDK that you installed to your application server after you installed Web Publisher, and a plug-in that you need to downloaded and install to your client browser. You must install the imarkup plug-in on each client browser to use the imarkup integration. During login Web Publisher checks three imarkup integration points. The first integration point is whether the imarkup Java SDK can be loaded to the application server; the second is for a connection to the imarkup database, and the third is whether the imarkup Java SDK can be initialized. If all three criteria are met the imarkup integration feature is enabled during web view and 66 Web Publisher Administration Guide
De ning Web Publisher Integrations imarkup places a menu bar at the top of the web page, and a tree pane on your browser page. The imarkup plug-in only works with Internet Explorer. Refer to the imarkup documentation for more information on using imarkup and working with annotations. If you have correctly installed the imarkup plug-in you can access the imarkup online help by right-clicking on the web page and choosing the imarkup Help option. You can also access an imarkup annotation plug-in user guide from the imarkup website at http://imarkup.com/docs/. Storing annotations imarkup records, annotations and drawings are stored as individual objects in an imarkup database that is not a Documentum repository. The database must be set up using imarkup s documentation. Each Web Publisher installation connects to only one imarkup database. A Web Publisher installation can contain multiple Web Publisher repositories. Multiple Web Publisher repositories communicate with one imarkup database. Web Publisher repositories are defined in a dmcl.ini file; imarkup database connection information and information on the URL to the imarkup Java SDK servlet is stored in a configuration file called imarkup.properties file. Administrators can modify this configuration file with the correct driver information to support their databases. Web Publisher passes a repository_name and object_id to imarkup as a record identifier enabling imarkup to collect records based on a Web Publisher object ID and store them in an imarkup database. The repository names must be unique to ensure unique user and annotation identifiers (which user is responsible for which record). Web Publisher Administration Guide 67
De ning Web Publisher Integrations Localizing imarkup imarkup supports localization of user interface strings to enable you to create annotations in languages other than English. Refer to the imarkup documentation for more information on localizing annotations. Authoring in supported languages in ewebeditpro Ektron s ewebeditpro XML piece is a WYSIWYG authoring tool that lets users create and edit XML-based content such as content templates and stylesheets without having to understand XML. If your company has installed ewebeditpro, you can set ewebeditpro as your default XML authoring tool. Note: If you have upgraded Web Publisher, you must migrate any ewebeditpro template files created in your earlier Web Publisher version to your current Web Publisher version. For information on migrating ewebeditpro templates, refer to the Documentum 5.3 System Migration Guide s section on migrating ewebeditpro-based content. Note: ewebeditpro is not supported on any Netscape browsers. If you are using Netscape with Web Publisher you will not be able to use the ewebeditpro integration. You must use a native HTML editor to edit your content. If you try to use ewebeditpro with Netscape you may receive an error message that ewebeditpro is not installed, even if it is installed. ewebeditpro supports localization of user interface strings to enable you to author in languages other than English. To support various locales, Documentum 5 integrates with Ektron s locale files for ewebeditpro version 4.1. Web Publisher hard codes the location and name of these locale files, so if you use a different version of ewebeditpro the locale files may be not be readable due to name changes. To work with any ewebeditpro locale files you must contact Ektron to determine the name of the locale files, and you must update Web Publisher s wheedit_component.xml file. To update the wheedit_component.xml le: 1. Determine the correct names of Ektron s locale files. 2. Navigate to wp/config/library/webhtmledit/wheedit_component.xml. 3. Open the wheedit_component.xml file and modify the <locale_files> section with the correct locale filenames. The following example shows the current locale filenames. <locale_files> <en_us>locale0000b.xml</en_us> <de_de>locale0407b.xml</de_de> <es_es>locale040ab.xml</es_es> 68 Web Publisher Administration Guide
De ning Web Publisher Integrations <fr_fr>locale040cb.xml</fr_fr> <it_it>locale0410b.xml</it_it> <ja_jp>locale0411b.xml</ja_jp> <ko_kr>locale0412b.xml</ko_kr> </locale_files> 4. Save and close the wheedit_component.xml file. For information on using ewebeditpro refer to the ewebeditpro user guide which can be found at http://www.ektron.com/software/released/ewebeditproxml/v42/userguide.pdf. Setting up a link checker Link checker software enables administrators and developers to validate Web page content. Link checker software can scan links for such problems as JavaScript errors and multi-session IDs. Users need to purchase their own copy of link checker software, such as WebQA by Watchfire, which can be downloaded from Watchfire s website. To set up a link checking with Web Publisher, link checkers that accept URLs as a parameter should be used. The link checker software Web Publisher supports requires: Ability to be launched from command line Ability to accept URLs as passing parameters in command line The link checker functionality only works with Web cabinets that have a Website and Site Caching Services object set up. The link checker runs the check on the selected Site Caching Services (using the http prefix stored in the site publishing configuration as the starting point) and returns the files with broken links in a report. From this report, you can edit the files with broken links (if they are not in an active change set) and promote them as needed. To set up a link checker application: 1. Install your link checker application. 2. Log in to Web Publisher. 3. In the Web Publisher banner, click Preferences. 4. Click the Web Developers tab. 5. In the Link Check Application Path field, type the path to your link checking application. For example, <path to link checker executable> and <parameter for passing the Website URL> If you have installed WebQA to the default location, type this path: C:/Program Files/Watchfire/WebQA/ContentQA.exe/r/u Where /r/u is the parameter for passing the Website URL. Web Publisher Administration Guide 69
De ning Web Publisher Integrations 6. To save your changes, click OK. Con guring clients to open web les in authoring applications Web Publisher users who use Windows PCs to author web pages must configure Windows to open HTML and XML files in authoring applications. To do so, a user must be familiar with the Windows method for changing file type associations. This procedure is performed on each individual author s PC. To con gure Windows to open HTML and XML les in authoring applications: 1. Select Start>Settings>Control Panel. 2. From the Control Panel dialog box, select View>Options. 3. In the Options dialog box, click File Types. 4. Associate the edit action for HTML Document and XML Document file types with an application other than a web browser. Editing XML les in Internet Explorer 5.5 or higher On Windows operating systems with Internet Explorer 5.5 or higher installed, the default association for XML files is Internet Explorer. If you have not changed the default, then when you edit FolderMap.xml or any other XML file, it opens in Internet Explorer, which is not an editing application. You have two options. You can change the default association, as described below. Or, when you edit an XML file, you can close the browser and reopen the XML file using an XML editing application. To open the file, you locate it in the checkout directory on your computer. Once you are done with your edits, you must save the file and then check it back in. To change the default association for XML le: 1. On the machine on which you want to change the association for XML files, locate any XML file in a file directory. If you have no XML files on the machine, first create one. 2. Highlight the XML file. 3. Hold the SHIFT key and then right-click the file. 70 Web Publisher Administration Guide
De ning Web Publisher Integrations 4. In the pop-up menu, select Open With. 5. In the list of programs, select a text editor with which to open XML files. 6. Click Always use this program to open this type of file. Note: This means XML files will not automatically open in a browser. 7. Click OK. Setting up Web Publisher to send HTML mail Web Publisher has the ability to send email notifications (e.g., when a content object is routed on workflow for review) in HTML, instead of the default plain text. By default, Web Publisher sends email notifications in plain text. When a user clicks a task link in an email, Web Publisher launches the task in Documentum Desktop. These operations are specified by the default server script used for email: dm_event_sender.ebs. You can configure the system to send email notifications in the HTML mail format. When a user clicks on a task link in HTML mail, Web Publisher launches the task in Web Publisher. To send email notifications as HTML mail, you configure the system to use the following script for email: dm_wp_sender.ebs. Doing so affects all email notifications for all clients that use the repository. For HTML notifications on Content Servers running on Windows, Web Publisher comes bundled with an SMTP-compliant mail application called smail.exe. To use it, you must know the hostname or IP address of an existing SMTP Server. You perform this procedure using Documentum Administrator (DA) and Web Publisher. To set up HTML mail for Content Server 5: 1. Ensure your dmcl.ini file is pointing to the correct connection broker. 2. Connect to Documentum Administrator as superuser. 3. Click DQL/API. 4. Click API to change the dm_event_sender method. Use the API command and data fields to change the dm_event_sender method so that it calls dm_wp_sender.ebs. 5. Enter the following: a. In the command field enter: retrieve,c,dm_method where object_name = 'dm_event_sender' b. Click Execute. Web Publisher Administration Guide 71
De ning Web Publisher Integrations c. In the command field enter: set,c,l,method_verb d. In the data field enter: For Windows:.\dmbasic -f.\dm_wp_sender.ebs -email For UNIX:./dmbasic -f./dm_wp_sender.ebs -email e. Click Execute. f. In the command field enter: save,c,l 6. Click API to change the HTML mail method. Use the API command and data fields to change the mail method so that it calls dm_wp_mailwrapper.sh on UNIX 7. Enter the following: a. In the command field enter: retrieve,c,dm_method where object_name = 'mail' b. Click Execute. c. In the command field enter: set,c,l,method_verb d. In the data field enter: For Windows, enter the following, including the double quotation marks: ".\smail.exe -server mail_server_name" For UNIX, enter the following:./dm_wp_mailwrapper.sh e. Click Execute. f. In the command field enter: save,c,l 8. For each user to whom Web Publisher sends email, set the user_address in the dm_user object to the user s email name on the Content Server. 9. In Content Server, in dm_server_config, set the following attributes to the following values: a. Set web_server_loc to your application host machine name (for example, where Web Publisher is installed) and port number separated by. You have the option to put in protocol in this field. For example, http://denga0025 8080 72 Web Publisher Administration Guide
De ning Web Publisher Integrations This is the application host machine name (for example, the application server hostname where Web Publisher is installed on). b. Set rightsite_image to application name. It should be /wp unless you have your own application. /wp c. Set smtp_server to your mail server name. Integrating Web Publisher with Business Process Services Integrating Web Publisher with Business Process Services (BPS) enables you to include non-repository users in the processing and review of content. BPS provides services for sending messages from a Documentum repository to remote individuals or applications, receiving messages from remote individuals or applications, and controlling how incoming messages are processed. Messages, and the documents associated with them, can be exchanged using a variety of messaging standards and protocols. These capabilities enable you to extend Documentum workflow business processes to include participants from outside of your organization. For example, when creating content for a translated website, you can contract with a translation agency and create workflow tasks for the agencys translators. When the workflow arrives at a task performed by one of the translators, the workflow sends the attached files via email. When the translator finishes the task and replies to the email, Business Process Services routes the translated files to the next task in the workflow. Server logs provide a detailed log of the Business Process Services integration activity. You can view this from Documentum Administrator or directly from the file system. To integrate Web Publisher with BPS, use the following sequence of procedures: 1. Install Business Process Services as described in the Business Process Services Installation Guide. 2. Configure the listeners and message processors on each machine where you installed them. Once you have installed BPS on a machine, you edit the BPS configuration file on that machine to add further details of the configuration. For each listener, you need to identify which message processor(s) to use, which message handlers are available, and other options. Configure listeners and message processors for Web Publisher, page 74 provides you with Web Publisher specific configuration information, and the Business Process Services Development Guide explains how to update the configuration file for these software components. 3. Prepare and register inbound message handlers, and add supporting file information. Web Publisher Administration Guide 73
De ning Web Publisher Integrations An inbound message handler is a service-based-object (SBO) that implements the InboundMessageHandler interface. You must register each handler in the Documentum business object registry (DBOR) in order to make it accessible to the message processor. The Documentum Foundation Classes (DFC) Development Guide provides information about registering and working with SBOs. Prepare and register inbound message handlers and add supporting files, page 76 provides you with Web Publisher specific information. 4. Create a Web Publisher email alias. The email alias file, WcmMethodresource.properties file, provides a mapping between text from the To address and the text that the listener passes to the message processor. Each line of the email alias file represents an alias that gets substituted. Web Publisher specific modifications are discussed in Create a Web Publisher email alias, page 77. 5. Create a cabinet in a Documentum repository to store inbound HTTP messages. See Create a cabinet to store messages, page 78 for more details. 6. Copy the Web Publisher SBO (WcmMethods.jar file) onto the Content Server, and HTTP or SMTP server (depending on which messaging protocol you are using) to correctly receive messages from external (non-repository) users. For details see Copy Web Publisher SBO, page 79. 7. Start the listener servlets to begin processing inbound messages as described in the Business Process Services Development Guide. 8. Create workflows that call BPS messaging services through activity templates in Workflow Manager or Business Process Manager, see Translation workflows, page 52 for more information. See the Business Process Manager Administration Guide for information about integrating with BPS through Business Process Manager. Con gure listeners and message processors for Web Publisher When a BPS listener receives an incoming message, the message identifies the message handler to use for processing, the target Documentum repository, and the repository cabinet to handle inbound HTTP messages. The following steps define how to configure the BPS message handlers for use with Web Publisher. To con gure the BPS message handlers to work with Web Publisher: 1. Navigate to DOCUMENTUM\config\bps. 2. Open the default.xml file in a text editor. 3. Add the three handlers used by Web Publisher. 74 Web Publisher Administration Guide
De ning Web Publisher Integrations <handler name="wcmexecutemethodservice"> <service-name>wcmexecutemethodservice</service-name> <params> <param name="methodname" value="wcmdecodevdm"/> </params> </handler> <handler name="redirector"> <service-name>com.documentum.bps.handlers.subjectmessagefilter</service-name> </handler> <handler name="linktotempfolder"> <service-name>com.documentum.bps.handlers.linktotempfolder</service-name> <params> <param name="foldername" value="receivedhttpfilesfolder"/> </params> </handler> Where: WcmExecuteMethodService is a name for the message handler, that either appears as a property of an incoming message or results from resolving an alias that appears in the message. WcmExecuteMethodService is the name under which the service-based-object (SBO) is registered in the Documentum Business Object Registry (DBOR). methodname is the name of a parameter of the message handler SBO. wcmdecodevdm is the value to pass for the parameter when invoking the SBO. The parameter names and values form (name, value) pairs passed to the handler in an IDfProperties object. The incoming message itself may also include properties passed to the message handler as parameters. ReceivedHttpFilesFolder is the cabinet that needs be created. This cabinet is where the sent HTTP files are stored in the repository. 4. Create your <docbase-connection> element using information in the Business Process Manager Administration Guide. The message processor that handles a message must translate the connection name from the incoming message into an actual session with a Documentum repository. The <connections> element lists the valid connection names. For each name, there is a <docbase-connection> element that provides the login information for a Documentum repository. 5. Save and close the default.xml file Web Publisher Administration Guide 75
De ning Web Publisher Integrations Prepare and register inbound message handlers and add supporting les To enable Web Publisher workflows to use Business Process Services and process messages you must register inbound message handlers in the Web Publisher configuration file. You can also add supporting file information to the configuration file to enable users to add multiple supporting files to a workflow. Web Publisher s BPS integration does not support sending multiple supporting files. Only one supporting file (that is specified in the wcmbpsconfig.xml file) can be sent through BPS. To send multiple files, workflow participants must zip the files into a single zip file, and then attach the zip file as supporting file to be sent. To integrate Web Publisher with the Business Process Services: 1. Navigate to $DOCUMENTUM_SHARED on your Content Server and extract the wcmmethods.jar file. 2. Open the wcmbpsconfig.xml file in a text editor. 3. Add the BPS server name, Web Publisher specific handler, and supporting files zip file name. An example wcmbpsconfig.xml file is below. <?xml version="1.0" encoding="utf-8"?> <config xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <docbaseconnection>acceleramarketing</docbaseconnection> <bpsservername>bpsservername.com</bpsservername> <handlername>wcmexecutemethodservice</handlername> <supportingfile>bps_supfiles.zip</supportingfile> <smtpsettings> <hostname>acceleramarketing.documentum.com</hostname> <portnumber>25</portnumber> </smtpsettings> <httpsettings> <hosturl>http://wcme01:8300/bps/http?dctmbpshandler=linktotempfolder; DctmBpsConnection=AcceleraMarketing;DctmBpsId=test</hosturl> <bpshttpportnumber>5300</bpshttpportnumber> </httpsettings> </config> 4. Save and close the wcmbpsconfig.xml file. 5. Update the wcmmethods.jar file with the modified wcmbpsconfig.xml file. 76 Web Publisher Administration Guide
De ning Web Publisher Integrations 6. Stop and restart your BPS application server to accept the changes you made to the wcmmethods.jar file. The following table details the configuration options in the wcmbpsconfig.xml file. docbaseconnection bpsservername hostname portnumber hosturl Repository connection specified in the BPS configuration file Business Process Services name where BPS inbound service is installed Host name of the SMTP server Port number for the SMTP server. If none is provided, it defaults to port no 25 Host URL where the HTTP post is sent to. This can be the Business Process Services or any HTTP server. For BPS server, the host URL should be similar to: http://wcme01:8300/bps/ http?dctmbpshandler= LinkToTempFolder& DctmBpsConnection=wpTest& DctmBpsId=test bpshttpportnumber For HTTP server, the URL can be a URL that knows how to handle the incoming data. HTTP port number for receiving the reply from the translator. If none is specified it defaults to port 80. Create a Web Publisher email alias When a BPS listener receives a message, it looks at particular attributes of the message to determine which message handler to invoke and which Documentum repository to connect to. You can create an email alias file on the SMTP listener machine. The name of the message handler needs to match the name of a <handler> element in the configuration file on the machine running the message processor. The name of the repository connection needs to match the name of a <docbase-connection> element. If you do not want to require incoming email messages to have this format, you can create an email alias file on the SMTP listener machine. The email alias file, default.properties Web Publisher Administration Guide 77
De ning Web Publisher Integrations file, provides a mapping between text from the To address and the text that the listener passes to the message processor. The file is a standard Java properties file and it resides in the same directory as the wcmbpsconfig.xml file, namely DOCUMENTUM/config/bps. Each line of the email alias file represents an alias that gets substituted. For example, suppose the email alias file contains this alias: Translate=something-Redirector-wptest When the SMTP listener receives a message addressed to Translate@accelera.com, it substitutes the alias and passes Translate=junk-Redirector-wptest@accelera.com to the message processor. The message processor handles the message as usual, looking in its configuration file for a <handler> element with the name junk-redirector and a <docbase-connection> with the name wptest. For more information on creating email aliases see the Business Process Services Development Guide. To create an email alias: 1. Navigate to $DOCUMENTUM_SHARED and extract the wcmmethods.jar file. 2. Open the default.properties file in a text editor and add the SMTP email address that you are using for incoming email messages. For example, EMAIL_FROM_ADDRESS Translation@machine name.domain.com 3. Save and close the WcmMethodresource.properties file. 4. Update the wcmmethods.jar file with the modified WcmMethodresource.properties file. 5. Stop and restart your BPS application server to accept the changes you made to the wcmmethods.jar file. Create a cabinet to store messages You must create a repository cabinet with the name used for the message handler in the \default.xml configuration file to handle inbound HTTP messages. You set the handler in Configure listeners and message processors for Web Publisher, page 74 and the value that is the repository cabinet that needs be created. Incoming messages are routed to the message handler. The message handler implements the business logic of processing the message. For more information on creating cabinets, see Web Publisher User Guide or Web Publisher online help. For more information on configuring message handlers, see Business Process Services Development Guide. 78 Web Publisher Administration Guide
De ning Web Publisher Integrations Copy Web Publisher SBO To correctly receive messages from external (non-repository) users you must copy and register the Web Publisher SBO (WcmMethods.jar file) and the wcm.jar file onto each machine that needs to run the handler, for example, Content Server, Apache James SMTP server, and HTTP server. Refer to the Business Process Services Development Guide for details on how to copy and register SBOs. De ning integration with CI Server Web Publisher uses CI Server for its suggest values functionality. CI Server extracts values from documents and sets CI Server properties to those values. Web Publisher s integration with CI Server enables users to see the CI Server property values as suggested property values for a document. For example, suppose a group of XML documents stores prices in the <price> element. You can define in CI Server a rule that extracts the content of the <price> element and suggests the content as the value for a custom repository attribute called price. If an XML document contains the following line, then 99.99 would be suggested as the value of the price property for that document: <price>99.99</price> You can have CI Server suggest values in the following ways: On demand. Web Publisher users can click the See CIS Values button when viewing file properties. As an offline, batch-processing job to process document archives. To use batch processing, you must set the scheduling for the Resource Server Node (RSN). CI Server extracts the following types of values: Extracted property values: These are obtained from a source defined in the property s source list, which lists places to look for the valuefile system properties, object attributes and so on. CI Server provides predefined CI Server properties for typical kinds of extracted information. For example, the Creation Date property extracts the date a document was created. Calculated property values. These are based on concepts found in the content itself. Filters select the documents for which calculated properties are set. For documents that pass the filters, the values are set based on whether the property is defined as a conceptual or a constant assignment. If conceptual, the values are taken from either the document s concept list or conceptual header. If constant, a user-defined value is assigned. Suggested values cannot include the following characters: Web Publisher Administration Guide 79
De ning Web Publisher Integrations ~ For more information on CI Server, see the Content Intelligence Services documentation. Integrating Web Publisher and CI Server This section describes how to integrate Web Publisher with CI Server. You must integrate these two products before you can define and use the CI Server functionality within Web Publisher. To integrate Web Publisher and CI Server: 1. Configure the following in CI Server: a. Configure a resource server that uses CI Server. A resource server is any repository that contains documents (resources) that you want CI Server to process. b. In CI Server, configure at least one resource server node (RSN) for each resource server. A resource server node is a collection of documents that CI Server retrieves from the repository and processes together. When you create an RSN, CI Server generates a GUID (Globally Unique Identifier) string. You must enter this string when defining Web Publisher s system settings for CI Server integration. (For information on defining system settings, see the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help.) You can find a GUID through CI Server Administrator. If you use offline batch-processing to extract property values, the RSN has DQL and scheduling parameters for processing the documents that match the DQL query. c. (Optional) Create additional CI Server properties in CI Server. CI Server properties contain the values that are displayed as suggested values in Web Publisher. A CI Server property is a field defined in the CI Server database. CI Server fills in CI Server properties with values extracted from a document, and Web Publisher then uses the CI Server property values as suggested values for the document. CI Server can extract two types of property values: calculated property values and extracted property values. d. (Optional) Add a filter to an RSN. Filters control what part of a document is processedproperties or text. Filters are usually used for extracting text from documents that have complex formatting commands, such as HTML tags. You can define two types of filters: content filters and property filters. Content filters specify the document content to include or exclude from semantic modeling, remove content that interferes with modeling (like advertisements and banners on a Web page), and run on the raw content of HTML text. Property filters specify what and how extracted text and document properties are to be assigned 80 Web Publisher Administration Guide
De ning Web Publisher Integrations to CI Server properties. Configuring content filters correctly on extracted text with other formats requires an in-depth knowledge of the structure and location of the individual document, how the page chain structure of Web resources is set up, and what parts of the document are likely to be queried by the end user. 2. Configure the following in Web Publisher: a. Defining CI Server system settings, page 81 b. Mapping CI Server properties with repository properties, page 82 De ning CI Server system settings Once you have integrated CI Server with Web publisher you must define CI Server system settings within Web Publisher. System settings tell Web Publisher where CI Server is located and how to interact with CI Server. To de ne system settings for CI Server: 1. Access system settings by navigating to Administration>Web Publisher Admin>Settings in the Classic view. 2. Select the External Resources tab. 3. Define the following settings (for descriptions of these settings, see the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help): CIS Host If you integrate Web Publisher with CI Server, enter the computer name or IP address of the CI Server machine. CIS Node If you run CI Server, enter the document set. This value is a global setting; however, any value specified at the folder level will override the CIS Node Name value you set here. CIS Formats If you run CI Server, enter the file types that CI Server recognizes. Define the file types as the repository recognizes them. 4. Click Apply. Web Publisher Administration Guide 81
De ning Web Publisher Integrations Mapping CI Server properties with repository properties To map CI Server properties with repository properties, you write mapping rules in the cis_component.xml file. The default path for cis_component.xml is: \<app>\wp\config\library\cis\ object_type_folder\cis_component.xml You must create a custom component that extends the Web Publisher CI Server component in order to protect your mapping rules from upgrade. For example, copy cis_component.xml and place it under the Web Publisher application root directory in /custom/config. For more information on how to extend component definitions, see the Web Development Kit and Client Applications Reference Guide. You can define within the CI Server component definition file a set of mapping rules for each object type. You write a rule using the following syntax: <attribute show_all_values="true"> <name>docbase_property</name> <cis_name>docbase_property</cis_name> </attribute> where the <name> element signifies the repository property, and the <cis_name> element signifies the name of the XML file element from which the property value is extracted. The <cis_name> value and the XML element name must match. The <cis_name> element can contain either the CI Server property map entry or an <nlsid> element. If the <nlsid> element is not used, the data dictionary label for the attribute will be used. If the <nlsid> element is used, the value specified in an NLS properties file will be used as a label for the attribute. Example 7-1. cis_component.xml The following is an example of the cis_component.xml file with multiple repository properties called title, authors, and keywords defined: <attribute_list> <attribute> <name>title</name> <cis_name>title</cis_name> </attribute> <attribute> <name>authors</name> <cis_name>author</cis_name> </attribute> <attribute> <name>keywords</name> <cis_name>keywords</cis_name> <!-- You can specify the nlsid by doing the following --> <!-- If nlsid is not being specified, the 82 Web Publisher Administration Guide
De ning Web Publisher Integrations label from data dictionary will be used --> <!-- <nlsid>msg_keywords_label</nlsid>--> </attribute> </attribute_list> To apply a different set of mapping rules to custom object types, use the <scope> element in the CI Server component definition file. For information on using the <scope> element, see the Web Publisher Development Guide. Note: To see changes in XML files, you must refresh the configurations in memory. Navigate to /application_root/wdk/refresh.jsp to refresh the configuration files. De ning automatic property population You can configure Web Publisher so that it automatically sets property values for an object when an XML content file is checked in or imported through Web Publisher. This is called one-way population. Similarly, when the properties of an object are updated through the Properties page, the corresponding values in the XML content file are updated. This is called two-way population. Web Publisher bases the property values on the file s XML elements or attributes. You configure which XML elements or attributes provide property values. Property population can set property values based on the textline, choice, and checkbox elements. Note: Folder mapping is not executed on properties set through automatic property population. The XML application configuration file must be defined such that the properties are updated in either one direction or both directions. In many cases, the renditions generated from an XML content file using XSL stylesheets include attributes that may be affected by XML elements updated by properties. Because of this, Web Publisher will detect if the XML content file has changed after the property save function (this will indicate that the XML content file has been affected by saved properties). If so, Content Server will regenerate all renditions for XML content files with XSL-generated renditions. Property population takes advantage of Content Server s XML functionality and uses the following Content Server object types: xml_application, which is a subtype of dm_folder. The xml_application object type is used to create a folder for storing your XML application configuration file. xml_configuration, which is a subtype of dm_document. The XML application configuration file tells Content Server to perform a specified XML-based action. Note: You must use config_5.1.dtd and 5.x clients to perform two-way population. If you perform one-way population you can use either config.dtd or config_5.1.dtd. Web Publisher Administration Guide 83
De ning Web Publisher Integrations For more information on setting up an XML application configuration, see the XML Application Development Guide. Setting property population In automatic property population, an XML content file s a_category attribute specifies the name of an XML application configuration folder and XML application configuration file. When the XML content file is checked in, Content Server matches the a_category property of the XML content file with the name of an XML application configuration folder in the System cabinet. If the a_category value matches the XML application configuration folder name, the Content Server checks inside the XML application configuration folder for an XML application configuration file of the same name. The XML application configuration file tells Content Server to execute the property population. You must configure the XML application configuration file to determine what content is extracted as properties. Example 7-2. Sample le for automatic property population This example shows the sample XML content file created in Web Publisher Editor. <?xml version="1.0" encoding="utf-8"?> <rules> <tagcontent tag_name='upper_title'> <textline label='upper_title' /> </tagcontent> <tagcontent tag_name='description'> <content label='multi-line text field' instruction='enter text below.' required='y' lines='5' bold='y' italic='y' color='y' spellcheck='y' fontsize='y' indent='y' orderedlists='y' activeonly='y' unorderedlists='y' align='y' links='y' symbols='y' /> </tagcontent> <tagcontent tag_name='graphic'> <graphic label='graphic selector' instruction='select a graphic.' required='y' readonly='n' rows='5' query_type='query' query="dm_document where folder('/engtest/images')" property='object_name' output_property='folderpath' relative='n' 84 Web Publisher Administration Guide
De ning Web Publisher Integrations import='y' location='/engtest/images' formats='jpeg,gif' /> </tagcontent> </rules> To con gure Web Publisher to use property population: 1. Using Web Publisher, do the following: a. Within Web Publisher s Content Templates folder, create an XML-based template that will be used to create the objects for which you want to set properties. b. Set the template s a_category property to the name of the XML application configuration folder you just created. When users create a new object from the template, the object receives an a_category value equal to the name of the XML application configuration folder. 2. Set up the XML application configuration file to populate properties. For more information on setting up an XML application configuration file, see the XML Application Development Guide. Web Publisher Administration Guide 85
De ning Web Publisher Integrations 86 Web Publisher Administration Guide
Chapter 8 Creating Websites This chapter explains how to create a website and configure it for publishing. This chapter describes the following: Overview of creating websites, page 87 Sequence for creating a new website, page 98 Example of setting up a protected site, page 99 Creating a site publishing configuration, page 105 Overview of creating websites You define a website by creating the site in the Web Publisher repository exactly as it will exist on the web server. Site publishing con gurations Site Caching Services publishes a website from Web cabinets or publishing folders in a repository to a Site Caching Services target directory on a web server. You must have Site Caching Services installed on all machines involved. Site Caching Services publishes only documents that are stored in or linked to Web cabinets or publishing folders. Each publishing folder can include as many subfolders as necessary. When you publish, the hierarchy of a publishing folder is duplicated exactly on the web server host. The publishing folder hierarchy in the repository must match the structure planned for the website. Every website requires a site publishing configuration that tells Documentum Site Caching Services (SCS) how to publish the website. You create site publishing configurations in Documentum Administrator. Web Publisher Administration Guide 87
Creating Websites A site publishing configuration specifies the source site, the target site, and the target web server. It also specifies which files to publish, based on lifecycle state, file format, language, and other specifications. A content file can exist in multiple renditions and languages in the same repository location. The site publishing configuration also specifies the transfer user. Site Caching Services connects to the Site Caching Services target as the transfer user, which can be any user that Site Caching Services can authenticate as a valid useryou do not need to create a special transfer user. Site Caching Services can transfer data using the HTTP protocol, which does not encrypt data, or the HTTPS protocol, which encrypts data and is more secure. When you create a site publishing configuration, Site Caching Services automatically creates a publishing job. The job runs at regular intervals to initiate a Site Caching Services publish operation based on the site publishing configuration. If desired, you can set the frequency with which a job runs. For more information on jobs, refer to the Content Server Administrator s Guide and the Documentum Administrator User Guide. In addition to using jobs, Web Publisher also initiates a SCS publish operation two other ways. You can publish content using Web Publisher s publish command. Content is published synchronously or asynchronously by SCS whenever it is promoted to the Staging or Active statesdepending on your SCS configuration. Asynchronous publishing disables the publish-on-promotion function for a site. You set up site publishing configurations for three stages in a website s development: WIP (Work in Progress), Staging, and Active. You publish the site in each stage, which means three websites existone for each lifecycle state. Each site has its own Site Caching Services target directory on a web server. Depending on your setup, the Active site is either the live website or the site that is pushed out to your live Web farms. The WIP and Staging sites are for internal use and let users view Web pages in the WIP and Staging states. Users can access the WIP and Staging websites through Web Publisher s Web view command or through the appropriate URL. If content is approved but not yet Active, a Staging website is used for Web view. For more information on site publishing configuration and publishing, refer to the Site Caching Services User Guide. Default publishing con gurations for exporting editions You can create a snapshot of a website at any time in the site s existence, without affecting the site. The snapshot is called an edition. The edition is stamped with the date and time and captures everything needed to replicate the site. Editions are stored as hidden cabinets in the repository. 88 Web Publisher Administration Guide
Creating Websites Once you create an edition, you can export it to a computer and then browse the edition by opening its home page. Editions are created using only Active content. When you export an edition, it retains all its file and folder structures. To export an edition you must first create and specify it as the default site publishing configuration for editions. To specify a default publishing configuration for exporting editions, see the topic on doing so in the chapter Creating and Managing Websites in the Web Publisher User Guide or Web Publisher online help. The Site Caching Services job that enables you to create editions is called Add Editions. The job is automatically installed with Web Publisher, and like with other repository jobs, a system administrator can choose to make the job inactive or active, and to schedule the job to run at periodic intervals. For more information on jobs, see the Site Caching Services Administration Guide and the Content Server Administrator s Guide. Synchronous and asynchronous publishing Web Publisher uses synchronous publishing by default, but for each site you have the option of choosing asynchronous publishing. If you want to specify asynchronous publishing, you do so in the site s properties. Synchronous publishing pushes content to a web server whenever it is promoted to the Staging or Active states. For example, if a file is promoted from WIP to Staging, the system publishes the file to the Staging web server. When synchronous publishing is enabled, and when a file with a blank effective date is promoted to Approved, Web Publisher immediately promotes the file to Active. Upon promotion to Active, a file is immediately published, unless system settings are set to delay promotion to active. (For information on system settings, see the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help.) Asynchronous publishing turns off the publish-on-promotion function when the associated Site Caching Services publishing job is running at least every 15 minutes. Content is not published on promotion to Staging or Active when the job is running at that frequency or greater. Web Publisher overrides asynchronous publishing and pushes content manually if a user Web views WIP content as a Web page but the content has not been published since last being modified. You should specify asynchronous publishing if Site Caching Services jobs are running frequently to improve Web Publisher performance. Note: When you log on to Web Publisher as an administrator, Web Publisher checks for Web cabinets that are configured for asynchronous publishing. If the Site Caching Services publishing job duration is not correctly configured, a System Check Alert displays and you will receive an alert in your Inbox. Web Publisher Administration Guide 89
Creating Websites You can set asynchronous publishing to occur automatically after a check in, import or add translation action. By default Web Publisher does not perform an automatic publish after the check in, import or add translation actions so you must modify the auto-publish parameter located in the Documentum/config/WcmApplicationConfig.properties file to set automatic publishing. Automatic asynchronous publishing is only available for the check in, import or add translation actions not in other views or customized actions. To modify Web Publisher for asynchronous publishing: 1. On your application server navigate to Documentum/config/WcmApplicationConfig. properties. 2. Open the WcmApplicationConfig.properties file in a text editor. 3. Find the parameter: auto-publish=false and modify to auto-publish=true 4. Save and close the WcmApplicationConfig.properties file. 5. Restart your application server to pickup the change. Asynchronous publishing pushes content to a web server whenever the following actions are performed: Import a content file Check in a content file Add a translation to website using the Add Translation page. SCS will publish content to the website upon completion of one of these actions. Publishing to the website may take several minutes depending on the number of SCS jobs in the SCS server queue. Site protection Web Publisher enables you to assign permissions (ACLs) to specific objectssuch as workflows, lifecycles, content templates, files, and referenced folder mapsso that the objects are viewable on a website to specific users. You can control who has access to objects at the web(site) cabinet level by assigning a customized default permission to the Web cabinet, and then assigning objects to the Web cabinet. All objects assigned to the Web cabinet inherit the Web cabinet s permissions and are displayed or hidden on a website according to the permission. If the Web cabinet does not have a customized default permission then the Web Publisher default permission (ACL) is applied. 90 Web Publisher Administration Guide
Creating Websites You can add, modify, and remove the Web cabinet s permission as long as you have proper permissions and you have turned Web cabinet protection on. You must have Administrator, Superuser or extended permissions, or you must be the Web cabinet owner. You turn Web cabinet protection on by navigating to Administration>Web Publisher Admin>Settings and selecting Web Cabinet Protection>Turn on cabinet protection on the General tab. If you remove an object from a Web cabinet, the object s permission is reset to the Web Publisher default permission (ACL). An object residing outside a Web cabinet cannot use the customized default permission that associates the object with a website. To create a one-to-one match between a permission and a website, Web Publisher validates the permission is defined for only one Web cabinet. Objects assigned to a protected site are not available to other sites because an object can only belong to one protected site. If an object does not belong to a protected site then it belongs to all sites. If site protection is on, Web Publisher allows copy, move, and mirror operations only if both sites have the same permissions (ACL). To define a customized default permission to apply to all newly created objects you must modify the Web Publisher configuration object. For more information, see the Web Publisher Development Guide. For an example of how to set up site protection, refer to Example of setting up a protected site, page 99. Mirror objects A mirror object is an object that links to multiple locations. The term mirror object describes the objects function. It is not a type name. For example, if you check out a remote document, the system creates a document in the local repository that is a mirror of the remote document. The mirror object in the local repository is an object of type dm_document. You can link a mirror object to different locations such as another cabinet or folder. Linking a mirror object to another repository is not supported. Only a limited number of actions can affect mirror objects. You can link them to local folders or cabinets, you can retrieve their attribute values, and you can unlink and delete them. If an object is mirrored in several locations you can choose to delete only the links, or the object. If an object is in Staging, Approved, or Active deleting the mirror object unlinks the mirror object from the object. If an object is in WIP you can choose to unlink the mirror object or delete the object. Web Publisher Administration Guide 91
Creating Websites If you have globalization turned on in Web Publisher, and you have a translated object that is mirrored in multiple locations you can delete all translations from a single location or multiple locations. You cannot delete a single translation from a single location. For more information on mirror objects see the Content Server Fundamentals Guide. Determining what content is published If you create the same website in multiple renditions (i.e., file formats) or multiple languages, or both, you can use the site publishing configuration to determine what is published to a given web server. When creating it, you can set parameters that publish only certain renditions or languages, or both. You can specify renditions by specifying formats to be published. The site publishing configuration publishes only those files with the listed formats. If unspecified, all formats are published. A file s format is set in its Format property. You can specify language through the locale parameter in the site publishing configuration. A file is published if its language property matches the locale. As an example of publishing specific renditions, suppose product.htm has three renditions: product.htm, product.xml, and product.wml. Suppose you have two site publishing configurations for the site: one that publishes HTML, GIF, and CSS files, and another that publishes WML files. (Product.xml is used for development and is not published.) You can write one site publishing configuration to publish product.htm and another to publish product.wml. Note: The Content Rendition Services Java zip class cannot produce HTML renditions whose filenames contain non-ascii characters. Publishing to multiple sites You can publish to multiple web servers from the same repository site. For example, your authors can write a piece of content in a text editor, and the content can be rendered to both HTML and to WML. All the files are stored in the same location, but you can publish to two different sites, one for HTML and one for WML. If you enable Web Publisher s globalization functionality, you can also publish the same Web content in multiple languages. You can have multiple files with the same name in a repository location, as long as each file has a different locale specified for its language property. A locale is a combination of a language and a region or country. For example, you could publish the same site s content to all of the following: An English-language, HTML-based website An English-language, WML-based site for wireless users 92 Web Publisher Administration Guide
Creating Websites A French-language, HTML-based site for France A French-language, WML-based site for wireless users in France A French-Canadian HTML-based site A French-Canadian WML-based site for wireless users To publish from one site to multiple websites, each website must have its own set of WIP, Staging, and Active Site Caching Services target directories and its own set of WIP, Staging, and Active site publishing configurations. You use the site publishing configurations to determine what content is published to each site. Publishing a site in multiple languages If you enable Web Publisher s globalization functionality, you can publish a website in multiple languages. You can translate a site s content files into multiple languages and publish each translation to a separate web server. Web Publisher selects what to publish based on the language specified in the site publishing configuration s locale parameter and on the fallback rules in effect. Note: Once you have enabled globalization you can turn globalization on and off by navigating to Administration>Web Publisher Admin>Quick Links and clicking Turn on Globalization or Turn off Globalization. Publishing with different effective dates on different sites Web Publisher enables users to set multiple effective dates and multiple expiration dates on content. You can use multiple effective dates and expiration dates to publish content to multiple websites (site publishing configuration for Active version and unique effective label) on different dates. Note: Web Publisher uses a two-digit date format for a content files effective date. If you enter a four-digit effective date and mistakenly type the wrong digits at the beginning, Web Publisher will not recognize the mistake. The effective date might get set to an earlier date than you intended. Files could have a different effective date on each live website. Files can also have different expiration dates on different sites. A file with multiple effective dates is considered Active if it is published to at least one site. A file with multiple expiration dates is considered Expired if it is unavailable on any site. The object s properties provide a link to let users set site-specific dates. When an object that has multiple effective dates is approved, Web Publisher checks the effective dates for Web Publisher Administration Guide 93
Creating Websites all the sites and pushes the object only to sites for which the effective date is reached. If an object has multiple effective or expiration dates, the object remains in the Active state as long as it is live on at least one website. The content is promoted to the Expired state when it expires on every live website. Multiple effective dates can be applied only to content during the first round of publishing. Once an object is active on all sites to which it is linked, its effective dates cannot be updated. To publish a file to different sites you need a separate site publishing configuration for each Web cabinet/live site. Each site publishing configuration must have Active set as the Version Label and should have a unique name for the Effective Label (a_effective_label) property field. Once the site publishing configuration is set up you can create new content and set the effect dates for different sites. Note: You must enable multi-site effectivity in Web Publisher s global settings before you can use multiple effective date values or multiple expiration date values. Publishing change sets Change sets do not support multiple effective date values or multiple expiration date values. If you specify an effective date for a change set the effective date value of each document within the change set is overwritten to use the effective date value of the change set. Approved documents become Active when they reach the effective date. If no effective date is specified on the document the document immediately becomes Active after it is promoted to Approved. If you do not specify an effective date for a change set documents within the change set will use the effective dates specified for each specific document. Storing multiple effective and expiration dates If you are using multiple site publishing configurations with a single document Web Publisher stores multiple date values in the a_effective_date attribute and the a_expiration_date attribute. Both attributes are repeating. The a_effective_label attribute is used to store the value of the effective_label used for each site publishing configuration associated with the document. There will either be a corresponding date and time value or an empty value for a_effective_date and a_expiration_date attribute. Each attribute is represented in the user interface as Effective Date and Expiration Date and can be accessed from File>New>Content. Following is an example that shows you how you could use different effective labels. 94 Web Publisher Administration Guide
Creating Websites Example 8-1. Three site publishing con gurations You could create three site publishing configurations for one Web cabinet called MySite. One publishing configuration s effective label is set to empty, another effective label is set to internal, and a third effective label is set to external. Once you have set the effective labels you can set the publishing details. Navigate to the WIP document you want to publish. Select View>Properties>Info and set the effective and expiration dates to use for each publishing configuration. Example 8-2. Multiple dates example The following table presents three scenarios for multiple effective and expiration dates. Table 8-1. Multiple effective and expiration dates Case a_effective_label a_effective_date a_expiration_date A empty value empty value empty value B empty value 08/31/2003 12/31/2003 23:00:00 C SiteA 05/06/2003 00:00:00 10/01/2003 12:00:00 SiteB SiteC SiteD 05/06/2003 00:00:00 empty value empty value empty value empty value 03/30/2004 00:00:00 Case A shows that the document will be published to the website when it reaches the Approved state because there is no Effective date. This document will never expire because there is no Expiration date. Case B shows that the document will be published to the website when the date and time specified in a_effective_date attribute is reached. This document will expire after the date and time specified in a_expiration_date attribute is reached. The a_effective_date value and the a_expiration_date value are applicable for all Active websites to which this document is published. Both case A and case B apply only to a document that is associated with one site publishing configuration, or only to a document that has one Active site publishing configuration. Web Publisher leaves the a_effective_label value empty if none or only one active site publishing configuration is associated with the document. Case C applies to a document that has multiple site publishing configurations which: Are set to Active (is_active=1). Contain one or more effective_label values (effective_label <> ). Specify Active as the Version Label (any version_labels in (Active)). Web Publisher Administration Guide 95
Creating Websites The a_effective_label attribute is used to store the value of the effective_label used for each site publishing configuration associated with the document. Once you set the a_effective_label Web Publisher will assign a corresponding date/time value or empty value for the a_effective_date attribute and the a_expiration_date attribute. Setting effective date as a date in the past When creating or importing content, users can set the effective date to be a date in the past. In the \Documentum\config\WcmApplicationConfig.properties file, the following flag is used to allow users to set effective dates that are earlier than the current day s date: wcmattributeutil.alloweffectivedatebeforetoday You must set the attribute allow_effective_date_before_today to true. The attribute allow_effective_date_before_today is found in the By default, this is set to true, which means users can set effective dates in the past. If you want to block your users from setting effective dates that are earlier than the current day s date, set this flag to false. Resetting effective and expiration dates upon checkout When checking out content, users can change the effective or expiration dates to be different than they were upon checkout. In the \Documentum\config\WcmApplicationConfig.properties file, the following new flag resets the effective and expiration dates when an active object is checked out. For this flag to apply, it must be set to true and the multi-site option must be disabled. wcmcontent.reseteffexpdatetonullfromactivetowip If this flag is set to false, the effective and expiration dates will remain the same as before check out. Publishing externally created XML Web Publisher can automatically transform XML files managed in an external editor (such as Abortext s Epic Editor) using XSL stylesheets in the same way that XML files authored using Web Publisher s built-in Web-based XML editor. 96 Web Publisher Administration Guide
Creating Websites You can set up Web Publisher to automatically generate renditions through the XSL transform process for externally edited XML files when they are checked in by leveraging the Associate function. Externally authored XML can have renditions automatically created in one of two ways: Through a XML Template Import an XML file into the content template section of Web Publisher. Do not assign a rules file, but assign one or more XSL stylesheets. Note: You must place the XSL stylesheets in the External Presentation folder so the stylesheets are available to users from the Associate page. Web Publisher will then edit all content generated from the XML template using the user s default external XML editor. On a Per-Document basis Import an XML file from the desktop into a site cabinet Click Associate. Assign one or more stylesheets to the XML file In either case, when you edit the XML file, Web Publisher launches your default XML editor. After editing and saving, you can close your default XML editor normally. When you check in your XML file through the Check In link, Web Publisher will detect that the file is XML and has associated XSL stylesheets. Web Publisher automatically generates renditions for each of the associated XSL files. Note: Because the XML is being authored in an external editor, it is important that the structure of the XML is not changed and is what the XSL expects. In an external editor (especially without an associated DTD or schema) the XML structure can be inadvertently altered which will cause XSL transforms to fail. If you run into problems with the automatic renditioning, turn on DFC tracing and check in your file a second time. If the transform process is generating any errors, it should be listed in the trace log. Web-safe characters Web-safe characters are characters that can appear in a Web URL. All folders and files on a website must comprise Web-safe characters. The characters below are Web-safe characters. Any character with an ASCII code greater than 127 is not a Web-safe character. ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 $ - _. + & @! ( ), Web Publisher Administration Guide 97
Creating Websites Sequence for creating a new website This topic gives a sequence for creating a new website. The following sequence includes the steps required if you are setting up a protected site. The steps for protected sites are labeled as such. The following is a suggested sequence for setting up a website. To create a new website, use the following sequence of procedures: 1. If you are creating a protected site, do the following: Enable site protection in Web Publisher s system settings. Refer to the topic on defining system settings in the Web Publisher User Guide or Web Publisher online help. Create the user groups that have access to the site. Refer to Chapter 3, Setting Up Users, Groups, and Roles. Create the permission set that governs access to the site. You do not use Documentum Application Builder to create the ACLs, as they have absolute values and are not Permission Set Templates. Refer to Chapter 4, Setting Up Security. Create workflows, lifecycles, and alias sets for the site. For an example of how to set up a protected site, refer to Example of setting up a protected site, page 99. IMPORTANT: When you create the protected site (as described in the next bullet item), you must assign the permission set. Once a site is created, you cannot assign a permission set unless you do so through the IAPI or IDQL utilities. 2. Create the site and set the site s properties. Refer to the topic on creating web cabinets in the Web Publisher User Guide or Web Publisher online help. Properties you might set include (but are not necessarily limited to) the following: Specifying the site s home page Enabling In-Context Editing for the site Enabling asynchronized publishing 3. Create templates for the website and save or import the templates into the appropriate categories in the Site Manager node. Refer to Chapter 9, Creating Templates. 4. If you are creating a protected site, assign the assets to the site. Refer to the topic on assigning assets to a protected site in the Web Publisher User Guide or Web Publisher online help. 5. Create the website s folder structure. Folder names must be comprised of characters that can appear in a Web URL and cannot have spaces (see Web-safe characters, 98 Web Publisher Administration Guide
Creating Websites page 97). For more information creating a folder, see the Web Publisher User Guide or Web Publisher online help. 6. Using Documentum Administrator, create publishing configurations for the WIP, Staging and Active states for the website. The publishing configurations control what content is published. See Creating a site publishing configuration, page 105 7. If you enabled In-Context Editing for the site when creating the site, then an administrator must define In-Context Editing for the site. See Chapter 16, Setting Up In-Context Editing (ICE). 8. If the website is to be published in multiple translations, set up the necessary components. See Chapter 13, Setting Up Multi-Language Websites. Example of setting up a protected site The following is an example scenario of site protection. In this example scenario, you create four sites: Corporate Marketing Portal Customer Service DevOps You want everyone to have access to Corporate, because that contains your customer-facing website. You want only marketing to access Marketing Portal and Customer Service. You want only engineering to access DevOps, which is an intranet site. You have 12 users at your company: Table 8-2. Example users for site protection Alice Bob Eve Fred John Shannon You use this user hierarchy. Administrator (Superuser) Tom Lori Vince Wes Harsh Yvonne Group administrator (System Administrator) CA, author Web Publisher Administration Guide 99
Creating Websites CM, manager WD, developer Group administrator (system administrator) CA, author CM, manager WD, developer The Web Publisher DocApp has installed the following objects in the repository: Web Publisher User Default ACL - the global default permission (ACL) Permission Set Templates Default WIP ACL Default Staging ACL Default Approved ACL Default Active ACL Default Expired ACL Alias Set WPGroups ACL Web Publisher Groups author manager developer administrator Lifecycle Default Lifecycle Workflows Submit to website Request new content Groups and users You use Documentum Administrator to create the following 10 user groups. You do not capitalize the group names. 100 Web Publisher Administration Guide
Creating Websites Table 8-3. Example user groups for site protection Marketing group which contains these additional groups marketing author marketing manager marketing developer marketing administrator Table 8-4. Other example user groups for site protection DevOps group which contains these additional groups DevOps author DevOps manager DevOps developer DevOps administrator You assign the users to these new groups as shown in the following table. No user is in both the marketing and DevOps groups. Example of how to read this table: Alice is in the marketing administrator group, which is part of the Web Publisher administrator user group. Table 8-5. Example group assignments for site protection Web Publisher Groups Web Publisher User Site Specific Groups Site Specific Users Privilege administrator Harsh (Superuser) Yvonne (System Administrator) marketing administrator Alice System Administrator DevOps administrator Shannon System Administrator manager marketing Fred Create site and type manager DevOps Vince Create site and type manager Web Publisher Administration Guide 101
Creating Websites Web Publisher Groups Web Publisher User Site Specific Groups Site Specific Users Privilege author marketing John none author DevOps Wes none developer author marketing developer DevOps developer Bob Eve Tom Lori Create site, group, and type create site, group, and type It doesn t matter which default permission (ACL) you assign to each of these users, because it gets overwritten by the ACL from the lifecycle. You can leave it blank. In this example scenario, the Corporate site is available to all users. The other three sites are protected, giving only certain users access. ACLs You use the Web Publisher User Default ACL, which is created during DocApp installation, and you create custom, group-specific ACLs using Documentum Administrator. You do not use Documentum Application Builder to create the custom ACLs, as they have absolute values and are not Permission Set Templates. Web Publisher User Default ACL User Permissions: dm_owner, <Delete> Exec Proc, Change Location, Change State, Change Permit dm_world, <None> Exec Proc, Change Location Group Permissions: administrator, <Delete> Exec Proc, Change Location, Change State, Change Permit author, <Write> Exec Proc, Change Location, Change State, Change Permit manager, <Write> Exec Proc, Change Location, Change State, Change Permit developer, <Delete> Exec Proc, Change Location, Change State, Change Permit Marketing User Default ACL User Permissions: dm_owner, <Delete> Exec Proc, Change Location, Change State, Change Permit 102 Web Publisher Administration Guide
Creating Websites dm_world, <None> Exec Proc, Change Location Group Permissions: marketing administrator, <Delete> Exec Proc, Change Location, Change State, Change Permit marketing author, <Write> Exec Proc, Change Location, Change State, Change Permit marketing manager, <Write> Exec Proc, Change Location, Change State, Change Permit marketing developer, <Delete> Exec Proc, Change Location, Change State, Change Permit DevOps User Default ACL User Permissions: dm_owner, <Delete> Exec Proc, Change Location, Change State, Change Permit dm_world, <None> Exec Proc, Change Location Group Permissions: DevOps administrator, <Delete> Exec Proc, Change Location, Change State, Change Permit DevOps author, <Write> Exec Proc, Change Location, Change State, Change Permit DevOps manager, <Write> Exec Proc, Change Location, Change State, Change Permit DevOps developer, <Delete> Exec Proc, Change Location, Change State, Change Permit Custom DocApp You create a new DocApp with the following components. You do not modify the Web Publisher DocApp directly. Permission Set Templates Create following permission set templates. Protected WIP ACL Protected Staging ACL Protected Approved ACL Protected Active ACL Protected Expired ACL These are the exact same permission set templates as are packaged in the Web Publisher DocApp, except that the dm_world user has <None> permission. For example, the Protected WIP ACL looks like this: User Permissions: dm_owner, <Delete> Exec Proc, Change Location, Change State, Change Permit dm_world, <None> Exec Proc, Change Location Web Publisher Administration Guide 103
Creating Websites Group Permissions: administrator, <Delete> Exec Proc, Change Location, Change State, Change Permit author, <Write> Exec Proc, Change Location, Change State, Change Permit manager, <Write> Exec Proc, Change Location, Change State, Change Permit developer, <Delete> Exec Proc, Change Location, Change State, Change Permit Alias Sets You need to create at least one new alias set for each of your groups. It is easiest to model this on the WPGroups alias set. In this example, you create the following alias sets: MarketingGroups DevOpsGroups For example, in the MarketingGroups alias set, you substitute your marketing groups in the value, so that it looks like this: Table 8-6. Example alias set for site protection Type Alias Value Group administrator marketing administrator Group author marketing author Group manager marketing manager Group developer marketing developer Permission Set Active ACL Protected Active ACL Permission Set Expired ACL Protected Expired ACL User User author web master The DevOpsGroups alias set looks similar. Permission Set entries in an alias set are required so that an object is assigned the correct ACL in the Active and Expired states. User entries in an alias set are for workflows for each group. Lifecycle For each protected site you create at least one lifecycle. For example, you create a Marketing Lifecycle and a DevOps Lifecycle. For each state, you specify the protected ACLs as the parameter of the action "Set Permission Set." For example, in the WIP state, the action "Set Permission Set" points to Protected WIP ACL. Note that the only difference between Default WIP ACL and Protected WIP ACL is that in the protected ACLs dm_world is set to <None>. 104 Web Publisher Administration Guide
Creating Websites For each lifecycle you associate the proper alias set. So, for example, the Marketing Lifecycle specifies MarketingGroups as the Default Alias Set. Workflow templates For each set, you create at least one workflow template: Marketing Request new content Marketing Submit to website DevOps Request new content DevOps Submit to website In the two Marketing workflows, you reference only the users in the Marketing group. In the DevOps workflow, you reference only the users in the DevOps group. You set default alias sets for each workflow template. For example, the Marketing Request new content workflow template has MarketingGroups as the default alias set. Creating the site You create a site for each website and specify the correct ACL for the site. You assign the ACL when creating the site because once a site is created, you cannot protect the site unless you do so using the IAPI utility or IDQL utility. You do not specify an ACL for Corporate, which is not a protected site. Creating the template folders You create separate folders for each group s templates. Each group s administrator or developer can import templates into the group s folders. Assigning assets Once all the templates are imported, the Administrator (Superuser) assigns assets to each protected site. For example, the Marketing User Default ACL is applied to the Marketing Lifecycle, workflows, categories, templates, and supporting files. Association of a template is an independent operation that can be performed once all the folders, templates, and supporting files are in place. Templates inherit the ACLs of their folders. Once assets are assigned, you then log in as a user in the Marketing group and make sure you can see only these sites: Customer Support, Marketing Portal, and Corporate. When you perform the procedure for creating new content, you should see only the templates assigned to the Marketing Portal site. Creating a site publishing con guration You create a site publishing configuration using Documentum Administrator. This topic explains the information you must enter. Web Publisher Administration Guide 105
Creating Websites For more information on creating a site publishing configuration, see the Site Caching Services Administration Guide. The site publishing configuration controls what content is published from a site to a given web server. When you create a site publishing configuration, a Site Caching Services publishing job is automatically created to carry out the publishing operation. You can configure how frequently the job runs. For more information on jobs, see the Site Caching Services Administration Guide and Content Server Administrator s Guide. You cannot use the following characters in the names of site publishing configurations:, ; Note: The two repository objects that make up a site publishing configuration are the dm_webc_config object and the dm_webc_target object. To create a site publishing con guration: 1. Launch Documentum Administrator. 2. In Documentum Administrator, click Web Publishing. The existing site publishing configurations open. 3. Click NEW. 4. Define the following: Object Name. Enter a name to identify the publishing configuration. Version to be published. Set the lifecycle state to publish: either WIP, Staging, or Active. If you change this setting after you publish the configuration initially, you must republish using the Full Refresh option. Folder to be Published. Enter the name of the root folder in the repository that contains the documents you want to publish. The root folder and all subfolders are published. Formats to be published. Lists the content formats to publish. If specified, only documents with the listed formats are published. If unspecified, all formats of the documents are published. If you change this setting after you publish the configuration initially, you must republish using the Full Refresh option. Web Site Host. Enter the target machine to which to publish. Target Port for Connections. Enter the port number of the website s host machine to use for connections. Target Root Directory. Also known as the webroot. The physical directory on the web server where the transfer agent places the export data set for publication. If you change this setting after you publish the configuration initially, you must republish using the Full Refresh option. During initial publication or a full 106 Web Publisher Administration Guide
Creating Websites refresh, the contents of the target root directory are deleted. Ensure that you designate the correct directory as the target root directory. Web Server URL Prefix. The URL to the Site Caching Services target root directory. For example, if the target root directory is d:/inetpub/wwwroot/scs and the website host is on a computer host_name, set the web server URL Prefix to http://host_name/scs. Enable System Authentication. Check this to require a Transfer User Name and Transfer User Password for authentication. Unchecked means the Transfer User Name and Password are not required for authentication before a data transfer takes place. Transfer User Name and Transfer User Password. Site Caching Services connects to the Site Caching Services target as the transfer user, which can be any user that Site Caching Services can authenticate as a valid useryou do not need to create a special transfer user. Locale. Indicate which translation to publish. If a translation is not available, Web Publisher uses fallback rules to decide what to publish. If you are working with a repository whose content has been created using a dump and load procedure you must recreate the site publishing configuration in the repository. For more information on creating a site publishing configuration, see the Site Caching Services Administration Guide. Viewing site publishing con gurations To view a site publishing con guration: 1. In Classic view, select Web Cabinets. Display the Web cabinets in the right-hand frame. 2. Check a Web cabinet and select View>Web Cabinet Overview. A list of publishing configurations displays in the Publishing Configuration section. 3. Click a publishing configuration. The state of Web Publisher report opens displaying information about publishing configurations. Web Publisher Administration Guide 107
Creating Websites 108 Web Publisher Administration Guide
Chapter 9 Creating Templates This chapter gives overview information that applies to all template creation. It also gives information specific to setting up templates for external applications. For information specific to setting up templates used by one of Web Publisher s internal editing applications, see the chapter on that application in addition to this chapter. For information on the following, please see the Managing Content Templates chapter in the Web Publisher User Guide or Web Publisher online help: Associations (making and viewing associations, associating supporting files or workflows, and adding formats for associating editor presentation files) Determining availability Viewing where a template or supporting file is used Updating the presentation of a web page This chapter includes the following: Overview of creating templates, page 109 Sequence for creating templates, page 117 Creating templates for external applications, page 118 Creating presentation files for external applications, page 118 Defining folder structures for templates, page 120 Testing a template, page 120 Deleting a rendition, page 121 Updating the structure of XML files, page 122 Overview of creating templates Before you begin to create templates and work with their supporting files you should understand the basic Web Publisher templating concepts. Web Publisher Administration Guide 109
Creating Templates Web page creation Authors create content files based on templates designed by developers. When an author chooses a template, Web Publisher makes a copy of the template and saves it as a new content file. Web Publisher places the file into the correct folder on the website, according to rules defined in a folder mapping file. You can set up Web Publisher so that authors can create files in non-web formats and Web Publisher generates them into Web formats. To do so, you create either XSL stylesheets or HTML wrappers to be used in the rendering to Web formats. In Web Publisher, such stylesheets or wrappers are called presentation files. When an author checks in a content file, Web Publisher uses the presentation file to generate a Web rendition. The Web rendition is saved in the same location as the content file. You can create multiple renditions, and also delete renditions that were generated from obsolete presentation files using the where used feature. Templates Templates are the files upon which new content files are based. Templates can provide layout and other non-content related elements (such as JavaScript code) used in Web pages. You create templates in any appropriate authoring application (Dreamweaver, FrontPage, Notepad), and in any language. To use Asian characters in your templates you must add an XML header with the encoding=utf-8, or format the characters into 설탕케. All tags used in your templates must be in English. When an author chooses a template, Web Publisher makes a copy of the template and saves it as a new content file. The content file inherits the template s content and other characteristics. A template determines the following about its resulting content files: File format All the file formats configured as Web-safe formats, text formats, image formats, or CIS-indexable formats. Content Properties Lifecycle Default workflow Folder location on a website or repository. The folder location in a repository represents the folder location on a web server. Web Publisher stores the content file in a repository location determined by rules contained in an XML-based folder mapping file. Web Publisher applies the folder 110 Web Publisher Administration Guide
Creating Templates mapping rules to the content file s properties to determine the repository location. The folder structure used on the repository is the folder structure used on the web server. Location in the Web Publisher Categories node This navigation path is the sequence of categories an author clicks to locate a content file. A system query assigns a navigation path that is equal to the template s folder path in the repository Site Manager node. You create templates outside of Web Publisher and then import them in. You store them in the Site Manager / Templates node. Once templates are installed in Web Publisher, you can check them out, work on them, and check in and version them. All objects created within Web Publisher - either through the import process or the create from template process - are assigned the Web Publisher application code. The Web Publisher application code is added to the application property of objects, and uses Content Server to prevent non-web Publisher connections from modifying the object. Non-Web Publisher connections can view the object if the user s ACL permission on the object is Read or greater. Supporting les Supporting files render Web pages or affect internal behaviors. For a template to use a supporting file, the two must be associated within Web Publisher. As with templates, supporting files can be created outside the repository and imported in. They can then be checked out again for further revision. Web Publisher uses these types of supporting files: Presentation files A presentation file is used to render a content file into the publish rendition of the Web page. Presentation files are either XSL stylesheets or HTML wrappers. The latter provide standard frames to HTML-based content files. For example, an external application presentation file can provide a standardized header and footer to content files created from different templates. When a content file is checked in to the repository, Web Publisher merges the presentation file and content file to create the Web page, which is saved as a new rendition. If content is rendered using an obsolete presentation file you can delete the rendition from the where used view. Editor rules files These are specific to Web Publisher Editor. For details, see Chapter 10, Creating Templates for Web Publisher Editor. Web Publisher Administration Guide 111
Creating Templates Previews These are graphical representations that identify templates to authors. Instructions These store the instruction files that are used when you update the structure of XML content files. When you modify the XML in a template, you can update the XML content files created from that template. The update occurs according to the specifications in an instruction file. Foldermaps These are XML files that determine the locations of the content files created from templates. A folder map determines the content files location based on the file s properties which are inherited from the file s template. Replication of templates and supporting les Depending on your business needs, you may create one job to replicate content templates, and a second job to replicate supporting files from a source repository to a target repository. The templates are replicated to /WebPublisher Configuration/Content Templates, and the supporting files are replicated to /WebPublisher Configuration/Supporting Templates. The files in the target repository will show up as replicas. If you create a job to replicate a content template and its supporting files to the same location in the target repository you will be able to view the content template and its supporting files. To replicate supporting files so they are visible and available for use by authors you can replicate each supporting file type folder individually. For example: To replicate a specific Editor rules file folder you must replicate from /WebPublisher Configuration/Supporting Templates/Editor Rules/your_rules_folder. For example, /WebPublisher Configuration/Supporting Templates/Editor Rules/AcceleraRules To replicate a specific presentation file folder you must replicate from /WebPublisher Configuration/Supporting Templates/Presentations/your_presentations_folder. For example, /WebPublisher Configuration/Supporting Templates/Rules/ AcceleraLayouts Replicated templates and supporting files are seen as local files in the target repository. You can use replicated templates and supporting files to create new content, and associate files or workflows. You must replicate to the same path on the target repository as on the source repository. For example, if your templates were stored in /WebPublisher Configuration/Content 112 Web Publisher Administration Guide
Creating Templates Templates/MyTemplates on the source repository then you must replicate to this location on your target repository. For more information on replication and replication jobs see the Documentum Administrator User Guide. File locations The way you organize content files on your web servers does not mandate the way you organize content for access by authors. You can organize the same set of content files using two different organizational structures: one for your web servers and one for your authors. The organizational structure used on your web servers is determined by where content files are stored in Web cabinet folder structures. A Web cabinet s folder structure is the folder structure used on the Web. The organizational structure used to organize content files for authors is determined by the file s navigation path, which in turn is determined by folder path of the template from which the file was created. The navigation path is the series of categories an author clicks through to find the file. In both organizational structures, templates help determine file locations. Locations on web servers: A template s properties, in combination with the FolderMap.xml file, determine where a content file is placed in the Web cabinet s folder structure. When a content file is created, it inherits its properties from the template. FolderMap.xml then uses the properties to determine in which folder to store the content file. When you set properties for a template, you must do so with folder mapping in mind. You set a template s properties after importing the template into the repository. Note: Properties and FolderMap.xml determine location of content files, not the location of templates. You determine the locations of templates when you import them. Templates are stored in folders in the Site Manager / Templates node. Locations in the Site Manager / Templates node: Templates indirectly determine the navigation paths authors use to access content files. A template s folder location in the Site Manager / Templates node determines the navigation path authors use to access content files created from the template. The template s folder location also determines the navigation path of the template itself. You can change a template s navigation path by moving it to a different folder location. Example 9-1. Determining le location In the following graphic, an author uses the Client-Server Flash template to create an XML-based content file called my_new_content_object. Web Publisher uses FolderMap.xml file to determine that my_new_content_object should Web Publisher Administration Guide 113
Creating Templates be located in my_web_cabinet / my_web_folder. The Client-Server Flash template has my_presentation_file and my_rules_file associated with it, meaning my_new_content_object inherits these associations. Updated XML and XSL You can republish XML-based content with either updated XSL stylesheets or with updated XML structure. For more information, see the following: The topic on updating the presentation of a web page in the Managing Content Templates chapter in the Web Publisher User Guide or Web Publisher online help. The Updating the structure of XML files, page 122 topic in this guide. Dynamic content using XDQL XDQL is a way of creating DQL queries and processing the query results through XML. The XDQL interface is IDfXmlQuery. XDQL allows for the creation of dynamic content from repository based content and properties. An example would be a Web page, built using an XDQL query for press release objects. Press Releases would be returned and displayed in a list ordered by latest date. 114 Web Publisher Administration Guide
Creating Templates The XDQL Java class provides an XML wrapper for DQL to enable DQL queries to be called through DFC and Java applications, and from XSL stylesheets. Query results are returned as XML documents, enabling users to dynamically generate XML documents by simply querying the repository. Subsets of the content can be retrieved and processed using Xpath, an expression sub-language of XSLT. For dynamic Web pages that frequently change you can use XDQL to perform a database query within the repository, and publish a static page to a website. If you use ASP or JSP pages that contain queries to a database, every time you open a Web page a database must be queried. With XDQL, moving the dccatabase query from the website to the repository improves performance. When you make a dynamic page, you make it an XML page. You put an XDQL query inside the XSL stylesheet. The page is created in the repository and then published as a static page to the web server. See also Transforming content through XDQL and Web Publisher Editor, page 132. Automatically generated names Web Publisher can automatically generate names for content files. You use auto-naming when the name of a content file is not important and when you want your authors to have one less thing to think about. For example, auto-naming could be used when content is dynamically displayed on a website according to file properties and the name of the content file is therefore unimportant. You set up auto-naming by using a string of one or more pound signs (#) in the name of the template. When an author creates a content file, Web Publisher does not ask for a filename but instead automatically creates a filename by replacing the # signs with an auto-generated number (incremented by 1). Web Publisher replaces the # signs with a number that has as many digits as there are pound signs, using zeros for very low numbers. For example, a string like this ### starts with the number 001, then 002 and so on. You can also include non-variable characters in the template name. The characters must be Web-safe characters (see Web-safe characters, page 97). When an author creates a new content file from a template that uses auto-naming, the system validates whether the resulting name is Web-safe and unique within the folder or folders to which it is linked. This feature uses a subtype of dm_sysobject called wcm_auto_naming. The subtype has two key attributes, i_chronicle_id and last_number. When an author creates a new template, a new chronicle ID is generated and the last_number attribute is initialized. Web Publisher Administration Guide 115
Creating Templates Example 9-2. Auto-naming using multiple # signs You name a template Press_Release_2003_#####.xml. The first file created from this template is named Press_Release_2002_00001.xm. The 288th file created from the template is named: Press_Release_2002_00288.xml. Example 9-3. Auto-naming using one # sign You name a template PR#. The first file created is named PR1. The 288th file is named PR288. Extended characters in XML les To ensure that Web Publisher accepts XML files (Editor rule file, Editor presentation file, templates) which contain extended characters in markup tags, comment tags included, set your XML files with the correct character encoding. You can use either UTF-8 or ISO-8859-1. If you use extended characters, you must have an encoding declaration that matches the actual encoding of the file. This requirement is not specific to XDQL or transformations. This issue is with markup tags only not template headers. This issue affects extended characters such as Japanese and Korean characters, symbols (,,, ), and accents (,,, ) in the content. Incorrect custom markup tag: <?xml version="1.0"?> Correct custom markup tag using UTF-8: <?xml version="1.0" encoding="utf-8" standalone="yes"?> Correct custom markup tag using ISO-8859-1: <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> XSL includes Web Publisher does not support XSL includes. Specifically, Web Publisher does not support the following: 116 Web Publisher Administration Guide
Creating Templates <xsl:include href=url/> Sequence for creating templates The following is a suggested sequence. To create templates, use the following sequence of procedures: 1. Create the templates and supporting files according to the following documentation: For an internal editing application, see the appropriate chapter in this guide on creating that application s templates. For external editing applications, see the following topics in this guide, as well as the documentation for the external editing application: Creating templates for external applications, page 118 Creating presentation files for external applications, page 118 2. Define the directory structures for templates. You do so by creating the structure in the Site Manager node. See Defining folder structures for templates, page 120. 3. Assign permissions to the template folders. See Chapter 4, Setting Up Security. 4. Import templates and their supporting files into the folders you created in the Site Manager node. When importing a template, you set both the template s lifecycle and properties. The template s lifecycle and properties become the lifecycle and properties inherited by the content files created from the template. The FolderMap.xml file uses the properties to determine where to store the content files in the repository. 5. Associate each template with its supporting files and workflows. Associations are inherited by the files created from the templates. For information on associations (on making and viewing associations, on associating supporting files or workflows, and on adding formats for associating editor presentation files), please see the topics on doing so in the chapter on Managing Content Templates in the Web Publisher User Guide or Web Publisher online help. 6. If applicable, validate the templates. For example, for Web Publisher Editor templates, see Validating Web Publisher Editor templates, page 236. 7. Set up the folder mapping rules that determine where content files are placed in the repository once they are created. See Chapter 12, Defining Folder Mapping. 8. Test templates. See Testing a template, page 120. 9. Make the templates available to users. For information on doing so, please see the Managing Content Templates chapter in the Web Publisher User Guide or Web Publisher online help. Web Publisher Administration Guide 117
Creating Templates Creating templates for external applications An external application template creates a content file that is edited in a third-party application. If the template creates content in a format other than can be opened in a Web browser, then the content must be rendered to a Web-ready format before it can be published to a website. Your authors can generate the Web-ready renditions and import them into Web Publisher. If your organization is running Document Transformation Services (DTS), and if the content is created in a Microsoft Office application, then Web Publisher can automatically generate the rendition. The autorendering occurs when the content is checked in to the repository. If a Microsoft Office file contains embedded objects, such as GIF files, then DTS generates a multi-file rendition. If the content is to be combined with an external application presentation file, then it must be contained within the HTML <body> element. Creating presentation les for external applications External application presentation files provide wrappers to the content contained in the <body></body> tags of HTML content files. For example, an external application presentation file can provide a standardized header and footer to content files created from different templates. You can standardize elements across multiple templates by associating the templates with the same external application presentation file. If a content file is not created in HTML, it must first be rendered to HTML before it can be combined with the presentation file. Presentation les for external applications An external application presentation file is written in HTML code and contains an empty <bodytext></bodytext> tag set. When the presentation file is merged with a content file (upon checkin of the content file), everything within the content file s <body></body> tag set (but not including the <body></body> tags) replaces the presentation file s <bodytext></bodytext> tag set. Web Publisher stores the new file as the pub_html rendition. This is the rendition that is published to the Web. 118 Web Publisher Administration Guide
Creating Templates Presentation les for ewebeditpro Note: If you have upgraded Web Publisher, you must migrate any ewebeditpro template files created in your earlier Web Publisher version to your current Web Publisher version. For information on migrating ewebeditpro templates, refer to the Documentum 5.3 System Migration Guide s section on migrating ewebeditpro-based content. An ewebeditpro presentation file is an XSLT file. When the presentation file is merged with a content file (upon checkin of the content file), everything within the content file replaces the presentation file content. Web Publisher stores the new file as any rendition to publish to the Web. This rendition is previously set by an administrator in the whe_edit_template_component.xml file. When you first create a content template in ewebeditpro XML and check the file into the repository, Web Publisher creates a base external presentation file. This presentation file is stored in the Editor Presentation folder and is available for editing via the content template or an external editing application. You can modify the base external presentation file for your company s needs. You can determine the default rendition type for ewebeditpro presentation files. You can change where ewebeditpro presentation files are stored. To de ne the default rendition type: 1. Navigate to the wp/config/library/webhtmledit/whe_edit_template_component.xml file on your application server. 2. Make your modifications to the <webhtml_layout_transformation> element, for example, <webhtml_layout_transformation> <layout_format_name>html</layout_format_name> <layout_format_description>html Document</layout_format_description> </webhtml_layout_transformation> You must define the value of the <layout_format_name> and the <layout_format_description> for the transformation of the external presentation file. 3. Save the whe_edit_template_component.xml file. To de ne where ewebeditpro presentation les are stored: 1. Navigate to wp/config/library/webhtmledit/whe_edit_template_component.xml file on your application server. 2. Make your modifications to the <webhtml_layout_folder> element, for example, <webhtml_layout_folder>ektronlayouttemplate</webhtml_layout_folder> The <webhtml_layout_folder> value is the path relative to Site Manager>Presentations>Editor. 3. Save the whe_edit_template_component.xml file. Web Publisher Administration Guide 119
Creating Templates Once you define the value of <webhtml_layout_folder> the external presentation file of a content template is automatically saved to Site Manager>Presentations>Editor, which is the value of <webhtml_layout_folder>. The name of the external presentation file would be content_template_file_name_datapresentation_xslt. Once you have modified a presentation file ewebeditpro automatically detects a change during the next save operation of a content template. You can choose to overwrite the modified presentation file with the (old) presentation file associated with the content template, or you can choose to use the updated presentation file. Upon save, the content template is stored under Site Manager>Templates. If you are creating different language websites you should create a presentation file for each different language. De ning folder structures for templates You store templates and supporting files in specific folders in the Site Manager node. In most cases, you can create subfolders within the existing folders. For templates, the subfolders you create determine the navigation paths that authors use to access the templates and the resulting content files. You can set permissions for a folder to limit who can access the folder s files. Templates and their supporting files are stored in the following locations in the Site Manager node: Templates folder, which stores the templates used to create content files. The folders you create here determine the navigation paths authors use to locate templates. The folders appear as categories to authors. Presentations folder, which stores presentation files. There are two subfolders. Editor folder, which stores Editor presentation files. External folder, which stores external application presentation files. Rules folder, which stores Editor rules files. Previews folder, which stores the previews that are used to identify templates to authors. You cannot create new folders in this folder. After creating the folder, set the folder s properties. Testing a template Before making a template available to authors, you can test it. You can create content with an unavailable template for testing purposes. Before testing a template, do the following: 120 Web Publisher Administration Guide
Creating Templates Make sure that every item that the template calls (for example, JS files, stylesheets, or images) is in the appropriate directory in the Web cabinet and exported to the Site Caching Services target. Associate the template with the appropriate template supporting files. Edit the properties appropriately so that the folder mappings work. If necessary, configure the folder mapping to move content created with the template to the correct locations. To test a template: 1. Create new content files (as test files) from the template. Ensure that the content files exist in the correct locations. 2. Promote the content files and any linked files to Approved and make sure they become Active, as expected. 3. Delete the new content files. Deleting a rendition To change the look and feel of your website you associate new or changed presentation files with new or changed content templates. If you remove a presentation file from your website you should also remove the old renditions from your website. You can delete renditions for selected content files that were generated from obsolete presentation files using the where used view. To delete a rendition: 1. In the Classic view, select the Site Manager node. 2. Select Presentations. 3. Select one of the following: To navigate to an internal application presentation file, select Editor. To navigate to an external application presentation file, select External. 4. Navigate to the presentation file. 5. Check the file s checkbox. 6. Select View>Where Used. 7. To delete renditions based on an obsolete presentation file do one of the following: a. Select the content file from which a rendition was created and click Delete Rendition. Web Publisher automatically determines which renditions are created based on the presentation file and deletes the renditions. Web Publisher Administration Guide 121
Creating Templates b. Select the content file and select View>Renditions. Select the renditions you want to delete, and click Delete. You determine which renditions are deleted. Updating the structure of XML les This section includes the following: Updating XML structure, page 122 Creating an instruction file, page 123 Updating multiple XML files, page 126 Example of how an instruction file updates the structure of an XML file, page 127 Updating XML structure You can modify the structure of an XML template and then apply the changes to existing files that were created from that template. You can apply the addition, removal and renaming of elements, attributes, and values. You can apply the changes to multiple files at once. When you apply changes from an XML template, each updated XML content file is saved as the next version of that file and placed in the WIP lifecycle state. Each file is unlinked from the older version of the XML template and linked to the newer, current version (provided the checkbox for associating the content to current version of the template is selected). This process is asynchronous. When you update XML files, Web Publisher sends you a notification when the updates are complete. The notification includes an attached log file that lists the files changed and the changes made. You cannot update the XML structure for files that are checked out or that are in the Staging state and in a change set. You cannot update the XML structure for reinstated versions of a content file. To update existing XML content, you create an instruction file that determines which changes in the updated template are applied to the existing content files. Instruction files are stored in the Site Manager / Instructions node. When applying the changes, you select which instruction file to use. 122 Web Publisher Administration Guide
Creating Templates To update XML structure in multiple XML les, use the following sequence of procedures: 1. Modify the XML template and the Editor rules file. When you modify the XML template, it receives a new version number and becomes the CURRENT version. You can modify the XML template and Editor rules file together by using the Rules Editor. (You use the Rules Editor s Text View tab to update the XML template.) 2. If you have added new elements or attributes, update the presentation file. 3. Create an instruction file to determine which of the template changes to apply. See Creating an instruction file, page 123. 4. Select the XML files to update by performing a Where Used operation. Then reapply the template. See Updating multiple XML files, page 126. After you update a content file by reapplying template changes issued by an instruction file Web Publisher informs you that a log file is created in the WcmLog folder. You can access the WcmLog folder by navigating to Administration>Web Publisher Admin>Documentum Administration>WebPublisher Configuration. You can also view the log file creation message in the Inbox. Creating an instruction le An instruction file determines which modifications to an XML template should be applied to existing XML content file. The instruction file can create, modify and remove XML content. Instruction files are stored in the Site Manager / Instructions node. To build an instruction file, use an XML editor and build the file using the standards described in this topic. It is recommended you use an XML-aware tool that is capable of validating the XML structure. As your XML template changes, you can modify an instruction file accordingly and reuse it to apply the new template changes. Web Publisher skips instructions that cannot be performed. If an element or attribute to be removed (or renamed) has already been removed (or renamed), Web Publisher skips that instruction. If an element to be added has already been added, another instance of the element is added. If an attribute to be added has already been added, the attribute value is set to the value specified in the last instruction. If no change are made to a file, it still gets a new version number. For example, if an instruction file has only one instruction, which removes an element, and if the element is already removed, then no change is made to the content file, but the file still gets versioned. Note: If no changes are made to the file, you still get a notification that the file has been updated, though no changes will be listed in the log file. Web Publisher Administration Guide 123
Creating Templates Each instruction is designated by an instruction element, which must have both a begin tag and end tag. Table 9 1, page 124 lists the available instruction elements. Nested within each instruction element are elements that list the parameters of the instruction, including the target on which the action is to be performed. Table 9 2, page 125 describes the elements that set parameters. The elements are part of Web Publisher s updatexmlcontent XML application. Web Publisher validates each instruction file for valid and well formed XML. Each instruction has a different format depending on the instruction element. Following is an example of an instruction file format. <instruction element> <path>parentpath</path> <nodename>targetnodename</nodename> <value>value</value> <value-source>valuesourcepath</value-source> <new-nodename>newnodename</new-nodename> </instruction element> Note: The <update-element-value> instruction requires that the element being updated already have text (including white spaces) and that the element being updated has no child elements. For all other instructions, whether or not the instruction requires text or no children is parser-dependent. Relative location path is not supported. (Specifically, the XPath double-slash (//) expression is not supported.) Table 9-1. Instruction elements Instruction Element <append-element> <copy-attributevalue> <copy-elementstructure> Description Appends a copy of the source element and its children after the existing content in the target element. If either the source or target elements don t exist, this instruction does nothing. Copies the value of another attribute. If the target attribute already exists, its value is replaced, otherwise a new attribute is created. Replaces the target element with the source element and the source element s children. If the target element does not exist, this instruction does nothing. If the source element does not exist, then the target element is removed and no element is created in its place. 124 Web Publisher Administration Guide
Creating Templates Instruction Element <delete-attribute> <delete-element> <insert-attribute> <insert-element> <rename-attribute> <rename-element> Description Removes an attribute. If the attribute does not exist, this instruction does nothing. Removes an element. If this element has children, the element and its children are deleted. If this element does not exist, this instruction does nothing. Creates a new attribute and sets its value. If an attribute with the same name already exists, this instruction sets it to the value designated here. Creates a new element and set its value. Renames an attribute without changing its existing value. If the attribute does not exist, this instruction does nothing. Renames an existing element without changing its content. If this element does not exist, this instruction does nothing. Sets a new attribute value. If the attribute does not exist, this instruction does nothing. Sets a new text value for the element. Any child elements are not affected. If this element does not exist, this instruction does nothing. Table 9-2. Elements that set instruction parameters <update-attributevalue> <update-elementvalue> Element <path> <nodename> <value> <value-source> <newnodename> <comments> Value XPath-compliant expression identifying absolute position of the target node. (Required.) XPath-compliant name of the target node. (Required.) Value of an attribute or text value of an element. (Required for "insert-xxx" and "update-xxx" instructions.) XPath-compliant expression identifying position of the source node. (Required for "copy-xxx" and "append-element" instructions.) New name for attribute or element. (Required for "rename-xxx" instructions.) Comments. (Optional.) Web Publisher Administration Guide 125
Creating Templates For examples of instruction files, see Examples of instruction files, page 126. Note: Documentum s developer website provides a wizard for creating instructions files. See http://customernet.documentum.com/developer/tippage.htm Examples of instruction les Example 9-4. Add a new element Add a new element named MobilePhone with an empty text value to all elements named ContactDetails: <insert-element> <path>/customerlist/customer/contactdetails</path> <nodename>mobilephone</nodename > <value></value > </insert-element> Example 9-5. Add a new node Add a new node named disclaimer to the element named footer under an element named page: <insert-element> <path>/page/footer</path> <nodename>disclaimer</nodename > <value>text of the Disclaimer</value > </insert-element> Example 9-6. Remove an attribute Remove an attribute named DisplayOrder from an element named PageComponent: <delete-attribute> <path>/structure/pagecomponent</path> <nodename>displayorder</nodename > </delete-attribute> Updating multiple XML les This procedure modifies the structure of multiple XML files synchronizing them with the new source template by applying an instruction file. This procedure requires that an instruction file exists for the XML template. For details, see Creating an instruction file, page 123. If an XML file is checked out, in the Staging lifecycle state, or part of a change set, it cannot be updated. 126 Web Publisher Administration Guide
Creating Templates To update the structure of XML les: 1. In the Classic view, select the Site Manager node. 2. Select the Templates node. 3. Navigate to an earlier version of the template that was used to create the XML files. You must select an earlier version (one that predates the updated XML structure) so that when you perform the Where Used operation in Step 5 you can find the files in need of updating. 4. Select the template s checkbox. 5. Select View>Where Used. Web Publisher displays the XML files created from the template. 6. Select the XML files that you want to update. 7. Click Update Content. The Update Content page appears. 8. The Instruction file line displays the instruction file that will be used to determine which structural changes to apply from the updated template to the existing XML files. If the wrong file appears on this line or if no file appears, then click select file. In the selection page, and select the instruction file. 9. Click OK. The files you selected are updated, versioned and placed in the WIP lifecycle state. Web Publisher sends you a notification that the updates are complete. The notification includes an attached log file that lists the files changed and the changes made. Note: When you update multiple XML files, you receive only one notification. Example of how an instruction le updates the structure of an XML le In the following instruction file, the two instances of the <insert-element> tell Web Publisher to add two new elements to a selected XML file: <?xml version="1.0" encoding="utf-8"?> <instructions xmlns ="http://www.documentum.com/wp" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.documentum.com/wp instructions.xsd"> <insert-element> <path>/content_chunk</path> <nodename>developer_center</nodename> <value>content_management</value> Web Publisher Administration Guide 127
Creating Templates <comments></comments> </insert-element> <insert-element> <path>/content_chunk</path> <nodename>technology_center</nodename> <value>documentum</value> <comments></comments> </insert-element> </instructions> In this example, a user selects the following XML file and then clicks Update Content: 1. <?xml version="1.0" encoding="utf-8"?> 2. <content_chunk> 3. <content_link ref="dummyurl.html">enter Title Here</content_link> 4. <para> 5. Enter Paragraph information here, you can use formatting. 6. </para> 7. <product/> 8. <product_version/> 9. <content_type>componentexchange</content_type> 10. <author/> 11. <company_name>documentum, a division of EMC Corporation</company_name> 12. <company_logo>http://www.documentum.com/images/logo.gif</company_logo> 13. <state>active</state> 14. <publication_date>2005-12-31</publication_date> 15. </content_chunk> The instruction file adds the two elements and assigns them values. The elements and values are show in lines 15 and 16 in the following updated XML file: 1. <?xml version="1.0" encoding="utf-8"?> 2. <content_chunk> 3. <content_link ref="dummyurl.html">enter Title Here</content_link> 4. <para> 5. Enter Paragraph information here, you can use formatting. 6. </para> 7. <product/> 8. <product_version/> 9. <content_type>componentexchange</content_type> 10. <author/> 11. <company_name>documentum, a division of EMC Corporation</company_name> 12. <company_logo>http://www.documentum.com/images/logo.gif</company_logo> 13. <state>active</state> 14. <publication_date>2005-12-31</publication_date> 15. <developer_center>content_management</developer_center> 16. <technology_center>documentum</technology_center> 17. </content_chunk> 128 Web Publisher Administration Guide
Creating Templates 129 Web Publisher Administration Guide
Creating Templates 130 Web Publisher Administration Guide
Chapter 10 Creating Templates for Web Publisher Editor Use this chapter in addition to Chapter 9, Creating Templates. This chapter includes the following: Web Publisher Editor overview, page 131 Sequence for creating Web Publisher Editor templates, page 134 Creating content templates for Web Publisher Editor, page 134 Creating Editor rules files, page 145 Creating Editor presentation files (XSL stylesheets), page 231 Validating Web Publisher Editor templates, page 236 Web Publisher Editor overview Web Publisher Editor is a browser-based application used by content authors to create and edit content for the Web. Web Publisher Editor uses the XML-based content templates. Using Web Publisher Editor content authors create XML- and HTML-based content files without having to make decisions about how the content appears on the Web. To access Web Publisher Editor, authors create or import a new file by selecting a Web Publisher Editor template. Web Publisher Editor automatically opens. For details on the Web Publisher Editor interface and creating content files, see the Web Publisher User Guide or Web Publisher online help. Note: You must have the correct Java plug-in installed in order to use Web Publisher Editor. To ensure you have the correct Java plug-in installed you should install the plug-in accessible from File>About>Install Plug-in within Web Publisher. Web Publisher Editor uses these supporting files (for more detailed information on supporting files, see Supporting files, page 111): Web Publisher Administration Guide 131
Creating Templates for Web Publisher Editor Presentation files Web Publisher Editor uses XSL stylesheets as presentation files. The XSL stylesheets render XML content files into Web pages. Editor rules files These are XML files that determine which elements or attributes in an XML- or HTML-based content file can be edited in Web Publisher Editor. Previews Instructions Foldermaps Transforming content through XDQL and Web Publisher Editor See also Dynamic content using XDQL, page 114. XDQL allows for the creation of dynamic content from repository based content and properties. An example would be a Web page, built using an XDQL query for press release objects. Press releases would be returned and displayed in a list ordered by latest date. Another example would be if you are processing a product catalog and want to insert the latest prices and product names that are in a registered table. A query to return the information as XML and then insert it during your transformation would render this dynamic content. In this figure an XML file is transformed using an XSL file that contains XDQL. 132 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Figure 10-1. Transforming content through XDQL and Web Publisher Editor Web Publisher Editor templates can be created in two ways, either using XML/XSL or XML/HTML. In the above figure, an XML content file is paired with an Editor rules file that governs how the content is displayed in Web Publisher Editor and which elements are used. The content is sent for transformation using XSL when a user clicks Save in Web Publisher Editor. The new content is transformed and imported into the repository as a rendition of the original XML content file. In this example the XSL stylesheet also contains XDQL. When the file is sent for transformation, the XDQL is run against the repository and returns a result collection. The result collection is then processed and outputted in the resulting outputted content. The above example shows you how an XML/XSL template can contain XDQL to dynamically generate content, but what happens if content is updated? You would want your Web page to be updated with new information. Web Publisher Administration Guide 133
Creating Templates for Web Publisher Editor A job called Create_Dynamic_Content performs a transformation on Active objects that were created from content templates associated with an Editor presentation file and flagged (Automatically refresh this page when related content is modified (requires XDQL)). This flag is on the Publishing tab of the content file s Properties page. Once the Active objects are transformed you can publish the objects using Site Caching Services to your website. The job is automatically installed with Web Publisher, and like with other repository jobs, a System Administrator can choose to make the job inactive or active, and to schedule the job to run at periodic intervals. Note: If you have created Editor presentation files in Web Publisher 4.x you may need to migrate your templates to work with Web Publisher s 5.x XDQL functionality. For information on migrating templates, refer to Migrating to Documentum 5. Sequence for creating Web Publisher Editor templates To create Web Publisher Editor templates, follow the sequence in Sequence for creating templates, page 117. For the step on creating the templates and supporting files, use the following topics: Creating content templates for Web Publisher Editor, page 134 Creating Editor rules files, page 145 Creating Editor presentation files (XSL stylesheets), page 231 Creating content templates for Web Publisher Editor This section includes the following: Creating a content template, page 135 Creating an XML-based content template, page 136 Creating an HTML-based content template, page 138 Examples of Web Publisher Editor templates, page 141 Using symbols in XML, page 141 Web Publisher Editor attribute extraction, page 142 134 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Creating a content template A Web Publisher Editor content template enables authors to create XML- and HTML-based content files in a user friendly Web interface. We recommend you create XML templates over HTML templates, because of the flexibility XML provides. In HTML templates, you can use only non-container elements i.e., elements that do not contain other elements. In Web Publisher 4.2.4 and earlier, the <textrigger>, <repeatdef> and <tabledef> tags do not work in HTML-based Web Publisher Editor templates. For flexibility between Web Publisher versions, use <textrigger>, <repeatdef> and <tabledef> only in XML-based templates. For more information on using XML-based templates in Web Publisher, see www.documentum.com/developer and navigate to Tip Collection>Web Publisher and Web Site Manager>Web Publisher XSL Tips. Web Publisher Editor templates work together with supporting files such as Editor rules files to determine the type of field that an author will use in Web Publisher Editor to edit each piece of content. The rules file, created using Rules Editor, identifies content according to the element or attribute in which it is found. The template determines the order of the fields in the Web Publisher Editor interface, even if the rules file lists the fields in a different order. The template must be composed of well-formed XML or HTML. You can validate an XML-based template using Web Publisher s validate command or through the Rules Editor. If a template is XML-based, it must have at least one associated Editor presentation file, which is an XSL stylesheet. You can include instructions in the template. For example, suppose a template includes a <product> element in which authors are to enter a product name. The template could include an instruction to do so: <product> Enter the product name here </product> If you are using a content template that has a locale of en_us, but is only associated with a rules file with a locale of a different language, for example, fr_ca, then creating content from the content template opens an XML file in a text editor, not in Web Publisher Editor. You encounter this behavior because Web Publisher queries for a rules file with the same locale as the content template. If the same locale content template and rules file does not exist Web Publisher opens a text editor because there is no rules file to display in Web Publisher Editor. The following figure displays how an XML-based editor template works together with its supporting files. An author selects the template, and Web Publisher copies the template as the new content file. The author opens the content file, and Web Publisher Web Publisher Administration Guide 135
Creating Templates for Web Publisher Editor uses the rules file to determine how the content is displayed in Web Publisher Editor. When the author checks in the content file, the transformation engine merges the content file and presentation file to create a Web page. Figure 10-2. XML-based Web Publisher Editor template and supporting les Creating an XML-based content template This procedure shows you how to create an XML-based template that authors edit through Web Publisher Editor. We do not have a Web-based tool to help you create the template. You must use your own tool such as a text editor. To create an XML-based template: 1. Open a new document in a text editor. 2. Use the Save As command to save the document as prod_detail_external_app_ ###.xml. 3. To add start and end tags, type the following: <?xml version="1.0" encoding="utf-8"?> <PAGE> <PRODUCT> </PRODUCT> </PAGE> 4. To create a product name, use the following tag set: <TITLE> Name of the Phone </TITLE> 5. To create a number for the product, use the following tag set: <PRODUCTNUMBER> Product Number for the phone </PRODUCTNUMBER> 6. To create a product image, use the following tag set: 136 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor <GRAPHIC> </GRAPHIC> 7. To create a product price, use the following tag set: <PRICE> $199.00 </PRICE> 8. To create a product description, use the following tag set: <DESCRIPTION> Summary of the phone </DESCRIPTION> 9. To create a list of product benefits, use the following tags: <DETAIL> <BENEFIT> A benefit of the phone </BENEFIT> <BENEFIT> Another benefit </BENEFIT> <BENEFIT> etc. </BENEFIT> </DETAIL> 10. To create a product type, use the following tag set: <PROD_TYPE> phone </PROD_TYPE> <?xml version="1.0" encoding="utf-8"?> <PAGE> <PRODUCT> <TITLE> Name of the Phone </TITLE> <PRODUCTNUMBER> Product Number for the phone </PRODUCTNUMBER> <GRAPHIC> </GRAPHIC> <PRICE> $199.00 </PRICE> <DESCRIPTION> Summary of the phone </DESCRIPTION> <DETAIL> <BENEFIT> A benefit of the phone </BENEFIT> <BENEFIT> Another benefit </BENEFIT> Web Publisher Administration Guide 137
Creating Templates for Web Publisher Editor <BENEFIT> etc. </BENEFIT> </DETAIL> <PROD_TYPE> phone </PROD_TYPE> </PRODUCT> </PAGE> The completed template should look like the following: 11. Save and close the template as prod_detail_external_app_###.xml. 12. Import the template into the Site Manager>Templates folder in the repository. For instructions on importing, see the Web Publisher User Guide or Web Publisher online help. Creating an HTML-based content template This procedure shows you how to create an HTML-based template that authors edit through Web Publisher Editor. We do not have a Web-based tool to help you create the template. You must use your own tool such as a text editor. The HTML template is more difficult than the XML template. Below are the guidelines to produce an HTML template of the same information used in the XML content template. To add start and end tags to an HTML template: 1. Open the new document in a text editor. 2. Use the Save As command to save the document as prod_detail_editor_###.html. 3. Type the following code. <html> </html> 4. To create a product title, use the following tags: <head> <title>accelera Communications Product List</title> <link HREF="../style.css" TYPE="text/css" REL="stylesheet"/> </head> 5. To create a product number, price, image, description, benefits and type, use the following tags: <TR> <td width="88" valign="top"><img tecomponenttype="graphic" src="" border="0" /> <p><br/> <br/> </p> 138 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor <p> <b><wpeditor tecomponenttype="productnumber">product Number for the phone</wpeditor></b> <br/> <span class="title"><wpeditor tecomponenttype="price"> $199.00</WPEDITOR></span> <br/> <a href="#"><img src="../images/buy_btn.gif" border="0" height="13" width="45"/></a> </p> </td> <td valign="top" width="558"> <b class="largetitle"><wpeditor tecomponenttype="title"> Name of the Phone</WPEDITOR></b><br/> <img src="../images/dots_300.gif" border="0" height="8" width="300"/><br/> <WPEDITOR tecomponenttype="description"> <P>Summary of the phone</p> </WPEDITOR> <p> <br/> </p> <WPEDITOR tecomponenttype="detail"> <P> <UL> <LI>A benefit</li> <LI>Another benefit</li> <LI>etc.</LI> </UL> </P> </WPEDITOR> </td> </TR> The completed HTML content template should look like the following: <html> <head> <title>accelera Communications Product List</title> <link HREF="../style.css" TYPE="text/css" REL="stylesheet"/> </head> <BODY LEFTMARGIN="0" TOPMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" BGCOLOR="#FFFFFF"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" HEIGHT="100%" WIDTH="100%" > <!--table to push content to full window height--> <TR> <TD VALIGN="TOP" > <!--#INCLUDE FILE="/fragments/nav_press.incl"--> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="20" WIDTH="99%"> <TR> <td width="88" valign="top"><img tecomponenttype="graphic" src=" "border="0" /> <p><br/> <br/> </p> <p><b><wpeditor tecomponenttype="productnumber">product Web Publisher Administration Guide 139
Creating Templates for Web Publisher Editor Number for the phone </WPEDITOR></b> <br/> <span class="title"><wpeditor tecomponenttype="price"> $199.00 </WPEDITOR></span> <br/> <a href="#"><img src="../images/buy_btn.gif" border="0" height="13" width="45"/></a> </p> </td> <td valign="top" width="558"> <b class="largetitle"><wpeditor tecomponenttype="title">name of the Phone </WPEDITOR></b><br/> <img src="../images/dots_300.gif" border="0" height="8" width="300"/><br/> <WPEDITOR tecomponenttype="description"> <P>Summary of the phone</p> </WPEDITOR> <p> <br/> </p> <WPEDITOR tecomponenttype="detail"> <P> <UL> <LI>A benefit</li> <LI>Another benefit</li> <LI>etc.</LI> </UL> </P> </WPEDITOR> </td> </TR> </TABLE> </TD> </TR> <TR> <TD VALIGN="BOTTOM" > <!--#INCLUDE FILE="/fragments/footer.incl"--> </TD> </TR> </TABLE> </BODY> </html> 6. Save and close the template as prod_detail_editor_###.html. 7. Import the template into the Site Manager>Templates folder in the repository. For instructions on importing, see the Web Publisher User Guide or Web Publisher online help. 140 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Examples of Web Publisher Editor templates Example 10-1. XML-based Web Publisher Editor template <?xml version="1.0" encoding="utf-8"?> <proddoc> <prodtitle>the Product Title goes here.</prodtitle> <prodabs>the Product abstract goes here.</prodabs> <proddesc prodowner=' ' prodstatus=' ' > The product description goes here.</proddesc> <prodpict src= ' ' /> <prodno /> <proddata user='expert' javavm=' '> The product version goes here (for expert users only)</proddata> <title></title> </proddoc> Example 10-2. HTML-based Web Publisher Editor template In the following HTML-based example, the tecomponenttype attribute is used to indicate which element in the rules file to match. Attribute/value lookup processing is not done. The tecomponenttype is matched to the tag_name attribute. <html> <body> <h1 tecomponenttype='prodtitle'>the Product Title goes here. </h1> <h2 tecomponenttype='prodabstract'>the Product Abstract goes here.</h2> <p tecomponenttype='proddesc'>the product description goes here.</p> <img tecomponenttype='prodpict' src='zzz.gif' alt='product picture graphic' height='35' width='200'></img> <p The product number is: <b tecomponenttype='prodno'> Prod No.</b></p> </body> </html> Using symbols in XML When you reference symbols in Web Publisher Editor files (templates, rules files, and Editor presentation files), use character references. For example: for a non-breaking space for a trademark symbol, or ü for an umlaut, The Xerces XML parser, which validates the files, does not interpret HTML entity references. For example, the parser does not interpret the following: for a non-breaking space Web Publisher Administration Guide 141
Creating Templates for Web Publisher Editor for a trademark symbol ü for an umlaut This is the nature of XML. Five Exceptions There are five exceptions to the rule. XML has five entity references built in: < for less than (<) > for greater than (>) & for ampersand (&) ' for apostrophe or single quote ( ) " for quotation mark (") Web Publisher Editor attribute extraction Note: In Web Publisher 5.2.5 and later, Web Publisher Editor s <content> element wraps content in upper-case <P> tags. Earlier versions of Web Publisher wrapped content in lower-case <p> tags. This can affect automatic property extraction if you are using the <content> element for extraction. Attribute Extraction enables authors to enter property values directly from the Properties page without having to open Web Publisher Editor. Attribute Extraction will work by default if you have the same category name on the content object, XML application and application folder name. But, if you are using the <content> element in the Web Publisher Editor, the <p> element is placed around the content. The <p> element prevents Web Publisher Editor from correctly reading the content. The workaround is to add an extra bit of code which is bolded below. For example: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE application SYSTEM "config.dtd"> <?dctm xml_app="ignore"?> <application> <name>product Datasheet</name> <app_pattern> <element>product</element> </app_pattern> <map_rules> <xml_content_rule export="inline" editable_virtual_doc="false"> <element_selection_pattern> <element>product</element> </element_selection_pattern> <variables> <variable> <name>product_name_element</name> <content_of_element> <element_selection_pattern> <element>product_name</element> </element_selection_pattern> 142 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor </content_of_element> <default>product Name Unspecified</default> </variable> <variable> <name>product_description</name> <content_of_element> <element_selection_pattern> <element>p</element> <context_rule> <child_of> <element_selection_pattern> <element>product_description</element> </element_selection_pattern> </child_of> </context_rule> </element_selection_pattern> </content_of_element> <default>product desc Unspecified</default> </variable> </variables> <metadata> <dctmattr> <name>title</name> <template><var name="product_name_element"/></template> </dctmattr> <dctmattr> <name>log_entry</name> <template><var name="product_description"/></template> </dctmattr> </metadata> <make_entity /> </xml_content_rule> </map_rules> </application> And the template: <?xml version="1.0"?> <product> <product_name>turtleneck shirt</product_name> <product_num>17253</product_num> <product_description>this 100-percent-cotton shirt comes in beige, blue and green.</product_description> </product> Web Publisher Editor comments Once authors have entered and saved content into Web Publisher Editor they can add comments about the content, for example, what changed in this version of the content compared to a previous version. By default, if the content is saved, authors must enter comments in the Comment dialog box either by clicking the Comment button available Web Publisher Administration Guide 143
Creating Templates for Web Publisher Editor upon save, or by clicking the Save and Close buttons and automatically popping up the Comment dialog box. Authors cannot close the content until they enter comments. You can modify this mandatory comment requirement by editing the EditorUI.properties file. Modifying the properties file will enable authors to save and close their content without having to enter comments. The Comment button is still available for use if the mandatorycomment setting is set to false. To modify the comment requirement: 1. On your application server navigate to wp/editors/contenteditor/resources/editorui. properties. 2. Copy the EditorUI.properties file to custom/wp/editors/contenteditor/resources. 3. Open the custom/wp/editors/contenteditor/resources/editorui.properties file in a text editor. 4. Set the comment code to be false. Modify the following code from: contenteditor.mandatorycomment=true to contenteditor.mandatorycomment=false 5. Save and close the EditorUI.properties file. Link management Link management is a way for Web Publisher to track hyperlinks and images that point to objects in the repository. Hyperlinks and images are created and tracked using ewebeditpro, or the <content> element in Web Publisher Editor. Relations are created when an author selects an object from the repository browser, or local file system in a hyperlink page, or insert image page. A relation describes a relationship that can exist between two objects in the repository, and can act as an indicator. No relation is created if the hyperlink or image link is manually created in code view tab in the <content> element in Web Publisher Editor. If you make modifications to the link s <href> or image s <src> in code view, after the object is selected from the repository browser, no relation is created, even if a relation was created in the previous version, and the original relation will be deleted. An XML processing instruction is created in the XML content file to manage all the links so that when content is saved or edited all the links are recognized. 144 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Link management is not supported for content files that were created with earlier versions of Web Publisher. Relations will not be created for images or hyperlinks even in the old content files are edited using Web Publisher 5.3. Creating Editor rules les This section includes the following: Overview of Editor rules files, page 145 Component types, page 149 Defining a format list, page 223 The rules file on the sample website, page 224 To download the Editor Rules File Samples Guide, go to the support area of http://www.documentum.com/. Overview of Editor rules les A rules file is an XML file that determines which elements or attributes in an XML- or HTML-based content file can be edited in Web Publisher Editor. Each rule determines the type of field used to display a particular type of content, as defined by the element or attribute containing the content. You specify the type of field by assigning a rule to the element or attribute. Each rule names an element or attribute and determines which Web Publisher Editor field edits the information. A rule also determines how the field behaves. You associate a rules file with one or more Web Publisher Editor content files. The rules file is automatically associated with the content files created from those templates. If the rules file is not associated with a content file and you want to edit the rules file in Rules Editor Web Publisher prompts you to select a content file. Once you have selected a content file Web Publisher associates the content file with the rules file and checks out both files, and then launches Rules Editor. If you want to create a new rules file you can do so in Site Manager>Rules and associate the new rules file with an existing content file. If a rules file is associated with one content file, and your preferences are set to use Rules Editor, then Rules Editor opens automatically. If a rules file is associated with more than one content file, Web Publisher enables you to choose a content file to use and then launches Rules Editor. Web Publisher Administration Guide 145
Creating Templates for Web Publisher Editor Figure 10-3. Rules Editor The left pane of the Rules Editor displays the XML-based Web Publisher Editor template and these tabs: Tree View Shows the XML-based template s elements and attributes as nodes in a tree. An element is surrounded by <>. An attribute is followed by an equal sign. Elements and attributes that have an existing rule display as blue text. You assign a rule by selecting the element or attribute and then selecting a rule from the Rules menu. You define the rule s values in the Rule Editor tab. Text View Displays the XML-based template s elements and attributes as raw XML. You can edit and validate the template from this tab. You cannot create a new template file from this tab. The right pane displays the selected rule and these tabs: Rules Editor Displays component type fields for defining the rule. These rules are described in detail below. Preview Displays how the rule displays the content in Web Publisher Editor. Rule XML Gives a read-only view of the rule s source code. 146 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor If you are using a content template that has a locale of en_us, but is only associated with a rules file with a locale of a different language, for example, fr_ca, then creating content from the content template opens an XML file in a text editor, not in Web Publisher Editor. You encounter this behavior because Web Publisher queries for a rules file with the same locale as the content template. If the same locale content template and rules file does not exist Web Publisher opens a text editor because there is no rules file to display in Web Publisher Editor. Absolute and relative paths When an author uses one of the selectors to select a graphic or text file, Web Publisher stores the path as either an absolute path or relative path, depending on the settings you chose when creating the rule. For example, if image.gif is stored in /Cabinet/Images/Corporate, and if the content file release.xml is stored in /Cabinet/Press/2000, then the following is the absolute path: /Images/Corporate/image.gif And the following is the relative path:../../images/corporate/image.gif Path rule matching Each rule has a tag_name attribute that indicates which XML elements in the template file use this rule. The tag_name can be either a fully qualified path in the document, or an unqualified name of the element. Web Publisher attempts to match in the most specific manner possible. Therefore, if a fully qualified path can be found, that is the rule that will be used. Examples: tag_name="/doc/faq/question" will match only elements in the document that match the full path. The element /doc/faq/question will match. The element /doc/sales/question will not match. tag_name="question" will match any elements in the document named question. If there is a rule that matches the complete path that match will take precedence over any other partial match. Attribute name value matching A rule can be qualified so that it matches only an element that has a particular attribute set to a specified value. This is accomplished in the rules file by setting two attributes Web Publisher Administration Guide 147
Creating Templates for Web Publisher Editor on the rule, attribute_name and attribute_value. If these attributes are set then only elements that have attribute_name=attribute_value will be matched. For example, Rules file: <tagcontent tag_name=question attribute_name=can_edit attribute_value=true> <textline /> </tagcontent> Template file: <doc> <!First question will match --> <question can_edit=true /> <!- Second question will not match --> <question /> </doc> Preview and web view Web Publisher Editor offers authors Preview and Web View buttons. Previewing displays the content as it appears in a Web browser, but not in the context of the website. Web viewing displays content as it appears in a Web browser and in the context of the website. If content is approved but not yet Active, a Staging website is used for Web view. Links to other content work in Web viewing. If the file can not be Web viewed, it either has not been cached to a website from the parent cabinet, or it has no Web-ready rendition. The Web View button is grayed out if the file does not meet Web view requirements. The Preview button is enabled in Web Publisher Editor if an XSL stylesheet is associated with content. The Web View button is enabled in Web Publisher Editor by default. You can disable it by setting contenteditor.showwebviewbutton to false in the Editor s UI.properties file. Repeatdef The <repeatdef> element is one of two elements in Web Publisher Editor that functions as a container for other elements. You do not select this element from the component list but navigate to the Tree View in the Rules Editor, select an element you want to repeat, and click the Create a repeating block button. 148 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Component types The Rule Editor displays component type fields for defining the rule. These rules are described in detail below and include the following: <calendar> element, page 149 <checkbox> element, page 152 <choice> element, page 154 <content> element, page 158 <graphic> element, page 172 <repeatdef> element, page 181 <repeatdef> nesting elements, page 187 <tabledef> element, page 190 <tagcontent> element in non-xml templates, page 193 <textarea> element, page 193 <textline> element, page 197 <textselector> element, page 200 <xselector> element, page 211 Note: Do not use processing instructions (PIs) such as, <?dctmeditor../> or <?dctmlink../> in your XML files. These PIs are for EMC s internal use and may change in the future. <calendar> element The <calendar> element displays a calendar that enables an author to select dates. When the content file that is using a rules file is saved, the date will be saved in the date format selected in the <calendar> element. The formatted date appears below the calendar. Web Publisher Administration Guide 149
Creating Templates for Web Publisher Editor Figure 10-4. Calendar The following list is an alphabetical grouping of the <calendar> element s attributes. checkbox_label The label for the checkbox itself. Displays to the right of the checkbox. If omitted, the Editor displays no label. Syntax: string Example: checkbox_label= Display the summary on the page checked The value stored in the XML if the checkbox is checked. If omitted, the Editor stores no value in the XML. Syntax: string Example: checked= author checked box instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Check this if you want ton include the summary page. label Gives a title to the field. Syntax: string Example: label= Display the summary? readonly 150 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor If this is set to Y authors cannot check or uncheck the box. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y required If set to Y the field is marked with a red star to indicate it is required. In reality, an author can ignore a required checkbox, as an unchecked box is a valid entry. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/questionexample of unqualified name: tag_name=question unchecked The value that is stored in the XML if the checkbox is not checked. If omitted, the Editor stores nothing. Syntax: string Example: unchecked= author did not check box The date format pattern follows a pattern of letters. You can only use the letters defined below in your date format. All other letters from A to Z and from a to z are reserved. Table 10-1. Date format patterns Letter Date or Time Component Presentation d Day of month Number 10 D Day of year Number 189 Example E Day of week Text Tuesday; Tue F Day of week in month Number 2 G Era designator Text AD M Month in year Month July; Jul; 07 Web Publisher Administration Guide 151
Creating Templates for Web Publisher Editor Letter Date or Time Component Presentation Example Y Year Year 1996; 2005 w Week in year Number 27 W Week in month Number 3 The following examples show how date and time patterns are interpreted in the US locale. The given date and time are 20010704 12:08:56 US Pacific time. Table 10-2. Date format pattern examples Date and Time Patterns Results vyyy.mm.dd.g 2001.07.04 AD EEE, MMM, d, yy Wed, Jul 4, 01 yyyyy.mmmmm.dd GGG 02001.July.04 AD EEE, d MMM, YYYY Wed, 4 Jul 2001 yymmdd 010704 <checkbox> element The <checkbox> element displays a checkbox that gives an author a choice about what to store in the content file. The <checkbox> element stores data in the content file based on whether or not the author marks the checkbox. If the author chooses the checkbox, the content file stores the value of the <checkbox> element s checked attribute. Otherwise, the content file stores the value of the <checkbox> element s unchecked attribute. Figure 10-5. Checkbox The following list is an alphabetical grouping of the <checkbox> element s attributes. checkbox_label The label for the checkbox itself. Displays to the right of the checkbox. If omitted, the Editor displays no label. Syntax: string 152 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Example: checkbox_label= Display the summary on the page checked The value stored in the XML if the checkbox is checked. If omitted, the Editor stores no value in the XML. Syntax: string Example: checked= author checked box instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Check this if you want ton include the summary page. label Gives a title to the field. Syntax: string Example: label= Display the summary? readonly If this is set to Y authors cannot check or uncheck the box. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y required If set to Y the field is marked with a red star to indicate it is required. In reality, an author can ignore a required checkbox, as an unchecked box is a valid entry. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/questionexample of unqualifed name: tag_name=question unchecked Web Publisher Administration Guide 153
Creating Templates for Web Publisher Editor The value that is stored in the XML if the checkbox is not checked. If omitted, the Editor stores nothing. Syntax: string Example: unchecked= author did not check box Sample checkbox rules Example 10-3. Checkbox rule, with data stored as element <tagcontent tag_name='your_xml_element_here'> <checkbox label='checkbox field' instruction='select whether to show advanced options' required='n' readonly='n' checkbox_label='show advanced options' checked='advanced options include...' unchecked='no advanced options' /> </tagcontent> Example 10-4. Checkbox rule, with data stored as attribute <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <checkbox label='checkbox field' instruction='select whether to show advanced options' required='n' readonly='n' checkbox_label='show advanced options' checked='advanced options include...' unchecked='no advanced options' /> </tagattribute> <choice> element The <choice> element displays a selection list from which the author chooses an item to include on the Web page. The author chooses either a value or a repository object. In the Editor rules file you specify whether the list is populated by a DQL (Documentum Query Language) query or by hard-coded values. The DQL query that you use to populate the choice list can accept reserved words in their where clause that refer to the current object, for example, object ID, user name, or chronicle ID. An example query is: dm_document where owner_name='{object.owner_name}' and a_content_type='jpeg' order by object_name" 154 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor object.attribute_name is the reserved word in this query. owner_name is an example of the current object s attribute. Figure 10-6. Choice eld The following list is an alphabetical grouping of the <choice> element s attributes. instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Select one of the users listed. label Gives a title to the field. Syntax: string Example: label= Name property This is used with the query attribute. This sets the property value that is used to identify files. Each file is identified by the value of the property specified here. If omitted, the Editor identifies a file by its object_name property. Syntax: dm_attribute Example: property= a_category query This is the query that generates the list of files from which an author selects. You can populate the choice list using a DQL query or by hard-coded values. The DQL query that you use to populate the choice list can accept reserved words in their where clause that refer to the current object for example, object ID, user name, or chronicle ID. Web Publisher Administration Guide 155
Creating Templates for Web Publisher Editor Syntax: Use DQL, omitting everything before the FROM clause. To specify the property to return, use the property attribute. You can query any type of object, including registered tables. Example: dm_document where owner_name= {object.owner_name} and a_content_type= jpeg order by object_name" {object.attribute_name} is the reserved word in this query. readonly If set to Y authors cannot enter data in the field. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y required If set to Y authors cannot save until a choice is made. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/questionexample of unqualified name: tag_name=question values Populates the selection list with a hard-coded list of values from which authors select. (Optionally, you can populate the list using the query attribute. If both are specified, values is used.) Syntax: list_of_values separating multiple values using commas. Example 1: values="1,2,3,4,5" Example 2: values="cinderella, The Emperor s New Clothes, Jack and the Beanstalk" display Indicates what information displays to the user when a value needs to be selected. You can display more descriptive values using the value, display, and label attributes. Syntax: string separating multiple displays using commas Example 1: display="bp 200mg, BP 400mg, BP 800mg" 156 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Sample choice rules Example 10-5. Choice rule, with data stored as element and xed list <tagcontent tag_name='your_xml_element_here'> <choice label='choice field' instruction='select an item.' required='n' readonly='n' values='1,2,3,4' display='item 1, Item 2, Item 3, Item 4' /> </tagcontent> Example 10-6. Choice rule, with data stored as element and dynamic list <tagcontent tag_name='your_xml_element_here'> <choice label='choice field' instruction='select an item.' required='n' readonly='n' query="dm_document where folder('/cabinet/folder')" property='object_name' /> </tagcontent> Example 10-7. Choice rule, with data stored as attribute and xed list <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <choice label='choice field' instruction='select an item.' required='n' readonly='n' values='1,2,3,4,5,6' /> </tagattribute> Example 10-8. Choice rule, with data stored as attribute and dynamic list <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <choice label='choice field' instruction='select an item.' required='n' readonly='n' query="dm_document where folder('/cabinet/folder')" property='object_name' /> </tagattribute> Web Publisher Administration Guide 157
Creating Templates for Web Publisher Editor <content> element In Web Publisher 5.3 an improved <content> element extends the formatting and editing capabilities of the existing <content> element. Web Publisher has been configured so that the new <content> element editing functions are backward compatible with the existing content element functions. Specifically, the editliveconfig.xml file, which is located in: /wp/editors/contenteditor/resources has been configured to map the former content element actions to the advanced <content> element actions. The <content> element creates a text field in which an author can type and format multiple lines of text, and tables. This field, available from the Design tab, shows authors exactly how the text appears on the Web page. Figure 10-7. Content eld in Web Publisher Editor Any additional formatting, such as bold formatting or an ordered list, is stored as HTML tags within the <p> element. You must process these elements via your XSL file in order for the text to display. Content inside the Code tab should follow XML rules. All tags should be closed. The content <element> ignores <html> and <body> tags. By default Web Publisher Editor displays the <content> element with the following default toolbar options; cut, copy, paste, table, undo, redo, font face, and font size. To extend the default toolbar options you see in the <content> element you must modify the Editor rules to contain the new elements. To display toolbar buttons regardless of the settings in the Editor rules file you must modify the editliveconfig.xml file, see Customizing the default toolbar, page 170. In the XML content file, the text is stored in HTML <P> element. For example: <P>what the author typed</p> 158 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor If you use the Rules Editor you can select the checkbox of the buttons you want to display in your content field. For example, you can select the find checkbox to display a find button. If you use an external editing application and you want to enable the find button in the toolbar, you can add tlbfind= Y in the content rule s attribute. In the rules file, you can enable attributes by putting Y in the content rule s attribute. <content> element attributes The content element contains attributes that display in Web Publisher Editor s content element toolbar. The default attributes are marked in the list. To customize the toolbar to show or hide buttons by default you can modify the editliveconfig.xml file. See, Customizing the default toolbar, page 170. The following lists are groupings of the <content> element s attributes. The lists are divided into command toolbar buttons, format toolbar buttons, tabs, and configurable attributes. The attributes listed are the actions that Web Publisher Editor s content element displays. These attributes are stored in the editliveconfig.xml file. The improved <content> element is backwards-compatible with the <content> element used in version 5.2 and later. Command Toolbar Buttons: These are buttons that are displayed in the content element and are read from the editliveconfig.xml file. bookmark Displays the bookmark button. The author can mark a specific location in the content by inserting a bookmark, for example, to modify at a later time. Syntax: Y or N Example: tlbbookmark= Y Default toolbar button: No copy cut Displays the copy button. The author can perform copy operations between applications using the system clipboard. If omitted, the Editor defaults to Y. Syntax: Y or N Example: tlbcopy= Y Default toolbar button: Yes Displays the cut button. The author can perform cut operations between applications using the system clipboard. If omitted, the Editor defaults to Y. Syntax: Y or N Web Publisher Administration Guide 159
Creating Templates for Web Publisher Editor Example: tlbcut= Y Default toolbar button: Yes delete column Displays the delete column button. The author can delete the selected column from an existing table. Syntax: Y or N Example: tlbdelcol= Y Default toolbar button: Yes delete row Displays the delete row button. The author can delete the selected row from an existing table. find Syntax: Y or N Example: tlbdelrow= Y Default toolbar button: Yes Displays the find button. The author can search for specific text in the content. Syntax: Y or N Example: tlbfind= Y Default toolbar button: No gridlines Displays the gridlines button. The author can show or hide gridlineswhich form the table cell boundariesin the table. Syntax: Y or N Example: tlbgridlines= Y Default toolbar button: No image server Displays the insert image button. The author can choose an image from the local file system, the image server, or the repository to insert into the content field. If you have enabled globalization functionality for the repository, and you create a tree control for the image, you should enable the locale fallback rules to ensure that an image is always published to your website. With globalization enabled, each listed object displays language information. The globalization feature enables you to differentiate between localized objects using a locale field below the object name. For example, 160 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor axon160.jpg French (CA) axon161.jpg English (US) If you have drop_cabinet = Y in your XML file the cabinet is dropped from the file path to the selected file, for example, an author selects copyright.txt located in /Cabinet/Corporate/, and f the attribute is set to Y the following is stored in the XML: /Corporate/logo.jpg If this attribute is set to N the following is stored: /Cabinet/Corporate/ logo.jpg If omitted, the Editor defaults to Y. Syntax: Y or N Example: tlbimageserver= Y Default toolbar button: No insert row Displays the insert row button. The author can insert a row into an existing table. Syntax: Y or N Example: tlbinsrow= Y Default toolbar button: Yes insert table Displays the insert table button. The author can insert a table into the content field. Syntax: Y or N Example: tlbinstable= Y Default toolbar button: Yes links Displays the hyperlink button. This feature enables authors to add a hyperlink to their content. They can create a link to a Web page, an email address, a specific location in a specific document, or a specific document in a repository. The Editor errors if the author types in anything that makes the XML no longer well-formed, such as these symbols: ' < If you have enabled globalization functionality for the repository, and you create a tree control you should enable the locale fallback rules to ensure that an image is always published to your website. With globalization enabled, each listed object displays language information. The globalization feature enables you to differentiate between localized objects using a locale field below the object name. For example, Web Publisher Administration Guide 161
Creating Templates for Web Publisher Editor axon160.jpg French (CA) axon161.jpg English (US) If you have drop_cabinet = Y in your XML file the cabinet is dropped from the file path to the selected file. For example, an author selects copyright.txt located in /Cabinet/Corporate/. If the attribute is set to Y the following is stored in the XML: /Corporate/copyright.txt If this attribute is set to N the following is stored: /Cabinet/Corporate/ copyright.txt If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbhlink= Y Default toolbar button: No merge cells Displays the merge cells button. Authors can mergecombine two or more cells in the same row or column into a single cellselected cells in a table. Syntax: Y or N Example: tlbmerge= Y Default toolbar button: No paste Displays the paste button. Allows authors to perform paste operations between applications using the system clipboard. Note: When pasting between some applications such as Microsoft Word, formatting and symbols may be lost or altered unless you are pasting HTML. If you are pasting HTML formatting and symbols are preserved. If omitted, the Editor defaults to Y. Syntax: Y or N Example: tlbpaste= Y Default toolbar button: Yes redo Displays the redo button. The author can reverse the changes made by a previous undo. Syntax: Y or N Example: tlbredo= Y 162 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Default toolbar button: Yes remove formatting Displays the remove formatting button. The author can remove text styles and formatting from content to return the content to the default style and formatting. rule Syntax: Y or N Example: tlbremoveformatting= Y Default toolbar button: No Displays the insert horizontal rule button. You can use this rule as a spacer. Syntax: Y or N Example: tlbhrule= Y Default toolbar button: No spell check Displays the spell check button, allowing authors to perform spell checking on the content. This attribute must be set to N if you are using the Japanese or Korean languages. If omitted, the Editor defaults to Y. Syntax: Y or N Example: tlbspelling= Y Default toolbar button: No split Displays the split button. Authors can determine where to splitbreak a table across pagesa table to ensure the table breaks at an appropriate location for the information displayed in the table. Syntax: Y or N Example: tlbsplit= Y Default toolbar button: No symbol Displays the insert symbol button. Symbols are stored in XML using UTF-8 encoding. If you add this functionality you must process the symbols correctly in your XSL file. Otherwise, if your authors have their browsers set to view ISO encoding, they will not see the symbols when previewing. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbsymbol= Y Default toolbar button: No Web Publisher Administration Guide 163
Creating Templates for Web Publisher Editor undo Displays the undo button. The author can undo a previous action. Syntax: Y or N Example: tlbundo= Y Default toolbar button: Yes word count Displays the word count button. The author can count the number of words in the content. Syntax: Y or N Example: tlbwordcount= Y Default toolbar button: No Format Toolbar Buttons: These are buttons that are displayed in the content element and are read from the editliveconfig.xml file. align Displays the alignment formatting buttons. Authors can align left, align center, or align right. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbalign= Y Default toolbar button: No bold Displays the bold formatting button. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbbold= Y Default toolbar button: No color Displays the font-color formatting button. Colors are stored as hexadecimal triplets (#FFFFFF), not as color names (white). Forty eight colors are available. If omitted, the Editor defaults to N. font Syntax: Y or N Example: tlbcolor= Y Default toolbar button: No 164 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Displays the font face button, allowing authors to select various font faces. The base font is Arial Unicode. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbface= Y Default toolbar button: No content formats Filters content in the repository based on the chosen formats in the rules XML file. The formats listed determine the file types available to link to. This attribute applies when authors insert a hyperlink (tlbhlink= Y in the rules XML file). Only content formats that are listed in the XML file are displayed to the author. If omitted, the Editor defaults to the following formats: crtext, html. Syntax:dm_format Separate multiple formats with commas. Use the name of the format as specified in Documentum Administrator. Example: formats= xml, pdf Default toolbar button: No image formats Filters images in the repository based on the chosen formats in the rules XML file. The formats listed determine the file types available to link to. This attribute applies when authors insert an image (tlbimageserver= Y in the rules XML file). For image formats that are listed in the XML file as disif omitted, the Editor defaults to N.played to the author. Syntax: dm_format Separate multiple formats with commas. Use the name of the format as specified in Documentum Administrator. Example: image_formats= jpeg, gif Default toolbar button: No highlight color Displays the highlight button, allowing authors to mark important content in a selected color. If omitted, the Editor defaults to the following formats: jpeg, gif. Syntax: Y or N Example: tlbhighlightcolor= Y Default toolbar button: No indent Web Publisher Administration Guide 165
Creating Templates for Web Publisher Editor Displays the indent formatting buttons. Authors can increase or decrease the indent of a paragraph. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbincreaseindent= Y Example: tlbdecreaseindent= Y Default toolbar button: No italic list Displays the italic formatting button. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbitalic= Y Default toolbar button: No Displays the ordered list, and unordered list formatting buttons. Authors can insert an ordered list, or change an unordered list to an ordered list. Authors can also insert an unordered list, or change an ordered list to an unordered list. XML is case-sensitive. If omitted, the Editor defaults to N. size Syntax: Y or N Example: tlblist= Y Default toolbar button: No Displays the font size formatting button. The base font size is 8. Each click of the button increases or decreases by 1. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbsize= Y Default toolbar button: No strike Displays the strikethrough button. Authors can mark edited content without removing the content. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbstrike= Y Default toolbar button: No style 166 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Displays the style button, allowing authors to set formatting characteristics on the content. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbstyle= Y Default toolbar button: No superscript and subscript Displays the superscript and subscript buttons. Authors can use superscript or subscript text in their content. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbscript= Y Default toolbar button: No underline Displays the underline button. Authors can underline content. If omitted, the Editor defaults to N. Syntax: Y or N Example: tlbunderline= Y Default toolbar button: No Tab: This is a tab that is displayed in the content element and is read from the Editor rules file. htmltextedit Displays the Code tab. Allows authors to directly edit their content like they were using an HTML editor. If omitted, the Editor defaults to Y. Syntax: Y or N Default toolbar button: No Example: htmltextedit= N Configurable Attributes: These attributes are configured in the Editor rules file. Once they are configured they are read into the editliveconfig.xml and then into the content element. hyperlink active only Filters content in the repository based on whether or not a file is active. You can also list file formats in the Link browser formats field. This field enables you to filter on file formats as well as active content. See,. This attribute applies when authors insert a link (tlbhlink= Y in the rules XML file). Only active files, or active files of a specific format, are displayed to the author when browsing the repository. If omitted, the Editor defaults to show all files. Web Publisher Administration Guide 167
Creating Templates for Web Publisher Editor Syntax: Y or N Example: activeonly= N Default toolbar button: No image active only Filters images in the repository based on whether or not the images are active. You can also list image formats in the Image browser formats field. This field enables you to filter on image formats as well as active content. See,. This attribute applies when authors insert an image (tlbimageserver= Y in the rules XML file). Only active images are displayed to the author when browsing the repository. If omitted, the Editor defaults to show all images. Syntax: Y or N Example: tlbimageserver= Y Default toolbar button: No import options Displays the import button. The author can specify where an imported the image is saved to in the repository, with which lifecycle, document type and category. This is used only if the tlbimageserver= Y. If omitted, the Editor opens a page upon saving warning the author that these attributes are not set. Authors can click OK and continue saving. If you do not enter repository, lifecycle, document type and category information the image is NOT saved to the repository. You will see a broken link on your Web page. Syntax: Y or N Example: tlbimageserver= Y Default toolbar button: No enable custom tag Displays the enable custom tag checkbox and repository location checkbox. The author can enter the location, or browse to their custom tag definition file. For more information on custom tags, see Chapter 17, Creating Custom Tags. Syntax: path Example: /AuthorTest/text/ElementDef.xml Default toolbar button: No enable locale fallback rules This is used only if the tlbhlink= Y or if the tlbimageserver= Y, and if globalization functionality is enabled. (The link attribute displays the hyperlink button, which provides a list of files to which to link.) If this attribute is set to Y, the Editor displays only those translations that match the content file s language, taking into 168 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor account fallback rules. If this is set to N, all matching files display, regardless of language. If omitted, the Editor defaults to N. Syntax: Y or N Example: Graphic1 has only an English translation and Graphic2 has both English and German translations. You are editing an English content file, and enable_locale_fallback= N. Three files display in the browse tree: Graphic1, Graphic2 (English) and Graphic2 (German). If enable_locale_fallback= Y, only Graphic1 and Graphic2 (English) appear. If you edit a German content file and this setting equals Y, Graphic2 (German) appears. If German falls back to English, then Graphic1 also appears. Default toolbar button: No instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Type the body of the press release here. Default toolbar button: No label Gives a title to the field. Syntax: string Example: label= Press Release Body Default toolbar button: No lines (number of) Determines the size of the content field. The greater the number of lines you specify, the bigger the area. If omitted, the Editor defaults to 5. Syntax: number_of_lines Example: lines= 10 Default toolbar button: No readonly If set to Y authors cannot enter data in the field. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y Default toolbar button: No required Web Publisher Administration Guide 169
Creating Templates for Web Publisher Editor If set to Y authors cannot save until this field has data in it. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y Default toolbar button: No tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/question Example of unqualified name: tag_name=question Default toolbar button: No version Filters content in the repository based on an object s state. If omitted, the Editor defaults to display objects in any state except expired. Syntax: object state such as wip, staging, approved. Example: version= wip, staging Default toolbar button: No Customizing the default toolbar To extend the default toolbar you see in Web Publisher Editor, and support more or custom <content> elements in Rules Editor you must modify the Editor rules file to contain the new elements. To display toolbar buttons regardless of the settings in the Editor rules file you must modify the editliveconfig.xml file to enable each button by default. To customize the default toolbar: 1. Navigate to /wp/editors/contenteditor/resources/editliveconfig.xml. 2. Open the editliveconfig.xml file in a text editor. 3. Add the following code to each toolbar button element that you want to display by default in the toolbar. enabled-by-default="y" 170 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor For example, to display the hyperlink button on the toolbar by default you would navigate to the <commandtoolbar> section of the XML file and modify the hyperlink button element from: <toolbarbutton name="tlbhlink"/> to <toolbarbutton name="tlbhlink" enabled-by-default="y"/> 4. Save and close the editliveconfig.xml file. 5. Restart the Web Publisher instance for changes in editliveconfig.xml file to take effect. Sample content rule Example 10-9. Content rule <tagcontent tag_name='your_xml_element_here'> <content formats="html,crtext" htmltextedit='y' image_formats="jpeg,gif" instruction="enter text below." label="content Field" tlbalign="y" tlbbold="n" tlbbookmark="y" tlbcolor"y" tlbcopy="y" tlbcut="y" tlbdecreaseindent="y" tlbdelcol="y" tlbdelrow="y" tlbface="y" tlbgridlines="y" tlbhlink="n" tlbhrule="n" tlbhighlightcolor="n" tlbimageserver="y" tlbincreaseindent="y" tlbinscol="y" tlbinsrow="y" tlbinstable="y" tlbitalic="y" tlblist="n" tlbmerge="y" tlbpaste="y" tlbredo="y" tlbremoveformatting="y" tlbscript="n" tlbsize="y" tlbspelling="y" tlbsplit="n" Web Publisher Administration Guide 171
Creating Templates for Web Publisher Editor tlbstrike="n" tlbstyle="y" tlbsymbol="y" tlbunderline="y" tlbundo="y" tlbwordcount="n" </content> </tagcontent> <graphic> element The <graphic> element displays a selection list that lets authors choose an image file for display on the Web page. Authors either navigate through a tree to a specified folder within the repository, or they choose from a list generated by a predefined DQL query. Figure 10-8. Graphic list selector The DQL query that you use to populate the image list can accept reserved words in their where clause that refer to the current object, for example, object ID, username, or chronicle ID. An example query is: dm_document where folder_name='(/accelera.com/prod_detail/ph_images)' and a_content_type='jpeg' and owner='(object.owner)' When an author highlights an image file, Web Publisher Editor displays the file s thumbnail. If a thumbnail is not available, Web Publisher Editor displays a scaled-down version of the image. The <graphic> element also gives you the option of letting authors import files from outside the repository. 172 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Figure 10-9. Graphic tree selector globalization disabled The above figure shows a list of objects in a repository that has globalization disabled. If you have enabled globalization functionality for the repository, and you create a tree control for the <graphic> element, you should enable the locale fallback rules to ensure that a graphic is always published to your website. With globalization enabled, each listed object displays language information. The globalization feature enables you to differentiate between localized objects using a locale field below the object name, for example, axon160.jpg French (CA) axon161.jpg English (US) The figure following figure shows a view of the tree selector with globalization functionality enabled for the repository. You enable globalization by navigating to Administration>Web Publisher Admin>Settings, selecting the General tab, and checking the Globalization checkbox. For more information on globalization, see the Web Publisher User Guide or Web Publisher online help. Web Publisher Administration Guide 173
Creating Templates for Web Publisher Editor Figure 10-10. Graphic tree selector globalization enabled The following list is an alphabetical grouping of the <graphic> element s attributes. category If import= Y, this sets the navigation path assigned to an imported file. This attribute is applicable only if query_type= query and import= Y. It is ignored if query_type= tree. If omitted, no navigation path is assigned and the imported file is not visible through the Web Publisher Editor category structure. Syntax: root_category/subcategories Example: category= Marketing/Press Releases/Images drop_cabinet Determines whether to drop the cabinet from the path to the selected file. For example, an author selects phone_8260.jpg located in /Cabinet/Images/. If the attribute is set to Y the following is stored in the XML: /Images/phone_8260.jpg If this attribute is set to N the following is stored: /Cabinet/Images/ phone_8260.jpg If omitted, the Editor defaults to Y. Syntax: Y or N Example: drop_cabinet= Y enable_locale_fallback This applies only if globalization functionality is enabled. This filters the display of selectable images according to language. If this attribute is set to Y, the Editor displays only those images that match the content file s language, taking into account fallback rules. If this is set to N, all matching files are displayed, regardless of language. If omitted, the Editor defaults to N. For example, Graphic1 has only an English translation and Graphic2 has both English and German translations. The author is editing an English content file. If the attribute is set to N, 174 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor three files are displayed: Graphic1, Graphic2 (English), Graphic2 (German). If the attribute is set to Y, only Graphic1 and Graphic2 (English) appear. If the attribute is set to Y and if German falls back to English, and if the author edits a German content file, Graphic1 and Graphic2 (German) appear. If German does not fall back to English, only Graphic2 (German) appears. Syntax: Y or N formats This applies only if query_type= tree. This determines the file types displayed in the tree. If omitted, the Editor defaults to the following formats: gif, jpeg Syntax: dm_format Specify as many formats as you want, separated by commas. Use the name of the format as specified in Documentum Administrator. Example: formats= jpeg,gif,my_custom_gif import This attribute applies only if query_type= query. This attribute lets authors import graphics from their local systems. If you set import= Y, you must set the location attribute to indicate where to store imported files. You can optionally set the category, lifecycle, and type attributes, to determine those properties for imported graphics. If the import attribute is omitted, the Editor defaults to N. Syntax: Y or N Example: import= N instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Select an image to be used as the header for the page. label Gives a title to the field. Syntax: string Example: label= Header image lifecycle This attribute applies only if query_type= query and import= Y. This sets the lifecycle assigned to the imported graphic. The lifecycle must be compatible with the object type you assign using the type attribute (or compatible with dm_document if you omit the type attribute). If omitted, the Editor defaults to the default lifecycle specified in your system configuration. Web Publisher Administration Guide 175
Creating Templates for Web Publisher Editor Syntax: lifecycle_name Example: lifecycle= Web Publisher Editor Default Lifecycle location This attribute applies only if query_type= query and import= Y. This determines where in the repository the imported file is saved. The location you specify must be included in the query used to populate the graphic list, or the imported graphic will not show up in the list. Also the location must exist in the repository. If omitted, the Editor silently fails to import, since it has no place to put the imported file. Syntax: /cabinet/folder_path Example: location= /Website/gifs/marketing/headers output_format This is used only if the Media Server is enabled. This determines whether the secondary rendition s publish name is stored in the XML. If output_format is specified, the Editor looks up the publishing convention for the file s format and stores that name in the XML. For example, if graphic1.gif is stored in a folder called images and if output_property equals jpeg_lres, then the following is stored in the XML: /images/graphic1_lres.jpg If this attribute is omitted, the Editor stores the name of the primary rendition. Syntax: custom_media_server_format Example: output_format= jpeg_lres output_property Stores the graphic s path in the XML as a folder path or relative path. You specify whether the cabinet name is part of the path using the drop_cabinet attribute. You specify whether the path is absolute or relative using the relative attribute. XML is case-sensitive. If omitted, the Editor defaults to folderpath. Syntax: output_property= folderpath property This attribute applies only if query_type= query. This sets the property value that identifies a file in a list. Each file is identified by its value for the property specified here. If omitted, the Editor identifies a file by its object_name property. Syntax: dm_attribute Example: property= title query This attribute applies only if query_type= query. This is the query that generates the list of files from which an author selects. You specify which property to return using 176 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor the <graphic> element s property attribute. If omitted, the Editor does not display any files in the list. Syntax: Use DQL (Documentum Query Language), omitting everything before the FROM clause. You can query any type of object, including registered tables. Example: query="dm_document where folder( /cabinet/folder ) AND where a_content_type like gif " query_type Determines whether the graphics are displayed in a list populated by a query or in a directory tree authors navigate. If you set query_type= query, then you also specify the query and property attributes. if you set query_type= tree, then you also specify the roots and formats attributes. If omitted, the Editor defaults to query. Syntax: query or tree Example: query_type= query readonly If set to Y authors cannot use this selector. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y relative This attribute applies only if output_property= folderpath. This attribute specifies the path to the graphic is relative, instead of absolute. A relative path is relative to the content file. For example, if a content file is in the path /Cabinet/Press/2002 And if an author selects a graphic from /Cabinet/Images/Corporate The relative path is../../images/corporate. The absolute path is /Cabinet/Images/Corporate. If omitted, the Editor defaults to N (absolute path). Syntax: Y or N Example: relative= Y required If set to Y authors cannot save until an image is selected. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y roots This attribute is only applicable if query_type= tree. Web Publisher Administration Guide 177
Creating Templates for Web Publisher Editor This limits the portion of the repository that is visible in a tree. Only folders that are underneath the root are displayed. You can specify an unlimited number of roots. If omitted, the root defaults to the cabinet in which the content file is located. Syntax: /cabinet/folder_path Specify as many roots as you want, separated by commas. Example: roots= /Website/images,/Website/banner_gifs rows This attribute is only applicable if query_type= query. Determines how many images are displayed in the list without scrolling. If omitted, the Editor defaults to 5. Syntax: number_of_rows Example: rows= 10 tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/question Example of unqualified name: tag_name=question type This attribute applies only if query_type= query and import= Y. Determines what object type is assigned to imported graphics. The object type must be compatible with the lifecycle assigned through the lifecycle attribute (or with the lifecycle assigned by default, if you omit the lifecycle attribute). If omitted, the Editor defaults to dm_document. Syntax: object_type Specify dm_document or types descended from dm_document. Example: type= my_custom_type version Filters content in the repository based on an objects state. If omitted, the Editor defaults to display objects in any state except expired. Syntax: object state Example: version=wip, staging 178 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Sample graphic rules The <graphic> rule displays a graphic selector. Graphics are chosen from either a list or tree. When an author selects a graphic, Web Publisher stores the path as either an absolute path or relative path. Example 10-10. Graphic rule, with data as element and with relative path The following rule does the following: Stores data as an element. Uses a relative path. Stores the name of the primary rendition. Builds a selection list using a query. Disables fallback rules. Disables import. (Authors are not allowed to import.) <tagcontent tag_name='your_xml_element_here'> <graphic label='graphic selector field' instruction='select a graphic from the list.' required='n' readonly='n' rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" property='object_name' output_property='folderpath' relative='y' import='n' /> </tagcontent> Example 10-11. Graphic rule, with data as attribute and with relative path The following rule does the following: Stores data as an attribute. Uses an relative path. Stores the name of the primary rendition. Builds a selection list using a query. Disables fallback rules. Disables import. (Authors are not allowed to import.) <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <graphic label='graphic selector field' instruction='select a graphic.' required='n' Web Publisher Administration Guide 179
Creating Templates for Web Publisher Editor readonly='n' rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" property='object_name' output_property='folderpath' relative='y' import='n' /> </tagattribute> Example 10-12. Graphic rule, with data as attribute and with absolute path The following rule does the following: Stores data as an attribute. Uses an absolute path. Stores the name of the primary rendition. Builds a selection list using a query. Disables fallback rules. Disables import. (Authors are not allowed to import.) <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <graphic label='graphic selector field' instruction='select a graphic.' required='n' readonly='n' rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" property='object_name' output_property='folderpath' relative='n' import='n' /> </tagattribute> Example 10-13. Graphic rule, storing name of secondary rendition The following rule does the following: Stores data as an attribute. Uses an absolute path. Stores the name of the secondary rendition. (This option is available only if Media Server is enabled.) Builds a selection list using a query. Disables fallback rules. Disables import. (Authors are not allowed to import.) <tagattribute tag_name='your_xml_element_here' 180 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor selected_attr='your_xml_attribute_here'> <graphic label='graphic selector field' instruction='select a graphic.' required='n' readonly='n' rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" property='object_name' output_property='folderpath' output_format='jpeg_lres' relative='n' import='n' /> </tagattribute> Example 10-14. Graphic rule, using a folder tree The following rule does the following: Stores data as an attribute. Uses an absolute path. Stores the name of the secondary rendition. (This option is available only if Media Server is enabled.) Uses a folder tree. (Import is not available with this option.) Disables fallback rules. <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <graphic label='graphic selector field' instruction='select a graphic.' required='n' readonly='n' enable_locale_fallback='y' query_type='tree' roots='/cabinet/folder,/cabinet2/folder' formats='jpeg,gif' output_property='folderpath' output_format='jpeg_lres' relative='n' /> </tagattribute> <repeatdef> element You use <repeatdef> to designate a block of XML in the template as repeatable, meaning users can determine how many times a block of fields appears on a given Web page. Initially, Web Publisher Editor displays one instance of the XML block (which contains Web Publisher Administration Guide 181
Creating Templates for Web Publisher Editor one or more fields), but the author can duplicate the XML block on the Web page as often as desired. In Rules Editor, a set of repeating buttons (Add and Remove) are displayed enabling authors to create additional copies of a selected XML block, or delete a repeated block. Once you add the blocks you can preview the template using File>Preview to add or remove blocks, rearrange the blocks or delete them. The following figure shows a simple <repeatdef> element for a subject that is viewed from the File>Preview page. Figure 10-11. Block of repeatable elds The template displayed in this example is simple: <?xml version="1.0" encoding'"utf-8"?> <page> <subject/> <title/> <body_text/> </page> The <choice> element is completed by the subject control. Here is the rules file that was used to create this figure: <rules> <repeatdef label="simple Repeating Block" tag_list="subject,title"></repeatdef> </rules> 182 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor The <repeatdef> element identifies the element <repeatdef> as being repeatable. The tag_list attribute is the only required attribute on the <repeatdef> element. The tag_list identifies a single element, or a list of elements in the template that constitute a repeatable block. If more than one element is listed in tag_list, the elements are separated by commas (subject, title). If multiple elements are used they must occur as sibling nodes in the object, and they must be in even blocks, for example, if the tag_list specifies a,b, then an element sequence a,b,a,b would be valid while sequences a,b,a or a,b,c,a,b,c would not. Repeatable fields are used when it is up to the author to determine how often a certain type of information is to appear. For example, on a page that lists Frequently Asked Questions, the number of question-and-answer groupings can vary. A rules file uses the <repeatdef> element to define repeatable blocks. A block of repeatable fields can contain multiple elements or attributes, but the elements or attributes must be siblings in the Web Publisher Editor template. A <repeatdef> element cannot contain a <tabledef> element, and a <tabledef> element cannot contain a <repeatdef> element. The following list is an alphabetical grouping of the <repeatdef> element s attributes. instruction Provides instructions to authors. The instructions appear below the field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Fill out each question and answer. Add as many Q & A blocks as necessary for your topic. label Gives a title to the field. Syntax: string Example: label= Frequently Asked Questions tag_list Specifies the XML elements to be repeated. The elements in the list must be on the same level of the XML tree and must be contiguous, for example, with XML that includes these tags: <FAQ> <question/> <answer/> </FAQ> <reported_by/> <related/> Correct: tag_list= FAQ,reported_by Incorrect: tag_list= FAQ,answer They re not on the same level. Web Publisher Administration Guide 183
Creating Templates for Web Publisher Editor Incorrect: tag_list= FAQ,related They re not contiguous. All fields associated with the elements in tag_list, as well as all children of these elements, display as repeatable in the Editor. The entire XML structure is repeated in the file as many times as the author repeats it. Syntax: XML_path/element_name Specify as many elements as you want, as long as they are contiguous nodes and separated by commas. Examples: tag_list= FAQ tag_list= /root/support/faq,/root/support/reported_by Sample repeatdef rules You can repeat rules that are contiguous nodes (side-by-side children). Example 10-15. Rule for simple repeating elds In this example, authors generate lists of Frequently Asked Questions (FAQs) and can specify as many question-and-answer pairs as needed in each list. The tagging generated in the content file for two FAQs is the following: <content> <FAQ> <question/> <answer/> </FAQ> <FAQ> <question/> <answer/> </FAQ> </content> To make the FAQ list repeatable, the rules file uses the following tagging. <repeatdefinstruction="fill out each pair of fields" label="repeating element fields" tag_list="faq" </repeatdef> <tagcontent tag_name='question'> <textline label='single-line text field' instruction='enter a question.' /> </tagcontent> <tagcontent tag_name='answer'> <textline label='single-line text field' 184 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor instruction='enter an answer.' /> </tagcontent> Example 10-16. Rule for complex repeating elds In this example, suppose you want authors to be able to repeat everything including and below the elements <FAQ> and <related_product>. <page> <issue> <related_product/> </issue> <FAQ> <set> <question></question> <answer></answer> </set> <submitted_by/> </FAQ> <related_product/> <copywrite/> </page> The rules file would use the following tagging: <tagcontent tag_name='/page/issue/related_product'> <choice label='choice field' instruction='select a related product.' required='n' readonly='n' values='product1,product2,product3,product4' /> </tagcontent> <repeatdefinstruction="fill out each pair of fields" label="repeating element field" tag_list="/page/faq,/page/related_product" </repeatdef> <tagcontent tag_name='question'> <textline label='single-line text field' instruction='enter a question.' /> </tagcontent> <tagcontent tag_name='answer'> <textline label='single-line text field' instruction='enter an answer.' /> </tagcontent> <tagattribute tag_name='answer' selected_attr='duplicated'> <checkbox label='checkbox field' Web Publisher Administration Guide 185
Creating Templates for Web Publisher Editor instruction='is this a duplicated issue?' required='n' readonly='n' checkbox_label='yes' checked='yes' unchecked='no' /> </tagattribute> <tagattribute tag_name='submitted_by' selected_attr='external'> <textline label='single-line text field' instruction='enter the name of the person submitting the question.' /> </tagattribute> <tagattribute tag_name='submitted_by' selected_attr='internal'> <textline label='single-line text field' instruction='enter the name of the person submitting the answer.' /> </tagattribute> <tagcontent tag_name='/page/related_product'> <choice label='choice field' instruction='select a related product.' required='n' readonly='n' values='product1,product2, product3,product4' /> </tagcontent> <tagcontent tag_name='copywrite'> <textselector label='text fragment selector field' instruction='select the appropriate copywrite.' required='n' readonly='n' rows='5' preview_ rows='5' query_type='query' query="dm_document where folder('/cabinet/folder')" selection_property='object_name' show_content='y' output_property='contents' import='n' /> </tagcontent> 186 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor <repeatdef> nesting elements You can nest <repeatdef> elements within other <repeatdef> elements. Nested repeatdefs are created empty. The following figure shows a simple use of this feature. Figure 10-12. A block of nested elds The top level repeating block represents information connected with a single customer. Within the customer block is a textline control for the customer name, followed by a grouping element, address lines. The textline control within the address lines can be repeated in the same manner as before, by using the buttons to the right of the control. The following code example shows the template file used to create this figure, before any of the elements have been repeated. <doc> <customers> <customer> Web Publisher Administration Guide 187
Creating Templates for Web Publisher Editor <name/> <address> <aline /> </address> </customer> </customers> </doc> And the corresponding rules file: <rules> <repeatdef tag_list="customer" label="customer Information" instruction="customo INFO" /> <repeatdef tag_list="aline" label="address Lines"/> <tagcontent tag_name="name"> <textline label="customer Name" /> </tagcontent> <tagcontent tag_name="aline"> <textline label="address Line" /> </tagcontent> </rules> In the rules file, there are two repeatdef rules, which mark the elements <customer> and <aline> as repeatable. 1.4 multiple nesting levels You can create multiple nesting levels in your <repeatdef> element, but we urge caution with this type of structure because multiple nesting levels could affect the usability of <repeatdef>. The following figure shows an example of a template constructed with a nesting level of five: 188 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Figure 10-13. Multiple nested elds The following code example shows the template file used to create this figure: <doc> <a> <text/> <b> <text/> <c> <text/> <d> <text/> <e> <text/> </e> </d> </c> </b> </a> </doc> And the corresponding rules file: Web Publisher Administration Guide 189
Creating Templates for Web Publisher Editor <rules> <repeatdef tag_list="a" label="a" /> <repeatdef tag_list="b" label="b" /> <repeatdef tag_list="c" label="c" /> <repeatdef tag_list="d" label="d" /> <repeatdef tag_list="e" label="e" /> <tagcontent tag_name="text"> <textline label="text" /> </tagcontent> </rules> <tabledef> element This field requires you to replicate the structure of an HTML table within your XML. The root element is associated with the <tabledef> element and corresponds to the <table> element in an HTML table. You put fields within each cell. Note: In Web Publisher 5.2 and earlier, the <tabledef> tags do not work in HTML-based Web Publisher Editor templates. For flexibility between Web Publisher versions, use <tabledef> only in XML-based templates. Figure 10-14. Table Editor The following list is an alphabetical grouping of the <tabledef> element s attributes. caption This element corresponds to the HTML <caption> element. Assign the rules file element used to enter captions. If no field is assigned, a textline field is used. If omitted, <tabledef> does not allow authors to enter captions. Syntax: rules_file_element_used_to_enter_caption Example: caption= faq_caption columns 190 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor The number of columns in the table. This must correspond to the number of <td> elements in each table row in the HTML. If omitted, the Editor does not display the <tabledef> element. Syntax: number_of_columns Example: columns= 3 instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Enter the required pricing information. label Gives a title to the field. Syntax: string Example: label= Inventory tag_name td tr The element that corresponds to the HTML <table> element. This element must contain children that correspond to the <tr> and <td> structure of an HTML table. If omitted, no fields will display in a table. Syntax: element_name Example: tag_name= FAQ The element that corresponds to the HTML <td> element. This element must contain one child that is associated with a field. If omitted, the Editor defaults to td that is, it looks for a <td> element. Syntax: element_name Example: td= faq_td The element that corresponds to the HTML <tr> element. This element must contain children that correspond to HTML <td> elements. If omitted, the Editor defaults to tr that is, it looks for a <tr> element. Syntax: element_name Example: tr= faq_tr Web Publisher Administration Guide 191
Creating Templates for Web Publisher Editor Sample <tabledef> elements The <tabledef> element cannot be used in combination with an <xselector> element. The <tabledef> element requires you to replicate the structure of an HTML table within your XML. The root <table> element is associated with the <tabledef> element. You then put an element within each cell and associate a Web Publisher Editor field with that. Example 10-17. Tabledef rule If you have the following XML for a FAQ table: <FAQs> <FAQ_caption>my caption</faq_caption> <FAQ_row> <FAQ_column> <question>first question</question> </FAQ_column> <FAQ_column> <answer>first answer</answer> </FAQ_column> </FAQ_row> <FAQ_row> <FAQ_column> <question>second question</question> </FAQ_column> <FAQ_column> <answer>second answer</answer> </FAQ_column> </FAQ_row> </FAQs> Then your <tabledef> rule would read as follows: <tabledef tag_name='faqs' columns='2' label='table field' instruction='enter a question and answer for each row.' caption='faq_caption' tr='faq_row' td='faq_column' /> <tagcontent tag_name='question'> <textline label='single-line text field' instruction='enter a question.' /> </tagcontent> <tagcontent tag_name='answer'> <textline label='single-line text field' instruction='enter an answer.' /> 192 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor </tagcontent> <tagcontent> element in non-xml templates If you are using Rules Editor, when you create an XML template the <tagcontent> element is automatically added to the rules file. When creating any non-xml templates, such as HTML-based templates, you must manually add the <tagcontent> element. Rules Editor does not support non-xml templates. Place the following element in the file where you want the data to be stored: <dctmeditor tecomponenttype="myelement">default data </dctmeditor> The rules file would read: <tagcontent tag_name="myelement"></tagcontent> While we recommend using the <dctmeditor> tag for all non-attribute Web Publisher Editor tags within HTML-based templates, we strongly recommend using the <dctmeditor> tag whenever the element referred to in the rules file is a <content> element. Specifically, because of the possibility of improper nesting, do not add the tecomponenttype attribute to any other type of tag the <content> element itself produces (especially tags like <b>, <font>, <p> etc.). Note: If you use a <tagattribute> element, put tecomponenttype into the tag in which you want the attribute to be stored, as before: <img border="0" tecomponenttype="myelement"> The rules file would read: <tagattribute tag_name="myelement" selected_attr="src"> </tagattribute> <textarea> element The <textarea> element creates a text field in which an author can type content you don t want parsed by an XML parser. Everything inside the <textarea> element is ignored by the parser. Web Publisher Administration Guide 193
Creating Templates for Web Publisher Editor Figure 10-15. Textarea eld When you include a <textarea> element you can select the Output cdata checkbox in Rule Editor to mark the section in the rules file as a cdata type. cdata types can occur anywhere character data can occur. When you include a cdata type in a <textarea> element, it is clearly marked so that an author using Web Publisher Editor can recognize it. As an example, if your Web pages include content from third parties that you are not sure parses well, you could place the content inside a <textarea> element with a cdata type. Example 10-18. Using CDATA Here is an example of a template file: <?xml version="1.0" encoding="utf-8"?> <BODY> <CONTENT/> <SCRIPT> <![CDATA[ function compare(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </SCRIPT> </BODY> Here is an example of a rules file: <tagcontent tag_name="script"> <textarea columns="20" instruction="try not to duplicate information here and in the benefits. Be sure to spellcheck!" label="detailed description of the product" readonly="n" 194 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor required="n" rows="5" type="cdata"> </textarea> >/tagcontent> Here is another example of a template file: <template> <content> Some text here <![CDATA some special chars < > ' " > ]]> end here </content> </template> Here is how it should look like after added a new element outside cdata section: <template> <content> Some text here </content> </template> <cdata><![cdata some special chars < > ' " > ]]></cdata>end here Here is what the rules file looks like: <rules> <tagcontent tag_name="content"> <content activeonly="y" align="y" bold="y" color="y" copy="y" cut="y" enable_locale_fallback="n" fontsize="y" formats="html,crtext" htmltextedit="y" indent="y" instruction="instr" italic="y" label="label" links="y" orderedlists="y" paste="y" pastehtml="y" spellcheck="y" symbols="y" table="y" unorderedlists="y" /> </tagcontent> <tagcontent tag_name="cdata"> <textarea type="cdata" /> </tagcontent> </rules> In the figure below, the <textarea> element displays the cdata type selection. Web Publisher Administration Guide 195
Creating Templates for Web Publisher Editor Figure 10-16. cdata support in <textarea> element The following list is an alphabetical grouping of the <tabledef> element s attributes. label Functions as a title for the field; displays in bold. If omitted, the Editor will collapse the space normally reserved for the label. Syntax: string instruction Allows you to provide instructions on what to do with this field; displays below and in a smaller font than the label. The instructions can be several lines long. If omitted, the Editor will collapse the space normally reserved for instructions. Syntax: string readonly If set to Yes, the author will not be able to enter any data into this field. Displays grayed out. If omitted, the Editor defaults to N. Syntax: Y or N required If set to Yes, the author will not be able to save until this field has data entered. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N tag_name 196 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/question Example of unqualified name: tag_name=question type If set to cdata, then the characters in the field will not be parsed by the parser and will be save as is. If the <!CDATA[" is not present, the Editor will automatically add it. Syntax: string String currently only accepts cdata. columns The number of columns to display. If omitted, the Editor defaults to the same width as other fields. Syntax: string # rows The number of rows to display. If omitted, the Editor defaults to 10. Syntax: string # <textline> element The <textline> element displays a single-line text field in which authors type unformatted text, or read comments from the template creator. The text line is either editable or read-only. Figure 10-17. Unformatted text in Web Publisher Editor Web Publisher Administration Guide 197
Creating Templates for Web Publisher Editor Figure 10-18. Field for Read-only text The following list is an alphabetical grouping of the <textline> element s attributes. charlength Sets the maximum number of characters allowed. Syntax: string Example: charlength=15 default If no data has yet been entered in this textline field when the author opens the file in the Editor, then this attribute displays a date in the textline field as a default. The date displays only if there is no data saved in the element. If this attribute is omitted, the Editor does not default to displaying a date. Syntax: TODAY +/- number_of_days, date_format where date_format uses the following: MM=month, dd=date of the month, yy=2-digit year, yyyy=4-digit year, hh=hours, mm=minutes Examples: default= TODAY,MM/dd/yyyy default= TODAY+15,dd-MM-yyyy default= TODAY-365,MM-dd-yy hh:mm instruction Provides instructions to authors. The instructions appear below a field s label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Type the name exactly as it appears in the directory. label Gives a title to the field. Syntax: string Example: label= Employee name maxlength Sets the maximum length of the textline field on the page. 198 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Syntax: string Example: maxlength=20 readonly If set to Y authors cannot enter data in the field. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y required If set to Y authors cannot save until this field has data in it. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/question Example of unqualified name: tag_name=question Sample textline rules Example 10-19. Textline rule, with data stored as element <tagcontent tag_name='your_xml_element_here'> <textline label='single-line text field' instruction='enter a single line of text.' required='n' readonly='n' default='' /> </tagcontent> Example 10-20. Textline rule, with data stored as attribute <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <textline label='single-line text field' instruction='enter a single line of text.' required='n' readonly='n' default='' /> Web Publisher Administration Guide 199
Creating Templates for Web Publisher Editor </tagattribute> <textselector> element The <textselector> element displays a file-selection field that lets authors choose text from an existing (targeted) file in the repository to include on the Web page. Authors either choose from a list generated by a pre-defined DQL query or they navigate a specified repository folder hierarchy. In the Editor rules file you specify whether the list is populated by a DQL (Documentum Query Language) query. The DQL query that you use to populate the textselector list can accept reserved words in their where clause that refer to the current object for example, object ID, username, or chronicle ID. When an author highlights a file, Web Publisher Editor displays the file s text. The <textselector> element also gives you the option of letting authors import files from outside the repository. Note: The <textselector> element can be used only for simple text files. If you import a PDF or XML file and preview the content, nothing is displayed for PDF and only the values of XML nodes are displayed for XML. If you select the file-selection option, the text of the main content file is automatically updated on the website. The targeted file can change at a later time and will not affect the main content file. No additional processing is required to display the targeted text so your website performance should benefit. If you select the folder hierarchy option, the targeted content file is copied into the main content file. The main content file will not display on the website until the targeted content file is promoted to Active and also available on the website. However, if the targeted file changes, the contents of the main content file are updated in real time to include that change since the website is reading in the contents dynamically. 200 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Figure 10-19. Textselector using a list generated by a query Figure 10-20. Textselector using a tree globalization disabled If you have enabled globalization functionality for the repository, and you create a tree control for the <textselector> element each listed object displays language information. The globalization feature enables you to differentiate between localized objects using a locale field below the object name, for example, axon160.txt French (CA) Web Publisher Administration Guide 201
Creating Templates for Web Publisher Editor axon161.txt English (US) The figure below shows a view of the tree selector with globalization functionality enabled for the repository. You enable globalization by navigating to Administration>Web Publisher Admin>Settings, selecting the General tab, and checking the Globalization checkbox. For more information on globalization, see the Web Publisher User Guide or Web Publisher online help. Figure 10-21. Textselector using a tree globalization enabled The above figure shows a list of objects in a repository that has globalization disabled. With globalization enabled, each listed object displays language information. The globalization feature enables you to differentiate among objects with the same filename but not the same content; the content is localized. For example, axon160 is a product name so you may not want to change the name of the object; however, each object contains text that has been localized. Web Publisher lists the localized objects as follows: axon160.txt french axon160.txt korean The following list is an alphabetical grouping of the <textselector> element s attributes. category If authors are allowed to import text fragments, this attribute determines what navigation path should be assigned to the imported file. The navigation path is the series of categories that the author clicks on to find the file in the Edit Page tab. These categories mirror the folder structure below the Content Templates folder in the Site Manager / Templates node. Normally, the navigation path of a content file is the same as the template from which it was created; however, the imported text fragment is not created from a template and therefore needs a navigation path 202 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor manually assigned. This attribute is only applicable if query_type= query and import= Y ; it is ignored if query_type= tree. If omitted, no navigational path is assigned, and the imported file will not be visible when the author browses through the Edit Page navigational structure. Syntax: root_category/subcategory Example: category= Marketing/Copyright/Stuff for press releases drop_cabinet Determines whether to drop the cabinet from the path to the selected file. For example, an author selects copyright.txt located in /Cabinet/Corporate/. If the attribute is set to Y the following is stored in the XML: /Corporate/copyright.txt If this attribute is set to N the following is stored: /Cabinet/Corporate/ copyright.txt If omitted, the Editor defaults to Y. Syntax: Y or N Example: drop_cabinet= Y enable_locale_fallback Determines whether to further filter the display of selectable text fragments according to language. This option requires that the Web Publisher Globalization functionality be enabled. If enable_locale_fallback= N, all matching files are displayed, regardless of language. If Y, Web Publisher Editor will determine the language of the content file being edited, and when displaying the query results will only display the translation that is being published to the same language website as the content file (according to fallback rules). For example, suppose you have two text fragments: text1 has only an English translation, and text2 has both an English and German translation. Suppose the author is editing a English content file. If enable_locale_fallback= N, then three files are displayed: text1, text2 [English], text2 [German] and the author may be unable to tell them apart. However, if enable_locale_fallback= Y, then only text1 and text2 [English] will display. Now suppose the author edits a German content file. If enable_locale_fallback= Y, then text1 and text2 [German] will display as long as German falls back to English. If German does not fall back to English, then only text2 [German] will display. If omitted, the Editor defaults to enable_locale_fallback= N. Syntax: Y or N Example: enable_locale_fallback= Y formats Filters the files visible in the tree to just the formats you specify. This allows you to show only text formats, reducing the potential for error. This attribute is only Web Publisher Administration Guide 203
Creating Templates for Web Publisher Editor applicable if query_type= tree ; it is ignored if query_type= query. If omitted, the Editor defaults to the format crtext. Syntax: dm_format Specify as many as you would like, separated by commas. Be sure that you use the name of the format as specified in Documentum Administrator. Example: formats= crtext,jsp import Determines whether authors can import text fragments from their local systems. If import= Y, you must set the attribute location, which will indicate where the imported file should be stored. This location should be included in the query used to populate the list, or else the next time the author opens the file, the text fragment will not show up in the list. You can also specify type, lifecycle, and category for the imported file. This attribute is only applicable if query_type= query ; it is ignored if query_type= tree. If omitted, the Editor defaults to N. Syntax: Y or N Example: import= N instruction Allows you to provide instructions on what to do with this field; displays below and in a smaller font than the label. The instructions can be several lines long. If omitted, the Editor will collapse the space normally reserved for instructions. Syntax: string Example: instruction= Select a piece of boilerplate copyright text. label Functions as a title for the field; displays in bold. If omitted, the Editor will collapse the space normally reserved for the label. Syntax: string Example: label= Copyright location If authors are allowed to import text fragments, this attribute determines where in the repository the newly imported file should be saved. Be sure that the location you have specified is included in the query used to populate the list, or else the next time the author opens the file, the imported text fragment will not show up in the list. Also be sure that the location exists in the repository, or the Editor will not open correctly. This attribute is only applicable if query_type= query and import= Y ; it is ignored if query_type= tree. If omitted, the Editor will silently fail the import, since it has no place to put the imported file. Syntax: /cabinet/folder Example: location= /Website/includes/marketing 204 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor lifecycle If authors are allowed to import text fragments, this attribute determines what lifecycle should be assigned to the imported file. Be sure that this lifecycle is compatible with the object type you assign using the type attribute (or dm_document, if you omit the type attribute). This attribute is applicable only if query_type= query and import= Y ; it is ignored if query_type= tree. If omitted, the Editor defaults to the default lifecycle specified in your system configuration. Syntax: name of lifecycle Example: lifecycle= Web Publisher Editor Default Lifecycle output_property Determines what aspect of the selected text fragment should be stored in the XML: its path, the actual contents of the file, or its ID. If output_property= folderpath, the path to the text fragment is stored in the XML, minus the name of the cabinet. You can specify whether the path is absolute or relative using the relative attribute. For example, if the fragment copyright.txt is stored in a folder called includes in the Website cabinet, the following is stored in the XML if relative= N : /includes/copyright.txt. If output_property= contents, the actual contents of the file itself is stored in the XML. Note that this may cause problems if the contents of the file contain data that is not well-formed XML, so be sure to point to text fragments that are safe. Also note ouput_property= contents is honored only if the <textselector> element is within a <tagcontent>, because it is too problematic to put the contents of a file within an attribute. If output_property= ID, the chronicle ID of the selected object is stored in the XML. Note that due to a bug, this is only supported when query_type= query. If omitted, the Editor defaults to folderpath if the element is within a <tagattribute>, and defaults to contents if the element is within a <tagcontent>. Syntax: folderpath, contents, or ID Note: Releases before 4.3 used chronid or objectid rather than contents. Both of these attribute values will still be honored for backward compatibility. Example: output_property= folderpath Be sure to capitalize correctly. XML is case-sensitive. preview_property Determines which attribute of the selected text fragment is displayed in the right-hand "preview" area, allowing authors to verify that they have selected the correct file. Specify any non-repeating property that is valid for the object type you are querying. This attribute is honored only if show_content is set to N. If omitted, the Editor defaults to title. Syntax: dm_attribute Example: preview_property= a_category Web Publisher Administration Guide 205
Creating Templates for Web Publisher Editor preview_rows Allows you to control the height of the preview area. The preview can be made to show either the contents of the file itself (show_content) or an attribute of the selected file (preview_property). If omitted, the Editor defaults to 5. Syntax: string # Example: preview_rows= 10 property Used with the query attribute. This is the attribute value that is shown in the list control box so that authors can identify files. Specify any property that is valid for the object type you are querying. This attribute is only applicable if query_type= query ; it is ignored if query_type= tree. If omitted, the Editor will return the property object_name by default. Syntax: dm_attribute Example: property= title query Generates a list of files from which the author can select. This attribute is only applicable if query_type= query ; it is ignored if query_type= tree. If omitted, the Editor will not display any files in the list. Syntax: Use the syntax for DQL (Documentum Query Language), omitting everything before the FROM clause. You can specify which property to return using the property attribute. You can query any type of object, including registered tables. Example: query="dm_document where folder( /cabinet/folder ) AND where a_content_type like crtext "query="dm_dbo.product_table where prod_id = 123454" query_type Determines whether the text fragments are organized in a list (populated by a query) from which the author can select, or as a tree which the author can use to navigate to the text file. If query_type= query, you must specify the following attributes: query and property. The following attributes are not applicable: roots and formats. If query_type= tree, you must specify the following attributes: roots and formats. The following attributes are not applicable: rows, query, property, and import (because import is not applicable, these attributes are not applicable either: location, type, lifecycle, and category ). If omitted, the Editor defaults to query_type= query. Syntax: query or tree Example: query_type= query readonly 206 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor If set to Yes, the author will not be able select a text fragment. Displays grayed out. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y relative Determines whether the path to the text fragment should be specified in absolute terms, or relative to the content file itself. For example, suppose you have the content file /Cabinet/Press/2000/release.xml and while editing this file in the Editor the author selects the file /Cabinet/Includes/Corporate/copyright.txt If relative= N, then this is stored in the XML: /Includes/Corporate/copyright.txt If relative= Y, then this is stored in the XML:../../Includes/Corporate/copyright.txt This attribute is only applicable if output_property= folderpath. If omitted, the Editor defaults to N. Syntax: Y or N Example: relative= Y required If set to Yes, the author will not be able to save until a text file has been selected. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y roots Limits the portion of the repository that is visible to the author in the tree. Only folders that are underneath the cabinet or folder you specify as a root are displayed. You can specify an unlimited number of roots. This attribute is applicable only if query_type= tree ; it is ignored if query_type= query. If omitted, the Editor defaults the root to the cabinet in which the content file is located. Syntax: /cabinet/folder Specify as many as you would like, separated by commas. Example: roots= /Website/boilerplate,/Intranet/includes rows Allows you to control how many text fragments are displayed in the list without scrolling. This attribute is only applicable if query_type= query ; it is ignored if query_type= tree. If omitted, the Editor defaults to 5. Syntax: string Web Publisher Administration Guide 207
Creating Templates for Web Publisher Editor # Example: rows= 15 show_content Displays the contents of the selected text fragment in the right-hand "preview" area, allowing authors to verify that they have selected the correct file. If set to Y, then the preview_property attribute is ignored. If omitted, the Editor defaults to N, which means that the attribute of the selected file is displayed instead (if preview_property is omitted, it defaults to title ). Syntax: Y or N Example: show_content= Y tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/question Example of unqualified name: tag_name=question type If authors are allowed to import text fragments, this attribute determines what object type should be assigned to the imported file. Be sure that this object type is compatible with the lifecycle you assign using the lifecycle attribute (or the lifecycle assigned by default, if you omit the lifecycle attribute). This attribute is applicable only if query_type= query and import= Y ; it is ignored if query_type= tree. If omitted, the Editor defaults to dm_document. Syntax: object_type Specify only dm_document or types descended from dm_document. Example: type= my_custom_type version Filters content in the repository based on an objects state. If omitted, the Editor defaults to display objects in any state except expired. Syntax: object state such as wip, staging, approved. Example: version=wip, staging If you have enabled globalization functionality for your repository, and you create a tree control for the <textselector> element, you should enable the locale fallback function. If you do not enable the locale fallback function, and the user selects a translation in the 208 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Editor, then the next time the user opens the content file the wrong translation might show up as selected or might not show up at all. Sample textselector rules Example 10-21. Textselector rule, storing content and building list The following rule does the following: Stores the content of the file. Builds a selection list using a query. Disables fallback rules. Allows authors to import. Displays contents in the preview window. <tagcontent tag_name='your_xml_element_here'> <textselector label='text fragment selector field' instruction='select a text fragment.' required='n' readonly='n' rows='5' preview_ rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" selection_property='object_name' show_content='y' output_property='contents' import='y' /> </tagcontent> Example 10-22. Textselector rule, storing link and using relative path The following rule does the following: Stores a link to the selected text. Stores data as an element. Uses a relative path. Builds a selection list using a query. Disables fallback rules. Allows authors to import. Displays contents in the preview window. <tagcontent tag_name='your_xml_element_here'> <textselector Web Publisher Administration Guide 209
Creating Templates for Web Publisher Editor label='text fragment selector field' instruction='select a text fragment.' required='n' readonly='n' rows='5' preview_ rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" selection_property='object_name' show_content='y' output_property='folderpath' relative='y' import='y' location='/cabinet/folder' type='dm_document' lifecycle='default_lifecycle' category='root_category/subcategory/subcategory' /> </tagcontent> Example 10-23. Textselector rule, storing link and using absolute path The following rule does the following: Stores a link to the selected text. Stores data as an attribute. Uses an absolute path. Builds a selection list using a query. Disables fallback rules. Allows authors to import. Displays contents in the preview window. <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <textselector label='text fragment selector field' instruction='select a text fragment.' required='n' readonly='n' rows='5' preview_ rows='5' enable_locale_fallback='n' query_type='query' query="dm_document where folder('/cabinet/folder')" selection_property='object_name' show_content='y' output_property='folderpath' relative='n' import='y' location='/cabinet/folder' type='dm_document' lifecycle='default_lifecycle' 210 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor category='root_category/subcategory/subcategory' /> </tagattribute> Example 10-24. Textselector rule, using folder tree The following rule does the following: Stores a link to the selected text. Stores data as an attribute. Uses an absolute path. Uses a folder tree. (Import is not available with this option.) Enable fallback rules. Displays contents in the preview window. <tagattribute tag_name='your_xml_element_here' selected_attr='your_xml_attribute_here'> <textselector label='text fragment selector field' instruction='select a text fragment.' required='n' readonly='n' preview_ rows='5' enable_locale_fallback='y' query_type='tree' roots='/cabinet/folder,/cabinet2/folder' formats='crtext' show_content='y' output_property='folderpath' relative='n' /> </tagattribute> <xselector> element The <xselector> element displays a file selection field with a Browse button. Clicking the Browse button enables authors to select a file from the repository to include on the Web page. In the Rules Editor you specify DQL (Documentum Query Language) queries. The DQL query that you use can accept reserved words in their where clause that refer to the current object, for example, object ID, username, or chronicle ID. An example query is: dm_document where owner_name='{object.owner_name}' and a_content_type='jpeg' order by object_name" {object.attribute_name} is the reserved word in this query. This query can be used in the xselector attribute query_name_of_filter. If you want to create a drop down list select the Drop cabinet checkbox. The <xselector> element is intended when an author must sift through very large numbers of files. The File Selector dialog box lets authors sift through large lists by Web Publisher Administration Guide 211
Creating Templates for Web Publisher Editor using multiple DQL queries, variable value input (including user-defined input), and pagination. The File Selector dialog box provides pagination by displaying a maximum number of query results at a time. Figure 10-22. Any type selector page Figure 10-23. Graphic type selector page In the File Selector dialog box, the drop-down list on the left displays a list of queries the author chooses from. In a given query, you can include a variable input. The xselector queries use the following two variable inputs: {object.attribute} where ATTRIBUTE is a repository attribute. This determines the variable value from the content file being edited. {user.entry} This determines the variable value from a selection made by the author. If you include {user.entry}, then a second drop-down list appears on the right, giving the author a list of choices from which to populate the variable input in the query chosen in the first drop-down list. The second drop-down list can offer specific values or additional queries. If the author chooses an additional query, the query runs to provide the value for the query chosen in the first drop-down list. Note: If you create an xselector query with a predicate and criteria, normally, at runtime, two drop-down lists are presented. However, if the criteria returns only a single result, only the first drop-down box is presented. For example, enter a predicate such as select 212 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor * from dm_sysobject where r_object_id= {user.entry}. Enter criteria such as {object.r_object_id}. When editing content, only one of the two drop-down lists will appear. You can specify whether the queries are executed immediately after the author makes the choices, or whether the author must first click Go to execute queries. The following list is an alphabetical grouping of the <xselector> element s attributes. auto_exec_name_of_filter Determines when to execute the query. Setting this to Y executes the query when the author selects the filter. Setting this to N executes the query when the author clicks the Go button. The Go button appears only if this is set to N. If query_name_of_filter contains the keyword {user.entry}, this is ignored, since the query depends on input from the author. If omitted, the Editor defaults to N. Syntax: Y or N Example: auto_exec_name_of_filter= Y criteria_name_of_filter Generates a list of criteria values from which the author selects. The selected value is inserted into the query at the required keyword {user.entry}. The criteria can be a fixed list or can be generated via another query. To generate via another query: specify criteria_type_name_of_filter= query and use the special keywords as criterion_value in the DQL query syntax. Optionally you can also use the special keywords as criterion_name. For example, if you specify the following criteria: 'select object_name as criterion_value, title as criterion_name from wcm_locale where folder('/web Publisher Editor Configuration/Locales')' Then, for each locale returned, the title value is displayed in the criteria list, but the object_name value is inserted into the query at the keyword {user.entry}. The author sees English (US) in the list, but en_us is used in the query. If query_name_of_filter does not contain the keyword {user.entry}, then the specified criteria values do not display. If omitted, the Editor does not display any criteria, and the query cannot execute properly. Syntax for fixed list: separate the values with commas. Example fixed list: criteria_name_of_filter= en_us,fr_fr,de_de Syntax for query: use DQL syntax, with the as criterion_value and as criterion_name in the select clause. Web Publisher Administration Guide 213
Creating Templates for Web Publisher Editor Example query: criteria_name_of_filter="select object_name as criterion_value, title as criterion_name from wcm_locale where folder( /Web Publisher Editor Configuration/Locales )" criteria_name_of_filter="select name as criterion_value from dm_format where name in (select a_content_type from dm_document) order by description" criteria_type_name_of_filter Specifies criteria values are generated via a query. Used with criteria_name_of_ FILTER. If omitted, the Editor assumes criteria are in the form of a fixed list. Syntax: criteria_type_name_of_filter= query description_name_of_filter Provides instructions on how to use the filter. This displays below the filter drop-down list. If omitted, the Editor displays nothing. Syntax: string Example: description_name_of_filter= Select one of the formats and click the Go button to run the search. drop_cabinet Determines whether to drop the cabinet from the path to the selected file. For example, an author selects copyright.txt located in /Cabinet/Corporate/. If the attribute is set to Y the following is stored in the XML: /Corporate/copyright.txt If this attribute is set to N the following is stored: /Cabinet/Corporate/ copyright.txt If omitted, the Editor defaults to Y. Syntax: Y or N Example: drop_cabinet= Y enable_locale_fallback_name_of_filter This can be used only if globalization functionality is enabled. This filters the display of selectable images according to language. If this attribute is set to Y, the Editor displays only those images that match the content file s language, taking into account fallback rules. If this is set to N, all matching files are displayed, regardless of language. If omitted, the Editor defaults to N. For example, Graphic1 has only an English translation and Graphic2 has both English and German translations. The author is editing an English content file. If the attribute is set to N, three files are displayed: Graphic1, Graphic2 (English), Graphic2 (German). If the attribute is set to Y, only Graphic1 and Graphic2 (English) appear. If the attribute is set to Y and if German falls back to English, and if the author edits a German 214 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor content file, Graphic1 and Graphic2 (German) appear. If German does not fall back to English, only Graphic2 (German) appears. Syntax: Y or N Example: enable_locale_fallback_name_of_filter= Y filter_browser_title Provides instructions for the File Selector dialog box. The instructions appear below a field s label and in a smaller font. They can be several lines long. If omitted, the Editor collapses the space reserved for instructions. Syntax: string Example: filter_browser_title= Select the product logo. filters Specifies one or more queries authors execute to find files. At least one filter is required. Each filter must have a unique name. The unique name replaces the NAME_OF_FILTER string in the following attributes: label_name_of_filter, description_name_of_filter, query_name_of_filter, property_name_of_filter, autoexec_name_of_filter, criteria_name_of_filter, criteria_type_name_of_filter, and enable_locale_fallback_name_of_filter. This allows individual filters to have their own settings. The filters display in the order in which they appear in the comma-separated list. If omitted, the author does not see any queries in the File Selector dialog box and is not able to select a file Syntax: Separate values by commas. Example: filters= F1,F2,F3 label_f1= label_f2= label_f3= query_f1= query_f2= etc. instruction Provides instructions to authors. The instructions appear below the label and in a smaller font. They can be several lines long. Syntax: string Example: instruction= Select the Browse button to search for the appropriate file. label Labels the field. Syntax: string Example: label= Related file label_name_of_filter Web Publisher Administration Guide 215
Creating Templates for Web Publisher Editor The name of the filter that is displayed in the filter drop-down list. If omitted, the Editor uses the name of the filter as specified in the filters attribute. Syntax:string Example: label_name_of_filter= Images sorted by format output_format This is used only if the Media Server is enabled. Determines whether the secondary rendition s publish name is stored in the XML. If output_format is specified, the Editor looks up the publishing convention for the file s format and stores that name in the XML. For example. if graphic1.gif is stored in a folder called images and if output_property equals jpeg_lres, then the following is stored in the XML: /images/graphic1_lres.jpg If this attribute is omitted, the Editor stores the name of the primary rendition. Syntax: custom_media_server_format Example: output_format= jpeg_lres output_property Stores the graphic s path in the XML. XML is case-sensitive. You specify whether the cabinet name is part of the path using the drop_cabinet attribute. You specify whether the path is absolute or relative using the relative attribute. If omitted, the Editor defaults to folderpath. Syntax: output_property= folderpath property Specifies the default property used with the query_name_of_filter attributes. This sets the property value that identifies a file in a list. Each file is identified by its value for the property specified here. This can be overridden on an individual query basis by specifying the appropriate property_name_of_filter attribute. If omitted, the Editor returns the object_name property by default. Syntax: dm_attribute Example: property= title property_name_of_filter Used with the query_name_of_filter attribute. This is the property value shown in the list so that authors can identify files. If omitted, the Editor identifies a file by its object_name property. Syntax: dm_attribute 216 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Example: property_name_of_filter= title query_name_of_filter Generates a list of files from which the author can select. This can be a static query or a dynamically generated query based on criteria values specified by the author using the criteria_name_of_filter attribute. If omitted, the Editor does not display files in the list. Syntax: Use DQL (Documentum Query Language), omitting everything before the FROM clause. You can specify which property to return using the property_name_of_filter or property attribute. You can query any type of object, including registered tables. You can also use two special keywords in this query: {user.entry} the criterion value specified by the author to be inserted into the query {object.dm_attribute} the attribute value of the content file that is currently being edited, which is then inserted into the query Example: query_name_of_filter="dm_document where folder( /cabinet/folder ) AND where a_content_type like crtext " query_name_of_filter="dm_document where folder( /cabinet,descend) AND owner_name= {object.owner_name} " query_name_of_filter="dm_document where a_content_type= {user.entry} " query_name_of_filter="dm_document where folder( /cabinet,descend) AND any keywords like %{object.object_name}% AND a_content_type= {user.entry} " readonly If set to Y authors cannot use this selector. If omitted, the Editor defaults to N. Syntax: Y or N Example: readonly= Y relative This attribute applies only if output_property= folderpath. This attribute specifies the path to the graphic is relative, instead of absolute. A relative path is relative to the content file. For example: if a content file is in the path /Cabinet/Press/2002 And if an author selects a graphic from /Cabinet/Images/Corporate The relative path is../../images/corporate. The absolute path is /Cabinet/Images/Corporate. If omitted, the Editor defaults to N (absolute path). Syntax: Y or N Web Publisher Administration Guide 217
Creating Templates for Web Publisher Editor Example: relative= Y required If set to Y authors cannot save until a file is selected. The field is marked with a red star. If omitted, the Editor defaults to N. Syntax: Y or N Example: required= Y rows Determines how many files are displayed at a time in the File Selector dialog box. If omitted, the Editor defaults to 10. Any number below 10 is ignored. Syntax: number_of_rows Example: rows= 20 select_type Specifies whether the Editor displays a preview of the selected file or the path of the selected file. Setting this to graphic displays a thumbnail. Use this only for graphics files. Setting this to text displays the path of the selected file. If this is set to text, the output_format attribute is not applicable. If omitted, the Editor defaults to text. Syntax: text or graphic Example: select_type= graphic tag_name Indicates which elements in the template file use this rule. You can select with this full XML path, or with this name. See Path rule matching, page 147 for more information. Syntax: fully qualified path OR unqualified name Example of fully qualified path: tag_name=/doc/faq/question Example of unqualified name: tag_name=question 218 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Sample xselector rules Figure 10-24. File selector When an author selects a graphic or text file, Web Publisher stores the path as either an absolute path or relative path. The <xselector> rule does not support the selection of a file that is not within the same delivery cabinet as the content file itself. Be careful to create filter queries that return files in the same delivery cabinet as the content file. Example 10-25. Xselector rule. Authors see lenames. The following rule does the following: Displays filenames, from which authors select. Stores data as an element. Uses a relative path. <tagcontent tag_name='your_xml_element_here'> <xselector label='xselector field' instruction='click the Browse button to select a file.' required='n' readonly='n' filter_browser_title='use the following filters to retrieve and select files.' rows='10' property='object_name' output_property='folderpath' relative='y' select_type='text' filters='name_of_filter,name_of_filter,name_of_filter' > <!-- at least one filter is required -->/ </tagcontent> You can use multiple filters. See Sample xselector filters, page 221. Example 10-26. Xselector rule. Authors see thumbnails. The following rule does the following: Displays thumbnails, from which authors select the desired files. Stores data as an element. Uses a relative path. Stores the name of the primary rendition. Web Publisher Administration Guide 219
Creating Templates for Web Publisher Editor <tagcontent tag_name='your_xml_element_here'> <xselector label='xselector field' instruction='click the Browse button to select a graphic.' required='n' readonly='n' filter_browser_title='use the following filters to retrieve and select files.' rows='10' property='object_name' output_property='folderpath' relative='y' select_type='graphic' filters='name_of_filter,name_of_filter,name_of_filter' > <!-- at least one filter is required -->/ </tagcontent> You can use multiple filters. See Sample xselector filters, page 221. Example 10-27. Xselector rule, using primary rendition The following rule does the following: Displays thumbnails, from which authors select the desired files. Stores data as an attribute. Uses an relative path. Stores the name of the primary rendition. <tagattribute tag_name='your_xml_attribute_here' selected_attr='your_xml_attribute_here'> <xselector label='xselector field' instruction='click the Browse button to select a graphic.' required='n' readonly='n' filter_browser_title='use the following filters to retrieve and select files.' rows='10' property='object_name' output_property='folderpath' relative='y' select_type='graphic' filters='name_of_filter,name_of_filter,name_of_filter' > <!-- at least one filter is required -->/ </tagattribute> You can use multiple filters. See Sample xselector filters, page 221. Example 10-28. Xselector rule, using secondary rendition The following rule does the following: Displays thumbnails, from which authors select the desired files. Stores data as an attribute. Uses an relative path. Stores the name of the secondary rendition. <tagattribute tag_name='your_xml_attribute_here' selected_attr='your_xml_attribute_here'> 220 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor <xselector label='xselector field' instruction='click the Browse button to select a graphic.' required='n' readonly='n' filter_browser_title='use the following filters to retrieve and select files.' rows='10' property='object_name' output_property='folderpath' relative='y' output_format='jpeg_lres' select_type='graphic' filters='name_of_filter,name_of_filter,name_of_filter' > <!-- at least one filter is required -->/ </tagattribute> You can use multiple filters. See Sample xselector filters, page 221. Sample xselector lters Example 10-29. Xselector lter with an automatic query In the following query: The author does not select the values. Fallback rules are disabled. The query is executed automatically. (The author does not have to click a Go button.) label_name_of_filter='filter name' description_name_of_filter='description of filter' property_name_of_filter='object_name' enable_locale_fallback_name_of_filter='n' query_name_of_filter="dm_document where folder('/cabinet',descend) and owner_name='{object.owner_name}' order by object_name" auto_exec_name_of_filter='y' Example 10-30. Xselector lter that has the author initiate the query In the following query: The author does not select the values. Fallback rules are disabled. The author clicks Go to execute the query. label_name_of_filter='filter name' description_name_of_filter='description of filter' property_name_of_filter='object_name' enable_locale_fallback_name_of_filter='n' query_name_of_filter="dm_document where folder('/cabinet',descend) and owner_name='{object.owner_name}' order by object_name" auto_exec_name_of_filter='n' Example 10-31. Xselector lter that has the author select from a xed list In the following query: Web Publisher Administration Guide 221
Creating Templates for Web Publisher Editor The author selects the values. The list of values is fixed. Fallback rules are disabled. label_name_of_filter='filter name' description_name_of_filter='description of filter' property_name_of_filter='object_name' enable_locale_fallback_name_of_filter='n' query_name_of_filter="dm_document where folder('/cabinet',descend) and owner_name='{user.entry}' order by object_name" criteria_name_of_filter='alice,bob,carol,david' Example 10-32. Xselector lter that has the author select from a dynamic list In the following query: The author selects the values. The list of values is created dynamically. Fallback rules are enabled. (This option requires that Web Publisher Globalization functionality is enabled.) label_name_of_filter='filter name' description_name_of_filter='description of filter' property_name_of_filter='object_name' enable_locale_fallback_name_of_filter='y' query_name_of_filter="dm_document where folder('/cabinet',descend) and owner_name='{user.entry}' order by object_name" criteria_type_name_of_filter='query' criteria_name_of_filter="select user_name as criterion_value from dm_user where user_state=0" Example 10-33. More xselector lter examples label_name_of_filter="search title/name" description_name_of_filter="retrieve files where title and/or name contains a particular year" property_name_of_filter="object_name" query_name_of_filter="dm_document where folder('/cabinet',descend) and (title like '%{user.entry}%' or object_name like '%{user.entry}%')" criteria_name_of_filter="1999,2000,2001,2002,2003" label_name_of_filter="search size" description_name_of_filter="retrieve files where size is greater than the specified value" property_name_of_filter="r_content_size" query_name_of_filter="dm_document where folder('/cabinet',descend) and r_content_size > {user.entry} order by r_content_size" criteria_name_of_filter="20000,30000,40000,50000,60000,100000" label_name_of_filter="search date" description_name_of_filter="retrieve files created/imported this week" property_name_of_filter="object_name" query_name_of_filter="dm_document where 222 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor folder('/cabinet',descend) and DATEDIFF(WEEK, r_creation_date, DATE(TODAY)) < 1 order by object_name" label_name_of_filter="your images" description_name_of_filter="retrieve images owned by the current file's author" property_name_of_filter="object_name" query_name_of_filter="dm_document where owner_name='{object.owner_name}' and a_content_type='jpeg' order by object_name" label_name_of_filter="images by format" description_name_of_filter="retrieve pictures by format" property_name_of_filter="object_name" query_name_of_filter="dm_document where folder('/cabinet/folder',descend) and a_content_type='{user.entry}' order by object_name" criteria_type_name_of_filter="query" criteria_name_of_filter="select name as criterion_value, description as criterion_name from dm_format where mime_type like 'image/%' and name in (select a_content_type from dm_document) order by description" label_name_of_filter="files by language code" description_name_of_filter="retrieve files by langague" property_name_of_filter="object_name" query_name_of_filter="dm_document where folder('/cabinet',descend) and language_code='{user.entry}' order by object_name" criteria_type_name_of_filter="query" criteria_name_of_filter="select language_code as criterion_value, language_name as criterion_name from wcm_locale where folder('/web Publisher Configuration/Locales') and default_workflow!=' '" label_name_of_filter="your active files, by format" description_name_of_filter="retrieve files owned by the current file's author by format" property_name_of_filter="object_name" query_name_of_filter="dm_document where owner_name='{object.owner_name}' and any r_version_label='active' and a_content_type='{user.entry}' order by object_name" criteria_type_name_of_filter="query" criteria_name_of_filter="select name as criterion_value, description as criterion_name from dm_format where name in (select a_content_type from dm_document) order by description" De ning a format list To customize a rules file to support the editing of formats other than XML- or HTML-based content files you must define your own format list and associate the format list with the rules file. Web Publisher Administration Guide 223
Creating Templates for Web Publisher Editor To de ne a custom format list: 1. Open the rules_component.xml file, located in wp/config/library/rules. 2. In rules_component.xml, locate the default format list. 3. Add your formats. For example, <rulesformats> <format>html</format> <format>xml</format> <format>excel8book</format> </rulesformats> 4. Save and close the file. The rules le on the sample website The following procedures explain the creation of the rules file called prod_detail_xml_rules.xml, and found on the sample website. To add start and end tags to prod_detail_xml_rules.xml: 1. Open a text editor such as Notepad. 2. Type the following code. The code of the rules file must go between these start and end tags. <rules> </rules> 3. Choose File>Save As and save the document as prod_detail_xml_rules.xml in a folder of your choosing. To create a product name: This section of the code enables you to create the name of the product. 1. Open the rules file, prod_detail_xml_rules.xml in a text editor such as Notepad. 2. Type the following code within the <rules> element. <tagcontent tag_name='title'> <textline label='product Title' instruction='this must be typed exactly as it appears in the Product Title attribute of this file.' required='n' readonly='n' /> </tagcontent> 224 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Do not use the < or > symbols in your values attribute. The use of these symbols will cause an error in your XML file. 3. Choose File>Save As. This code should translate into the following field in Web Publisher Editor. To create a product number: This section of the code enables you to create the number of the product. 1. Open the rules file, prod_detail_xml_rules.xml, in a text editor such as Notepad. 2. Type the following code after the code for the product title. <tagcontent tag_name="productnumber"> <textline label='product Number' instruction='this must be typed exactly as it appears in the Product Number attribute of this file.' required='n' readonly='n' /> </tagcontent> 3. Choose File>Save As. This code should translate into the following field in Web Publisher Editor. To create a product price: This section of the code enables you to create the price of the product. 1. Open the rules file, prod_detail_xml_rules.xml, in a text editor such as Notepad. 2. Type the following code after the code for the product number. <tagcontent tag_name='price'> <textline label='price' instruction='enter the price in US dollars, like this: $###.##' required='n' readonly='n' /> Web Publisher Administration Guide 225
Creating Templates for Web Publisher Editor </tagcontent> 3. Choose File>Save As. This code should translate into the following field in Web Publisher Editor. To create a product image: This section of the code enables you to add a list of product images to the page. 1. Create a directory structure in a repository to store the image. In this example, the image is stored in accelera.com/prod_detail/ph_images. 2. Open the rules file, prod_detail_xml_rules.xml, in a text editor such as Notepad. 3. Type the following code after the code for product number. <tagcontent tag_name='graphic'> <graphic label='product image' instruction="select one of the available product images, or import your own.' required='n' readonly='n' rows='5' query_type='query' query="dm_document where folder('/accelera.com/prod_detail/ph_images')" property='object_name' output_property='folderpath' relative='n' import='y' location='/accelera.com/prod_detail/ph_images' type='dm_document' /> </tagcontent> 4. Choose File>Save As. This code should translate into the following field in Web Publisher Editor. 226 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor Note: Be sure to create a directory structure in a repository to store your product images. In the example above, the images are stored in /accelera.com/prod_detail/ph_images. To create a text eld for product description: This section of the code enables you to create a window in which authors can enter information about the product. 1. Open the rules file, prod_detail_xml_rules.xml, in a text editor such as Notepad. 2. Type the following code after the code for product image. <tagcontent tag_name='description'> <content label='description of the product' instruction="try not to duplicate information here and in the benefits. Be sure to spell check!' required='n' readonly='n' lines='10 bold='y' italic='n' color='n' spellcheck='y' fontsize='n' indent='y' orderedlists='y' unorderedlists='y' align='n' links='n' symbols='y' /> </tagcontent> 3. Choose File>Save As. This code should translate into the following field in Web Publisher Editor. Web Publisher Administration Guide 227
Creating Templates for Web Publisher Editor To create a product bene ts section: This section of the code enables you to create a series of product benefits. 1. Open the rules file, prod_detail_xml_rules.xm,l in a text editor such as Notepad. 2. Type the following code after the code for product description. <tagcontent tag_name='benefit'> <textline label='benefit' required='n' readonly='n' /> </tagcontent> <repeatdef <tag_name="repeat" label='benefits of the phone' instruction='add each benefit individually. The recommended maximum number is 10.' tag_list='benefit' </repeatdef> <!-- <tagcontent tag_name='benefit'> <textline label='benefit' required='n' readonly='n' /> </tagcontent> <repeatdef <tag_name="repeat" label='benefits of the phone' instruction='add each benefit individually. The recommended maximum number is 10.' tag_list='benefit' </repeatdef> --> 228 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor 3. Choose File>Save As. This code should translate into the following field in Web Publisher Editor. Your final XML rules file should look like the following. <rules> <tagcontent tag_name='title'> <textline label='product Title' instruction='this must be typed exactly as it appears in the Product Title attribute of this file.' required='n' readonly='n' /> </tagcontent> <tagcontent tag_name="productnumber"> <textline label='product Number' instruction='this must be typed exactly as it appears in the Product Number attribute of this file.' required='n' readonly='n' /> </tagcontent> <tagcontent tag_name='price'> <textline label='price' instruction='enter the price in US dollars, like this: $###.##' required='n' readonly='n' /> </tagcontent> <tagcontent tag_name='graphic'> <graphic label='product image' instruction="select one of the available product images, or import your own.' required='n' readonly='n' rows='5' query_type='query' query="dm_document where folder('/accelera.com/prod_detail/ph_images')" Web Publisher Administration Guide 229
Creating Templates for Web Publisher Editor property='object_name' output_property='folderpath' relative='n' import='y' location='/accelera.com/prod_detail/ph_images' type='dm_document' /> </tagcontent> <tagcontent tag_name='description'> <content label='description of the product' instruction="try not to duplicate information here and in the benefits. Be sure to spell check!' required='n' readonly='n' lines='10 bold='y' italic='n' color='n' spellcheck='y' fontsize='n' indent='y' orderedlists='y' unorderedlists='y' align='n' links='n' symbols='y' /> </tagcontent> <tagcontent tag_name='benefit'> <textline label='benefit' required='n' readonly='n' /> </tagcontent> <repeatdef <tag_name="repeat" label='benefits of the phone' instruction='add each benefit individually. The recommended maximum number is 10.' tag_list='benefit' </repeatdef> <!-- <tagcontent tag_name='benefit'> <textline label='benefit' required='n' readonly='n' /> </tagcontent> 230 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor <repeatdef <tag_name="repeat" label='benefits of the phone' instruction='add each benefit individually. The recommended maximum number is 10.' tag_list='benefit' </repeatdef> --> </rules> Creating Editor presentation les (XSL stylesheets) The Editor presentation file is an XSL stylesheet that creates an HTML rendition of an XML file and defines how the page appears on the website. The stylesheet writes the code the browser needs for display purposes and inserts the content where you indicate. The stylesheet is merged with the content file each time the content file is checked in. Web Publisher merges the two through an XSLT (extensible stylesheet language transformation) engine. You can associate multiple presentation files to a template and multiple templates with the same presentation file. If you modify the presentation file, you can generate new renditions for every content file that uses it. When you associate a presentation file to a Web Publisher Editor template, you choose the type of file created in the Transform into drop-down list. To add the starting tags: 1. Open a text editor such as Notepad. 2. Type the following code ensuring that your XSL is well-formed. The code of the Editor presentation file must go after the following starting tags. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:output method="html" /> <xsl:strip-space elements="*"/> <xsl:template match="* @* comment() processing-instruction() text()"> <xsl:copy> <xsl:apply-templates select="* @* comment() processing-instruction( ) text()"/> </xsl:copy> </xsl:template> <xsl:template match="page"> Web Publisher Administration Guide 231
Creating Templates for Web Publisher Editor <xsl:text disable-output-escaping="yes"> <![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/tr/rec-html40/loose.dtd"> 3. Choose File>Save As. 4. Save this document as prod_detail_2_html.xsl. To create your HTML: 1. Open the Editor presentation file, prod_detail_2_html.xsl in a text editor such as Notepad. 2. Create code in the Editor presentation file, using Web-friendly code, to create your Web page as you want it to look. Here is an example of some HTML: <html> <head> <title>accelera Communications Product List</title> <link HREF="../style.css" TYPE="text/css" REL="stylesheet"> </head> <BODY LEFTMARGIN="0" TOPMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" BGCOLOR="#FFFFFF"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" HEIGHT="100%" WIDTH="100%" > <!--table to push content to full window height--> <TR> <TD VALIGN="TOP" > <!--#INCLUDE FILE="/fragments/nav_press.incl"--> ]]> </xsl:text> <xsl:apply-templates select="product" /> <xsl:text disable-output-escaping="yes"> <![CDATA[ </TD> </TR> <TR> <TD VALIGN="BOTTOM" > <!--#INCLUDE FILE="/fragments/footer.incl"--> </TD> </TR> </TABLE> </BODY> </html> 3. Choose File>Save. 232 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor To build the XSL: The XSL code combines with the content template to determine what to build on the Web page. Place the list of elements, the image, product number, product title, product description, and product detail in this section. If you placed the HTML in the previous procedure the elements would be hard coded, and not flexible. 1. Open the Editor presentation file, prod_detail_2_html.xsl, in a text editor such as Notepad. 2. Type the following code to build the table area of your Web page. The table is variable so you can add or remove rows. <xsl:template match="product"> <TABLE WIDTH="99%" CELLSPACING="20" CELLPADDING="0" BORDER="0"> <TR> <td valign="top" width="88"> <xsl:apply-templates select="graphic"/> <p><br/> <br/> </p> <p> <b><xsl:value-of select="productnumber"/></b> <br/> <span class="title"><xsl:value-of select="price"/> </span> <br/> <a href="#"><img width="45" height="13" border="0" src="../images/buy_btn.gif"/></a> </p> </td> <td width="558" valign="top"> <b class="largetitle"><xsl:value-of select="title"/></b> <br/> <img width="300" height="8" border="0" src="../images/dots_300.gif"/><br/> <xsl:apply-templates select="description"/> <p> <br/> </p> <xsl:apply-templates select="detail"/> </td> </TR> </TABLE> </xsl:template> 3. Type the following code to build the image area of your Web page. The image is variable enabling it to change to match the content file. <xsl:template match="graphic"> <xsl:if test='string()'> <img border="0" src="{.}"/> </xsl:if> </xsl:template> 4. Type the following code to build the description area of your Web page. The product description is a variable because it is a link to changing information to match the content file. <xsl:template match="description"> <xsl:apply-templates/> Web Publisher Administration Guide 233
Creating Templates for Web Publisher Editor </xsl:template> 5. Type the following code to build the detail area of your Web page. The product detail is variable because it is repeating information to match the content file. <xsl:template match="detail"> <ul> <xsl:apply-templates /> </ul> </xsl:template> 6. Type the following code to build the benefit areas of your Web page. The product benefits are variable because they change to match the content file. <xsl:template match="benefit"> <li> <xsl:apply-templates /> </li> </xsl:template> 7. Choose File>Save. To add the end tag: 1. Open the Editor presentation file, prod_detail_2_html.xsl, in a text editor such as Notepad. 2. Type the following code at the end of the file. </xsl:stylesheet> 3. Choose File>Save. The final Editor presentation file should look something like the following. The HTML section will match your HTML code. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:output method="html" /> <xsl:strip-space elements="*"/> <xsl:template match="* @* comment() processing-instruction() text()"> <xsl:copy> <xsl:apply-templates select="* @* comment() processing-instruction() text()"/> </xsl:copy> </xsl:template> <xsl:template match="page"> <xsl:text disable-output-escaping="yes"> <![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/tr/rec-html40/loose.dtd"> 234 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor <html> <head> <title>accelera Communications Product List</title> <link HREF="../style.css" TYPE="text/css" REL="stylesheet"> </head> <BODY LEFTMARGIN="0" TOPMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" BGCOLOR="#FFFFFF"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" HEIGHT="100%" WIDTH="100%" > <!--table to push content to full window height--> <TR> <TD VALIGN="TOP" > <!--#INCLUDE FILE="/fragments/nav_press.incl"--> ]]> </xsl:text> <xsl:apply-templates select="product" /> <xsl:text disable-output-escaping="yes"> <![CDATA[ </TD> </TR> <TR> <TD VALIGN="BOTTOM" > <!--#INCLUDE FILE="/fragments/footer.incl"--> </TD> </TR> </TABLE> </BODY> </html> ]]> </xsl:text> </xsl:template> <xsl:template match="product"> <TABLE WIDTH="99%" CELLSPACING="20" CELLPADDING="0" BORDER="0"> <TR> <td valign="top" width="88"> <xsl:apply-templates select="graphic"/> <p><br/> <br/> </p> <p> <b><xsl:value-of select="productnumber"/></b> <br/> <span class="title"><xsl:value-of select="price"/></span> <br/> <a href="#"><img width="45" height="13" border="0" src="../images/buy_btn.gif"/></a> </p> Web Publisher Administration Guide 235
Creating Templates for Web Publisher Editor </td> <td width="558" valign="top"> <b class="largetitle"><xsl:value-of select="title"/></b> <br/> <img width="300" height="8" border="0" src="../images/dots_300.gif"/> <br/> <xsl:apply-templates select="description"/> <p> <br/> </p> <xsl:apply-templates select="detail"/> </td> </TR> </TABLE> </xsl:template> <xsl:template match="graphic"> <xsl:if test='string()'> <img border="0" src="{.}"/> </xsl:if> </xsl:template> <xsl:template match="description"> <xsl:apply-templates/> </xsl:template> <xsl:template match="detail"> <ul> <xsl:apply-templates /> </ul> </xsl:template> <xsl:template match="benefit"> <li> <xsl:apply-templates /> </li> </xsl:template> </xsl:stylesheet> Validating Web Publisher Editor templates If your templates are XML-based Web Publisher Editor template, you can validate the templates to ensure that they comprise well-formed XML. Before you can validate a Web Publisher Editor template, you must associate it with a rules file. To validate a Web Publisher Editor template: 1. Select the Classic view. 2. Navigate to Site Manager\Templates. 3. Navigate to the template and check the template s checkbox. 236 Web Publisher Administration Guide
Creating Templates for Web Publisher Editor 4. Select Tools>Templates>Validate. Web Publisher Administration Guide 237
Creating Templates for Web Publisher Editor 238 Web Publisher Administration Guide
Chapter 11 Creating Templates for Page Builder Page Builder is an online content editor used by authors, administrators, and web developers to collate content into a web page. Use this chapter in addition to Chapter 9, Creating Templates. This chapter includes the following: Understanding Web Publisher Page Builder, page 239 Creating a new Page Builder template, page 250 Editing Page Builder templates, page 250 Importing Page Builder templates, page 251 Importing Page Builder Dreamweaver template, page 252 Exporting Page Builder templates, page 254 Enabling SSI support on the Web View server, page 262 For instructions on creating a blueprint or creating a blueprint descriptor file, see the Web Publisher Development Guide. Understanding Web Publisher Page Builder This section includes the following: Understanding the content template, page 240 Understanding the blueprint, page 241 Understanding the blueprint descriptor, page 248 Web Publisher Administration Guide 239
Creating Templates for Page Builder Understanding the content template Unlike many web page development tools, Page Builder is fully browser-based and does not require downloading applets or ActiveX controls. Authors add content to web pages and edit content on a web page through Page Builder s WYSIWYG web page editor by first viewing the page and then making modifications to the page. Once authors have created content Page Builder views (Layout View, Content View, and Preview) are used to instantly preview the web page. Administrators enforce a standard look and feel across web pages by reusing a supplied sample content template, or creating a content template from scratch. A template is a file upon which new content files are based. It provides layout and may contain basic information such as a company logo and legal notice used in web pages. All templates support multiple pre-defined components, such as rich text, plain text, image, hyperlink, and layout components, and enable authors to create content without having to worry about the layout. Components can be added, rearranged, or locked preventing authors from moving or modifying the content or structure. When an author chooses a template, Web Publisher makes a copy of the template content and saves it as a new content file. The content file inherits the template s content and other characteristics, such as blueprint. Web Publisher Page Builder manages templates and content through a blueprint and a blueprint descriptor file. A blueprint is a collection of components stored in a repository and used by Page Builder to support its user interface and content publishing functions. A blueprint descriptor is an XML file that references all the components and their locations. 240 Web Publisher Administration Guide
Creating Templates for Page Builder Figure 11-1. Template and blueprint association Understanding the blueprint A blueprint is a collection of components such as XML schema, XSL, Javascript, and CSS stored in a repository under the path Site Manager/Blueprints folder. These components are used by Page Builder to support its user interface and content publishing functions. Web Publisher Administration Guide 241
Creating Templates for Page Builder Blueprint components control such features as layout, text, hyperlink and images, and may be represented by an XML, XSL, CSS, JavaScript or other file. To ensure consistency between the blueprint components and to support non-content related components, other than layout, Page Builder creates a relationship between the blueprint and any templates created from the blueprint. Once a relationship is created between a blueprint and a template the relationship should not be changed. Any changes to the blueprint will affect all templates associated with the blueprint. Developers who modify a blueprint must ensure all blueprint components are consistent with each other, and that the existing content structure is compatible with the updated blueprint. (For instructions on creating a blueprint or blueprint descriptor file, see the Web Publisher Development Guide.) Each blueprint is implemented as a folder and an XML blueprint descriptor file at the root of that folder. A blueprint descriptor is an XML file that references all the components and their locations. Page Builder is not specific about the folder structure in a repository. The folder structure only exists to support usability and manageability of components. A blueprint may contain the following components: XML schema (for example, content schema) XSL Design XSL Preview XSL Processor XSL Publish XSL Site View XSL Javascript CSS These components appear in a repository for the default blueprint. A blueprint is stored in a repository as a folder. The folder may have subfolders that contain any number of subfolders and components. Following is a sample blueprint in the UI. /Site Manager /Blueprints /default (default blueprint folder) /Common XSL /DesignXHTML /Design XSL /Preview XSL /Publish XSL 242 Web Publisher Administration Guide
Creating Templates for Page Builder /Schema /Site View XSL /include /processor XSL To change Page Builder components (user interface, elements and actions that enable users to create and edit content or web page layout) you must extend the existing blueprint or create a custom blueprint refer to the Web Publisher Development Guide for instructions on customizing the blueprint. If you modify the blueprint you must ensure that the existing content structure of templates currently associated with the blueprint is supported. Any changes to the blueprint will affect all templates associated with the blueprint. What a web page looks like Authors create web page content in XML. An XML schema determines what content components are allowed in the XML file, where the components are allowed in the file (row next to a row, column next to a column, text inside of a column content area), the details of each content component (attributes and default values), and the structure of the XML file. Following is an example of an XML content schema file used in Page Builder. Web Publisher Administration Guide 243
Creating Templates for Page Builder Figure 11-2. Content schema example Updating and rendering content for a web page Web page content is stored in a repository as an XML document and is updated on the content server-side using XSL. XSL creates and updates content using the XSL components, and renders content for the web using various views. The XSL file contains XSLT instructions that are used by Page Builder to process content updates from a content XML file for example, adding a new content component, 244 Web Publisher Administration Guide
Creating Templates for Page Builder updating the content of an existing component, updating the style of a component, deleting a component, copying a component, pasting a component, or locking or unlocking a component. To support multiple content editing functions Page Builder uses the following blueprint components (usually located under the Processor XSL folder): actionaddchoiceelement actionaddelement actiondeleteelement actionduplicateelement actionexcahngeelement actionlocakelement actionpasteelement actionupdatecomponent actionupdatecustomimage actionupdateimage actionupdatelink actionupdateproperties actionupdatetext The XSL reads through an XML content file and processes any values (parameters) or user interface IDs and instructions it sees in the XML file. Views of the content are used by Page Builder to enable authors to create, modify, and publish content to a web page. The views are controlled by an XSL for each view, for example, site view and preview. To reuse XSL instructions (templates) some components may be imported into other high level components using standard XSL syntax for example: <xsl:import href="blueprint-component/previewxsl"/> <xsl:import href="blueprint-component/menuxsl"/> An include XSL file contains shared components that are used by more then one XSL file. For example, the menuxsl component may be included into multiple views to render the same menu structure. The XSL file also generates the browser-based dynamic HTML (DHTML) user interface (menus, toolbars, and content widgets) that enables authors to interact with Page Builder without sending information to a web server. The Page Builder UI is handled by Javascript and CSS in the browser. Web Publisher Administration Guide 245
Creating Templates for Page Builder Using views Page Builder supports multiple views of the content being created, modified, and published to a web page. The views, layout view, content view, and preview, are controlled by an XSL for each view. Layout view Layout view is rendered by the design XSL. The design XSL creates DHTML of the XML content, menus and page layout. Layout view enables users to add, delete or modify components on a web page (depending on a users permissions), and add content including rich text, images, flash movies, and XML components (described in the Web Publisher Administration Guide) on a template. If you have correct permissions layout view displays page contents and positioning components surrounded by control borders. A control border changes from a light grey line to a black line providing developers with direct feedback about which area on the page is being affected. Inside a control border a floating context-sensitive menu displays actions allowed in a particular context. For example, developers can add, remove or move components, change the style of a page, add images, and lock components preventing authors from changing content or structure. Content view Content view is rendered by the content XSL The content XSL creates DHTML of the XML content, menus and page layout. Content view enables users to add and edit content including rich text, images, flash movies, and XML components (described in the Web Publisher Administration Guide) on a page. If you have correct permissions content view displays page contents in control borders. A control border changes from a light grey line to a black line providing developers with direct feedback about which area on the page is being affected. Inside a control border a floating context-sensitive menu displays actions allowed in a particular context. For example, developers edit content, add images, and lock components preventing authors from changing content. No layout editing options are displayed in this view. 246 Web Publisher Administration Guide
Creating Templates for Page Builder Preview Preview is rendered by the preview XSL. Preview creates DHTML of the XML content, menus and page layout. Preview is similar to layout view and content view except that it does not use control borders or menus and therefore looks much closer to the final web page. Preview enables users to instantly view their static web page without any editing controls before they publish to a live web page without first saving. Site view Site view is rendered by the site view XSL The site view XSL creates DHTML of the XML content (simulated dynamically without deployment to Site Caching Services), menus, page layout, and buttons that return users to content view or layout view. Site view enables users to instantly view their dynamic web page without any editing controls before they publish to a live web page. Users can test links, as well as JavaScript related features that are normally disabled in layout view, content view and preview. Site view is similar to preview except that users must first save their web pages before previewing. Page Builder dynamically generates HTML in the context of the web page being developed, without deploying content to the Site Caching Services (SCS) target. Dynamically generating the web page enables users to view a completed web page, and continue to modify and preview the content before the web page is deployed to a live web site. Site view is only available for web pages not templates. Note: All changes made on Layout or Content view should be saved before accessing Site view. Otherwise all the changes are lost. Rendering content into HTML A live web site is rendered by the publish XSL. The publish XSL creates DHTML of the XML content file, and designs the web site s final page layout. Web Publisher and Site Caching Services create an HTML rendition of the final web page and the latest rendition, if in the appropriate lifecycle state, is used for publishing. (A rendition is an alternate copy of a file or an additional file that can be included with an object, and it differs from the original document in format only.) Currently, only the HTML rendition format (primary channel) is supported. Web Publisher Administration Guide 247
Creating Templates for Page Builder During the publishing process any URLs in the XML content file are replaced with either absolute URLs (domain name and web server folder name are required) or relative URLs depending on the current site publishing configuration. URLs must correlate with page location depth on the web server file system. Page location depth is the relative location of the file referenced by a URL once files are published to the SCS target. For example, a repository cabinet called acme.com (/acme.com/product/foo.html) contains a URL pointing to an image (/acme.com/images/bar.gif). After publishing the replaced URL is../images/bar.gif. In this example location depth means the initial.. or other. For a full description of site publishing configurations, refer to the Site Caching Services User Guide Creating a translated web site If Web Publishers globalization feature is enabled, content is assigned a locale (the language_code attribute) at check-in time. Using Site Caching Service s (SCS) global publishing feature content with designated locales are published at the target host by locale enabling different translations of a web site. The SCS site publishing configuration is used to set parameters to publish certain renditions and languages to certain application servers. Refer to the Site Caching Services Admin Guide for details on site publishing configurations. Channels Channels are multiple output formats for example, browser HTML, PDA HTML, SmartPhone HTML, or WML. Channels are used by Web Publisher and Site Caching Services to publish content, in a specific format, to a web page. The same content can be rendered for different channels using different publish XSLs. Currently, Web Publisher only supports one default channel at a time. The channel structure in a repository is: Channels Channel object1//channel XML file Channel object2 Understanding the blueprint descriptor A blueprint descriptor file is an XML file that contains the name and location of every component associated with a specific blueprint. When Page Builder processes a template or content page (for example renders a web page for preview) all necessary components 248 Web Publisher Administration Guide
Creating Templates for Page Builder are located and retrieved from a repository using the descriptor as a component location map. For example, an author selects the Layout view tab in the UI to view content in Layout view. Here are the steps Page Builder goes through to render the content in Layout view. 1. Page Builder looks in the blueprint descriptor file for the component (XSL file) that renders Layout view. The component is layoutviewxsl 2. Finding the component Page Builder looks at the relative path for this component and locates the component in a repository. The relative path is /Design XSL/layoutView.xsl 3. The located layoutviewxsl component is then used to render Page Builder content in Layout view. The default blueprint descriptor file is stored in a repository as an XML file under the path WebPublisher Configuration/Supporting Templates/Page Builder/Blueprints folder and has <blueprint-name>/<blueprint-name>.xml as its name. You can only store one blueprint descriptor file in one blueprint folder. Your custom blueprint descriptor file should be stored at the root level of your custom blueprint folder, and named with the same name as the blueprint. For example Blueprints/MyBlueprint, and Blueprints/MyBlueprint/MyBlueprint.xml Following is an excerpt from a sample descriptor XML file: <blueprint-descriptor xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <config-param> <param-name>parametername</param-name> <param-value>parametervalue</param-value> </config-param> <components> <component> <component-name>contentschema</component-name> <component-location>schema/contentschema</component-location> </component> <component> <component-name>layoutviewxsl</component-name> <component-location>design XSL/layoutView</component-location> </component> <component> <component-name>addelementfromschema</component-name> <component-location>common XSL/addElementFromSchema</component-location> </component> <component> <component-name>actionsetnodeid-s</component-name> <component-location>common XSL/actionSetNodeId-s</component-location> </component> </components> </blueprint-descriptor> Web Publisher Administration Guide 249
Creating Templates for Page Builder Creating a new Page Builder template If you have Web Developer permissions, creating a new template involves three steps: you must create a template object, define the page layout and add default content to it. To create a new Page Builder template object: 1. In the Classic view, navigate to Site Manager/Templates/[categoryname]. 2. Click File>New>Template>Page Builder. 3. On the Create tab, enter a file name, descriptive name and subject of your template 4. Select the lifecycle for the template. If you do not change the lifecycle, the default lifecycle will be used. 5. If you have more than one blueprint created, select the blueprint to be used, otherwise the default blueprint will be automatically applied. The blueprint which is being used for this template will determine the options that are available on content editing menus. 6. Click one of the following: To save and close the template, click Finish. If you choose this option, you can later edit the template by locating it in the folder where you created it and then clicking its filename. When you are ready to edit your template, you use the same procedure as you would for editing a web page. For information on how to edit web page components in Page Builder, see the Page Builder chapter in the Web Publisher User Guide or Web Publisher online help. To save the template and open it for editing, click Finish and Edit. To edit your template, you use the same procedure as you would for editing a web page. For information on how to edit web page components in Page Builder, see the Page Builder chapter in the Web Publisher User Guide or Web Publisher online help. Editing Page Builder templates To edit a template in Page Builder, you use the same procedure as you would for editing a page. For information on how to edit web page components in Page Builder, see the Page Builder chapter in the Web Publisher User Guide or Web Publisher online help. 250 Web Publisher Administration Guide
Creating Templates for Page Builder Importing Page Builder templates To import a template in Page Builder, use the following procedure as you would for creating a new Page Builder template: To import a Page Builder template from a local le system: 1. Navigate to Site Manager/Templates/[categoryname]. 2. Click File>New>Template>Page Builder>From File. 3. The following dialog is displayed: 4. On the Create tab, enter a file name, descriptive name and subject of your template. 5. Select the lifecycle for the template. If you do not change the lifecycle, the default lifecycle will be used. 6. If you have more than one blueprint created, select the blueprint to be used, otherwise the default blueprint will be automatically applied. The blueprint which is being used for this template will determine the options that are available on content editing menus. Web Publisher Administration Guide 251
Creating Templates for Page Builder Note: When you are importing or exporting templates with blueprints from one repository to another repository, both the repositories should have either exactly the same blueprints or at least the ones that are backward-compatible. 7. To save and close the template, click Finish.. To save the template and open it for editing, click Finish and Edit Importing Page Builder Dreamweaver template The pictorial representation of a Dreamweaver template (top level folder on a local file system) is as follows: All the Dreamweaver templates and supporting files are created under this folder. You can import the Dreamweaver template through Page Builder into a repository. To import the Page Builder Dreamweaver template: 1. Select Site Manager>Templates. 2. Choose a category. 3. Select File>New>Page Builder Template. 252 Web Publisher Administration Guide
Creating Templates for Page Builder 4. Click Import Dreamweaver Template(s). 5. The Import Dreamweaver Template dialog is displayed. 6. Click Add Folders in the Import Dreamweaver Template dialog. Note: Object Type Select the desired Object Type (usually, dm_document). Web Publisher Administration Guide 253
Creating Templates for Page Builder Locale Choose the locale as English if the website is in English and choose the respective locales for websites in other languages. Blueprint Select a blueprint that applies to the content files created from Dreamweaver template files (.DWT). This will be a dropdown list only if there is more than 1 blueprint. Supporting file folder Choose a location to store all Dreamweaver supporting files. After the Import Dreamweaver Template (top level folder) appears in the supporting files location, Web Publisher renames the Dreamweaver templates to Sample<template name>. 7. Click Import to import the templates. This results in the import and conversion of Dreamweaver templates to Page Builder format. Exporting Page Builder templates To export a template in Page Builder, you use the same procedure as you would for exporting a Web Publisher template. For information on how to export a template in Page Builder, see the Exporting section in the Working with Cabinets, Folders and Files chapter in the Web Publisher User Guide or Web Publisher online help. Globalization support in Page Builder Content pages created by Page Builder may contain links to other pages, images and/or components. Page Builder now provides a way to add, delete, or modify a translation for each content object. After multiple translations are created, it provides a way to choose the best matching translation when a link or component is resolved or published. Also, Page Builder can automatically reflect the changes (if any) when a page translation is added or deleted. How it works? The following example describes how the globalization support in Page Builder works. For example, let the primary locale be French and the fallback locale be English. When a page is created with images, only an English image exists. If you preview the English image and later add a French translation for the same image, it shows the French image automatically. When the same page is promoted and published, the French image is also promoted and published. If the French image is deleted and the main page is published 254 Web Publisher Administration Guide
Creating Templates for Page Builder again, the English image, as the second best match, is promoted and published along with it. To check if Globalization is turned on: 1. Browse to Administration>Web Publisher Admin>Settings. 2. Check if the Globalization checkbox is selected. Note: The Settings option is available only for Administrators. To add a translation to a content page: 1. Browse to any Web Cabinet folder. 2. Select the required content page. 3. Select File>Translation>Add Translation or click the Add Translation link directly. 4. Select a base translation locale from the Base translation on the latest dropdown box. 5. Select a locale for translation from the Add translation for this locale dropdown box. 6. Click OK. Web Publisher Administration Guide 255
Creating Templates for Page Builder Choosing an image of a speci c locale Image locale is automatically matched to the parent page locale. If there is no direct match then fallback rules will be used. If there is no fallback rules then the first translation found will be displayed. If you want to force any specific localized version, then it is recommend creating a separate image object with a different name. Content migration Using Documentum Application Builder, the page builder contents are replicated from one docbase to another docbase. The following is an example that describes the steps in detail, if you need to package all files under BetaDemo folder and move to another docbase. To achieve this goal, you need to package all the following items in DocApp. 256 Web Publisher Administration Guide
Creating Templates for Page Builder 1. The folder including all subfolders and objects that you want to move to another docbase including the linked content file. 2. Content template objects or top content template(s) folder used by contents in the folder including all subfolders and objects. 3. Managed link objects used by contents. 4. Blueprint linked to content template object. 5. Data types and relations types for all packaged objects. The sample PageBuilder Demo DocApp is as follows: Web Publisher Administration Guide 257
Creating Templates for Page Builder The following four objects need to be packaged as Data Objects. 1. BetaDemo Source folder including all subfolders and objects that you want to move from one docbase to another including the linked content files. 258 Web Publisher Administration Guide
Creating Templates for Page Builder 2. BetaDemo Content template folder which contains all content templates that are used by contents in the folder including all subfolders and objects. Web Publisher Administration Guide 259
Creating Templates for Page Builder 3. Managed Links Managed links folder which contains all managed link object used by content. 260 Web Publisher Administration Guide
Creating Templates for Page Builder 4. Page Builder A Page Builder folder that contains all blueprint(s). It is placed under /WebPublisher Configuration/Supporting Templates folder. Update template DocApp only packages the CURRENT version of object. However, Web Publisher content could be associated with an older version of content template. In this case, the content and the current version of the content template would be moved to target docbase, but the relation from content to content template would get lost. To solve this issue, Web Publisher provides Update Template action to re-associate the content to latest content template. This action is available for Web Cabinet, wcm folder, and wcm file. For web cabinet and folder, the action would find all files under selected container, sub-folders, and do the re-association to CURRENT version of content template. Web Publisher Administration Guide 261
Creating Templates for Page Builder Enabling SSI support on the Web View server In order for Virtual Include (SSI) components to be visible when a user performs a Web View on a web page created in Page Builder, you must enable SSI support on the Web View server. This topic includes three procedures, depending on which the type of server you use for Web Publisher s Web View functionality. To enable SSI support in Tomcat 5.0: 1. On the Site Caching Services target server used for the Web View functionality, rename the file $CATALINA_HOME/server/lib/servlets-ssi.renametojar to $CATALINA_HOME/server/lib/servlets-ssi.jar. 2. in $CATALINA_HOME/conf/web.xml, uncomment the servlet declaration and the servlet mapping, shown here: The servlet declaration looks similar to this: <servlet> <servlet-name>ssi</servlet-name>... </servlet> The servlet mapping looks similar to this: <servlet-mapping> <servlet-name>ssi</servlet-name> <url-pattern>*.shtml</url-pattern> </servlet-mapping> 3. Restart Tomcat service. 262 Web Publisher Administration Guide
Creating Templates for Page Builder To enable SSI support in IIS 7.0 1. On the Site Caching Services target server used for the Web View functionality, open IIS Manager and navigate to the level you want to manage. Note: For information about navigating based on your IIS administrative role, see IIS 7.0 Beta: Navigation in IIS Manager Based on IIS Administrative Roles. 2. In the Properties view, click the Content link in the Content area. 3. Under Includes, select the Enable server side includes check box. 4. Click Apply Changes in the Tasks pane. To enable SSI support in IIS 6.0: Note: This is applicable to the following: Web View setup, ICE setup, Publishing target setup. 1. On the Site Caching Services target server used for the Web View functionality, open IIS Manager. 2. Expand the local computer. 3. Either right-click the Web Sites folder (to enable SSI on all Web sites) or right-click a specific Web site. 4. Click Properties. 5. Click the Home Directory tab. 6. In the Application settings section, click Configuration. 7. On the Mappings tab, click Add. 8. In the Add/Edit Application Extension Mapping dialog box, enter the required information: Executable: C:\WINDOWS\system32\inetsrv\ssinc.dll Extension:.htm (or.html depending on the extension with which Page Builder files are published) Check Verbs >Limit to: GET, POST (optional) 9. Click OK. Web Publisher Administration Guide 263
Creating Templates for Page Builder 264 Web Publisher Administration Guide
Chapter 12 De ning Folder Mapping This chapter describes the following: Folder mapping overview, page 265 Folder mapping elements, page 267 Example of a folder map file, page 269 Repeating properties, page 270 Rules-searching order, page 273 How to debug or create a catch-all rule, page 275 How folder mapping handles symbols, page 275 How folder mapping handles special characters, page 276 Specifying that an attribute has no value, page 276 Dynamic folder mapping, page 277 How folder mapping uses language_code, page 279 Folder mapping overview Folder mapping automatically determines the location on a website of newly created content. Folder mapping lets authors create content without having to worry about where it goes in the website s folder structure. A folder map is an XML file that consists of rules that place content files in specific locations in Web cabinets, based on each content file s properties. Rules in the folder map file define property values and repository paths. If a content file s properties values match all the property values defined in a rule, then the content file is placed in the repository paths specified in the rule. A folder map file may also contain paths to other folder map files called secondary folder maps. The paths are fully qualified paths to other folder map XML files in a repository that also contains folder mapping rules. Web Publisher Administration Guide 265
De ning Folder Mapping When Web Publisher encounters paths in the primary folder map to secondary folder maps Web Publisher evaluates the rules in the secondary folder map before returning to the primary folder map. The precedence logic is still in effect: the first rule that Web Publisher encounters and that the object satisfies is used for folder mapping, whether that rule is in the primary folder map or the secondary folder map. When placing content files in the repository, folder mapping automatically creates missing folders. However, folder mapping does not create missing Web cabinets. If the cabinet does not exist, Web Publisher returns an error. Folder mapping can create new folders based on the property values within content files. Web Publisher makes a call to the folder map file every time a user creates a new object or changes an object s properties. If an objects properties are updated and the folder map indicates the object should be moved or linked to other folders, then Web Publisher either automatically does so or first prompts the user for confirmation. If the user is prompted and approves, the object is unlinked from the previous folder locations determined by the folder mapping and linked to the new folders. Manually established links are not affected. If you are using a multi-repository environment do not update a source object s properties if the update will trigger a move or link operation by folder mapping. This type of change could cause integrity issues in the target repository. When Web Publisher re-links a file based on updated properties, related files are not affected unless global management is turned on and the file is the default locale. In that case, Web Publisher reapplies the folder mapping to all translation files because all translations must move together. Only the default locale triggers the reapplication of the folder mapping. If an object has any replicated translations, folder mapping will not apply after a properties change. This restriction causes property values that trigger folder mapping to become out of sync with the folder map. For example, a ProductReleaseNote.pdf file is a replicated object with a property field called Product whose value is Axon160. You change the Product value of the replicated object to be Accelera160, and save the properties change. Because the object is replicated the folder map for the source object says Axon160, and the folder map for the replicated object says Accelera160. You can set permissions (ACLs) on the primary folder map file. However if you do not have READ access to it, you will not be able to create any content or use any of the Web Publisher content file templates. Permissions can be set on a folder map to prevent certain users from accessing the secondary folder map file referenced in the primary folder map file. You can set permissions on secondary folder map files to enable users and groups to be exposed only to specific folder maps. Note: If you do not have READ access to the primary folder map and try to use a content file template, the following error message is displayed: 266 Web Publisher Administration Guide
De ning Folder Mapping new content cannot be created [DM_SYSOBJECT_E_CANT_SAVE_NO_LINK] Folder map files are located in the Site Manager / Configurations / Foldermaps node. You do not need to save your secondary folder maps in the same location as the primary, or default, folder map but we recommend you do so to simplify maintenance. The default folder map file is FolderMap.xml. You cannot modify the FolderMap.xml object name. If you are given the option (such as during checkin) to change the format of FolderMap.xml, do not change the format To save FolderMap.xml as a part of your portable configuration, insert a copy of the updated FolderMap.xml file in your DocApp. Folder mapping elements A rule is defined by the <rule> tag. Each rule includes one or more <attr_list> tags and <path_list> tags. <attr_list> The <attr_list> tag defines the property values that a file s properties must match in order for the rule to apply. All the values defined by the <attr_list> tag must match in order for the rule to apply. The <attr_list> tag can define both single-value properties and repeating-value properties. The <attr_list> tag requires an </attr_list> end tag. The following elements are nested within the <attr_list> tag. <attr> This specifies one property and value. You can have multiple <attr> tags in a rule. This tag requires an end tag. The following tags are nested in the <attr> tag. <name> This specifies the property for the value. This tag requires an end tag. <value> This specifies the property for which a value must be met. This tag requires an end tag. If you want to specify that the property has no value, use <value></value>. For details, see Specifying that an attribute has no value, page 276. Web Publisher Administration Guide 267
De ning Folder Mapping A property can be a repeating property. For example, you can have: <attr> <name>keywords</name> <value>bambi</value> </attr> To meet this criterion, the files first keywords value must be Bambi. You can use index to define which repeating element you are referring to. For example, the following refers to the second keywords property: <name>keywords[1]</name> For further information about repeating properties, please see Repeating properties, page 270. <path_list> The <path_list> tag defines where content files are stored. When the criteria in <attr_list> tag is met, folder mapping links the content file to all the file paths listed in the <path_list> tag. A <path_list> can contain one or more paths, or one or more includes. An <include> tag defines where a secondary folder map file is stored. A <path> tag can never be mixed with an <include> tag. The <path_list> tag requires an end tag. For each path you want to designate, you use the following tag within the <path_list> tag: <path> This defines the full path within the Web Publisher repository for storing content files that meet the rule s criteria. You can have multiple <path> tags within a rule. This tag requires an end tag. The <path> tag can create new folders based on the property values within content files. For each secondary folder map you want to designate, you use the following <include> tag within the <path_list> tag: <include> This defines the full path within the Web Publisher repository for storing secondary folder maps. You can have multiple <include> tags within a rule. Optionally, the rule that contains the folder map path could have an attribute list that controls whether the secondary folder map should be included. You can also control the folder map inclusion using permissions on the secondary folder map file. This tag requires an end tag. 268 Web Publisher Administration Guide
De ning Folder Mapping Example of a folder map le In the following example, the rule applies to a content file if a file has its department property set to clothing and its category property set to socks. For each content file that meets both those criteria, the rule places the content file into the following two repository locations: mystore.com/clothing/socks mycabinet/clothing/socks <folder_map> <rule> <attr_list> <attr> <name>department</name> <value>clothing</value> </attr> <attr> <name>a_category</name> <value>socks</value> </attr> </attr_list> <path_list> <path>/mystore.com/clothing/socks</path> <path>/mycabinet/clothing/socks</path> </path_list> </rule> </folder_map> In the following example, there are three secondary folder map files that must be evaluated; engineering.xml, finance.xml, and hr.xml. When the folder mapping parser finds an <include> tag, it sources in the first folder map it finds (WebPublisher Configuration/common/foldermaps/engineering.xml) and processes it. If this folder map returns a match (engineering.xml), the folder mapping is done and the match is returned. If no match is found the parser moves to the next <include> tag. If, after processing all <include> tags, the parser cannot find a match, folder mapping will consider there is no match in this rule and move on to the next rule in the folder map. <rule> <attr_list> <attr> <name>department</name> <value>engineering</value> </attr> </attr_list> <path_list> <include>webpublisher Configuration/common/foldermaps/engineering.xml</include> </path_list> </rule> <rule> Web Publisher Administration Guide 269
De ning Folder Mapping <path_list> <include>/webpublisher Configuration/common/foldermaps/finance.xml</include> <include>/webpublisher Configuration/common/foldermaps/hr.xml</include> </path_list> </rule> The <path_list> tag can include one or more <path> tags, and one or more <include> tags. However, a <path> tag cannot include an <include> tag. Repeating properties Properties in a folder map can be repeating properties (also called repeating attributes). This section explains how to use repeating properties. Repeating properties in <attr_list> A specific value of a repeating property can be addressed by a subscript index using square bracket notion. If a bracket subscript is missing, the first element, 0, is assumed. For example: <rule> <attr_list> <attr> <name>authors[1]</name> <value>victor</value> </attr> </attr_list> <path_list> <path>/mystore.com/books/zhuo</path> </path_list> </rule> <rule> <attr_list> <attr> <name>keywords</name> <value>magazine</value> </attr> </attr_list> <path_list> <path>/mystore.com/perodical</path> </path_list> </rule> However, if the repeating properties have a pair of empty brackets [] or a pair of brackets with an asterisk [*], folder mapping will look at all values in the repeating properties to find a match. For example: 270 Web Publisher Administration Guide
De ning Folder Mapping <rule> <attr_list> <attr> <name>keywords[*]</name> <value>magazine</value> </attr> </attr_list> <path_list> <path>/mystore.com/perodical</path> </path_list> </rule> If there is a value magazine in keywords, either in keywords[0] or keywords[1] or any other keyword location, folder mapping has a match for this rule. The following example illustrates a possible use of this feature. The rules say that if an object contains keyword biz1 and biz2, link it to site1 and site2, respectively. If the object contains keyword biz3 and biz4, link it to site3 and site4: <rule> <attr_list> <attr> <name>keywords[]</name> <value>biz1</value> </attr> </attr_list> <attr_list> <attr> <name>keywords[]</name> <value>biz2</value> </attr> </attr_list> <path_list> <path>/mystore.com/site1</path> <path>/mystore.com/site2</path> </path_list> </rule> <rule> <attr_list> <attr> <name>keywords[]</name> <value>biz3</value> </attr> </attr_list> <attr_list> <attr> <name>keywords[]</name> <value>biz4</value> </attr> </attr_list> <path_list> <path>/mystore.com/site3</path> <path>/mystore.com/site4</path> </path_list> </rule> Web Publisher Administration Guide 271
De ning Folder Mapping Repeating properties in <path_list> Repeating properties can be used in a <path> element. Similar to using repeating properties in the <attr> element, when you use them in the <path> element a specific value of a repeating property can be addressed by a subscript index using square brackets. For example: <rule> <attr_list> <attr> <name>keywords[1]</name> <value>magazine</value> </attr> </attr_list> <path_list> <path>/mystore.com/$(keywords[1])</path> </path_list> </rule> However, unlike the <attr> element, if no bracket subscript is used or an index is missing from the bracket subscript, then folder mapping will retrieve every element in the repeating property and return multiple paths created from them. For example, if the property authors contain the values Smith, Dow, and Clancy, then this rule, <rule> <attr_list> <attr> <name>a_category</name> <value>book</value> </attr> </attr_list> <path_list> <path>/mystore.com/$(author)</path> </path_list> </rule> will return /mystore.com/smith, /mystore.com/dow, and /mystore.com/clancy. There are two more notations that can give the same result: a pair of square brackets without any subscript index [], or a pair of square brackets with the wild card symbol [*]. Like any property in a dynamic folder map (see Dynamic folder mapping, page 277), a repeating property can appear in any part of the path. For example, <rule> <path_list> <path>/mystore.com/$(author[])/periodical</path> </path_list> </rule> 272 Web Publisher Administration Guide
De ning Folder Mapping Note: At most only one of the properties can be a repeating property per the <path> element. Folder mapping throws an exception if it sees more than one repeating property used. Rules-searching order When folder mapping algorithm searches the matching rule, it goes from top to bottom of the list. As soon as folder mapping finds a matching, it stops there and returns the paths in that rule. When you design a folder map, it is important you put a more specific rule before a generic rule. The order of the rules within a folder map are important. The first rule that tests true is the rule Web Publisher applies. You should place the more restrictive rules first. You can list the properties for each rule, however, in any order. For example: <folder_map> <rule> <attr_list> <attr> <name>department</name> <value>clothing</value> </attr> <attr> <name>category</name> <value>socks</value> </attr> </attr_list> <path_list> <path>/mystore.com/clothing/socks</path> </path_list> </rule> <rule> <attr_list> <attr> <name>department</name> <value>clothing</value> </attr> </attr_list> <path_list> <path>/mystore.com/clothing/other</path> </path_list> </rule> </folder_map> As objects are mapped, the rule precedence logic stays in effect. Thus the first rule the system encounters that the object satisfies will be used for folder mapping. Web Publisher Administration Guide 273
De ning Folder Mapping A rule does not have to have an <attr_list> tag. You can have a rule, <rule> <path_list> <path>/mycloset/anyjunks</path> </path_list> </rule> This rule should be put at the end of the folder map file to be used as a catch-all rule and when debugging the folder map file. Any rules after this rule are unreachable. If you are using this rule to debug the folder map file, you can place this rule anywhere in the folder map file to isolate a section of rules from the rest of the file. You cannot have a rule that does not have a path list tag. The following example shows the importance of the order of rules in the folder map file. In the example, the third rule is the least restrictive, because it is third. Any file in which the subject property is set to engineering and in which the a_category property is not set to either press release or white paper is saved to the EngDept folder in the WebSite1 Web cabinet. If the third rule were placed first, all files in which the subject property is set to engineering would be saved to that location. The other two rules, because they came later in FolderMap.xml, would not be used. <rule> <attr_list> <attr> <name>subject</name> <value>engineering</value> </attr> <attr> <name>a_category</name> <value>press release</value> </attr> </attr_list> <path_list> <path>/website1/engdept/pressreleasedocs </path> </path_list> </rule> <rule> <attr_list> <attr> <name>subject</name> <value>engineering</value> </attr> <attr> <name>a_category</name> <value>white paper</value> </attr> </attr_list> <path_list> <path>/website1/engdept/whitepaperdocs </path> <path>/website2/docs</path> 274 Web Publisher Administration Guide
De ning Folder Mapping </path_list> </rule> <rule> <attr_list> <attr> <name>subject</name> <value>engineering</value> </attr> </attr_list> <path_list> <path>/website1/engdept</path> </path_list> </rule> How to debug or create a catch-all rule In order to debug your folder mapping file or to create a location for any files that match no rules, you can create a rule that has no <attr_list> tag. Any rules after this rule in the folder mapping file do not get applied: <rule> <path_list> <path>path</path> </path_list> </rule> How folder mapping handles symbols When rules in the folder map file specify certain symbols (including those listed here), you must use their character references. This is an XML limitation. Symbol ampersand (&) less than (<) greater than (>) double-quote (") single-quote ( ) Character reference & < > " ' For example, instead of this, <value>sofas & Chairs</value> you should type this: Web Publisher Administration Guide 275
De ning Folder Mapping <value>sofas & Chairs</value> How folder mapping handles special characters There are certain characters that are not valid as a path character. If the folder mapping algorithm detects any special characters such as \ : *? < > space they are converted to the underscore _ character. The forward slash character / is a special case. This character is used as a path separator in versions 4.4.3 and later of Web Publisher. In addition to the string type attribute, folder mapping allows other types of attributes in the dynamic folder map. Boolean type attributes are translated into T or F. Time will use the time value and convert any special characters into underscores. Since the time value may contain forward slash characters, it will be treated differently depending on which version of Web Publisher you are using. If an attribute contains nothing (null) the code will look like the following <path>/mystore.com/$(department)/sale</path> If department is null, the path would be /mystore.com//sale which is incorrect. When this happens, folder mapping throws an exception. In Web Publisher versions previous to 5.3 Web Publisher gave a specially formatted value to the attribute<$(department)>. This method is no longer supported. See also How dynamic folder mapping handles special characters, page 279 Specifying that an attribute has no value If you want to look for an attribute that specifically has no value set, then within the <rule> tag, put no space between the opening and closing <value> tags. When you enter no information between the <value> tags, the rule calls look for an attribute that has no value. For example, the following rule says if the attribute named <userinput moreinfo="none">subject</userinput> has no set value, then place the file in the <userinput moreinfo="none">/eurasia/2004</userinput> folder. <rule> <attr_list> <attr> <name>subject</name> <value></value> </attr> </attr_list> 276 Web Publisher Administration Guide
De ning Folder Mapping <path_list> <path>/eurasia/2004</path> </path_list> </rule> When the attribute is a string and is empty, this condition is met. Folder mapping will convert any other types of attribute into something. The following is an example rule. <rule> <attr_list> <attr> <name>a_category</name> <value>*</value> </attr> </attr_list> <path_list> <path>/mystore.com/$(a_category)</path> </path_list> </rule> <rule> <attr_list> <attr> <name>a_category</name> <value></value> </attr> </attr_list> <path_list> <path>/mystore.com/return</path> </path_list> </rule> When an attribute in the <path> tag contains no value, an exception is thrown. In previous Web Publisher versions a special value <$(attribute name)> was used. This method is no longer supported. Dynamic folder mapping Dynamic folder mapping allows properties to be used in the folder path. Folder mapping returns paths dynamically, depending on the value of the properties. If the rule specifies a folder that does not exist, Web Publisher creates the new folder. The cabinet, however, must already exist. Dynamic folder mapping is shown in the following example rule. In the <path> element, the rule uses $(category) to tell Web Publisher to take the value listed in the content file s category property and put the content file in a folder with the same name as that property value. If the folder does not exist, then create it: <rule> <attr_list> <attr> <name>department</name> Web Publisher Administration Guide 277
De ning Folder Mapping <value>clothing</value> </attr> </attr_list> <path_list> <path>/mystore.com/clothing/$(category)</path> </path_list> </rule> In the above rule, if the content file s category property is set to socks, then the content file is placed in the folder /mystore.com/clothing/socks. If category property is set to shoes, then the content file is placed in /mystore.com/clothing/shoes. If the socks folder or shoes folders do not exist, Web Publisher creates them. Dynamic folder mapping can create a folder at any level in the folder path. Multiple property values can be used to construct multiple levels of the folder path. If a repeating property is in the destination folder path, then multiple folder paths can be created. Dynamic folder mapping with full or partial paths In dynamic folder mapping, you can use properties that contain full or partial sections of the path. This feature is available only in Web Publisher 4.4.3 or later, or Web Publisher 5.2 or later. Consider the following path: <path>/mystore.com/$(department)/sale</path> When creating a file, a user could type clothing/junior in the department property in the Add Content page. Using the path above, folder mapping would return /mystore.com/clothing/junior/sale The <value> tag can contain only an asterisk (*). An asterisk equals any value. This applies only to string properties. Consider the following folder map rules. <rule> <attr_list> <attr> <name>department</name> <value>*</value> </attr> </attr_list> <path_list> <path>/mystore.com/$(department)/sale</path> </path_list> </rule> <rule> <path_list> <path>/mystore.com/manager</path> </path_list> </rule> 278 Web Publisher Administration Guide
De ning Folder Mapping In this example, the first rule says if department is not empty, use the first rule; otherwise, something is wrong and put the file to the manager folder so the manager can look it up. How dynamic folder mapping handles special characters Certain characters that might be found in a file s properties are not valid as path characters. If folder mapping encounters these, it converts them into underscores (_). Folder mapping converts the following characters into underscores. \ : *? " < > space / The forward slash character (/) is a special case. Prior to Web Publisher 4.4.3 this character is converted into an underscore. In Web Publisher 4.4.3 and later, this character is viewed as a path separator, as explained in Dynamic folder mapping with full or partial paths, page 278. In addition to strings, folder mapping allows other types of properties in the dynamic folder map: Boolean properties are translated into T or F. Time is converted into the time value with any special characters converted to underscores. Forward slashes in a time value are treated according to your version of Web Publisher. In the following path: <path>/mystore.com/$(department)/sale</path> if department is null, you get this path: /mystore.com//sale which is incorrect. When this happens, folder mapping gives a specially formatted value to the property. It consists of a pair of angle brackets surrounding the property in its dynamic folder mapping format. Thus the above example would return /mystore.com/<$(department)>/sale as the path. See also How folder mapping handles special characters, page 276. How folder mapping uses language_code Using language_code in the <path> element of a folder mapping file might not yield the expected result. If you use language_code in the <path> element of a folder map to generate a folder path that puts a different locale of a document to a different folder, files might not go to their locale folder. For example, if you have a folder map rule that looks like this: Web Publisher Administration Guide 279
De ning Folder Mapping <rule> <attr_list> <attr> <name>a_category</name> <value>press Releases</value> </attr> </attr_list> <path_list> <path>/www/press/$(language_code)</path> </path_list> </rule> you might expect the original English version should go to /www/press/en_us and the French translation to /www/press/fr_fr. But the French translation also goes to the /www/press/en_us folder. The reason is that Web Publisher puts all translations, including the original document, in the same folder. If you create the first document, the file will go to the folder of the document s language code. For subsequent translations, they stay in the same folder. If, for the first document, there is no language code, you will get an error. 280 Web Publisher Administration Guide
Chapter 13 Setting Up Multi-Language Websites This chapter lists the tasks you perform to set up a website in multiple languages. For a detailed explanation of how multiple-language websites work, see the Web Publisher online help. This chapter includes the following: Sequence for setting up multi-language websites, page 281 Enabling globalization, page 282 Adding a new country and language to the locale creation page, page 282 Specifying Web Publisher Editor s dictionary, page 283 Sequence for setting up multi-language websites To set up a website in multiple languages, use the following sequence of procedures: 1. If globalization is not enabled, you must first enable it. See Enabling globalization, page 282. 2. For each translation of the website, do the following: a. If the site uses workflows to send content to be translated, create a translation workflow. To create a translation workflow, refer to Chapter 6, Creating and Installing Workflow Templates. b. Define a locale for the site. A locale is an object that defines a website s language and region/country. The site publishing configuration publishes content that designates this locale in the Language property. To define a locale, see the topic on working with locales in the Web Publisher User Guide or Web Publisher online help. c. Create site publishing configurations for the WIP, Staging and Active Site Caching Services targets. The site publishing configurations must specify the Web Publisher Administration Guide 281
Setting Up Multi-Language Websites locale. To create a site publishing configuration, see Creating a site publishing configuration, page 105. d. Optionally, you can specify Web Publisher Editor s dictionary. See Specifying Web Publisher Editor s dictionary, page 283. Enabling globalization Web Publisher s globalization functionality lets you translate a site s content into multiple languages and publish each translation to a separate web server. If you have checked Globalization in your system settings, then you enable globalization by defining the following system settings, which you access by navigating to Administration>Web Publisher Admin>Settings in the Classic view: Default language, which determines the language used on websites that do not have a specified language. If you enable globalization, you must set a default locale. Web Publisher s default language is English, en_us. You can set another locale as your default language in Administration>Web Publisher Admin>Globalization. Locale, which determines the default locale to be used on Web Publisher documents that do not have a specified locale. You must set a default locale to use globalization functionality. To define a locale, see the topic on working with locales in the Web Publisher User Guide or Web Publisher online help. Adding a new country and language to the locale creation page By default, Web Publisher does not populate the Add new locale page with all supported countries and languages. You can add more countries and languages to the list. To add supported countries and languages: 1. Go to the Application Server where you have Web Publisher installed/deployed. 2. Copy <wp_virtual_directory>/wp/config/library/locale/add_locale_component.xml to <wp_virtual_directory>/custom/config. 3. Edit the add_locale_component.xml in <wp_virtual_directory>/custom/config to add new language and new country. For example, in the "languagelist" section, add: ***** 282 Web Publisher Administration Guide
Setting Up Multi-Language Websites <language name="polish" code="pl" encoding="iso-8859-2"></language> ***** And in the "countrylist" section, add: ***** <country name="poland" code="pl"></country> ***** 4. Restart the App Server. 5. In Web Publisher, the new country name and new language code shall be displayed on the Add new locale page. Specifying Web Publisher Editor s dictionary Web Publisher Editor uses an object s language code to determine what language dictionary to use when spell checking is enabled for a content field. If the language code in a content file s locale matches any of the bundled dictionaries, that dictionary is used during spell checking. For instance, if a file has a locale of fr_fr, for a French language website in France, the French dictionary is used. If the file has a locale of ja_jp, for a Japanese language website in Japan, the default English (US) dictionary is used. The language code is either taken from a Web Publisher template when the object is created, or set by an author when an object is translated. To set a language code during translation: 1. In Classic view, select Web Cabinets. Display the Web cabinets in the right-hand frame. 2. Select a Web cabinet. 3. Navigate to a file, and check the file. 4. Select View>Translations. A list of locales displays. 5. Check a locale to use. 6. Select Document>Translations>Add Translation. 7. Set the translation information. For more information on adding a translation, refer to the Web Publisher User Guide or Web Publisher online help. 8. Click OK. Web Publisher Administration Guide 283
Setting Up Multi-Language Websites Spell checking is enabled for a content field when the content element sets spellcheck= Y in the Editor rules file. This attribute must be set to N if you are using the Japanese or Korean languages because no spell checker is available for these languages. For both Microsoft Internet Explorer and Netscape Navigator, Web Publisher Editor provides five language dictionaries: English, German, French, Italian, and Spanish. For Internet Explorer and Navigator, Web Publisher Editor s default language dictionary is English (US). To add a dictionary: 1. To add a new language dictionary, you must first purchase the dictionary from Wintertree Software Inc. 2. Navigate to the following directory: wp/library/reedit 3. Open the ssce.jar file and add your new dictionary to the file. You can open the ssce.jar file using a ZIP program. 4. Zip the ssce file and copy the updated ssce.jar file to webcomponent/library/ contentxfer. You should now have an updated ssce.jar file in wp/library/reedit, and webcomponent/library/contentxfer. 5. After making the necessary changes, delete the Java console cache directory in the application server In BEA: <BEA home directory>/user_projects/<user_defined_domain_name>/ <User_defined_server_name>/.wlnotdelete/* In Tomcat: <Tomcat home directory>/work/standalone/localhost/* The SpellChecker.properties file points to the default dictionary. The default dictionary is English (US) ssceam and ssceam2. You can change the default dictionary to point to a different locale, for example, French (FR) sscefr and sscefr2. Note: You need to change your default dictionary only if your locale does not use English (US) as its default language. You do not need to change your default dictionary to use a locale-specific dictionary in Web Publisher Editor. Web Publisher Editor dynamically selects the correct spell checker for content files of different locales. For a list of Web Publisher s two-letter language codes, refer to Table 6 1, page 60. To change the default dictionary: 1. To change the default language dictionary, you must first purchase the dictionary from Wintertree Software Inc., if it is not already included with Web Publisher. 2. Navigate to the following directory: wp/library/reedit 284 Web Publisher Administration Guide
Setting Up Multi-Language Websites 3. Open the ssce.jar file. You can open the ssce.jar file using a Zip program. 4. Open the SpellChecker.properties files in Notepad. The SpellChecker.properties file is the default language dictionary used by Web Publisher. 5. Modify the following lines: Lexicon1=ssceam.tlx,url,t MainLexicon2=ssceam2.clx,url,c to the locale you want to set as the default for the repository. For example, for Italian change the following lines: Lexicon1=ssceit.tlx,url,t MainLexicon2=ssceit2.clx,url,c 6. Zip the ssce file and copy the modified ssce.jar file to webcomponent/library/ contentxfer. You should now have a modified ssce.jar file in wp/library/reedit, and webcomponent/library/contentxfer. 7. After making the necessary changes, delete the Java console cache directory in the application server. In BEA: <BEA home directory>/user_projects/<user_defined_domain_name>/ <User_defined_server_name>/.wlnotdelete/* In Tomcat: <Tomcat home directory>/work/standalone/localhost/* Web Publisher Administration Guide 285
Setting Up Multi-Language Websites 286 Web Publisher Administration Guide
Chapter 14 Setting Up Portlets This chapter describes the following: Portlets overview, page 287 Sequence for creating a portal and its components, page 289 Creating a new portal, page 290 Creating a new target portal server, page 291 Creating portlet templates, page 294 Publishing a portal, page 300 Deploying a web archive (war) file on BEA WebLogic Workshop, page 303 Configuring the connection to an LDAP server, page 304 Resolving links repository content at runtime, page 305 Portlets overview Portlet Builder lets you create, deploy, and manage JSR-168-compliant portlets on portal servers. A portlet is a self-contained component on a web page that provides access to specific functions and content. The portlet can include content from repositories and from external sources. The content can be static, aggregated, or both. Generated content can be gathered from RSS feeds or web services. Portlet Builder uses EMC Documentum Site Caching Services (SCS) to publish portlets to portal servers. Portlets can be published automatically via jobs that run at specific times or can be published manually. When you create a portlet, you create it within a portal. The portal is the container that publishes the portlet. The portal is associated with a web cabinet. The web cabinet stores any repository content used by the portlet. You create a portlet from a portlet template. Portlet templates are located in the Classic view in Portal Manager/Templates. Portlet Builder includes several default templates, Web Publisher Administration Guide 287
Setting Up Portlets though your organization might create additional ones. The default templates include the following types: Content-based and link-based templates These templates create portlets that display content and links. If your organization uses LDAP, you can determine which topics or links are displayed to which users based on LDAP group memberships. By default, these templates are found in the following locations: Portal Manager/Templates/HTML This template creates portlets that you write in HTML using a rich text editor. Portal Manager/Templates/TOPIC These templates create portlets that you write using an XML-based form. The portlets can display content, links, or both, and can group items into topics. Portal Manager/Templates/QUERY This template creates portlets that uses DQL (Documentum Query Language) to assemble lists of links. The queries search content that was generated on a web site during the last publishing cycle. Workflow-based (BPM-based) templates These templates create portlets that automatically generate content on a scheduled basis. The portlets display content generated using RSS feeds, RDF feeds, or web services. For each portlet, a workflow retrieves the feeds or initiates the web service. The content is retrieved in XML format and then transformed to HTML for display on the portal. When creating the portlet, you select the desired workflow and specify the parameters for retrieving content. The portlet displays the content that was generated the last time the workflow ran. These templates are located in Portal Manager/Templates/AUTO-PUB. By default, portlets have the following lifecycle states: WIP WIP (Work In Progress) indicates the portlet is in its draft phase. Any time you modify a portlet that is in a state other than WIP, a new version of the modified portlet is created and the portlet is demoted to WIP. This is true for all modifications, including modifications to the descriptor and the resource bundle. When a portlet is demoted to WIP, the last published version of the portlet remains available to the active portal servers. Approved Approved indicates the portlet is ready for publishing. When you publish a portlet, Web Publisher designates the portlet as Active. Portlet Builder has the following user roles: 288 Web Publisher Administration Guide
Setting Up Portlets Content Authors These can create, edit, and delete portlets. Content Managers These can perform all the actions available to content authors, plus promote and expire portlets. Web Developers These can perform all the actions available to content authors and content managers, plus the following: Create, publish, and delete portals Create, edit, and delete portlet templates Administrators These can perform all the actions available to all other users. Administrators can create, edit, and delete target portal servers if they have superuser privileges. Sequence for creating a portal and its components The following is a suggested sequence for creating portals and portlets. 1. Install EMC Documentum Site Caching Services (SCS) to the portal server. For instructions on installing SCS, see the Site Caching Services Installation Guide. 2. In Web Publisher, set up a web cabinet to associate with the portal. For information on creating a web cabinet, see Web Publisher User Guide, or in the Web Publisher online help. 3. In Web Publisher, create the portal, as described in Creating a new portal, page 290. 4. In Web Publisher, create a publishing configuration for the portal within Portlet Builder. The publishing configuration is called a target portal server. The publishing configuration specifies the location on the portal server to which to cache the portal. The publishing configuration also specifies the lifecycle state of the portlets to be published. See Creating a new target portal server, page 291. 5. On the portal server, configure the portal server to take the cached portal and make it live. See the documentation for your portal server. 6. In Web Publisher, if desired, create new portlet templates, as described in Creating portlet templates, page 294. Web Publisher Administration Guide 289
Setting Up Portlets 7. In Web Publisher, create one or more portlets in the portal. For information on creating portlets, see the chapter on portlets in the Web Publisher User Guide or Web Publisher online help. 8. Publish the portlet. See Publishing a portal, page 300. 9. To expire portlets or make them unavailable, see the portlets chapter in the Web Publisher User Guide or Web Publisher online help. Creating a new portal To create a new portal, you must have Web Developer or Administrator with Superuser rights in the repository. To create a new portal: 1. Verify that a web cabinet exists to house your portal. If not, create a web cabinet. For information on creating a web cabinet, see the Web Publisher User Guide or Web Publisher online help. 2. In the Classic view, navigate to Portal Manager/Portals. 3. Select File>New>Portal. 4. Select a name for your Portal. Note: The portal name can be changed at a later time. This name must be composed of letters, numbers and any character allowed in a standard-formatted URL. Spaces are not permitted. 5. Select a Portlet Lifecycle. The default choice is Portlet Default Lifecycle. 6. Click Next to continue with the wizard. 7. Add a descriptive name for your portal. 8. Click on Select Web Cabinet link to link the portal to a pre-existing Web Cabinet. Note: All content that needs to be published to and exposed in the portal must belong to the selected Web Cabinet. 9. To add keywords or identify the author for the portal, click on the appropriate links. 10. If no non-default permissions are required for your portal, you may now choose to finish creating the portal by clicking Next, or, if you wish to set special permissions on the portal, click Finish and your portal will be created. 11. Click the Permissions tab. 12. Set the permissions. 290 Web Publisher Administration Guide
Setting Up Portlets By default, as the creator of this portal, you will have DELETE, Run procedure, Change location, Change state, Change permission and Change owner rights for your portal. a. To add another person or group to the current permission set, click the browse link in the Specific person or group: field and add that person or group to the portal owner group. b. To replace the current permission set with another, click the Active permissions set link and select an ACL that applies to your environment. The Active permissions set will change to your selected ACL. c. Next, you can select a group that is a member of the "all" group to be a required group having access to this portal, as well as a set of groups that is pre-defined, both by clicking the User/Group link. Permissions for Groups and Individuals default to dm_world and dm_owner, with NONE and DELETE permissions, respectively. d. To give additional users or groups standard or extended permissions to this portal, click the Add link and select the user or group to be added. Once adding these names, you will be presented with a screen allowing you to further define the permission set for those members/groups. You can also define extended permissions for these users by clicking in the appropriate boxes. e. To restrict any individuals or groups from having access to this portal, you may do so by adding them to the Restrictions for Groups and Individuals section. 13. Select Finish to create your portal. A new portal object, which is an extension of the dm_folder object with the name of your portal, is created. A new portal descriptor object with the name YourPortalName.prl is created within the YourPortalName folder object. A new portal content folder with the name YourPortalName will be created inside the respective parent content folder or under the top level Portlet Builder folder within the portal content web cabinet. This folder name will be synchronized with the portal name. The portal is now available creating portlets. For instructions for creating and subsequently publishing and expiring portlets, see the chapter on portlets in the Web Publisher User Guide or Web Publisher online help. Creating a new target portal server A target portal server is a publishing configuration that tells EMC Documentum Site Caching Services (SCS) the location to which to publish a portal. A portal can have more than one target portal server. Web Publisher Administration Guide 291
Setting Up Portlets In the target portal server, you specify the server and directory to which to publish, and you specify the lifecycle state of the portlets to be published. A recommended best practice is to configure a separate target portal server for both the WIP and Active states for a give portal. This way, users can preview the working portal in each of those states. The WIP server is used for internal testing. The Active server is used for publishing the live portal. Users preview content using Web Publisher s preview command or using the appropriate URL. To create a target portal server, you must have Superuser privileges in the repository. To create a target portal server: 1. In the Classic view, navigate to Portal Manager/Portals. 2. Navigate to the portal for which you want to create a target portal server. 3. Click the portal s name. The portal s portlets are displayed. 4. In the upper right side of the page, click View Target Portal Servers. The portal s target portal servers are displayed. 5. Select File>New>Target Portal Server. 6. In the Create tab, set the following: Name Type a name for the new target portal server. Portal Server Select the portal server s platform. Portal Server Version Where applicable, select the specific software version number of the portal server s platform. Publish State Specify the lifecycle state a portlet must have to be published to this target. Only portlets that are in this state are published to this target. 7. In the Portal Server Info tab, set the following information for the portal s application files: Target Host Name: Enter the network name or IP address of the portal server. Target Port: Enter the port number that SCS uses to access the portal server. Connection Type: Select whether the connection to the portal server is secure or nonsecure. Deployment Root Directory: The directory on the portal server where SCS places the portal s application files. 292 Web Publisher Administration Guide
Setting Up Portlets If you change this setting after the initial publishing event for the configuration, you must republish the configuration using the Full Refresh option. Caution: During initial publication or a full refresh, the contents of the target root directory are deleted. Ensure that you designate the correct directory as the target root directory. Enable system authentication on target: To require authentication, select this and then enter the username and password for SCS to access to the portal server. 8. In the Portal Content Location tab, set information for the portal s content files. You can pre-populate the fields with the information from the previous tab by clicking copy info from portal server. Set the following information: Target Host Name Enter the network name or IP address of the portal server. Target Port Enter the port number that SCS uses to access the portal server. Connection Type Select whether the connection to the portal server is secure or non-secure. Deployment Root Directory The directory on the portal server where SCS places the portal s content files. If you change this setting after the initial publishing event for the configuration, you must republish the configuration using the Full Refresh option. Caution: During initial publication or a full refresh, the contents of the target root directory are deleted. Ensure that you designate the correct directory as the target root directory. Content Root URL Enter the URL for accessing content from the portal over HTTP. Enable system authentication on target To require authentication, select this and then enter the username and password for SCS to access to the portal server. Schedule Job To set up automatic publishing at specified times, select this and then set the start date, frequency, and end date for automatic publishing. Note: The continuation interval setting can be set to zero, which means it is not used. This is used only for processes that need to pause and then resume at a later time. 9. In the Permissions tab, specify the access specific users and groups have to the target portal server. Web Publisher Administration Guide 293
Setting Up Portlets 10. Click Finish. Creating portlet templates You must have Web Developer or Administrator permissions to create and manage portlet templates. This section includes the following Portlet Builder templates overview, page 294 Creating a new portlet template by an extension of an existing template, page 295 Customizing your portlet template components, page 296 Examples of customizing portlet template components, page 296 Deleting a portlet template, page 300 Portlet Builder templates overview The types of Portlet Builder templates are listed in Portlets overview, page 287. When you create a new template, Portlet Builder implements it as a folder containing a template descriptor object, which is hidden from the end user. The template descriptor is an XML file containing references to locations of all the template components. The template components include the following: Portlet Descriptor schema file. The Portlet Descriptor Schema automatically generates the JSR-168 Portlet Descriptor XML file and contains the following:: Portlet Run-time Java class file name (per JSR-168) Supported MIME types (per JSR-168) List of portlet-specific init-parameters (per JSR-168 entries) List of portlet-specific portlet-preference entries Portlet Content Schema file defining Portlet Content Format Portlet Design Time Rendering XSL file Portlet Run-time Rendering XSL file Portlet Run-time Java class file or.jar file Default Portlet resource bundle Properties file If small changes need to be made to an existing template, while at the same time retaining most of the original functionality and components, it is possible to extend (inherit) a template rather than create a new one. The extension template is not required 294 Web Publisher Administration Guide
Setting Up Portlets to have all the parameters and components, only the ones that were overwritten. In all other cases, the values or components from the closest parent will be used. When a template extension is created, it will maintain its relationship to the parent template through the dm_relation object. To view the inheritance details, you must open the properties page for that template object. Do not use the LoginLogout template for production environments. Creating a new portlet template by an extension of an existing template The Templates folder may only contain either regular subfolders or Portlet Template objects, or a combination of both. When you create a new portlet template, Portlet Builder creates the following Portlet template object represented by a folder with the same name as the template Template Stub inside of that folder, which includes an XML Template Descriptor object with the same name as the template Inheritance relationship with the Parent Template By default, the newly created template is identical to the Parent Template. In order to extend Parent functionality to the new template, one or more template components (e.g., and XSL file, a workflow template, etc.) needs to be overridden. You can do this by either placing the updated component in the Supporting Files folder or one of its subfolders or by updating the Template Descriptor XML to reference the location of the updated component. To create a new template: 1. In the Classic view, navigate to Portal Manager/Templates/directory, where directory is the folder or subfolder where you will store the new template. If desired, create a new folder or subfolder under Portal Manager/Templates. 2. Select File>New>Portlet Template. IMPORTANT: Do not change the Template Class selection. 3. Enter a Template Name. 4. Select the Parent Template that you wish to extend. Note: If you use an AUTO-PUB template, the necessary web services, EAI, or WebDAV interfaces must be in place. 5. Click OK. Web Publisher Administration Guide 295
Setting Up Portlets Customizing your portlet template components Once you have created a new portlet template from a parent template, you can add customizations to the portlet s components. To customize a portlet template component: 1. Open the template descriptor of the parent template. 2. Select the component you want to customize and copy the component tag. You can customize either design-time components or runtime components. Note: The component you want to customize may not be defined in the parent template descriptor. Portlet templates support inheritance. The component may be specified a few levels up in the ancestor tree 3. Edit the template descriptor of the custom template and paste the component either under design-time or runtime components. Note: You can change the component filename and its location. The location is relative to the template folder. 4. Copy the component file from the parent template to the custom template, at the location you specified in step 3. Examples of customizing portlet template components The following examples are provided solely as samples of some of possible customizations: To change portlet view in Portal Server: 1. Check out template descriptor. 2. Customize content rendered XSL for runtime (portal server). a. Copy the following runtime component from the AbstractRoot template descriptor to custom template descriptor: <component> <component-name>content-render-xsl-file</component-name> <component-location>/supporting Files/runtime/topicView.xsl </component-location> </component> b. Copy the content render XSL from the file from AbstractRoot/Supporting Files/runtime/topicView.xsl to the same location in the custom template folder, and edit the file. 296 Web Publisher Administration Guide
Setting Up Portlets 3. Customize portlet preview XSL for design-time. This file is used when user selects File>View to view a portlet, or when the user clicks the Preview button when editing a portlet. a. Copy the following design-time component from the AbstractRoot template descriptor to the custom template descriptor: <component> <component-name>preview-xsl-file</component-name> <component-location>/supporting Files/content/preview.xsl</ component-location> </component> b. Copy preview XSL from the file from the AbstractRoot/Supporting Files/content/preview.xsl to the same location in custom template folder, and edit the file. 4. Check in the template descriptor. To add a bullet image: 1. Check out template descriptor: template folder/template_name.xml). 2. Add the bullet image directory and file: a. Copy the following design time component from the topic template descriptor to the custom template descriptor: <component> <component-name>images-file-prefix</component-name> <component-location>/supporting Files/portalapp/</component-location> </component> b. Copy the following runtime component to custom template descriptor: <component> <component-name>portal-app-dir</component-name> <component-location>/supporting Files/portalapp</component-location> </component> 3. Browse to template folder/supporting Files and create new folders for the following folder path: portalapp/images/bullets. 4. Import an image to the bullets folder. 5. Link all images under Topic>Supporting Files>/portalapp/images/bullets to the same location in the custom template. 6. Copy the following design-time component from the topic template descriptor: <component> <component-name>topic-content-schema-file</component-name> <component-location>/supporting Files/content/ Web Publisher Administration Guide 297
Setting Up Portlets topic_content.xsd</component-location> </component> 7. Copy portlet content schema file from Topic/Supporting Files/topic_content.xsd to the same location in the custom template folder. 8. Edit topic_content.xsd and add the following tag: <xsd:simpletype name="iconlist">, <xsd:restriction base="xsd:string">: <xsd:enumeration value="images/bullets/custom_image.gif"> <xsd:annotation> <xsd:documentation>custom Image</xsd:documentation> </xsd:annotation> </xsd:enumeration> 9. Check in template descriptor and content schema files. To change the topic description from the plain text editor to the rich text editor: 1. Check out the template descriptor. 2. Customize the portlet content schema file. a. Copy the following design-time component from the topic template descriptor to the custom template descriptor: <component> <component-name>topic-content-schema-file</component-name> <component-location>/supporting Files/content/ topic_content.xsd</component-location> </component> b. Copy the portlet content schema file from Topic/Supporting Files/content/topic_content.xsd to the same location in the custom template folder. c. Search for the following XML tag: <xsd:element name=topic-paragraph type=longtext> d. Change the type to rich text. 3. Check in the template descriptor and content schema files. To customize a runtime servlet class: 1. Check out the template descriptor. 2. Customize the portlet content schema file. 3. Copy the following design-time component from the topic template descriptor to the custom template descriptor: <component> <component-name>portlet-descriptor-schema-file</component-name> 298 Web Publisher Administration Guide
Setting Up Portlets <component-location>/supporting Files/dctm_portlet.xsd </component-location> </component> 4. Copy the portlet content schema file from Topic/Supporting Files/dctm_portlet.xsd to the same location in the custom template folder. 5. Change portlet view in Portal Server. 6. Search for the following tag: <xsd:element name=portlet-class default= "com.documentum.pcm.runtime.portlet.topicportlet"> 7. Change the default class path to your custom class path. 8. Add the servlet class file by copying the following runtime component to the custom template descriptor: <component> <component-name>portal-app-dir</component-name> <component-location>/supporting Files/portalapp</component-location> </component> 9. Import your class file either under template folder/supporting Files/portalapp/ WEB-INF/classes/ or import as a.jar file to template folder/supporting Files/portalapp/WEB-INF/lib directory. 10. Check in the template descriptor and portlet descriptor schema files. To add an initial parameter to the portlet in the portal server: 1. Check out the template descriptor. 2. Customize the portlet content schema file. 3. Copy the following design-time component from the topic template descriptor to the custom template descriptor: <component> <component-name>portlet-descriptor-schema-file</component-name> <component-location>/supporting Files/dctm_portlet.xsd </component-location> </component> 4. Copy the portlet content schema file from Topic/Supporting Files/dctm_portlet.xsd to the same location in the custom template folder. 5. Make a copy of the following tag: <xsd:element name=content-xml-file> and change the name attribute to your init-param name. 6. Change the description element, fixed attribute to the description of your init-param. Web Publisher Administration Guide 299
Setting Up Portlets 7. Change the name element, fixed attribute to your init-param name. 8. Change the value element and default attribute to the default value for init-param. 9. Check in the template descriptor and portlet descriptor schema files. Deleting a portlet template To delete an existing portlet template, select it and choose File>Delete. When a portlet template is deleted, all the components inside of the template folder will also be deleted. Also, if the template had a relationship to a Parent Template, the relation object will be deleted as well. A portlet template may be deleted only if: It has no inheritance children. It has no Portlets created from it. If a user attempts to delete a Portlet Template that does not meet the above criteria, an error message will be displayed explaining why the action cannot be completed. A subfolder containing Portlet Templates may be deleted only if all the templates under it meet the above conditions, otherwise an error message will appear. Publishing a portal Portlet Builder uses EMC Documentum Site Caching Services (SCS) to publish portals to portal servers. You can publish a portal automatically or manually. To publish a portal automatically, you must set up a publishing job through Documentum Administrator. Automatic publishing can be used only when a portal is promoted to approved. For information on creating jobs, see the chapter on jobs in the Documentum Administrator User Guide. To publish a portal manually, see Manually publishing a portal, page 302. When SCS publishes a portal, it installs the entire portal to a target location on the portal server. The target location is a caching location, not a live location. You must use the portal server s software to determine when the cached portal goes live. The portal server also determines which of the portal s portlets go live. When you publish, you publish portlet content files (XML), portlet application files (Java classes, XML descriptors, resource bundles), and Web Publisher-managed content files (for example, HTML, PDF, DOC). 300 Web Publisher Administration Guide
Setting Up Portlets After a publishing job has been started, its progress can be viewed by clicking the Task Status button. If a publishing job has been completed successfully, you should see the file portlet.xml created in the WEB-INF directory. If this file exists, it indicates the successful publishing of the portlet application, but not the content, which is created in the XML location. Another method of verifying that the publishing process has completed successfully is to run the job through Documentum Administrator (DA). In Web Publisher, navigate to Administration/Site Publishing. Search for Site Caching Services (SCS) objects beginning with the portal name. You will see two SCS objects. One ends with (Deploy) and one ends with (Content). Publish both of them. DA will tell you if it succeeds or not. You can also turn on the trace that will allow you to trace the job in the next screen. Please refer to the Documentum Administrator User Guide for more details on how to run this job. To publish a portal in BEA: 1. Create a new portal project in BEA Portal Server. (Remember the project folder path for step 3). 2. Create a new portal, as described in Creating a new portal, page 290, and test it to make sure it works. 3. In Web Publisher, create a target portal server, as described in Creating a new target portal server, page 291, and make sure to select "BEA WebLogic Portal" for the portal server field. 4. Publish the target portal server. 5. In BEA, add the new portlets to the portal. 6. (Optional) Perform this step if portlets have links to contents in Web Cabinet. a. In Documentum Administrator, create a new Web Cache for the Web Cabinet b. Publish the Web Cabinet to the file system in Portal server machine c. Modify WEB-INF\web.xml in BEA portal project to add the "cmpp5-object-download-by-path" servlet. Specify the path you publish the Web Cabinet. To publish a portal to JSR-168 compliant portal severs: 1. In Web Publisher, create a target portal server, as described in Creating a new target portal server, page 291. 2. Publish the target portal server, selecting "Generic (JSR 168)" for the portal server field. 3. (Optional) Perform this step if portlets have links to contents in Web Cabinet. a. In Documentum Administrator, create a new Web Cache for the Web Cabinet Publish the Web Cabinet to the file system in Portal server machine Web Publisher Administration Guide 301
Setting Up Portlets Modify WEB-INF\web.xml in the WAR file publish by step 2. Change the path of "cmpp5-object-download-by-path" servlet to the path you publish the Web Cabinet. 4. Deploy the WAR file to the portal server. Manually publishing a portal To manually publish a portal: 1. In the Classic view, navigate to Portal Manager/Portals. 2. Navigate to the portal you want to publish. 3. Select the portal s checkbox. 4. Select Tools>Publish To Portal. 5. Select whether to publish only content files or to publish both the content files and the application files. Select one of the following: Publish/update content files only This publishes content files only, regardless of whether any other portlet components (e.g., descriptor, resource bundle, Java classes) have been modified. Publish/update both application and content files This publishes all portlet components (including, for example, descriptor, resource bundle, Java classes) to ensure consistency. 6. To regenerate the content of auto-published portlets before the portal is published to the target, select Refresh Content First. 7. To remove all the existing content and portlet components before the portal is published to the target, select Refresh Directory Structure. 8. Click OK. 9. To verify that the publish has completed successfully, click the Task Status button at the bottom of the page. The Task Status Viewer displays the status of the publishing job. If the job has not yet completed, you can update the viewer to get the latest status information by clicking Refresh. 302 Web Publisher Administration Guide
Setting Up Portlets Deploying a web archive (war) le on BEA WebLogic Workshop If you are using BEA WebLogic Workshop as your platform, you can create portlet files out of your JSR 168 portlets contained in a WAR file, thereby allowing WebLogic Workshop to import the contents of that WAR file as a new Portal Web Project. To import a war le containing JSR168 portlets on BEA WebLogic Workshop: 1. Download the file portletpreparer.zip from the Code Samples section of BEA s Developer Website: https://codesamples.projects.dev2dev.bea.com/servlets/ Scarab?id=s155. Since URLs change frequently, please search the BEA website should that URL no longer apply. 2. Extract portletpreparer.zip to a temporary location on your hard drive. 3. Place your WAR file in the temporary location. 4. Set the WEBLOGIC_HOME in env.sh or env.bat, depending on your platform. 5. Run env.sh or env.bat, depending on your platform. 6. Run ant -Dwar.file=war-file-name (where war-file-name is the name of the WAR file). 7. A directory called tempdir is created within the temporary location. 8. Open WebLogic Workshop and import the tempdir as a Portal Web Project. 9. Right-click the portal application name, then click Import Project. 10. In the Import Project dialog box, do the following: a. Select Portal Web Project as the project type. b. For the directory, enter the temporary directory you created. c. Enter the portal project name. Note: For information on creating portal projects, see the documentation for your portal server application. d. Click Import. 11. After the folder has been imported, create a new portal and add the portlets to the portal. Web Publisher Administration Guide 303
Setting Up Portlets Con guring the connection to an LDAP server LDAP (Lightweight Directory Access Protocol) is a third-party product that authenticates users and their roles. If your organization uses LDAP, then you can use an LDAP directory server to control access to published portlets and to specific content on published portlets. LDAP authentication can be used with portlets created from topicand query-based templates. When an author creates a portlet, the author selects which LDAP users can access the portlet and specific content on the portlet. Portlet Builder allows one LDAP configuration. For Portlet Builder to use LDAP, an administrator must do the following: Activate the Pcm LDAP Retrieval job in the Portlet Builder DocApp. For information on activating jobs, see the Documentum Administrator User Guide. Configure a connection to an LDAP directory server, as described in this section. The connection synchronizes Web Publisher with the user information contained in the LDAP directory. The information is refreshed during scheduled runs of the Pcm LDAP Retrieval job. Web Publisher can use the authentication information at any time, even if the connection to the LDAP server is not available. To con gure access to an LDAP server: 1. In the Classic view, navigate to the Administration/Portal User Groups/LDAP Groups node. 2. For the default Entitlement Configuration object, click the Properties icon for the default Entitlement Configuration object. 3. In the Access Setup tab, you configure the connection to the LDAP directory that contains the groups that portlet authors select from when assigning access to portlet content. Enter the following: Directory Server Name: Enter the LDAP server s IP address or network name. Port : Indicate the port used for connecting to the LDAP server. The default port is 389. Top Level DN: Type the name of the top-level group in the LDAP directory under which all other groups Portlet Builder will use are located. 4. In the Access Lookup tab, you configure the connection from the runtime portal server to the LDAP server. This is the connection used to authenticate a portal user to the content for which that user has entitlement. Enter the following: Directory Server Name: Enter the LDAP server s IP address or network name. Port: Indicate the port number for connecting to the LDAP server. The default port is 389. UID Search Umbrella DN: Indicate the top-level group that is searched when connecting to the LDAP server that is used to bring member information to Portlet Builder. 304 Web Publisher Administration Guide
Setting Up Portlets Search Strategy: Select a strategy that matches a portal user to an entry in LDAP. Currently, the strategy User Id DN prefix is only supported. 5. In the Schedule tab, specify when information about LDAP user groups is refreshed. 6. Click OK. Resolving links repository content at runtime Content Resolver http://web Publisher URL/content-resolver/web cabinet/folder path/content file. In order to correctly see the images or hyperlinked content, the user needs to make sure that the associated web cabinet contents are also published to the same location as the portal content location. If you use content resolver (for example, you use content selector to select a document from a web cabinet, or you use the query portlet), you must publish the web cabinet to the same content folder as the portal you use. To use content resolver: 1. To resolve the content at runtime, you have to manually add the following part to WEB-INF\web.xml of your portal project. <!-- CSPP register content resolver servlet --> <servlet> <servlet-name>cmpp5-object-download-by-path</servlet-name> <description>download content</description> <servlet-class>com.documentum.pcm.server.localcontentresolver </servlet-class> <init-param> <param-name>content_root</param-name> <param-value>c:\website</param-value> </init-param> <init-param> <param-name>authentication_required</param-name> <param-value>false</param-value> </init-param> </servlet> <!-- CSPP map content resolver servlet to a URL pattern --> <servlet-mapping> <servlet-name>cmpp5-object-download-by-path</servlet-name> <url-pattern>/content-resolver/*</url-pattern> </servlet-mapping> Web Publisher Administration Guide 305
Setting Up Portlets <!-- CSPP add MIME extensions mapping for content resolver --> <mime-mapping> <extension>ppt</extension> <mime-type>application/vnd.ms-powerpoint</mime-type> </mime-mapping> <mime-mapping> <extension>pdf</extension> <mime-type>application/pdf</mime-type> </mime-mapping> <mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type> </mime-mapping> 306 Web Publisher Administration Guide
Chapter 15 Using Taxonomies and Categories For information on the following, please see the chapter on taxonomies and categories in the Web Publisher User Guide or Web Publisher online help: Creating a new taxonomy Creating a new category Assigning content to a taxonomy Submitting a category to a workflow This chapter describes the following: How taxonomies work in Web Publisher, page 307 Using taxonomies in Web Publisher, page 308 Assigning taxonomies to web cabinets, page 310 Publishing taxonomies to websites, page 310 Storing taxonomy values in properties other than keywords, page 311 How taxonomies work in Web Publisher A taxonomy is a hierarchy of categories and subcategories used to organize content. You can create multiple taxonomies to organize your content in different ways for different purposes. For example, a taxonomy might create categories based on your organization s departments. Content created by the Research and Development department would be assigned to the RD category; content created by the Public Relations department would be assigned to the PR category; and so on. This taxonomy might be helpful for users who use documents only within their departments. Another taxonomy, however, might create categories based on product, combining a product s RD specifications into the same category as the product s PR bulletins. That taxonomy might be helpful for users who work only on specific products. Web Publisher Administration Guide 307
Using Taxonomies and Categories Taxonomies are a function of CI Server. During Web Publisher installation, a script in the Web Publisher DocApp enables the CI Server API, providing some, but not all, CI Server functionality to Web Publisher. The enabled functionality lets you create taxonomies, assign them to websites, assign content to taxonomy categories, and publish taxonomy structures in the form of XML files. Full taxonomy functionality is available only if your organization has installed the full CI Server; refer to the Content Intelligence Services Installation Guide. If your organization has installed CI Server in addition to Web Publisher, you can import taxonomies, in addition to creating them directly in Web Publisher. A newly created taxonomy is inactive, until you set it to active through the taxonomy s properties. A taxonomy must be active in order to be published to a website. You can demote a taxonomy to inactive to make changes. You may want to do so if structural changes are being made to the taxonomy and you want to ensure that a partially changed taxonomy is not on the website. If a previously active taxonomy is demoted, the website keeps the existing published taxonomy. Deleting a taxonomy deletes any included categories and assignments, although not the content itself. If a taxonomy is deleted, Web Publisher removes any assigned content from the website. You create a taxonomy structure in the Categories node. Taxonomies are designated by this icon: You create a taxonomy XML file in a taxonomy by choosing Tools>Publish while you are in the taxonomy. You can associate a taxonomy file with a presentation file and publish the resulting file to a website using Site Caching Services. When you open a taxonomy, the first level of categories appears. When you open a category, its first level of subcategories appears, and so on. Categories are indicated by this icon: You can assign a document to a category by linking it into the category just like you would to a folder. Before you can assign content to a category, it must first exist in a repository cabinet location. You can move, copy and search categories just as you can folders. To do any of these, use the same procedure as applies to any item in the repository. Using taxonomies in Web Publisher This procedure provides a suggested general sequence for using taxonomies in Web Publisher. 308 Web Publisher Administration Guide
Using Taxonomies and Categories To use taxonomies in Web Publisher, you do the following: 1. Create one or more taxonomies by doing the following: a. Navigate to the Categories node and create the taxonomy. For information on creating a new taxonomy, please see the chapter on taxonomies and categories in the Web Publisher User Guide or Web Publisher online help You can include translated names for the taxonomy. If you have CI Server installed (which would be in addition to the CI Server API that is enabled by the Web Publisher installation), then you can also create taxonomies outside Web Publisher and import them in. To use CI Server s import function, refer to the Documentum Administrator User Guide. b. In the taxonomy, create the category structure (unless you imported the taxonomy). For information on creating a new category, please see the chapter on taxonomies and categories in the Web Publisher User Guide or Web Publisher online help c. Assign content to the taxonomy. For details, see the topic on assigning content to a taxonomy category in the Web Publisher User Guide or Web Publisher online help. 2. If you will be publishing the taxonomy to a website, then select Active in the Info tab of the taxonomy s properties. New taxonomies are always inactive and cannot be published to a website. You keep a taxonomy inactive until you are ready to publish. 3. If you will be publishing the taxonomy to a website, then assign the taxonomy to a Web cabinet, as described in Assigning taxonomies to web cabinets, page 310. You assign a taxonomy to a Web cabinet through the cabinet s properties. Note that you can also assign the taxonomy to a Web cabinet during creation of the taxonomy. 4. Manually publish the taxonomy, as explained in Publishing taxonomies to websites, page 310. Publishing uses CI Server to generate an XML file that is a snapshot of the taxonomy structure in XML format. Publishing also creates the content-to-category relationships in a table in the SCS (Site Caching Services) database. 5. If desired, do any of the following: Use an XSL stylesheet to transform the XML into an ASP or JSP-style navigation structure appropriate for the website. Use XDQL to retrieve the content-to-category relationships. This allows you to do such things as generate menus, create pages of grouped content, add meta tags, etc. 6. To administer taxonomies, use Documentum Administrator. Web Publisher Administration Guide 309
Using Taxonomies and Categories Assigning taxonomies to web cabinets Web cabinet properties display which taxonomies are assigned to a cabinet and let you add or remove assignments. One cabinet can have multiple taxonomies, and one taxonomy can be assigned to multiple cabinets. To assign a taxonomy to a web cabinet: 1. Navigate to the web cabinet. 2. Open the cabinet s properties. You can open properties by clicking. 3. In the Taxonomies tab, select the taxonomy. 4. Click OK. Publishing taxonomies to websites You can publish a taxonomy structure to a website, allowing you to provide navigation or searching based on the taxonomy. To publish, you use any publishing configuration associated with the Web cabinet in which the taxonomy resides. You can only publish Active taxonomies. Publishing a taxonomy to a website delivers two types of information to the website: The taxonomy structure. When you publish, CI Services API (DFC BOF Service) generates an XML file that contains a snapshot of the taxonomy structure. The XML file contains the categories and subcategories in a tree form. The XML file receives the same name as the taxonomy and is placed in a folder named Taxonomy directly under the Web cabinet. Note: If a taxonomy is inactive you will not be able to publish. To change a taxonomy from inactive to Active you can check the Active checkbox on the taxonomy s Property page. The Taxonomy folder contains all generated taxonomy XML files. When you create a taxonomy file, Web Publisher associates the file with the default Web Publisher lifecycle and marks it as WIP. Once the XML file has been generated the first time, a Web developer can associate XSL stylesheets to the file to generate renditions of the taxonomy XML file that will be more application-server friendly. Each successive publish versions the XML file to the next minor version and returns the state back to WIP. Any associated XSLs are regenerated. A Web developer can promote the taxonomy to Staging and Active as needed. Enabling you to modify the taxonomy XML structure through an XSL transformation makes it simpler for an 310 Web Publisher Administration Guide
Using Taxonomies and Categories application server to process the taxonomy. It also give the flexibility to publish and review the taxonomy on a WIP website before pushing it to Staging or Active. The XML file specifies the structure of all Active taxonomies assigned to the containing Web cabinet. If globalization is enabled and additional category name translations are present, the translations are exported as part of the XML file. Relationships When you publish, Site Caching Services, if configured to do so, automatically publishes all relation objects (dm_relation objects) that are associated with the documents or categories published. Relation objects describe an instance of a particular type of relationship between repository objects. content-to-category relationships Relationships are commonly used to categorize documents or otherwise associate documents with other documents (content-to-category relationships). On the target site, relation objects are published to their own database table as repeating attributes, which Web Publisher can then query. Every time a document is assigned to a category, the category name is stored in a repeating attribute on the document. The repeating attribute "keywords" is the default setting but you can change the setting to other attributes in the category configuration object located on the Content Server. (See Storing taxonomy values in properties other than keywords, page 311.) When a site publishing configuration directs SCS to export the repeating attribute, the attribute becomes part of the export data set. The generated taxonomy file will contain the taxonomy hierarchy, category attributes, and the category ID. A Web developer will need to digest and index the taxonomy structure and match it against the category in a document s repeating attribute. Refer to the Site Caching Services User Guide for more information on publishing documents and exporting attributes Storing taxonomy values in properties other than keywords Every time a document is assigned to a category, the category name is stored in a repeating attribute on the document. The repeating attribute "keywords" is the default setting but you can change the setting to other attributes in the category configuration object located on the content server. To change the setting to another attribute in the category con guration object: 1. Search for dm_category_class by query or under the following location: Web Publisher Administration Guide 311
Using Taxonomies and Categories /System/Applications/CI/Classes/Generic 2. Change the value of "target_attribute" to the desired attribute. See also the procedure for creating category classes in the Content Intelligence chapter of the Documentum Administrator User Guide. 312 Web Publisher Administration Guide
Chapter 16 Setting Up In-Context Editing (ICE) You set up in-context editing (ICE) at the cabinet level. For information on using ICE as an author, see the Web Publisher online help. This chapter describes the following: How Web Publisher determines a page is editable through ICE, page 313 Sequence for setting up ICE, page 316 Removing dm_relation objects, page 317 Enabling authors to edit content displayed through <include>, page 317 Enabling authors to create new content files from the web page, page 318 How Web Publisher determines a page is editable through ICE When an author navigates a website through in-context editing, the author views the website directly from the live web server. As each Web page opens, Web Publisher determines three things. One, it finds the Web page in the repository. Two, it determines whether the author is allowed to edit the page. And three, Web Publisher determines whether the Web page is comprised of one or several editable components. Web Publisher finds a Web page in the repository by checking the Web page s URL against Site Caching Services tables to find the page s repository object ID. The a_webc_url attributes store URLs. Once the system finds the Web page in the repository, Web Publisher determines a Web page is editable if one of the following is true: A Web page is editable if it is comprised of a single editable content file, and if the file has a navigation path in Web Publisher. A file has a navigation path if the file is available through a Web Publisher category (a file has a navigation path when the file has a dm_relation object associating it to a wcm_category object). Web Publisher Administration Guide 313
Setting Up In-Context Editing (ICE) Relation objects describe an instance of a particular type of relationship between repository objects. A Web page is editable if it is comprised of several editable components (defined below) and all the following conditions are true: The Web page itself is referenced to one object in the Web Publisher repository. The referenced object is available through a Web Publisher category. In a Web page comprised of several editable components, the following components are editable: Any editable content file. The following HTML components, when they point to an editable content file: <img> element. Web Publisher lets authors edit the image. If an image appears more than once on a page, Web Publisher highlights only the first appearance. href attribute. Web Publisher lets authors edit the content file that is the target of the href, unless the href uses an image as the hyperlink. Then authors edit the image. For example, suppose a page contains the following two components: <a href="elephant.html">description of an elephant</a> <a href="elephant.html"><img src=elephant.gif></a> Clicking the Edit Component in in-context editing enables the image to be edited. An included file that points to an editable content file. Web Publisher lets authors edit the content file. You must nest the <include> element within a <span> element that uses the dctm-src or dctm-id attribute to identify the included file, see Enabling authors to edit content displayed through <include>, page 317. Hyperlinks that let authors add new content files. The hyperlink opens a new content file based on a template authors specify. Authors must add a <span> element with the newcontent or add_content operation to the Web page in order for authors to create new content files from the Web page, see Enabling authors to create new content files from the web page, page 318. 314 Web Publisher Administration Guide
Setting Up In-Context Editing (ICE) Figure 16-1. How Web Publisher determines editable content ICE uses a mini-proxy to render frames ICE uses a mini-proxy to render the required website in a frame. This mini-proxy is not a full blown one. It operates on port 1300 by default, run under the relevant application server. ICE could potentially use any port above 1300 depending on how many ports are already in use. If your firewall rules are tightly controlled and if it is possible to open only a small range, ICE could potentially fail if further ports are required. Further ports might be required if there were communication errors. ICE would continue to increment the port used, beyond port 1300. Also, ICE might use one port per delivery channel. If there were multiple delivery channels, a substantial number of ports could be used up. As a mini-proxy, ICE: Web Publisher Administration Guide 315
Setting Up In-Context Editing (ICE) Does not pass HTTP headers, so will acquire a default page from web severs that might redirect on referrer. Translates hostnames to IP address. Does not handle net proxy challenges. Does not log. Sequence for setting up ICE To set up in-context editing for a cabinet, do the following: Set the following cabinet properties: Main page: The website s home page. This provides the entry point to the website. You need not enter this if the default page is set in the HTTP server and if the Site Caching Services HTTP Prefix is set. Enable In-Context Editor: Select Yes to enable in-context editing for the cabinet. For each of the three site publishing configurations for the three stages of the website, for example, WIP, Staging, and Activeenter the same descriptive name in the site publishing configuration s title attribute. The name entered in the title attribute identifies the site to authors. Entering the same name ensures that authors see one consistent title for the website no matter which stage they are editing. Web Publisher provides additional labeling to indicate the stage. If you do not enter a name in the title attribute, then Web Publisher identifies the site by displaying the object name of the site publishing configuration, which might make no sense to authors. To enter a name in the title attribute, open the site publishing configuration and click Update Sysobject Attributes Of Web Publishing Configuration Object. For information on creating a site publishing configuration, see Creating a site publishing configuration, page 105. For Web pages comprised of several editable components: Remove dm_relation objects. For information on removing dm_relation objects, see Removing dm_relation objects, page 317. To allow authors to edit content displayed through an <include> element, see Enabling authors to edit content displayed through <include>, page 317. To allow authors to create new content files from the Web page, see Enabling authors to create new content files from the web page, page 318. 316 Web Publisher Administration Guide
Setting Up In-Context Editing (ICE) Removing dm_relation objects If you want authors to be able to edit a Web page that is comprised of several editable components, you must remove any dm_relation object associating the Web page to a wcm_category object (i.e., to a Web Publisher category). To find and remove a dm_relation object, run a DQL query to find the object ID of the Web page. Then run a second DQL query to find the dm_relation object. Then use the API Destroy method to remove the dm_relation object. For information on dm_relation objects, DQL, and API, see the Content Server Fundamentals Guide, Documentum Object reference Manual, and Content Server API Reference Manual. Enabling authors to edit content displayed through <include> To let authors edit a content file that is displayed through an <include> element, use the <span> element with the dctm-src or dctm-id attribute. The included content file must be available through a Web Publisher category (i.e., it must have a dm_relation object associating it to a wcm_category object). An included file is a file referenced through the <!--#include file="filename"--> tag, where filename is the name of the included file. To make an included file editable through in-context editing, you put a <span></span> tag set around the <!--#include file="filename"--> tag in the Web page s source. You add <span> elements to the presentation file, not to the template itself. The <span> element must use one of the following attributes to identify the included file s location: dctm-src, which specifies the relative file path of the file on the website. Important: This does not specify the repository path. dctm-id, which specifies the object ID of the included file Use one of the following syntaxes. The first identifies the file by its path; the second by its object ID. The syntax for the <span> element set is shown in the first and third lines of each example: <span dctm-src="relative URL path"> <!--#include file="filename"--> </span> Or Web Publisher Administration Guide 317
Setting Up In-Context Editing (ICE) <span dctm-id="object ID of the included file"> <!--#include file="filename"--> </span> Example 16-1. Include File for altnav.txt The following are examples for an included file named altnav.txt. The first example identifies altnav.txt by its relative URL path; the second by its object ID: <span dctm-src="http://active/altnav.txt"> <!--#include file="altnav.txt"--> </span> <span dctm-id="0900c355801bd4de"> <!--#include file="altnav.txt"--> </span> Enabling authors to create new content les from the web page To let authors create new content files directly from the Web page, use the <span> element with the newcontent or add_content operation. You add the <span> element inline within the Web page. The newcontent or add_content operation creates a hyperlink that appears on a Web page when accessed through in-context editing. Authors click the hyperlink to create new content files. Usually the new content files are then linked to the Web page containing the newcontent or add_content operation. When used to add new content, the <span> element must include the following attributes: dctm-operation, which launches newcontent or add_content. dctm-args, which passes the arguments that identify the template and category. The template is identified by the template_id argument, which you set to either the template s object ID or to the template s path and filename. Beginning the template_id string with DOCUMENT indicates you are using the path. The category is identified by the category_id argument, which you set to either the category folder s object ID or to the path to the folder, including the folder itself. The path to the category is usually the same as the path to the template. Beginning the category_id string with FOLDER indicates you are using the path. The category_id argument is optional, but if you do not include it, the content file is not assigned a category and therefore cannot be edited. Note: When using paths with the newcontent or add_content operation you include the cabinet names, though with other path tags you do not include cabinets. 318 Web Publisher Administration Guide
Setting Up In-Context Editing (ICE) dctm-label, which is the text of the hyperlink. Use one of the following syntaxes. The first identifies objects by their paths; the second by their object IDs: <span dctm-operation="newcontent" dctm-args="template_id= {DOCUMENT('/WebPublisher Configuration/Content Templates/ path_to_template/template_filename')} &category_id={folder('/webpublisher Configuration/Content Templates/ path_to_category')}" dctm-label="hyperlink_text"> </span> Or <span dctm-operation="add_content" dctm-args="template_id= template's_r_object_id&category_id= category_folder's_r_object_id" dctm-label="hyperlink_text"> </span> In the first syntax, path_to_template is the path within the Content Templates folder to the template, and path_to_category is usually the same as the path to the template. The path_to_template determines the category in which the new content file is found. In both syntaxes, hyperlink_text is the text that appears on the Web page when an author accesses the page through in-context editing. If you choose not to include a category_id, then remove the following, depending on which syntax you use: &category_id={folder('/webpublisher Configuration/Content Templates/ path_to_category')} Or &category_id=category_folder's_r_object_id Example 16-2. Adding a link for new content The Add New Phone link allows authors to add a new content file describing a new phone sold by Accelera. An author can access the new content file in the Accelera category. The link can be created using either of the following examples. The first example identifies objects by their paths; the second by their object IDs: <span dctm-operation="newcontent" dctm-args="template_id= {DOCUMENT('/WebPublisher Configuration/ Content Templates/Accelera/phone.doc')} &category_id={folder('/webpublisher Configuration/ Content Templates/Accelera')}" dctm-label="add New Phone"> </span> <span dctm-operation="add_content" dctm-args="template_id= 0901d8a980033&category_id=0b01d8a980014735" dctm-label="add New Phone"> Web Publisher Administration Guide 319
Setting Up In-Context Editing (ICE) </span> 320 Web Publisher Administration Guide
Chapter 17 Creating Custom Tags This chapter describes the following: Overview of custom tags, page 321 Create custom tags in an element definition file, page 322 Assign a custom tag set to a content rule, page 324 Overview of custom tags A custom tag is a pre-written XML tag that authors can insert into content files through Web Publisher Editor. Within the custom tag you can include a pre-written block of scripts, queries, content, and additional tagging. You write custom tags to allow authors to select to include certain information that they might not be able to generate on their own, such as information dependent on scripts. Each custom tag must comprise well formed XML, but the XML need not be validated against a DTD. When an author selects a custom tag, the tag and its contents are inserted into the content file. When the content file is rendered to HTML, Web Publisher transforms the custom tag and its contents to HTML, based on the associated XSL stylesheet (Editor presentation file). When writing a custom tag, you must write it according to the XSL stylesheet. You create custom tags in a custom element definition file. This is an XML file that contains each custom tag in a separate tag definition, including all the additional content and coding included within each custom tag. A custom element definition file includes all the custom tags offered on a single selection list. You create a separate custom element definition file for each set of custom tags you provide. A content field uses a given set of custom tags if the appropriate custom element definition file is named in the Editor rules file. An author selects a custom tag by clicking the custom tag button in a content field. The button displays the list of available tags for that field. Web Publisher Administration Guide 321
Creating Custom Tags To create custom tags perform the following procedures: Create custom tags in an element definition file, page 322 Assign a custom tag set to a content rule, page 324 Create custom tags in an element de nition le You create custom tags in custom element definition files. A custom element definition file is an XML file that defines the set of custom tags that appears in a given selection list. The selection list appears when an author clicks the custom tag button in Web Publisher Editor. You can name a custom element definition file with any name you choose. It is suggested that you use the.xml file extension. Note: If you remove a custom tag from the custom element definition file, then any content files that use the custom tag will lose that tag the next time they are rendered to HTML. A custom element definition file uses the following elements. Each element requires both a beginning and end tag: <custom> The first tag in the custom element definition file. All the file s information is nested in the <custom></custom> element set. <tagdef> This defines the custom tag. You define each custom tag in a separate <tagdef> element. Within the <tagdef> element you nest the <tagname>, <description>, and <markup> elements. <tagname> The content of the <tagname> element determines the name of the custom tag. The custom tag is the opening and closing tag for the XML block inserted into a content file. The <tagname> element is nested in the <tagdef> element. <description> The content of the <description> element determines how the custom tag is identified to authors in Web Publisher Editor when they open the custom tag selection list and when the tag is inserted into the content field s editing area. If the <description> element is not used, Web Publisher Editor displays the content of the <tagname> element in the selection list and editing area. The <description> element is nested in the <tagdef> element. 322 Web Publisher Administration Guide
Creating Custom Tags <markup> The XML block that is included in the custom tag when it is inserted into the content file. Everything within the <markup></markup> element set is included. If this element is not used, Web Publisher Editor inserts only the content of the <tagname> element into the content file. The <markup> element is nested in the <tagdef> element. Example 17-1. Custom element de nition le <custom> <tagdef> <tagname>healthplan</tagname> <description>display the selected health plan</description> <markup> <i>you have selected the <jsp:getproperty name="healthplaninfo" value="planselection"/> Health Plan</i> </markup> </tagdef> <tagdef> <tagname>salary</tagname> <description>displays a link to salary info</description> <markup><i>your current salary can be located here: <A href="http://job.myoffice.com/">company Payroll Page</A></i></markup> </tagdef> </custom> If an author were to choose the second custom tag defined above, the XML inserted into the content file would be this: <Salary> <i>your current salary can be located here: <A href="http://job.myoffice.com/">company Payroll Page</A> </i> </Salary> The HTML generated for the Web rendition might look like this: <P>Your current salary can be located here: <A href="http://job.myoffice.com/">company Payroll Page</A> </P> Example 17-2. How Web Publisher Editor interprets tag de nitions The following examples show how Web Publisher Editor interprets custom tag definitions. Example tag definition with all elements included: <tagdef> <tagname>football</tagname> <markup>world Cup</markup> <description>the 2006 Championship</description> </tagdef> Web Publisher Administration Guide 323
Creating Custom Tags Shown in Web Publisher Editor: The 2006 Championship Inserted into the content file: <Football>World Cup</Football> Example tag definition with no <markup> element: <tagdef> <tagname>football</tagname> <description>the 2006 Championship</description> </tagdef> Shown in Web Publisher Editor: "The 2006 Championship" Inserted into the content file: <Football></Football> Example tag definition with no <markup> and <description> elements: <tagdef> <tagname>football</tagname> Shown in Web Publisher Editor: "<Football>" Inserted into the content file: <Football></Football> Assign a custom tag set to a content rule For a content field to use a list of custom tags, you must set the custom_element_definition attribute for the content field in the Editor rules file. The custom_element_definition attribute specifies the fully qualified repository path to the custom element definition file. The path must start with the name of the repository cabinet. If the custom element definition file is not found or is not comprised of valid XML, then the custom tag button does not display in the content field in Web Publisher Editor. Example 17-3. Setting the custom_element_de nition attribute For example, you could have a content field that populates the <employee_info> element in a content file. You could allow the author to choose custom tags that you have defined in a definition file called EmployeeInfoCustomTags.xml. You might write the following rule in the Editor rules file: <tagcontent tag_name="employee_info"> <content> custom_element_definition="/customelement/employeeinfocustomtags.xml" label="employee Information" instruction="displays information about the employee, based on user choices." align="y" bold="y" color="y" fontsize="y" italic="y" spellcheck="y" 324 Web Publisher Administration Guide
Creating Custom Tags symbols="y" </content> </tagcontent> Web Publisher Administration Guide 325
Creating Custom Tags 326 Web Publisher Administration Guide
Understanding Discussions and Comments Chapter 18 A comment thread is an online discussion composed of a tree of comments. A discussion can be presented on its own page, or it can be embedded in an object s page. You use a rich text editor (RTE), comment editor, to create and edit comments in the discussion. Web Publisher does not enable filtering, sorting, grouping, or pagination of a discussion since most discussions contain 20 or less comments. Discussions do not support the creation of renditions or relations, and do not display the location in which the discussion object is stored. However, you can create discussions on rendition objects. All renditions of a given version of an object share the same discussion. Discussions display in web pages and in printouts when you print a web page. Permissions are described in the following section. To create, edit, and view discussions you must have a collaboration license set up for the repository you are using, and the object that you want to comment on must be of type dm_document or subtype. Your repository administrator enters a collaboration license during installation of a repository or using Documentum Administrator. Contact your repository administrator to learn if collaboration is installed on the repository you are using. Discussion permissions The permission for a discussion is inherited from its primary parent, the parent whose permissions are passed down to the discussion. Examples are a single parent without versioning, a parent version marked CURRENT, or a parent with the highest version number. The access levels of discussion permissions are as follows: None: Discussion is not available, not even programmatically or by URL. Browse: Discussion and comments are not displayed, but the discussion s title displays. Read: All comments are displayed. You can view a discussion. Web Publisher Administration Guide 327
Understanding Discussions and Comments Relate: You can do the above plus add a comment, reply to a comment, and delete a comment and any replies to it. Version, Write: All of the above. Delete: All of the above plus you can delete every comment in a discussion even without permission to edit comments individually. You cannot explicitly delete a discussion, but deleting all of its parents effectively deletes it. Users who can delete the parents may do so regardless of their permissions over the discussion and its comments. The permission for comments are more restrictive. The access levels of comment permissions are as follows: None: Comments are not available. Browse: Comments are not displayed, but the discussion s title displays. Read: All comments are displayed. A comment has an edit button only if you have Write permission on the comment. A comment has a delete button only if you have Delete permission on the comment. Relate: You can do the above. Version, Write: All of the above plus add a comment or a reply to a comment. Delete: All of the above plus you can delete every comment in a discussion even without permission to edit comments individually. Using discussions With the correct permissions you can create, edit, delete, and view existing discussions and comments. You can create a discussion in any of the following Web Publisher locations: Web cabinet Cabinet Template Rules Foldermaps Presentation Preview Instructions Subscriptions My Files Categories 328 Web Publisher Administration Guide
Understanding Discussions and Comments Change Set Supporting Files Change Set Details Task Attachment Where Used Thumbnail View You must select an object in one of the above locations, choose View>Discussion and click Add a comment. You can also use a URL to reach discussions. You can save a bookmark to a discussion page, or create a bookmark programmatically. The URL persists even if all comments in the discussion are deleted. When you request a discussion a comment editor opens enabling you to enter a title for your comments, and your comment. A title is required for all comments. The rich text editor (comment editor) enables you to change the look and feel or your comment using such editing options as font, color, links, and images. Once you enter your comments you click OK to submit the comment. The comment displays in the page. You can cancel a comment by clicking Cancel in the comment editor. When you request a discussion, if there are any unread comments, the page scrolls to the first unread comment; otherwise, if the discussion has versions the page scrolls to the version marker for the version. Usually, the version marker will be the CURRENT version, so the page would scroll to the CURRENT version s marker. If you start with a version other than CURRENT, the page scrolls to its marker instead. If the discussion has no versions the page scrolls to the top of the discussion. Within a discussion, version markers and top-level comments are sorted by creation date, starting with the earliest. All of the following requirements must be true to enable access to the discussion: Discussion object must have comment threads enabled. By default, the discussion (discussion object or comment thread) is enabled. You must have the correct permissions to access a discussion. You must select only one discussion at a time. Note: If you add comments to an object that resides in a 5.3 repository, then use a 5.2.5 repository to copy the object or add a translation based on the object the discussion thread on the object is shared with the source object and the copied object. You can mark a discussion status as read or unread using the File>Mark as Read or File>Mark as Unread menu. To see a discussion s status you must display the Discussion Status column. The column is hidden by default. You configure the Discussion Status column by clicking Column Preferences, and modifying the display in the Preferences page. Currently, you can configure the Discussion Status column only from the Web cabinet view. If you have Delete permissions on a comment and Relate permissions on a discussion you can delete a comment by clicking Delete for a specific comment. Deleting a comment deletes the comment and any replies to the comment. You do not need Delete permissions on comment replies to delete them. Web Publisher Administration Guide 329
Understanding Discussions and Comments You cannot explicitly copy or move a discussion. If you copy or move a file that has discussions attached to it the file and its discussions are copied or moved. After running a replication job, the comments created in the source content are not carried over or displayed in the Discussion page of the replica/target content. For more information on using discussions and comments, see the Web Publisher User Guide or Web Publisher online help. Searching discussions You can perform a full-text search on content in the discussions but not a search by properties for example, object type or creation date. The only exception to this rule is discussion comment author names. The author property is not indexed, but the name of a comment author is stored in that comment in a hidden, indexed text field. So, although discussions do not match searches by author property, they can match searches for author names in full text. When a discussion matches a search, its primary parent is returned. The primary parent is shown on the results page and enables access to the actual discussion by clicking the returned result. 330 Web Publisher Administration Guide
Chapter 19 Monitoring Web Publisher For information on the following, see the Web Publisher User Guide or Web Publisher online help. Reports System alerts This chapter describes the following: Content transfer, page 331 Tracing, page 332 Testing your API, page 334 Testing your DQL, page 335 Java Method Server, page 336 Log files, page 345 Content transfer To perform content transfer in Web Publisher (generic checkin/checkout of documents) your browser must have the correct version of either Microsoft VM or Sun JVM. Correct versions of Microsoft VM and Sun JVM are listed in the Web Publisher release notes. However, only Sun JVM enables you to use Web Publisher Editor and Rules Editor. Upon installation Web Publisher detects which virtual machine your browser was using. You need to install the Sun JVM if it is not already installed on your machine. The default browser virtual machine is set in /wdk/app.xml in the element <usepluginforie>. You need to modify this element to the Sun JVM to use Web Publisher Editor or Rules Editor if you have set this element to Microsoft VM. Web Publisher Administration Guide 331
Monitoring Web Publisher Tracing Tracing is one of the most effective ways to track what is happening behind the GUI of your application. You can start and stop different levels of tracing, and view the tracing logs to help your team and our team resolve any application issues. Tracing takes up memory and considerably slows application performance. You should not leave tracing running unless you are trying to narrow down a specific issue. You can stop and start Web Publisher tracing and API tracing, and you can view the tracing logs. Turning on the DFC tracing tool Web Publisher includes tracing for DFC calls. This lets you view the business logic that is being executed and lets you debug operations that appear to not function properly. To turn on DFC tracing: 1. Navigate to <root>:\documentum\config\dfc.properties. 2. In a text editor, set the DFC enable flag to true. For example, dfc.tracing.enabled = true 3. Save and close the dfc.properties file. 4. Navigate to <root>:\documentum\config\log4j.properties. 5. In a text editor, set trace filename. For example, log4j.appender.file_trace.file=t:\\temp\\documentumtraces\\trace999.log 6. Save and close the log4j.properties file. Accessing tracing You can access the Web Publisher tracing tools using the Documentum icon or using Web Publisher s administrations nodes. To access tracing using the Documentum icon: 1. Log in to Web Publisher as administrator. 2. Press and hold the CTRL key down. 3. Left click the Documentum icon in the top right-hand corner of your screen. The About Web Publisher page opens. 332 Web Publisher Administration Guide
Monitoring Web Publisher 4. Click Trace Setting. The tracing settings page opens. To access tracing using administration options: 1. In the Classic view, click Administration. 2. Click Web Publisher Admin. 3. In the Quick Links section, click Tracing. The tracing settings page opens. Setting tracing To set tracing for all actions: 1. From the tracing settings page, under Tracing flag settings check Tracing is enabled for current session. If you select this option all actions will be traced until you log out of Web Publisher. To set DMCL tracing: 1. From the tracing settings page, under Tracing flag settings set a Trace File Path. You must enter a DMCL trace file path before selecting the Turn on DMCL trace checkbox. 2. Set a Trace File Path that is a directory in which to store the trace file. For example, C:\documentum\tracetest a. Set a Trace File Level that is the level of detail that you want to trace. You can choose to record only informational messages or in depth details. The higher the level, for example 9, the more details you will receive about every action. b. Check the Turn on DMCL trace checkbox. You will see your selections listed in Read Only mode. For example, Trace File Path: C:\documentum\tracetest Trace File Level: 6 3. Turn on DMCL trace. Select this option if you want to trace any actions that are controlled by DMCL for example, check in, check out, import and export. To set DFC exception tracing: 1. From the tracing settings page, under Tracing flag settings check DFC exception call stack is enabled for trace. Web Publisher Administration Guide 333
Monitoring Web Publisher This option enables you to set how you want Web Publisher to trace. In the trace log you will see DFC stack information telling you exactly where your DFC operation failed. 2. Select a method to trace by checking the methods under WCM Tracing, WP Tracing, or WDK Tracing. This option enables you to set what you want Web Publisher to trace. To set WCM, WP and WDK tracing: 1. From the tracing settings page, under WCM Tracing, WP Tracing, or WDK Tracing check any of the tracing fields to track actions that use the field. You must have tracing enabled to set how you want Web Publisher to trace because this option enables you to set what you want Web Publisher to trace. Testing your API This section describes how to test your server APIs. Using the API page enter methods directly in the API text field by typing the method name and its arguments as a continuous string, with commas separating the parts. For example, the following command creates a folder: API> create,s0,dm_folder Note: Methods entered in the API text field bypass the Documentum Foundation Classes (DFC) and directly access the Documentum Client Libraries (DMCL). Therefore, the DFC cannot perform its usual validation of the methods. For more information on APIs, refer to Content Server API Reference Manual. To test server APIs: 1. Log in to Web Publisher as administrator. 2. In the Classic view, click Administration. 3. Click Web Publisher Admin. 4. In the Tools section, click API Tester. The API Tester page opens. 5. Check one of the following: a. Single Line Command Entry This option enables you to enter a single line command and data to test for validity b. Script (Multi-line) Entry 334 Web Publisher Administration Guide
Monitoring Web Publisher This option enables you to enter a multi-line command to test for validity. 6. Check Show the SQL if you want the results to display the SQL. 7. Click Execute. The results of your API command appear in the Results field. Testing your DQL This section describes how to test whether a DQL SELECT statement returns the expected values. The number of rows returned by a DQL statement is limited based on the width of the rows requested. The query results may be truncated. When this happens, you see a warning message. For information on Documentum s Query Language, refer to Content Server DQL Reference Manual. To test DQL queries: 1. Log in to Web Publisher as administrator. 2. In the Classic view, click Administration. 3. Click Web Publisher Admin. 4. In the Tools section, click DQL Editor. The DQL Editor page opens. 5. In the Commands field, type the DQL query that you want to run. 6. Check one of the following options: Show as text (for easy copy and paste) Show as HTML (for best formatting) These options determine how your DQL query results will display. 7. Set the String Value Column Width to the number of characters wide that you want your DQL results to be. The default is 32. 8. Set the Maximum results to return to the maximum number of results you want your DQL query to return. The default is 100. 9. Click Execute. The results of your DQL query appear below. Web Publisher Administration Guide 335
Monitoring Web Publisher Java Method Server This section describes how Web Publisher methods are configured to run using Java Method Server. For information on Web Publisher methods, see the chapter on methods in the Documentum Content Server Administrators Guide. Content Server 5 uses Apache Tomcat as the Java Method Server. An Apache instance is installed and configured when Content Server is installed or upgraded. The Web Publisher 5.3 default DocApp has method objects that are configured by default to be run by the Java Method Server. Web Publisher 5.3 packages the following methods with the specified settings. Table 19-1. Web Publisher 5.3 Methods Con gurations (Java Method Server Support) Method Name Use Method Server Run as Server Method Verb wcmversioninfo 1 1 com.documentum. wcm.servermethod. WcmVersionInfo wcmaddedition 1 1 com.documentum.wcm.servermethod.wcmaddeditionjobactionhandler wcmcreatetransformation wcmdecodevdm 0 1 java WcmDecodeVDM 1 1 com.documentum.wcm.servermethod.wcmdynamiccontentjobactionhandler wcmlifecyclemonitor 1 1 com.documentum.wcm.servermethod.wcmmonitorjobactionhandler wcmobjectbag- Method wcmsendtranslationviasmtp 1 1 com.documentum.wcm.servermethod.wcmobject- BagJobActionHandler 0 1 java WcmSendTranslationSmtp 336 Web Publisher Administration Guide
Monitoring Web Publisher Method Name Use Method Server Run as Server Method Verb wcmdemote 1 1 com.documentum.wcm.servermethod.wcmworkflowlifecycleactionhandler$demote wcmpromote 1 1 com.documentum.wcm.servermethod.wcmworkflowlifecycleactionhandler$promote wcmstarttranslationworkflow 1 1 com.documentum.wcm.servermethod.wcmstarttranslationworkflowaction- Handler wcm_utils 1 1 com.documentum.wcm.servermethod.wcmserver- SideUtilActionHandler wcmterminateprocessworkflow 1 1 com.documentum.wcm.servermethod.wcmterminateprocessworkflowactionhandler wcmpromote- ToStaging 1 1 com.documentum.wcm.servermethod.wcmworkflowlifecycleactionhandler$promotetostaging wcmpromotetoapproved 1 1 com.documentum.wcm.servermethod.wcmworkflowlifecycleaction- Handler$PromoteToApproved Web Publisher Administration Guide 337
Monitoring Web Publisher Method Name wcmdemote- ToStaging Use Method Server Run as Server Method Verb 1 1 com.documentum.wcm.servermethod.wcmworkflowlifecycleactionhandler$demotetostaging wcmdemotetowip 1 1 com.documentum.wcm.servermethod.wcmworkflowlifecycleactionhandler$demotetowip wcmexpirenow 1 1 com.documentum.wcm.servermethod.wcmexpirenowactionhandler wcminitializeprocessworkflow 1 1 com.documentum.wcm.servermethod.wcminitializeprocessworkflowactionhandler Verifying the Method Server To execute Java methods used by Web Publisher, Web Publisher requires that the Java Method Server be running on Content Server. Ensure the Java Method Server is running on Windows by checking your services. Ensure the Java Method Server is running on UNIX by running the startup.sh script. If the method server is running then type the following URL into your browser http://localhost:9080/dmmethods/servlet/domethod This URL should display the default page for the Java Method Server. 338 Web Publisher Administration Guide
Monitoring Web Publisher Table 19-2. Java Method Server Details on Server Machine Server Install Platform Method Server Location Startup Script Shutdown Script Service Method Server URL Logs Windows %DM_ HOME% /tomcat %DM_ HOME% /tomcat /bin/ startup. bat Yes %DM_ HOME% /tomcat /bin/shutdown.bat http://localhost:9080/ Dm- Methods/ servlet/ DoMethod %DM_ HOME% /tomcat/ logs UNIX $DM_ HOME/ tomcat $DM_ HOME/ tomcat /bin/ startup.sh No DM_HOM E/tomcat /bin/shutdown.sh http://localhost:9080/ Dm- Methods/ servlet/ DoMethod $DM_ HOME/ tomcat/ logs Tracing details You can turn on the tracing for Web Publisher server side logic by changing the WcmTraceProp.properties file. This file is located in /Documentum/config/ WcmTraceProp.properties on Windows, and $DFC_DATA/config/WcmTraceProp. properties on UNIX. Table 19-3. Web Publisher Server Side Tracing Details Parameter Method Server Traced Comments (if set to true) com.documen- tum.wcm.trace.wcm- SESSIONENABLEDBYDE- FAULT NA enable trace (must set to true) Web Publisher Administration Guide 339
Monitoring Web Publisher Parameter Method Server Traced Comments (if set to true) com.documen- tum.wcm.trace.dmclen- ABLEDBYDEFAULT NA DMCL trace will be generated in specified location com.documen- tum.wcm.trace.dfcen- ABLEDBYDEFAULT com.documentum.wcm. Trace.WCMDQLUTIL com.documentum.wcm. Trace.WCMUTIL com.documen- tum.wcm.trace.wcm- LIFECYCLESRVC com.documen- tum.wcm.trace.wcmses- SIONLIFECYCLEEVENT NA NA NA wcmdemote, wcmpromote, wcmpromotetostaging, wcmpromotetoapproved, wcmdemotetostaging, wcmexpirenow wcmexpirenow (set the following parameters: DMCLFILEPATH= DMCLTRACELEVEL=6) DFC trace will be generated in specified location (set the following parameters: DFCFILEPATH= DFCTRACELEVEL=6) All Web Publisher queries will be traced com.documentum.wcm WcmUtil class API traced (utility methods in WCM) document lifecycle server side tracing for workflow automatic activities (com.documen- tum.wcm.trace.wcmses- SIONLIFECYCLEEVENT) document lifecycle stages event can be traced (com.documentum. wcm.trace. WCMSERVERSIDEUTIL) 340 Web Publisher Administration Guide
Monitoring Web Publisher Parameter Method Server Traced Comments (if set to true) com.documentum.wcm. Trace.WCMASYNCTASK com.documentum.wcm. Trace.WCMPUBLISH com.documentum.wcm. Trace.WCMCHANGESET NA NA NA Various asynch tasks can be traced, such as Asynch Publishing, and Cleanup of temporary change set objects Site Caching Services publish can be traced change set creation and lifecycle can be traced com.documen- tum.wcm.trace.wcm- SERVERMETHOD_SES- SION com.documentum.wcm. Trace.WCMMONITORJOB com.documen- tum.wcm.trace.wcm- DYNAMICCONTENTJOB com.documen- tum.wcm.trace.wcmob- JECTBAGJOB com.documen- tum.wcm.trace.wcm- STRATTRANSLATIONWF wcmstarttranslationworkflo com.documen- tum.wcm.trace.wcm- SERVERSIDEUTIL NA wcmlifecyclemonitor wcmcreatetransformation wcmobjectbagmethod wcm_util (com.documen- tum.wcm.trace.wcmses- SIONLIFECYCLEEVENT = true) Web Publisher server side method execution can be traced (always set to true if you want to trace server methods) monitor lifecycle job can be traced XDQL job can be traced object bag job can be traced (set com.documentum. wcm.trace. WCMOBJECTBAGJOB_ DETAIL) utility methods for server side logic (always set to true if want to trace server methods) Web Publisher Administration Guide 341
Monitoring Web Publisher Parameter Method Server Traced Comments (if set to true) com.documen- tum.wcm.trace.wcm- PROCESSWORKFLOW com.documentum.wcm. Trace.WCMADDEDITION com.documentum.wcm. Trace.WCMVERSION- INFO wcminitializeprocessworkflow, wcmterminateprocessworkflow wcmaddedition wcmversioninfo add edition job can be traced Content Server side wcm.jar file version can be traced The Web Publisher server side method execution log is generated in the wcm_log.txt file. This log file will provide you with information on whether or not the methods ran and if they were successful. You must create the wcm folder in /Documentum/dba/ and the wcm_log.xt file in and the wcm folder. The Web Publisher server side method execution log is generated in the wcm_log.txt file. Make sure you have specified the value for the following parameter depending on the environment in the log4j.properties file located in /Documentum/config. log4j.appender.wcmappender.file=c://documentum//dba//log//wcm//wcm_log.txt Following is an example of the log4j.properties file that displays the results of your trace. #------------------- FILE_TRACE -------------------------- log4j.appender.file_trace=org.apache.log4j.rollingfileappender log4j.appender.file_trace.file=c\:\\dfctrace.log log4j.appender.file_trace.maxfilesize=10mb log4j.appender.file_trace.layout=org.apache.log4j.patternlayout log4j.appender.file_trace.layout.conversionpattern=%d{absolute} [%t] %m%n # WCM log4j configuration log4j.category.com.documentum.wcm=debug, WcmAppender # Set the level to DEBUG if you want to log all messages log4j.appender.wcmappender=org.apache.log4j.dailyrollingfileappender # set the output log file name like the following windows: 342 Web Publisher Administration Guide
Monitoring Web Publisher log4j.appender.wcmappender.file=c:\\documentum\\dba\\log\\wcm\\wcm_log.txt # set the output log file name like the following on unix: # log4j.appender.wcmappender.file=/export/documentum/dba/log/wcm_log.txt #log4j.appender.wcmappender.file=wcm_log.txt log4j.appender.wcmappender.append=true log4j.appender.wcmappender.layout=org.apache.log4j.patternlayout log4j.appender.wcmappender.layout.conversionpattern=%d{hh:mm:ss,sss} %10r %5p [%10t] %-20c - %5x %m%n log4j.appender.wcmappender.datepattern='.'yyyy-ww-dd Web Publisher application-level settings You can set Web Publisher application-level settings for various configurations. These settings are stored in the WcmApplicationConfig.properties file. Table 19-4. Web Publisher application level con gurations in the properties le Parameter async-task. delay Default Value Max Value Minimum Value Comments 5 9999 0 Specify the delay in seconds to execute a task after it is scheduled. Minimizes the performance impact on the current request improving response time. Web Publisher Administration Guide 343
Monitoring Web Publisher Parameter async-task. startup_delay concurrenttask-queue. max_num concurrenttask-queue. batch_item_ limit concurrenttask-queue. enable batchpromote. batch_item_ limit Default Value Max Value Minimum Value Comments 180 9999 0 Specify the delay in seconds to schedule the startup task after the user logs in. Minimizes the performance impact on the login process. 10 9999 1 Specify the maximum number of concurrent tasks that are allowed for each user session. Controls the CPU hog. 100 100 1 Specify the maximum number of items that a concurrent task is allowed to process. Prevents buffer overflow problems in RPC (remote procedure calls) from DMCL to Content Server. true false true Flag to turn On or Off the concurrent tasks capability. 85 85 1 Specify the maximum number of items that a server method is allowed to process. Prevents buffer overflow problems in RPC (remote procedure calls) from DMCL to Content Server. 344 Web Publisher Administration Guide
Monitoring Web Publisher Parameter batch-restartcs.batch_item_ limit webcache. config-location webcache. apply-timeout changeset. item_limit wcmcontent.reseteffexpdate- ToNullFro- mactive- ToWIP Default Value Max Value Minimum Value Comments 50 50 1 Specify the maximum number of items that a server method is allowed to process. Specific to the restart changeset action. Location of Site Caching Service s configuration file. 120 9999 5 Value for TIME_OUT parameter to invoke the Site Caching Service s server method. 500 0 Specify the maximum number of files that can be added to the change set. Minimizes the performance impact when operating with a change set that has numerous items. This attribute resets the effective date when the version changes. Log les All log files stored in the repository are assigned the System ACL WebPublishingAcl. The log files have the following permissions: World: Browse Owner: Delete, Run Procedure, Change Location Web Publisher Administration Guide 345
Monitoring Web Publisher AdminGroup: Delete, Run Procedure, Change Location Each log file (dm_document) created is assigned the same System ACL to prevent any degradation in performance by creating numerous ACLs over time. 346 Web Publisher Administration Guide
Chapter 20 Troubleshooting This chapter provides information on addressing any errors that occur. If an error occurs, Web Publisher provides information in two ways: Error messages tell you the nature of the problem and include a more details link that opens an error page with additional information to help you troubleshoot the error. You can print out the information in the error page or mail the information to a system administrator or, if authorized, to our technical support. When a procedure fails, Web Publisher creates a notification and sends it to all the users in the Administrator group. Shared memory error If you are using Oracle with Web Publisher you might receive an Oracle shared memory error when you are creating new content in Web Publisher Editor. Contact your Oracle administrator for details concerning this error. A possible workaround is to increase your shared pool size in the shared_pool_size attribute in the init.ora file. By default, shared_pool_size is set to 51241369. The maximum is 9000000. The init.ora file is located in the following directory: drive:/oracle/admin/orcl/pfile/ Java Method Server errors If your Java Method Server service is not running on your Content Server machine you could run into the following errors: Failed creating new folder A folder with this name already exists Failed to start workflow Web Publisher Administration Guide 347
Troubleshooting Ensure that your Java Method Server service is running on your Content Server machine by navigating to your Services dialog box and making sure the Java Method Server services says Start. Effective and expired content The wcmlifecyclemonitor job controls effective objects by publishing them out to your website, and expired objects by removing them from your website. The wcmlifecyclemonitor job is set to inactive by default. To activate objects using the a_effective_date property, and expire objects using the a_expiration_date property you must activate the wcmlifecyclemonitor job in Documentum Application Builder. Problems sending HTML mail If you experience email sending problems, you may receive an error message similar to the following: Your method named (dm_event_sender) failed to execute because the assume user process was unable to satisfy the request. To fix mail problems, you must set the run_as_server in the dm_event_sender method to true. To set the run_as_server method to true: 1. Ensure your dmcl.ini file is pointing to the correct connection broker. 2. Connect to Documentum Administrator as superuser. 3. Click DQL/API. 4. Click API to change the dm_event_sender method. Use the API command and data fields to change the dm_event_sender method so that it calls dm_wp_sender.ebs. 5. Enter the following: a. In the command field enter: retrieve,c,dm_method where object_name = 'dm_event_sender' b. Click Execute. c. In the command field enter: set,c,l,run_as_server T save,c,l 348 Web Publisher Administration Guide
Troubleshooting 6. Click Execute. Web view If Web View is not appending files with the right extensions, set use_format_extension in webcache.ini to true. See the Site Caching Services User Guide for more information on use_format_extensions. If you cannot get Web view to work, perform a full refresh of the website (with a trace of 5) that Web view is trying to access. A full refresh usually gives the same error as does Web view in the error log. Also, check the following: Is the publish folder open in Windows Explorer? (It should not be.) Is the file needing to be viewed already open in a browser? Are the following correct in the site publishing configuration? Port number used by IIS URL Names of the WIP, Staging, and Active states Host name Publish folder name Username and password Are all the correct formats identified? Is anonymous access set up correctly in IIS? Does the user exist on the domain? Is the correct Oracle Service identified in sitecachingservices.ini? If content is approved but not yet Active, a Staging website is used for Web view. Translation work ows If you have created a translation workflow that does not get executed properly you can check to see if: Your Business Process Services is properly installed and running. You have properly configured Web Publisher for Business Process Services. You have properly configured translation workflows. Web Publisher Administration Guide 349
Troubleshooting Troubleshoot Business Process Services If you have properly installed Business Process Services the machine on which Business Process Services is installed and running should have the file esclient.jar in the classpath where Content Server is running. If you have properly configured Business Process Services you can send and receive email. Test the following three scenarios to pinpoint the issue as Content Server-related or Web Publisher-related. Test esupload.htm to make sure it works. Send email to Business Process Services and make sure it works. Your email format should be test.<repositoryname>@eshost.companyname.com. For example, test.webpublisher@eng999@documentum.com Test Business Process Services sample ESSendReceiveJava. For more information on Business Process Services, refer to the Business Process Services Installation Guide and Business Process Services Development Guide. Site publishing con guration The Web Publisher default DocApp automatically configures Web Publisher to work with Business Process Services. If you have created a custom DocApp you might not have created the correct components to interact with Business Process Services. If you run into translation workflow problems you can check Web Publisher s configuration to ensure that the DocApp was created and installed correctly. Check if the Business Process Services host address is entered in the Web Publisher System configuration. The host address should not contain port numbers. For example, eng999.documentum.com NOT eng999.documentum.com:9999. Check to ensure the TranslatorEmailAddress alias set was installed with the DocApp. You must have valid email entries defined in the translator email alias sets for your translation locales. You can define these email entries in Documentum Administrator or Documentum Application Builder. Setting the error_threshold key in Site Caching Services By default, Site Caching Services (SCS) sets the error_threshold key to 0, which means that if SCS encounters publishing failures during a single full-refresh, incremental, or forcerefresh publishing operation, then SCS fails. 350 Web Publisher Administration Guide
Troubleshooting For Web Publisher, leaving the SCS error_threshold key at 0 can severely impact production updates and maintenance while the system is running. For example, if a user deletes a file while Web Publisher is performing a full refresh, SCS would fail. To avoid such SCS failures, you must set the error_threshold key in the webcache.ini file to the number of publishing failures you want to allow before SCS fails. For more information on the error_threshold key, see Site Caching Services User Guide. Translation work ow con guration The translation workflow is configured by Workflow Manager and installed with the default DocApp. If you have created a custom translation workflow the proper configurations may not be set. Check the translation workflow for the following configurations. Check to ensure the automated method wcmsendtranslationviasmtp is defined in the Translate task that sends the documents to be translated. Check to ensure a manual task with a defined trigger Ready or a custom trigger is defined in the Reviewer task or Receive task which receives the translation for review. Check to ensure a default alias set, Translator Email Address, is defined in the Web Publisher default DocApp. The Translator Email Address alias set is automatically installed by the default DocApp but you should check to ensure it was installed correctly, or has not been removed. The alias set must exist in the DocApp with valid email entries for your translation locales. Check to ensure that one record exists for each alias set used by the translation workflow. For further troubleshooting information you can view the server logs that record Business Process Services integration activities. You can view the server logs under Menu>Logs in Documentum Administrator, or you can navigate to c:/documentation/dba/log. In-context editing If a website that you have set up for in-context editing does not show up for authors, then check the following: Is the URL formed correctly? Is the web server not correctly specified in the site publishing configuration? Is the web server down? Web Publisher Administration Guide 351
Troubleshooting Java plug-in install If you cannot launch Web Publisher Editor or Rules Editor it may be because you do not have the correct version of the Sun JVM installed or because you do not have Write access to your machine s registry to run the Java plug-in. You must install the Sun Java plug-in packaged with Web Publisher and you must be an administrator or user with Write permissions on the machine to which you are trying to install the Java plug-in. Follow these instructions to install the correct version of the Java plug-in. To install the correct version of the Java plug-in: 1. Log in to Web Publisher. 2. In Classic view, select File>About>Install Plug-in. The File Download page opens. 3. Save or open the jre140.exe file. 4. Install the Java 2 Runtime Environment to your system using the installation wizard. Formatted text appears different when previewing If text that you formatted a particular way in Web Publisher Editor appears differently when you preview the Web page, there might be a problem with the template s associated presentation file. 352 Web Publisher Administration Guide
The Web Publisher Object Model Appendix A In Web Publisher, all the items (documents, folders, users, etc.) that you manipulate are repository objects. This appendix provides brief descriptions of the repository object types that are used in Web Publisher. For full descriptions of object types, see the Documentum Content Server Fundamentals Guide. All objects have associated characteristics, called properties, and associated operations, called methods. Properties are fields that are part of the object. The values in these fields describe the object. Methods are operations that you can perform on an object. Note: The wcm_favorites object type is not used in Web Publisher 5.2 or later. It exists as a type in the Web Publisher DocApp only to support Documentum 5 migration. The capability provided by this type is replaced by subscriptions. This appendix describes the following: Object model diagram, page 353 dm_sysobject, page 355 dm_relation (relations), page 369 Object model diagram Objects and attributes that are removed in Web Publisher 5 are displayed with a strike through the name. New attributes are displayed in italics. Web Publisher Administration Guide 353
The Web Publisher Object Model Figure A-1. Web Publisher 5 Object Model 354 Web Publisher Administration Guide
The Web Publisher Object Model dm_sysobject Table A-1. dm_sysobject The dm_sysobject type is the parent type of all objects in the Web Publisher system. The dm_sysobject type is represented by properties that it passes on to all its subtypes. These properties: Allows you to set permissions on the object. Belongs to a folder unless it is a Web cabinet. Owns one or more content objects. Property Name Description Value a_category a_controlling_app a_effective_label a_effective_flag a_effective_date a_expiration_date Describes the categorization of the object derived from the selected category folder New in 5.2. Indicates the application to which a document belongs. Default = dm_wcm Name of the Web cabinet. It is tied to a_effective_flag, a_effective_date, and a_expiration_date by index (i_position value) Indicates whether a pending expiration notice was sent to the document s owner for the specific channel Date the object should become effective for the channel Date the object should be expired for the channel char(64) on Oracle, SQL Server, and Informix, but char(32) on Sybase. char(32) char(32) repeating char(8) repeating date repeating date repeating Web Publisher Administration Guide 355
The Web Publisher Object Model Property Name Description Value a_is_template a_publish_formats New in 5.2. Indicates whether the document is a template. List of formats that should be exported through the cache server for an object in addition to the standard set of formats defined in the cache server config boolean char(8) repeating wcm_con g The wcm_config object tracks the configuration data that is applicable for the application as a whole. This object is a subtype of dm_sysobject. Table A-2. wcm_con g Property Name Description Value review_notif wip_symbol staging_symbol Number of calendar days before an object s expiration date that a notification of pending expiration should be sent to the object s owner User-defined name for the development state of an object. Defined to be an area where specific object/pages are viewed to ensure they display properly on the Web without too much concern for the interaction with other objects. Default to WIP. User-defined name for the staging state of an object. Defined to be an area where specific objects/pages are viewed to ensure they correctly interact with other objects on the Web. Default to Staging integer char(32) char(32) 356 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value approved_symbol active_symbol expired_symbol dctm_admin_location site_protection global_management default_locale lifecycle_states engagement_server_host_addr User-defined name for the approved state of an object. Does not indicate that object will move to production cache. Default to Approved User-defined name for the active state of an object. Production area of the web. Default to Active. User-defined name for when an object is expired. Default to expired. URL to launch Documentum Administrator. Site protection and ACL setting preferences. 0, show ACLs (site protection is off). This is the default value. 1, use user defined ACLs (site protection is off). 2, use site-specific ACLs to protect the sites (site protection is on). True if global content management feature is turned on and False is off. Default is False. Default locale for this repository. Default is en_us. List of lifecycle states this repository uses. Earlier on the repeating list represents the earlier state. Host address where Business Process Service is running/installed. char(32) char(32) char(32) char(255) integer boolean char(5) char(32) repeating char(64) Web Publisher Administration Guide 357
The Web Publisher Object Model Property Name Description Value multisite_effectivity new_obj_cnt valid_web_formats default_channel doc_lifecycle default_page expiration_increment default_workflow False, only allow a single effective date and a single expiration date to be associated with an object True, multiple effective dates can be set on objects. Number of new objects to prefabricate. This is for object bag feature. Should be greater than 0. Default is 5. List of format types that are considered web safe and do not need to be translated to HTML Name of the Web cabinet that is used if user s default Web cabinet is not set. Name of the lifecycle that should be the default for content objects. Name of page that should be displayed as starting page for business user interface. Values will include In box, Create Page, Edit Page, View Alerts. Number of days after the effective date that should be the default for the expiration date. Example, if the value is 15 and the effective date is 1/1/00, then the expiration_date would be 1/16/00. If this value is 0 or not present, then no default expiration date should be set. Name of the dm_workflow that should be used for object updates initiated by business users by default if one is not defined. boolean integer char(32) repeating char(64) char(64) char(32) integer char(80) 358 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value thumbnail_v_size thumbnail_h_size edition_cache default_acl format_ext_list cps_host_addr cps_node_name cps_formats text_formats graphic_formats Vertical size of template thumbnail preview in number of pixels Horizontal size of template thumbnail preview in number of pixels Object name of dm_webcache_config object that will be used as the cache config object for editions Name of Web Publisher Default ACL List of DOS extensions and its Documentum format name IP address for Content Personalization Services (CPS) host. If defined, then will indicate both the address of the CPS process as that CPS services are available to Web Publisher. Name of a default CPS node to use when indexing Web Publisher objects List of formats that can be indexed by CPS. Values will include all text-based formats, such as MS-Office formats. List of formats that are text based and can be differenced by a differencing tool. This list will also be used by the Web Publisher Editor when importing objects from the text selector. List of graphic formats. Will be used by the Web Publisher Editor when importing objects from the graphic selector. integer integer char(80) char(64) char(32) repeating char(64) char(128) char(32) repeating char(32) repeating char(32) repeating Web Publisher Administration Guide 359
The Web Publisher Object Model Property Name Description Value wd_version_ind display_comment_ind comments_req_ind available_events start_page allow_author_import Indicator whether Web developers are prompted for version increment to be next minor version or same version. Values include: 0, not prompted, will always go to next minor version number (default) 1, prompted Indicator whether to display comment box when checking in (affects all users). Values include: 0, display comment box (default) 1, do no display comment box Indicator if comments are required (only valid if comment box is displayed for example, display_comment_ind=0). Values include: 0, comments not required (default) 1, comments required List of events that the administrator makes available for users to register on Web Publisher objects. Name of the start page for content authors and content managers. Values include: Create Web Page, Edit Web Page, Work On Tasks, View Alerts. Indicator whether content authors and managers will be able to import from their desktops. Defaults to False. integer integer integer char(32) repeating char(32) boolean 360 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value delay_publish_active simple_search_mode log_level enable_web_based_editor web_based_editable_formats keep_local_copy confirm_overwrite set_creator dependent_link_type Indicator whether the system will delay automatic export of an object to the appropriate Web cache(s) when promoted to Active. If True, then automatically publish. If False, then do not automatically publish. Defaults to False. Include full-text search in simple search if this is True. Default is False. Log level of server scripts not run by server jobs Default: 0 = trace OFF Use Web based HTML editor. 0, never (default) 1, optional 2, required All the formats available to perform web based editing Default is empty. Do not remove local file upon check in or cancel check out if set to TRUE Default: FALSE During check out, if local copy of same file exists, ask use to confirm overwriting the local file Default: FALSE If true, Add content will call a server method to set the creation date and creator when the new object is coming out from the object bag. Default is false Specifies the manual link type that has promote include flag turned on boolean boolean integer integer char(32) repeating boolean boolean boolean char(32) Web Publisher Administration Guide 361
The Web Publisher Object Model Property Name Description Value independent_link_type wcm_service_url Specifies a manual link type that is created by the user Not Used char(32) wcm_user_pref The user preference object stores information about the user that should be persistent from session to session. This is used for user interface preferences such as layout and colors and for system-required items like default checkout. This object is a subtype of dm_sysobject. Table A-3. wcm_user_pref Property Name Description Value bounding_number default_locale_filter show_cabinets User-defined number of items to appear on a list item page, for example, file list. Value of 0 means no bounding. Every item will be shown. The possible values are limited to the set defined in UI specification. Default is 20. The default locale the user wants to see in the file listing and the value is one of the locale codes. If null, display all locales. Default is the same as default_locale defined in wcm_config. Show non-web cabinets. Default is False. last_selected_users The user OS name of the last 20 selected users in start workflow page. Link_checker_cmd_str Path to external link checker program. integer char(5) boolean char(32) repeating char(255) 362 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value diff_cmd_str diff_directory intelligent_viewer checkout_dir default_channel display_pref wip_cache_config web_based_editing rules_editing The Windows system command required to launch a differencing tool on the user s machine. The user types in this string. Full path to the directory location on the user s machine where the two files to be differenced will be downloaded. Full system path to the application that will view text-based files. For example, c:/program files/textpad 4/textpad.exe%1. Root location of checkout directory. Default Web cabinet. Should be used when checking out a doc to determine which path to set on the local machine. Indicates whether the file list or folder list should be listed first. Values will include file or folder. Name of the target config object that represents a user s WIP cache server location. Will only be defined for Web developers. If one is not defined, will default to the wip_cache_config object defined in the wcm_channel. True means enable web based editing. Default is false. If true, use the Rules Editor to edit the Editor rules file in Editor Rules folder. If false, use external editor Default is false char(255) char(255) char(255) char(255) char(80) char(32) char(80) boolean boolean Web Publisher Administration Guide 363
The Web Publisher Object Model dm_folder A new attribute on the dm_folder type, group_class, supports groups, roles, and domains. For information on role configuration, see the Web Publisher Development Guide. Note: The wcm_favorites object is not used in Web Publisher 5. Table A-4. dm_folder Property Name Description Value group_class group, role, domain (roles can contain groups, domains can contain roles) char(32) wcm_change_set The wcm_change_set object represents a change set in Web Publisher. It is a folder and the objects within the change set will be linked to the folder. Only local files and replicated files residing in the same repository as the local files can be added to the same change set. Replicas can only be added to the change set as supporting files. This object is a subtype of dm_folder. Table A-5. wcm_change_set Property Name Description Value translation_ids IDs of the translation files. These are normally copies of one or more files to be translated. For example: if the next task is a translation task (need French translation), the current task will create a translation by making a copy of original file. The language_code of the new file is set to French. The ID of this new file is stored in this property. This property is used in automatic tasks and in Business Process Service integration. ID repeating 364 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value post_translation_ids priority lifecycle_states auto_ind IDs of the translated files. After one or more files are translated and checked in, their IDs are stored in this property. They are used in post checked in process Priority of the change set. User entered. Values include: High, Medium, Low. List of lifecycle states of the objects managed by the change set. Objects within a change set will all have the same lifecycle structure for example, same state names and number of states. This is filled out when the first object is added to the change set. The current status value will be stored in a_status. Indicates how the change set was created. Values include: 0, was created manually. 1, was created automatically by Web Publisher. 2, was created temporarily by Web Publisher. ID repeating char(32) char(32) repeating integer dm_cabinet The dm_cabinet object represents a Web cabinet in Web Publisher. This object is a subtype of dm_folder. wcm_channel A channel is defined in Web Publisher as a Web cabinet and the top level of a structure that mirrors a website. This object is a subtype of dm_cabinet. Web Publisher Administration Guide 365
The Web Publisher Object Model Table A-6. wcm_channel Property Name Description Value wip_cache staging_cache asynch_publish default_group site_main_page web_based_editing Holds the name of the common WIP cache for this selected channel object. Holds the name of the common Staging cache for this selected channel object. True if publishing to Site Caching Services should happen asynchronously for Staging or Active state, False otherwise. Default is False Name of group associated with this website. Channel s entry point page name with (relative) path. This is mainly used by in-context editing. Enable In-Context Editing. Default is False. It can be turned on from the Properties page of a cabinet. char (80) char (80) boolean char(64) char(64) boolean wcm_edition wcm_edition is a cabinet that stores snapshots of a Web cabinet. wcm_edition contains a set of edition folder objects (wcm_edition_fld) that map to folders within a Web cabinet. The edition cabinets will be stored as hidden objects (a_is_hidden = TRUE) so that they do not adversely affect non-web Publisher UI s that might be looking at a Web Publisher repository since there may be hundreds of edition cabinets created over a period of time. You can create editions in a target repository with both replicated and local files. wcm_edition is a subtype of dm_cabinet. 366 Web Publisher Administration Guide
The Web Publisher Object Model Table A-7. wcm_edition Property Name Description Value a_channel_id Object ID of the Web cabinet. ID target_host target_virtual_dir target_root_dir Host name that was entered when the edition was exported through the edition cache config object. Web server s name for the virtual directory where the website is located that was entered when the edition was exported through the edition cache config object. Host root directory that was entered when the edition was exported through the edition cache config object. char(255) char (255) char(255) wcm_channel_ d The channel folder object is the folder created by default underneath a Web cabinet. This object is a subtype of dm_folder. It has no custom properties. wcm_edition_ d The wcm_edition_fld (edition folder) object represents a Web folder object within an edition. It contains links to specific versions of content objects. wcm_edition_fld is a subtype of dm_folder. Table A-8. wcm_edition_ d Property Name Description Value a_chnl_fld_id Object ID of the Web cabinet ID Web Publisher Administration Guide 367
The Web Publisher Object Model wcm_supporting_doc_folder This is the folder contains all supporting objects for a change set. Every change set folder contains a wcm_supporting_doc_folder folder. Supporting objects (and these may be new objects imported just for the change set or existing repository objects) are linked to this folder. No properties are required for this object type. wcm_supporting_doc_folder is a subtype of dm_folder. wcm_auto_naming wcm_auto_naming is used for automatic object name generation. wcm_auto_naming is a subtype of dm_sysobject enabling Web Publisher to leverage the check-in and check-out feature provided by dm_sysobject. These objects are stored in the /WebPublisher Configuration/Auto Naming folder. Each object has the same name as the template using it, for example, object_name will have the value of the template name. Table A-9. wcm_auto_naming Property Name Description Value template_id last_number Chronicle ID for the template using this auto number. Current counter of auto-numbering. Default is 0 ID integer wcm_locale wcm_locale is used to define allowable locales for the Web Publisher system. wcm_locale is a subtype of dm_sysobject. Table A-10. wcm_locale Property Name Description Value language_name Name of the language for this local and value come from the configuration.xml file. char(32) 368 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value country_name Name of country for this local and value come from the configuration.xml file. char(64) fallback_locale The fallback locale char(5) encoding_name default_workflow The language encoding used by the Web Publisher editor. Optional Object ID of translation workflow associated with this locale char(32) ID dm_relation (relations) Relations are dm_relation type objects. A relation type object describes a relationship that can exist between two objects in the repository, and can act as an indicator. Web Publisher uses relations to relate documents and for global content purposes like turning fallback rules off, and using dynamic content. Web Publisher s dm_relation_type objects are described in the following topics: DM_TRANSLATION_OF, page 370 wcm_category, page 370 wcm_default_workflow, page 371 wcm_doc_template, page 371 wcm_dynamic_content, page 372 wcm_layout_template, page 372 wcm_my_template, page 373 wcm_process_workflow, page 374 wcm_publishing_template, page 374 wcm_rules_template, page 375 wcm_template_thumbnail, page 375 wcm_html_editor, page 376 wcm_rules_editor, page 377 wcm_editor_link, page 377 wcm_ewebeditpro_link, page 378 wcm_native_edit, page 378 wcm_link, page 378 Web Publisher Administration Guide 369
The Web Publisher Object Model wcm_link_internal, page 379 wcm_managed_link, page 379 wcm_pb_template_blueprint, page 380 DM_TRANSLATION_OF Web Publisher uses DM_TRANSLATION_OF to manage global contents. wcm_category The organization of the wcm_category objects drives the organization of Web Publisher categories. The subfolders within the category folder structure that contain templates are selectable categories for documents. This object is a subtype of dm_folder. Table A-11. wcm_category Property Name Description Value auto_formats a_category cps_node_name Repeating attribute listing all the formats that should be automatically generated whenever an object using the associated category folders is checked in (for business users) or viewed via the Web view function (for Web developers) Values should be restricted to valid formats that can be generated by the server. Currently, only two values, html and pdf, are supported Existing property from dm_sysobject: Normalized category name that will be copied to the current object Name of a default CPS node to use when indexing Web Publisher objects. char(32) repeating char(64) char (128) 370 Web Publisher Administration Guide
The Web Publisher Object Model wcm_default_work ow This relation type tracks the relationship between a template and its default process workflow. When an object is created from the template and routed on a process workflow, the system will check if the template has a wcm_default_workflow relation that points to a valid process workflow. If so, it will use that process workflow and not prompt the user for it. The type should be defined as follows: Table A-12. wcm_default_work ow Property Name Description Value relation_name integrity_kind direction_kind parent_type child_type The name of the relationship. Names must be unique. The names of system_defined relationships begin with dm_. Use this name to find dm_relation objects of this kind Indicates how referential integrity is enforced. Valid values are: 0, allow delete 1, restrict delete 2, cascade delete The direction of the relationship. Valid values are: 0, from parent to child 1, from child to parent 2, bidirectional Defines the object type of a valid parent object in the relationship. The object type of valid child objects in the relationship wcm_default_ workflow 0 0 dm_document dm_process wcm_doc_template This relation keeps track of the template from which the document was created. Web Publisher Administration Guide 371
The Web Publisher Object Model Table A-13. wcm_doc_template Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_doc_ template dm_document dm_document wcm_dynamic_content This relation is used to indicate a file that has xdql queries that need to be transformed. The child label of this relation to CURRENT is marked and uses a chronicle ID as its child ID. Table A-14. wcm_dynamic_content Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_dynamic_ content dm_document dm_document wcm_layout_template The wcm_layout_template relation type tracks the relationship between a data template and a layout template. 372 Web Publisher Administration Guide
The Web Publisher Object Model Table A-15. wcm_layout_template Property Name Description Value relation_name direction_kind Use this name to find dm_relation objects of this kind. Combined with integrity_kind, this restricts deletion of the layout template object if it is in use integrity_kind Restrict delete. 1 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_layout_ template 1 dm_document dm_document wcm_my_template The wcm_my_template relation type keeps track of a business user s frequently used templates and the category each of these templates belongs to. It will allow us to not only know a favorite template, but also which category the template belonged to. This is important because a template can be in multiple wcm_category folders. Table A-16. wcm_my_template Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_my_ template dm_document dm_document Web Publisher Administration Guide 373
The Web Publisher Object Model wcm_process_work ow The wcm_process_workflow relation points from an object to a process workflow object. Table A-17. wcm_process_work ow Property Name Description Value relation_name direction_kind Use this name to find dm_relation objects of this kind. Combined with integrity_kind, this restricts deletion of the layout template object if it is in use. integrity_kind Cascade delete. 2 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_process_ workflow 0 dm_document dm_document wcm_publishing_template The wcm_publishing_template relation type tracks the relationship between a standard template and a publishing template. Table A-18. wcm_publishing_template Property Name Description Value relation_name direction_kind Use this name to find dm_relation objects of this kind. Combined with integrity_kind, this restricts deletion of the layout template object if it is in use. integrity_kind Restrict delete. 1 wcm_ publishing_ template 1 374 Web Publisher Administration Guide
The Web Publisher Object Model Property Name Description Value parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. dm_document dm_document wcm_rules_template The wcm_rules_template relation type tracks the relationship between a data template and an authoring rules template. It is used to indicate if the Editor rules file is checked out by the Rules Editor. Table A-19. wcm_rules_template Property Name Description Value relation_name direction_kind Use this name to find dm_relation objects of this kind. Combined with integrity_kind, this restricts deletion of the layout template object if it is in use. integrity_kind Restrict delete. 1 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_rules_ template 1 dm_document dm_document wcm_template_thumbnail The wcm_template_thumbnail relation is used for relating a thumbnail object to a file template. The thumbnail displays next to the template in Web Publisher s ADD CONTENT page. Web Publisher Administration Guide 375
The Web Publisher Object Model Table A-20. wcm_template_thumbnail Property Name Description Value relation_name direction_kind Use this name to find dm_relation objects of this kind. Combined with integrity_kind, this restricts deletion of the layout template object if it is in use. integrity_kind Restrict delete. 1 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_template_ thumbnail 1 dm_document dm_document wcm_html_editor The wcm_html_editor is used to detect when a file is editable by ewebeditpro. Both parent and child are pointing to the content itself. Table A-21. wcm_html_editor Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_html_editor dm_document dm_document 376 Web Publisher Administration Guide
The Web Publisher Object Model wcm_rules_editor The wcm_rules_editor is used to detect when a file is editable by the Rules Editor. Both parent and child are pointing to the content itself. Table A-22. wcm_rules_editor Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. l dm_document dm_document wcm_editor_link The wcm_editor_link is used to track other files that are linked to the template content file. The relation is generated when you select a graphic from the graphic selector, or when you select a text from the text selector and the output type is folder path. The content file is the parent; the selected file is the child. Table A-23. wcm_editor_link Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. l dm_document dm_document Web Publisher Administration Guide 377
The Web Publisher Object Model wcm_ewebeditpro_link The wcm_ewebeditpro_link is used to create a dm_relation object of the type wcm_ewebeditpro_link between the parent HTML or XML file and the child image/hyperlink document. The parent HTML or XML file is modified using ewebeditpro, or Rules Editor. Table A-24. wcm_ewebeditpro_link Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_ ewebeditpro_link dm_document dm_document wcm_native_edit The wcm_native_edit is a self pointing relation that marks an object for use with native edit. The wcm_native_edit relation type only applies to Web Publisher editor objects. Once an object is checked in, the relation is removed. Table A-25. wcm_native_edit Property Name Description Value parent_id child_id Valid object ID of parent object in the relation. Valid object ID of child object in the relation. objectid objectid wcm_link The wcm_link is used to create a dm_relation object of the type wcm_link that links a linked asset and a parent content object. 378 Web Publisher Administration Guide
The Web Publisher Object Model Table A-26. wcm_link Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_link dm_document dm_document wcm_link_internal The wcm_link_internal creates a dm_relation object of the type wcm_link_internal between managed link and linked asset. Table A-27. wcm_link_internal Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_link_ internal dm_document wcm_managed_ link wcm_managed_link The wcm_managed_link creates a link between managed link and parent content object. Web Publisher Administration Guide 379
The Web Publisher Object Model Table A-28. wcm_managed_link Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_managed_ link dm_document wcm_managed_ link wcm_pb_template_blueprint The wcm_pb_template_blueprint is used to track blueprint that are linked to the template content file. Table A-29. wcm_pb_template_blueprint Property Name Description Value relation_name Use this name to find dm_relation objects of this kind. integrity_kind Allow delete. 0 parent_type child_type Valid object type of parent object in the relation. Valid object type of child object in the relation. wcm_pb_ template_ blueprint dm_document dm_folder 380 Web Publisher Administration Guide
Index A absolute path, 147 access levels, 23, 25 ACL, see permissions Active publishing, 99, 292 add_content, 318 alias sets, 28 annotations imarkup, 67 localizing, 68 storing, 67 API testing, 334 app.xml, 96, 331 application code, 110 application levels configurations, 343 settings, 343 assigning content to categories, 309 taxonomies, 310 asynchronous publishing, 98 asynchronous publishing, 89 attribute extraction Web Publisher Editor, 142 attributes, 270 See also properties auto-naming content, 115 automatic property population, 83 a_category attribute, 84 B blueprint custom, 239, 242 descriptor, 248 Page Builder, 241 BPM, 45 See also Business Process Manager BPS, see Business Process Services Browse permissions, 25 Business Process Manager, 45, 51, 58 in portlets, 288 Business Process Services, 52, 58, 73 email alias, 77 HTTP message cabinet, 78 inbound message handlers, 76 listeners and message processors, 74 SBO, 79 supporting files, 76 troubleshooting, 350 wcmbpsconfig.xml file, 76 wcmmethods.jar file, 76 C cabinets protecting, 99 calendar element, 149 field, 149 categories, 307 assigning content to, 309 assigning taxonomies, 310 overview, 307 to 308 publishing taxonomies, 310 CDATA, 193 Change Location, 25 Change Ownership, 25 Change Permission, 25 change set definition, 39 effective dates, 94 expiration dates, 94 replicated object, 364 change sets demoting, 49 in workflow, 44 replicate, 46 replicated object, 44, 52 to 53, 55 Web Publisher Administration Guide 381
Index Change State, 25 channels, 98 See also sites characters Web safe, 97 check links, 69 checkboxes element, 152 field, 152 samples, 154 choice elements Editor rules file, 154 samples, 157 CI Server, 79 defining system settings, 81 integrating with Web Publisher, 80 mapping properties, 82 client capabilities, 20 comment thread, see discussions comments, 143 permissions, 328 common XSL, 245 component Page Builder, 242 configuring clients, 70 content element, 193 Editor rules file, 158 Content Intelligence Services, 79 See also CI Server content samples, 171 content templates, 109 See also templates content transfers troubleshooting, 331 content view, 246 copying activities, 52 Create_Dynamic_Content job XDQL, 133 creating, 110 See also the index entry for the item you want to create users, 19 custom dynamic performer workflows, 50 custom elements, 321 definition file, 322 custom tags assign to content rule, 324 creating, 321 custom element definition file, 322 defining, 321 customize blueprint, 239, 242 D dctm-id, 317 dctm-operation, 318 dctm-src, 317 Delete permissions, 25 deleting objects, 28 permissions required, 28 DFC exception trace, 333 tracing tool, 332 DHTML, 245 dictionaries spelling checker, 283 discussions canceling, 329 column preference, 329 copying, 330 creating, 328 definition, 327 deleting, 329 moving, 330 permissions, 327 replicating, 330 status, 329 viewing, 329 dm_cabinet object model, 365 dm_folder object model, 364 dm_relations, 369 remove, 317 dm_sysobject object model, 353, 355 DM_TRANSLATION_OF object model, 370 DMCL trace, 333 DocApps, 33 Documentum Business Process Services, 73 to 74, 76 DQL, 288 testing, 335 dynamic content, 114, 132 382 Web Publisher Administration Guide
Index E ECI Services, 65 to 66 editable components in-context editing, 313 editable content files, 313 edition site publishing configuration, 88 Editor presentation files create, 231 external application, 118 Editor rules files attribute name value matching, 147 attributes, 145 calendar, 149 checkbox, 152 choice element, 154 content element, 158 creating, 145 elements, 145 graphic element, 172 multiple nesting repeatdef levels, 188 nesting repeatdef element, 187 repeatdef element, 181 tabledef element, 190 tagcontent element, 193 textline element, 197 textselector element, 200 xselector element, 211 EditorUI.properties file, 143 effective dates change set, 94 example, 95 multiple, 93 storing, 94 two-digit, 93 elements custom tags, 321 folder mapping, 267 email HTML mail, 71 email alias Business Process Services, 77 entitlements, 304 error messages, 347 ewebeditpro, 68, 119, 376, 378 Netscape, 68 Execute Procedure permissions, 25 expiration dates change set, 94 example, 95 multiple, 93 storing, 94 extended permissions, 25 external application templates, 118 F files navigation path, 113 filters samples, 221 folder mappings, 265, 277 attributes, 276 catch-all rule, 275 debugging, 275 dynamic, 277 to 278 elements, 267 example, 269 full or partial paths, 278 language_code, 279 multi-repository, 266 order, rules, 273 permissions, 266 primary folder map, 265 properties, 266 to 267 repeating attributes, 270 repeating properties, 268, 270, 272 replicate, 266 rule order, 273 secondary folder map, 265, 269 special characters, 276, 279 symbols, 275 two locations, 269 folder securities permissions, 27 WIP content, 27 FolderMap.xml, 265 See also folder mappings folders add, 120 G global settings defining, 65 globalization, 93 overview, 282 setting up website, 281 graphic elements Web Publisher Administration Guide 383
Index Editor rules file, 172 samples, 179 graphic rules samples, 179 groups described, 20 user management, 19 H HTML based templates, 138 mail, 71, 348 HTML editors configuring, 70 HTML rendering, 247 HTTP message cabinet Business Process Services, 78 I imarkup, 68 annotations, 67 defining, 66 documentation, 67 in-context editing editable components, 313 setting up, 313, 316 troubleshooting, 351 include, 245 includes, 317 instruction file, 122 to 123 WcmLog, 123 Internet Explorer 5 editing XML files, 70 J Java method server, 336, 339 plug-ins, 352 jobs wcmlifecyclemonitor, 348 L language_code folder mappings, 279 languages ewebeditpro, 68 publishing, 93 setting up website, 281 layout view, 246 LDAP portlets, controlling access, 304 lifecycles assigning, 33 configure, 37 creating, 33 default, 33, 36 determining, 110 permission set, 33 permissions, 39 portlets, 288 reconfigure, 36 required states, 34 state, 33 link checkers, 69 locales defining, 281 editing, 281 ewebeditpro, 68 properties, 281 locations determining, 110 log files location, 345 M mappings, 265 See also folder mappings method servers verify, 338 methods, 62 configurations, 336 server, 336 multi-repository folder mappings, 266 multi-site effectivity, 93 N navigation paths, 113 nesting repeatdef elements Editor rules file, 187 multiple nesting levels, 188 Netscape ewebeditpro, 68 None permissions, 25 384 Web Publisher Administration Guide
Index O object model diagram, 353 dm_cabinet, 365 dm_folder, 364 dm_relations, 369 dm_sysobject, 353, 355 DM_TRANSLATION_OF, 370 properties of, 353 wcm_auto_naming, 368 wcm_category, 370 wcm_change_set, 364 wcm_channel, 365 wcm_channel_fld, 367 wcm_config, 356 wcm_default_workflow, 371 wcm_doc_template, 371 wcm_dynamic_content, 372 wcm_edition, 366 wcm_edition_fld, 367 wcm_editor_link, 377 wcm_ewebeditpro_link, 378 wcm_favorites, 353 wcm_html_editor, 376 wcm_layout_template, 372 wcm_link, 378 wcm_link_internal, 379 wcm_locale, 368 wcm_managed_link, 379 wcm_my_template, 373 wcm_native_edit, 378 wcm_pb_template_blueprint, 380 wcm_process_workflow, 374 wcm_publishing_template, 374 wcm_rules_editor, 377 wcm_rules_template, 375 wcm_supporting_doc_folder, 368 wcm_template_thumbnail, 375 wcm_user_pref, 362 objects permissions, 23 P Page Builder overview, 239 views, see views Pcm LDAP Retrieval job, 304 permission sets superusers, 24 sysadmin, 24 system, 24 workflow templates, 45 workflows, 43 permissions access levels, 23, 25 comments, 328 deleting objects, 28 discussions, 327 extended, 25 folder mappings, 266 folder security, 27 modifying, 29 object-level, 23 overview, 23 viewing, 29 portals creating publishing configurations for, 291 publishing, 287, 291, 300, 302 portlets LDAP, 304 lifecycles, 288 overview, 287 publishing, 287, 291, 300, 302 templates, 287 to 288 presentation files, 111, 118, 231 See also Editor presentation files ewebeditpro, 119 preview, 247 previewing troubleshooting, 349, 352 previews, 111, 148 privileges, 24 processor, 244 properties, 270 See also attributes folder mappings, 266 to 268 locale, 281 repeating, 268 properties of dm_folder, 364 dm_sysobject, 355 wcm_auto_naming, 368 wcm_category, 370 wcm_change set, 364 wcm_channel, 365 wcm_channel_fld, 367 wcm_config, 356 wcm_default_workflow, 371 Web Publisher Administration Guide 385
Index wcm_doc_template, 371 wcm_dynamic_content, 372 wcm_edition, 366 wcm_edition_fld, 367 wcm_editor_link, 377 wcm_ewebeditpro_link, 378 wcm_html_editor, 376 wcm_layout_template, 372 wcm_link, 378 wcm_link_internal, 379 wcm_locale, 368 wcm_managed_link, 379 wcm_my_template, 373 wcm_native_edit, 378 wcm_pb_template_blueprint, 380 wcm_process_workflow, 374 wcm_publishing_template, 374 wcm_rules_editor, 377 wcm_rules_template, 375 wcm_supporting_doc_folder, 368 wcm_template_thumbnail, 375 wcm_user_pref, 362 property population, 83 a_category attribute, 84 XML content file, 84 property values, 83 protected sites, 98 website, 90, 98 to 99 publish view, 247 publishing asynchronously, 89 change set, 94 configurations, 350 content, 92 effective dates, 93 failures, 350 multiple languages, 93 multiple sites, 92 portals, 287, 291, 300, 302 relationships, 311 synchronously, 89 to multiple languages, 282 publishing configurations creating, 98 creating for portals, 291 taxonomies, 310 R RDF, 288 See also RSS Read permissions, 25 Really Simple Syndication, 287 See also RSS reapplying templates, 122 to 123, 126 refresh failures, 350 Relate permissions, 25 relation object, 369 relationships content-to-category, 311 relative paths, 147 repeatdef, 148 element, 181 multiple nesting, 188 nesting elements, 187 samples, 184 replicate folder mappings, 266 object, 46 properties, 266 supporting files, 112 templates, 112 repositories groups, 20 owners, 24 repository owner, 24 republishing, 114 site publishing configuration, 105 XML, 122 roles described, 21 user management, 19 RSS, 287 to 288 Rules Editor repeatdef, 148 templates, 109, 145 troubleshooting, 331, 352 S sample website product detail rules file, 224 searching ECI Services, 65 to 66 external sources, 65 to 66 saved searches, 66 386 Web Publisher Administration Guide
Index sequence configuring Web Publisher, 17 creating a portal and its components, 289 creating templates, 117, 134 defining website, 281 for defining custom tags, 321 for setting up in-context editing, 316 integrating with Business Process Services, 73 setting up protected site, 98 to 99 setting up Web Publisher, 17 setting up web site, 17 setting up website, 98, 281 update XML structure in multiple files, 123 shared memory errors troubleshooting, 347 Site Caching Services, 287, 289, 291, 300 Add Editions job, 89 error_threshold key, 350 site publishing configuration, 105 site publishing configuration job, 87 site publishing configurations, 87, 92 to 93 edition, 88 troubleshooting, 350 viewing, 107 site view, 247 sites creating, 98 creating a publishing configuration, 105 creating protected site, 98 multiple language, 281 protecting, 98 to 99 protection, 98 to 99 publishing configuration, 105 publishing to multiple languages, 282 site protection, 98 span, 317 to 318 spelling checkers dictionary, 283 staging website, 88, 148, 349 Staging publishing, 99 structures updating, 122 to 123, 126 supporting files replicate, 46, 112 replicated object, 44, 52 to 53, 55 symbols XML, 141 synchronous publishing, 89 system global settings, 65 system permission sets, 24 T tabledef elements Editor rules file, 190 samples, 192 tagcontent elements Editor rules file, 193 target portal servers, 289 creating, 291 tasks in workflow, 62 taxonomies, 307 assigning content to, 309 assigning to web cabinets, 310 overview, 307 to 308 publishing, 310 tecomponenttype, 141 template supporting files, 109 templates, 109 to 110, 113 See also files Asian characters, 110 creating, 117, 134 directory structure, 120 external application templates, 118 HTML, 134 portlets, 287 reapplying, 122 to 123, 126 republishing, 114 Rules Editor, 109, 145 supporting files, 111 testing, 120 validating, 146, 236 Web Publisher Editor, 131, 134 XML, 134 testing, 120 API, 334 DQL, 335 textarea elements, 193 textline elements Editor rules file, 197 samples, 199 textselector elements Web Publisher Administration Guide 387
Index Editor rules file, 200 samples, 209 tracing access, 332 actions, 333 details, 339 DFC exception, 333 DFC tool, 332 DMCL, 333 flags, 333 setting, 332 to 333 troubleshooting, 332 WCM, 334 WDK, 334 WP, 334 trans_external task, 58 trans_internal task, 57 trans_launch_wf task, 60 translation workflow configuration, 351 translations publishing, 93 replicating, 53 setting up website, 281 workflows, 52 troubleshooting, 347 Business Process Services, 350 content transfer, 331 Rules Editor, 331, 352 Site Caching Services error threshold, 350 site publishing configuration, 350 translation workflow, 349 translation workflow configuration, 351 Web Publisher Editor, 331, 352 U updatexmlcontent, 124 updating XML structures, 122 to 123, 126 URL-safe characters, 97 user privileges, 24 users client capabilities, 20 creating, 19 user management, 19 V validating links, 69 templates, 146, 236 xml, 236 XML, 146 value matching, 147 Version permissions, 25 versions deleting, 28 views content, 246 layout, 246 Page Builder, 246 preview, 247 site, 247 W Watchfire WebQA, 69 WCM tracing, 334 wcm_auto_naming object model, 368 wcm_category object model, 370 wcm_change_set object model, 364 wcm_channel object model, 365 wcm_channel_fld object model, 367 wcm_config object model, 356 wcm_default_workflow object model, 371 wcm_doc_templates object model, 371 wcm_dynamic_content object model, 372 wcm_edition object model, 366 wcm_edition_fld object model, 367 wcm_editor_link object model, 377 wcm_ewebeditpro_link object model, 378 wcm_favorites object model, 353 388 Web Publisher Administration Guide
Index wcm_html_editor object model, 376 wcm_layout_templates object model, 372 wcm_link object model, 378 wcm_link_internal object model, 379 wcm_locale object model, 368 wcm_managed_link object model, 379 wcm_my_templates object model, 373 wcm_native_edit object model, 378 wcm_pb_template_blueprint object model, 380 wcm_process_workflow object model, 374 wcm_publishing_templates object model, 374 wcm_rules_editor object model, 377 wcm_rules_templates object model, 375 wcm_supporting_doc_folder object model, 368 wcm_template_thumbnail object model, 375 wcm_user_pref object model, 362 wcmbpsconfig.xml file Business Process Services, 76 wcmlifecyclemonitor, 348 WcmLog, 123 wcmmethods.jar file Business Process Services, 76 WcmMethods.jar file Business Process Services, 79 WDK tracing, 334 Web cabinets protection, 90 Web pages XSL stylesheet, 110 Web Publisher DocApp, 33 Web Publisher Editor attribute extraction, 142 comments, 143 dictionary, 283 formatted text, 352 HTML-based templates, 138 overview, 131 templates, 134, 141 troubleshooting, 331, 352 XML-based templates, 136 web services, 287 Web view, 88 to 89, 148 troubleshooting, 349 Web-safe characters, 97 WebQA, 69 websites, 98 See also sites configuration, 87 creating, 87 defining, 87 effective dates, 93 example protected site, 99 in-context editing, 313 multiple languages, 93 protection, 90, 98 publishing to multiple sites, 92 setting up, 98, 281 WIP created when item updated, 288 folder securities, 27 in workflow tasks, 62 portlets, 288 publishing, 99, 292 wizards instruction file, 126 Workflow Manager, 45, 51 workflows, 43 default, 43 dynamic performer values, 50 French translation, 47 mandatory, 43 method, 62 permission set, 43 request new content, 46 rules, 45 simple process, 51, 54 submit to Website, 46 task, 62 templates, 43 templates overview, 45 translate and submit to Web site, 48 translation, 52, 349 Web Publisher Administration Guide 389
Index translation configuration, 351 troubleshooting, 349, 351 Write permissions, 25 X XDQL Create_Dynamic_Content job, 133 dynamic content, 114, 132 XML based templates, 136 symbols, 141 updating structure, 114 updating structures, 122 to 123, 126 validating, 146 xselector elements Editor rules file, 211 filters, 221 samples, 219, 221 XSL, 244 common, 245 content, 246 layout view, 246 preview, 247 publish, 247 site view, 247 390 Web Publisher Administration Guide