Utilização das Tags XSL Específicas do Lumis

Top  Previous  Next

Para facilitar a edição de XSL, o Lumis Portal contém algumas tags específicas que substituem muitas vezes um código XSL padrão mais extenso e complicado.

Observação


Para as tags específicas do Lumis funcionarem corretamente em seu XSL, deve-se adicionar a seguinte linha nos atributos da tag <xsl:stylesheet />:

xmlns:lum=”http://www.lumis.com.br/doui”, ficando portanto:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:lum="http://www.lumis.com.br/doui" version="1.0">

Isso indicará ao XSL tags do tipo <lum:XXXX /> podem ser utilizadas, onde XXXX determina o tipo de informação que a tag trará no layout final.

Algumas das tags que podem ser utilizadas na edição de arquivos XSL, apenas dentro do produto Lumis:

<lum:form />

É o mesmo que usar:

<xsl:template match="control[@type='lum_form']"> </xsl:template> (no lugar de <xsl:template match="/"> </xsl:template>) para o template principal do XSL.

É utilizado para XSLs de Lista para funcionamento da paginação. Isso porque para que a paginação funcione, é necessário que o formulário seja montado.

<lum:interfaceHeader />

Chama as informações do cabeçalho de uma interface, é o mesmo que usar:

<xsl:apply-templates select=" //control[@type='lum_interfaceHeader']" />  ou

<xsl:value-ofselect="//control[@type='lum_interfaceHeader']/ " />. Esta última forma insere automaticamente uma classe do portal.css para o texto do cabeçalho.

 

<lum:loop> </lum:loop>

Chama as informações cadastradas em uma interface administrativa, é o mesmo que usar:

<xsl:for-eachselect="//control[@type='lum_tabularData']/data/row"> </xsl:for-each>

 

<lum:details> </lum:details>

Chama as informações que chegam no XML de uma interface Detalhes, é o mesmo que usar:

<xsl:for-eachselect="//control[@type='lum_details']/data/row"> </xsl:for-each>

 

<lum:control type="controle_especifico" />

Chama as informações de um controle específico do XML da interface, os mais usados são:

<lum:control type="lum_filters" /> e <lum:control type="lum_pagination" />

Seria o mesmo que usar:

<xsl:apply-templatesselect="//control[@type='lum_filters']" /> e

<xsl:apply-templatesselect="//control[@type='lum_pagination']" />

 

<lum:field id="campo_especifico" />

Chama as informações de um campo específico do XML da interface, alguns exemplos são:

<lum:field id="title" />, <lum:field id="introduction" />, <lum:field id="publishStartDate" />, etc…

Seria o mesmo que usar, no caso do campo "title":

<xsl:value-of select="title" />
 

Observações


1. Quando o campo específico for um campo que aceita cadastro HTML, deve ser utilizado o atributo isHtml="true":

<lum:field id="content" isHtml="true" />. Desta forma, o atributo necessário para tais campos (disable-output-escaping="yes") será automaticamente inserido;

2.   Da mesma forma, quando o campo específico for uma imagem, deve ser utilizado o atributo isImage="true":

<lum:field id="introductionImage" isImage="true" />. Desta forma o código que monta a imagem será automaticamente inserido.

Usando as tags específicas do Lumis no código XSL apresentado no exemplo de Lista, temos o seguinte resultado (em negrito as alterações):

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lum="http://www.lumis.com.br/doui" version="1.0">

<xsl:import href="../../../../lumis/doui/style/DouiControls.xsl" />

<xsl:output omit-xml-declaration = "yes" method="xml" />

<lum:form>

   <div>

          <div><strong><lum:interfaceHeader /></strong></div>

          <br /><br />

          <lum:loop>

                 <div>

                       <a href="{@href}"><strong><lum:field id="title" /></strong></a>

                       (<lum:field id="publishStartDate/value" />)

                       <br />

                       <lum:field id="introductionImage" isImage="true" style="float:left;margin:0 6px 6px 0;" />

                       <lum:field id="introduction" isHtml="true" />

                </div>

                <br /><br />

       </lum:loop>

</div>

</lum:form>

</xsl:stylesheet>   

É evidente a redução de código XSL ao utilizar as tags Lumis.

No entanto, muitos desenvolvedores preferem não utilizar essas tags, principalmente quando já conhecem bastante de XSL e não querem ter de aprender mais tags específicas.

Essas tags são opcionais. São indicadas para quem está ainda aprendendo XSL e não estão habituadas as tags comuns.


Lumis Portal 6.2.0.120405
Copyright © 2006–2012 Lumis EIP Tecnologia da Informação LTDA. Todos os direitos reservados.