Utilização do controle lum_details
Generalizando, não são muitas as diferenças entre um XML da interface Lista (lum_tabularData) e de uma interface Detalhes (lum_details). Entre elas estão:
- Não existem links no XML da interface Detalhes, portanto não é necessário utilizar a tag
<a>
no XSL; - Não há uma lista de itens cadastrados, pois sempre chegará apenas uma
<row />
dentro de um<data />
; - Apesar do controle lum_interfaceHeader (cabeçalho) chegar no XML, provavelmente, dependendo da solução, não será utilizado no XSL;
- A tag referente a imagem é a
<contentImage />
para ser atribuída uma imagem junto ao conteúdo. Pode-se também utilizar a tag<introductionImage />
para exibir uma imagem junto a introdução. Esta última não foi utilizada no exemplo de interface Detalhes; - Tem-se o campo
<content />,
que traz o texto do campo conteúdo do item cadastrado.
O XSL para tratar o XML da interface Detalhes pode ser da forma a seguir:
Apesar de na interface Detalhes chegar somente um único <row / >
dentro de <data />
, foi utilizada a tag <xsl:for-each />
, pois esta facilita a chamada de itens dentro do loop, já na hierarquia correta.
Outra opção, caso não seja utilizada a tag <xsl:for-each />
é:
<xsl:value-of select="//control[@type='lum_details']/data/row/XXXX" />
- Onde XXXX é o nome do campo (ex: title, content, etc… )
Pode-se também criar uma variável no XSL, dentro de <xsl:template />
:
<xsl:variable name= "path" select="//control[@type='lum_details']/data/row" />
A partir da variável acima, cada campo seria chamado da seguinte forma:
<xsl:value-of select="$path/title" />
Substituindo as tags normais no XSL acima, pelas tags específicas do Lumis, tem-se o seguinte código:
Verifique que no lugar de <xsl:for-each />
foi utilizado <lum:details />
e não <lum:loop />
. A tag <lum:form />
não deve ser utilizada no XSL da interface Detalhes.
O layout da interface de Detalhes com aplicação deste XSL ficará assim:
Para incrementar este layout, basta criar classes CSS e aplicar no XSL customizado, nas tags <div />
.