4. 4
Introdução
● Este workshop não é de introdução ao IBM Web Content
Management
● Necessário conhecimento básico de Programação Web (JSP,
HTML), IBM WebSphere Portal e IBM Web Content Management
● O projeto de um site com IBM WCM é similar ao de qualquer
outro site ou sistema Web. Algumas práticas mencionadas aqui
não são exclusivas do IBM WCM
6. 6
Melhores Práticas
● Antes de Iniciar
● Criação de Conteúdo
● Projetos
● Busca
● Syndication
● Performance
● Administração
● Explorando Assets
7. 7
Melhores Práticas: Antes de Iniciar
A importância do planejamento
● Planejar é perda de tempo?
● Planejar é uma conta que sempre teremos de pagar
● Planejar não é garantia de ter um produto de qualidade
● Em média apenas 30% dos projetos são entregues no prazo
8. 8
Melhores Práticas: Antes de Iniciar
No desenvolvimento do projeto, as seguintes áreas devem estar bem
documentadas:
● Necessidade de negócio, modelo operacional, objetivo inicial e a longo
prazo
● Usuários e seus objetivos
● Site Framework e arquitetura da informação
● Taxonomia
● Modelos de Workflow
● Arquitetura de Bibliotecas
● Definição de modelos de Autoria e Apresentação
* Não são especificos do Web Content Management, mas devem ser conhecidos antes de iniciar a
implementação do projeto
9. 9
Melhores Práticas: Antes de Iniciar
● Arquitetura de Deployment
● Modelo de Segurança
● Suporte a múltiplos idiomas e acessibilidade
● Requerimentos de Personalização
● Integração com outros produtos
● Busca
10. 10
Melhores Práticas: Antes de Iniciar
Gestão do conhecimento
● Manter os assets de projeto atualizados
● Disseminação da informação
✔ Descrição do projeto
✔ Membros e responsabilidades
✔ Documentos (arquitetura, técnicos, manuais, etc)
✔ Links internos e externos
✔ Detalhamento dos processos (Build, Deploy, Defects, ...)
✔ Cronograma
● Utilizar ferramentas de apoio
11. 11
Melhores Práticas: Antes de Iniciar
Por que ter um ambiente de autoria?
● Evitar inserir erros diretamente em produção
● Segurança, garantir que conteúdos críticos não serão acidentalmente
modificados
● Visualizar alterações antes de publicar
● Aprovar alterações antes de publicar
● Agendar quando alterações serão publicadas
12. 12
Melhores Práticas: Criação de Conteúdo
● Planejar a criação de conteúdo
Garantir que o Site terá conteúdo suficiente para testes e publicação
● Criar Grupos de acesso
Evitar assim adicionar acesso à usuários diretamente em conteúdo e
componentes
● Criar Bibliotecas de Conteúdo
Não é recomendado utilizar a biblioteca padrão. Ao invés disso crie
suas próprias bibliotecas
● Evitar espaços e caracteres especiais no nome de bibliotecas
Não nomear biblioteca com mesmo nome de um portal virtual
13. 13
Melhores Práticas: Criação de Conteúdo
● Use bibliotecas de forma eficiente
Por exemplo, divida seu site em uma biblioteca de conteúdo e outra
de componentes
● Ao criar bibliotecas, defina as permissões à biblioteca e tipos de
recurso
Para por exemplo, permitir criadores de conteúdo ver conteúdo e
ocultar deles todos recursos administrativos
● Quando mover conteúdo entre bibliotecas é recomendado usar a
função Mover
A função Mover irá atualizar qualquer referência ao item movido
14. 14
Melhores Práticas: Criação de Conteúdo
● Defina um padrão de nomenclatura para todos tipos de elementos
Ajuda a manter a organização e localizar facilmente elementos
● Considere a utilização de um prefixo de biblioteca
Quando trabalhando com mais de uma biblioteca
● Crie componentes reutilizáveis
Exemplos: header e footer, layouts de menu e navigator, javascript, …
● Use o componente CSS
Exemplo: Um campo Rich Text pode ser configurado para usar um
CSS
15. 15
Melhores Práticas: Criação de Conteúdo
● Use o Inline editing para editar e criar conteúdo diretamente na
página
É recomendado utiliza-lo apenas em ambiente de autoria para evitar
conflitos de syndication
● Defina conteúdo padrão para Site Areas
Considere bloquear o conteúdo padrão para prevenir ele de ser
excluído ou modificado
Se um conteúdo padrão não for definido, o primeiro conteúdo da Site
Area será exibido
● Evite um número excessivo de portlets Web Content View numa
mesma página
Matenha um número menor que 5, que está de acordo com as
melhores práticas do WebSphere Portal
16. 16
Melhores Práticas: Criação de Conteúdo
● Não utilize nomes longos (>50 caracteres) para Site Areas e Content
São utilizados na construção de URLs
● Não utilize IDs de elementos e espere integridade
IDs são ponteiros internos e podem ser atualizados
● Não modifique arquivos Java e JSP do produto
Não irá obter suporte e perderá as modificações quando aplicar um fix
ou atualização
17. 17
Melhores Práticas: Projetos
● Projetos agrupam alterações que
você e outros usuários estão
fazendo
● Itens de projeto são isolados do site
publicado e de outros projetos
● Itens individuais em um projeto não
são visíveis no site publicado até o
projeto inteiro ser publicado
● Todos itens de um projeto podem
ser pré-visualizados juntos antes da
publicação
18. 18
Melhores Práticas: Projetos
Mudanças em um site são isoladas das operações diárias
● Mude a estrutura e layout do site
● Adicione novas Site Areas
● Marque elementos de design ou conteúdo para exclusão
● Teste a apresentação dos elementos de design no contexto do site real
20. 20
Melhores Práticas: Busca de conteúdo
● Entender o que é requerido pela busca
✔ Qual conteúdo será buscado?
✔ Onde está armazenado?
✔ Quanto conteúdo existe e quais os formatos?
✔ Quais campos serão pesquisados?
✔ Qual formato da query?
✔ Como os resultados serão exibidos?
● Conhecer o perfil dos usuários
Não crie um sistema de busca avançado se seus usuários nunca irão
utilizar. A busca deve ser simples e fácil de usar
21. 21
Melhores Práticas: Busca de conteúdo
● Buscar conteúdo seguro
A segurança estará garantida desde que o acesso esteja definido
para Apenas usuários autenticados
● Considerar a utilização de ferramentas de busca externas
Se seus requerimentos de busca são extensos, é recomendado
integrar uma ferramenta de busca externa
● Não escreva um mecanismo de busca usando API só porque você
pode
Se o Portal não atende os requerimentos, considere uma ferramenta
externa antes de tentar usar a API
22. 22
Melhores Práticas: Syndication
● Configure servidores de Delivery como Subscribe Only
Interrompe tarefa de monitoramento que busca de itens para ser
sindicados
● Escolha o tipo Live Items quando sindicando para servidores de
produção
A menos que se tenha uma necessidade especifica, como conteúdo
podendo ser modificado diretamente em Delivery
● Permissões de acesso a bibliotecas não são
sindicados
Defina o acesso à biblioteca manualmente após a
primeira sindicância ou alterações subsequentes
23. 23
Melhores Práticas: Syndication
● Sindicar todas bibliotecas necessárias
Se um conteúdo na biblioteca A faz referência a um componente na
biblioteca B, ambas devem estar incluídas no mesmo syndicator
● Aumente a frequência de sindicância
Em ambientes de testes, por exemplo, 20 minutos ou mais pode ser
um intervalo mais apropriado
24. 24
Melhores Práticas: Performance
● Evite ter uma Homepage com tamanho superior a 80Kb
Verifique se todos componentes da página estão otimizados (imagens
com qualidade em 60%, css e javascript minificados, etc).
● Garanta que todos componentes de Menu e Navegação estão
otimizados
Evite vários critérios de busca
● Otimize Modelos de Autoria
Para um melhor desempenho, é recomendado limitar o número de
elementos (menor que 15)
● Garanta que os servidores LDAP estão otimizados
Uso de grande número de atributos e queries mal formadas degradam
a performance
25. 25
Melhores Práticas: Performance
● Garanta que o Portal Server está otimizado
JVM, Aplicativos rodando, etc
● Garanta que o HTTP Server está otimizado
Cache, compressão, etc
● Monitore e resolva todos erros encontrados nos logs do Portal
Excessões de aplicativos, segurança, componentes ausentes, etc
● Defina uma política de cache
Use Pre-Rendering, Servlet-Caching (ex. Dynacache) ou Web
Content Management Caching
26. 26
Melhores Práticas: Performance
● WCM Caching
A performance do WCM varia de acordo com o tipo de cache
selecionado
BASIC - É o tipo de cache mais simples, a primeira vez que a pagina
é renderizada pelo WCM é armazenada em cache e então todos
usuários irão acessar o mesmo conteúdo até que ele expire. Logo não
pode ser usado para site com conteúdos personalizados
SITE - Igual ao BASIC, exceto pelo fato que podemos usar connect
tags para sobrescrever o cache default. Não pode ser usado para site
com conteúdos personalizados
27. 27
Melhores Práticas: Performance
SECURED - Neste tipo de cache usuários que têm configurações de
grupo idênticas acessam os mesmos itens em cache. Recomendado
para sites personalizados onde acesso a diferentes páginas da Web e
componentes WCM são baseados em grupos
PERSONALIZED - Aqui usuários que compartilham o mesmo perfil de
personalização acessam os mesmos itens em cache. Recomendado
para sites que utilizam regras de personalização baseadas em perfis
USER - Para este cache, uma cópia de cada página que o usuário
visita é armazenada no cache de usuário. Recomendado quando não
podemos usar regras de personalização baseadas em perfis ou via
grupos de acesso
SESSION - Uma cópia de cada página que o usuário visita é
armazenado no cache de sessão. Possui pior performance de todos
os tipos de cache, não recomendado o uso, são ser que realmente
necessário
28. 28
Melhores Práticas: Performance
● Connect tag
Cache personalizado pode ser aplicado a componentes do WCM
dentro de modelos de apresentação para especializar o tipo de cache
<connect
SRV="cmpnt" PATH="/libraryname/Site/SiteArea/Content"
SOURCE="library" CMPNTNAME="TestNav" CONTENTCACHE="site"
EXPIRES="REL 9000s">
</connect>
29. 29
Melhores Práticas: Administração
● Tenha uma estratégia de backup ativa
Sempre teste o backup e restore e
verifique se todos itens estão no backup
●
● Monitore o site “Recommended fixes and updates for WebSphere
Portal”
Verifique a lista de fixes recomendados e teste antes de distribuir em
todos ambientes
● Otimize o banco de dados JCR
Periodicamente otimize índices e tabelas do banco que armazena
todos dados do Web Content Management
30. 30
Melhores Práticas: Administração
● Não habilite traces e deixe eles lá
Traces devem ser usados para monitorar pontualmente um
problema, sua ativação degrada a performance
● Monitore, Monitore, Monitore
Monitore uso de CPU, Memória, Rede e outros elementos dos
servidores LDAP, HTTP, Banco de Dados e WebSphere
31. 31
Melhores Práticas: Explorando Assets
● Por que reinventar da roda?
Muitos Assets disponíveis no site IBM Collaboration Solutions Catalog
● Exemplos de Assets voltados para WCM
✔ Content Template Catalog (CTC)
É um conjunto de melhores práticas e modelos que aceleram a
construção de um website
✔ IBM Support Tool for WCM
Inclui uma variedade de ferramentas que são úteis na solução de
problemas relacionados com conteúdo
✔ Web Content Manager Social Media Publisher
Extensão para WCM que permite às empresas promover o seu
conteúdo web em redes sociais (bem como fornecer algumas
estatísticas básicas sobre o conteúdo promovido)
33. 33
WCM e Java Server Pages: TagLib
● São utilizadas para ter acesso facilitado a componentes e conteúdos do
WCM
● Podem ser utilizadas no componente JSP ou em páginas JSP
Dentro de uma página JSP o suporte é incluído com o seguinte código:
<%@ taglib uri="/WEB-INF/tld/wcm.tld" prefix="wcm" %>
34. 34
WCM e Java Server Pages: TagLib
● InitWorkspace - Utilizado para inicializar a workspace
<wcm:initworkspace username=" " password=" " >
[Error Message]
</wcm:initworkspace>
● Explicit Context - Define explicitamente o contexto atual
<wcm:setExplicitContext wcmWebAppPath=" "
wcmServletPath=" " path=" " >
[Error Message]
</wcm:setExplicitContext>
35. 35
WCM e Java Server Pages: TagLib
● Context Retrieval - Define o contexto baseado numa localização na
forma de url
<wcm:setContext location=" " wcmWebAppPath=""
wcmServletPath="" param=" " >
[Error Message]
</wcm:setContext>
● libraryComponent - Renderiza o componente de uma biblioteca
<wcm:libraryComponent name=" " >
[Error Message]
</wcm:libraryComponent>
36. 36
WCM e Java Server Pages: TagLib
● content - Renderiza o conteúdo baseado no contexto atual
<wcm:content pageDesign=" " >
[Error Message]
</wcm:content>
● contentComponent - Renderiza o elemento de uma Site Area ou
Conteúdo atual
<wcm:contentComponent type=" " key=" " >
[Error Message]
</wcm:contentComponent>
Melhor prática:
- Se for adicionar suporte a múltiplos idiomas no tratamento de erros, considere o
uso de Java Resource Bundles
37. 37
WCM e Java Server Pages: Exemplo TagLib
<%@ taglib uri="/WEB-INF/tld/wcm.tld" prefix="wcm" %>
<html>
<head>
<title>Testando IBM Workplace Web Content Management JSP</title>
</head>
<body>
<wcm:initworkspace username=“wpsadmin" password="password" >
initworkspace falhou!<br>
</wcm:initworkspace>
<wcm:setExplicitContext path="Showcase/Showcase+Internal+Site/News/" >
Explicit Context falhou!<br>
</wcm:setExplicitContext>
38. 38
WCM e Java Server Pages: Exemplo TagLib
<wcm:libraryComponent name=“SC Menu News">
Component falhou!<br>
</wcm:libraryComponent>
<wcm:content>
Content falhou!<br>
</wcm:content>
<wcm:contentComponent type="content" key=“SC Body" >
Content Component falhou!<br>
</wcm:contentComponent>
</body></html>
40. 40
WCM e Java Server Pages: Remote Actions
● Approve, decline, delete, edit, read:
Exemplo, aprovar e rejeitar um item do workflow:
?wcmAuthoringAction=approve&docid=ID1
?wcmAuthoringAction=decline&docid=ID1&docid=ID2
● openmainview:
Usado para abrir uma janela com o portlet de autoria:
?wcmAuthoringAction=openmainview&view=contentbysitearea
Parametros:
contentbysitearea, contentbytitle, myrecentmydraft,
mypendingapproval, mypublished, myexpired, mydeleted,
alldraftitems, allexpireditems, allpublisheditems, alldeleteditems,
componentsbytype
41. 41
WCM e Java Server Pages: Remote Actions
● new:
✔ Usado para abrir o formulário de novo item:
?wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.*
Parametros: Nome das classes dentro do pacote
com.ibm.workplace.wcm.api.<Name>
✔ Para novo conteúdo é possível especificar o template de autoria:
wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_C
ontent?atid=ID
✔ Para novos Site Areas, Conteúdo e Categorias é possível especificar
o pai do novo item:
wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_S
iteArea?pid=ID
42. 42
WCM e Java Server Pages: Remote Actions
<table>
<tr><td>
<a href="?
wcmAuthoringAction=new&type=com.ibm.workplace.wcm.api.WCM_Content">
Criar novo Conteúdo</a>
</td></tr>
<tr><td>
<a href="?wcmAuthoringAction=openmainview&view=contentbytitle">
Abrir conteúdo por título</a>
</td></tr>
<tr><td>
<a href="?wcmAuthoringAction=openmainview&view=contentbysitearea">
Abrir conteúdo por site area</a>
</td></tr>
</table>
43. 43
WCM e Java Server Pages: Componente JSP
● Utiliza uma página JSP existente no
servidor
Pode conter TagLibs do WCM ou
código WCM API
● Podem ser integradas a qualquer
Template de Apresentação como
componente
44. 44
WCM e Java Server Pages: Componente JSP
Armazenando páginas JSP
✔ Para uso no Portlet de Autoria (como Pagina de Ativação, Editor de
Texto ou JSP para Template de Autoria)
<portal_server_root>/installedApps/PA_WCM_Authoring_UI/ilwwcm-
authoring.war/jsp/html
✔ Para uso genérico (em tema, portlets, etc), crie um WAR para
armazenar a página
Melhores práticas:
- A sindicância não irá mover as páginas JSP referenciadas em componentes
JSP
- Instalação de fixes pode remover arquivos JSP do portlet de Autoria
45. 45
WCM e Java Server Pages: Página de Ativação
● Criar um interface de autoria simples e com
as ações mais comuns
● Restringir acesso a estrutura da biblioteca de
conteúdo
● Pode utilizar TagLib, Remote Actions e
código Java
47. 47
WCM API: Introdução
A API publica do WCM é focada no processamento de conteúdo
● Bibliotecas de Conteúdo
Criar, Excluir, Mover ou copiar items entre bibliotecas
● Busca
Localizar itens por: nome ou tipo, conteúdo modificados a partir de
uma data, por template de autoria, categoria, caminho ou status de
workflow
● Recuperar itens por ID
● Criar, excluir e salvar os seguintes itens:
Content, Site Areas, File Resource, HTML, Image, Date and Time,
Link, Number, Style Sheet or User Selection
● Aprovar ou Rejeitar contéudo em um estágio de workflow
48. 48
WCM API: Obtendo Workspace
<%@ page import="com.ibm.workplace.wcm.api.*" %>
<%
// Declara Workspace e Inital Context
InitialContext ctx = null;
Workspace workspace = null;
// Recupera o servico WebContentService usando JNDI
WebContentService webContentService = (WebContentService)
ctx.lookup("portal:service/wcm/WebContentService");
//Obtem Workspace para o usuario autenticado
Workspace = webContentService.getRepository().getWorkspace();
//Trabalha com a workspace
…
%>
49. 49
● Outros metódos para obter Workspace
getSystemWorkspace()
Retorna a Workspace representando a visão do sistema
getAnonymousWorkspace()
Retorna a Workspace para um usuário anônimo
getWorkspace(java.security.Principal principal)
Retorna a Workspace para um usuário especifico
Melhor prática:
- Finalizar uma workspace apenas dentro de um JSP fora do WCM:
endWorkspace()
WCM API: Obtendo Workspace
50. 50
Melhor prática:
- Obter uma workspace do WCM é uma operação extensa, considere salvar a
workspace do usuário atual para melhor performance
<%@ page import="com.ibm.workplace.wcm.api.*" %>
<% // Cria WCM Workspace (ira salvar na sessao automaticamente) %>
<wcm:initworkspace user="<%= request.getUserPrincipal() %>" >
<%
// Obtem workspace armazenada na sessao
Workspace usersWorkspace = (Workspace)
pageContext.getAttribute(Workspace.WCM_WORKSPACE_KEY);
//Trabalha com a workspace
…
%>
WCM API: Usando cache
51. 51
Melhor prática:
- Também é possível armazenar a workspace usando um Sigleton
public static Workspace getSystemWorkspaceInstance(){
if(ws == null)
ws = getSystemWorkspace();
return ws;
}
Melhor prática:
- Coloque funcionalidades comuns dentro de um JSP ou classe utilitária. Assim
você poderá alterar funcionalidades comuns em apenas um lugar e refletir em
todos locais que o utilizam
WCM API: Usando cache
52. 52
WCM API: Criando conteúdo
● workspace.createContent – cria um novo objeto Content baseado
numa template de autoria e site area
Exemplo: Criando e salvando um conteúdo
...
//Cria um conteudo vazio
Content newContent = workspace.createContent(authoringTemplate,
parentSiteArea, null, ChildPosition.END);
//Define o nome do conteudo
newContent.setName("Travel - Be the first tourist on the moon");
//Salva do conteudo
workspace.save(newContent);
...
53. 53
WCM API: Localizando elementos
//Obtem biblioteca de documentos
DocumentLibrary documentLibrary = workspace.getDocumentLibrary("content");
//Define biblioteca de documento para trabalhar na sessao
workspace.setCurrentDocumentLibrary(documentLibrary);
//Recupera SiteArea pai
DocumentIdIterator parentIter = workspace.findByName(DocumentTypes.SiteArea, ”Travel");
DocumentId parentSiteArea = null;
if(parentIter.hasNext()) {
parentSiteArea = parentIter.nextId();
}
//Recupera o Template de Autoria
DocumentIdIterator authoringIter = workspace.findByName(DocumentTypes.AuthoringTemplate,
"Article");
DocumentId authoringTemplate = null;
if(authoringIter.hasNext()) {
authoringTemplate = authoringIter.nextId();
}
...
55. 55
WCM API: Busca de conteúdo
● workspace.contentSearch – retorna todos documentos que satisfazem
os critérios de busca
public com.ibm.workplace.wcm.api.DocumentIdIterator contentSearch
(com.ibm.workplace.wcm.api.DocumentId templateId,
com.ibm.workplace.wcm.api.DocumentId[] siteAreaIds,
com.ibm.workplace.wcm.api.DocumentId[] categoryIds,
java.lang.String[] keywords,
boolean matchAllKeys *)
* Opcional
● O método contentSearch() se comporta de maneira similar ao
componente de Menu
● Se Site Area forem especificadas, todos ascendentes e descendentes
serão incluídos
● A ordem dos resultados não é garantida
Melhor prática:
- Apenas utilizar contentSearch se não for possível usar o componente Menu
56. 56
WCM API – Outras opções de busca
Workspace.findContentByAuthoringTemplate
Workspace.findContentByCategory
Workspace.findContentByWorkflowStage
Workspace.findByType
Workspace.findContentByPath
Workspace.findContentModifiedBetween
Workspace.findContentModifiedSince
Workspace.findByPath
Workspace.findContentByWorkflowStage
57. 57
WCM API – Estendendo o uso da API
● Estender e integrar o Web Content Management com aplicações
externas via JMS (Java Messaging Service)
● Query API
● Rendering Plugin Extension Point
● Text Provider Extension Point
58. 58
WCM API – JMS & WCM
● Mensagens JMS podem ser publicadas para:
Autoria: Criar, Atualizar, Mover, Excluir
Sindication: Iniciar, Parar
Pre-Rendering: Iniciar, Parar
● Mensagens contem todas informações relevantes para eventos:
Atualizar Item:
ItemState Status do Item
DocId UUID do item que foi atualizado
DocName Nome do item que foi atualizado
DocType Tipo, nome da classe API do item
LibraryId Id da biblioteca que contem o item
LibraryName Nome da biblioteca que contem o item
59. 59
WCM API – Query API
● Criar queries escaláveis para qualquer item armazenado no WCM
● Resultados podem ser ordenados e paginados
Os seguintes parametros podem ser combinados para compor as queries:
Tipo do Item Criador Data Expiração
Id do Item Autor Data Publicação
Nome do Item Proprietário Workflow
Titulo do Item Modificado por Estágio Workflow
Biblioteca Criado Desde Status Workflow
Status Projeto Modificado Desde Palavras chaves
Categorias
● Resultados de uma query pode ser ordenado por:
Autor Titulo do Item Data Criação
Nome do Item Data Modificação
60. 60
WCM API: Exemplo de Query API
//Obtem QueryService a partir da Workspace e cria query
QueryService queryService = getWorkspaceInstance().getQueryService();
Query query = queryService.createQuery(Folder.class);
//Obtem biblioteca de documentos a ser pesquisada
DocumentLibrary library =
getWorkspaceInstance().getDocumentLibrary(“Biblioteca”);
//Define parametros de pesquisa
query.addSelector(Selectors.libraryEquals(library));
query.addSelector(HistorySelectors.modifiedSince(oneWeekAgo()));
query.addSort(Sorts.byDateModified(SortDirection.DESCENDING));
//Executa query e armazena resultados
ResultIterator results = null;
results = queryService.execute(query);
61. 61
WCM API – RenderingPlugin Extension Point
● Permite criar novos componentes de renderização
Java Web App que implementa RenderingPlugin e contem um
descritor plugin.xml
● Pode declarar plugins dentro de HTML ou campos RichText
[Plugin:{Nome do Plugin}]
● Plugins podem ter tags de abertura e fechamento e opcionalmente
renderizar conteúdos dentro da tag
[Plugin:{Nome do Plugin}]
[Component name=”Algum componente"]
[/Plugin:{Nome do Plugin}]
62. 62
WCM API – RenderingPlugin Extension Point
● Plugins podem ter múltiplos parametros. Parametros podem ter múltiplos
valores
[Plugin:{Nome do Plugin} param1=”val1” param2=”val2” param3=”val3”]
● O valor de um parametro pode ser o resultado de outra tag WCM
[Plugin:MyRenderingPlugin encode="false“ key="ARTICLE_1“
title="[Property context='current' type='content' field='title']"]
Exemplos de uso:
● Incluir vídeos
● Conteúdo dentro de conteúdo
● Integrar com uma ferramenta como Velocity
63. 63
WCM API – Text Provider Extension Point
● Permite a localização de campos na interface de autoria
Java Web App que implementa TextProvider e contem um descritor
plugin.xml
● Campos localizados são exibidos em formulários e exibições
● Campos que podem ser localizados
Elementos no Template de Autoria
Titulo de Exibição
Descrição
Campos de Ajuda
64. 64
WCM API – Quando usar JSP e API?
● Usar conteúdo dentro de outros portlets
● Acessar funcionalidades do Portal dentro do WCM
● Layouts não possíveis usando componentes padrões do WCM
● Importa conteúdo ou recurso Web de outras fontes
● Publicação automática de conteúdo do WCM
● Intregação de conteúdo com sistemas externos
● Enfim, quando quiser ir além do que o WCM oferece no portlet de autoria
65. 65
Informações adicionais
IBM Web Content Management Home Page
http://www.ibm.com/software/lotus/products/webcontentmanagement/
IBM Web Content Management Information Center documentation
http://www-10.lotus.com/ldd/portalwiki.nsf/xpDocViewer.xsp?
lookupName=IBM+Web+Content+Manager+7+Product+Documentation#action=
openDocument&content=catcontent&ct=prodDoc
Java doc for IBM Web Content Management 7 API
http://public.dhe.ibm.com/software/dw/lotus/portal_javadoc/7/lwcm/api-
javadoc/index.html
IBM Collaboration Solutions Catalog
https://greenhouse.lotus.com/catalog/
66. 66
Referências
● What’s NEW and HOT in Portal WCM 7 - Stuart Crump
● ICS TechTalk: Making Your Content More Social with IBM Web Content
Manager's Content Template Catalog v3 - Herbert Hilhorst, Chris Berry
● IBM Workplace Web Content Management: API Development Best
Practices - Herbert Hilhorst
● Best Practices for using IBM Workplace Web Content Management V6.0 -
David De Vos, Melissa Howarth