Utilização do controle lum_advancedTabularData
O controle lum_advancedtabularData está presente nas interfaces administrativas. Pelo fato do XML ser muito extenso, será exibido em dois blocos.
O controle lum_interfaceHeader monta o cabeçalho da interface, como já foi visto.
O controle lum_interfaceHeaderButtons monta os botões de administração: adicionar, editar, excluir e versões.
Segue abaixo, o segundo bloco:
O controle lum_advancedTabularData é semelhante ao controle da interface Lista, lum_tabularData, exceto pelo fato de trazer algumas informações importantes para uma interface Administração:
- Id: O id do controle lum_advancedTabularData é importante para que os checkboxes funcionem. Caso não funcionem, não será possível editar ou excluir nenhuma notícia já cadastrada;
- Fields: As tags dentro de
<fields />
trazem os campos que irão aparecer no cabeçalho da tabela na interface Administração. Como por exemplo: “Título” ou “Data” da Última Alteração.
No XSL apresentado abaixo, estão sendo chamados os templates de Filtros e Paginação, mas nesse caso eles não serão customizados. Eles já foram customizados nas seções anteriores.
- Foi utilizada a tag
<lum:form />
para reduzir o tamanho do código; - A tag
<xsl:variable name= "id"select="//control[@type='lum_advancedTabularData']/@id" />
é importante para que os checkboxes funcionem. Será chamada dentro deles no atributo name. No caso o atributo value chamando o campo “@primaryKey” também é importante para o seu funcionamento; - O controle lum_interfaceHeaderButtons foi chamado com
<xsl:apply-templates />
; e depois montado logo abaixo de<lum:form />
. Se os controles lum_filters ou lum_pagination fossem customizados, seriam também logo abaixo de<lum:form />
; - Atribuindo um
id="adminTable"
a tabela, fica fácil customizar todas as tags<tr>
e<th>
dentro do<thead>
(cabeçalho), usando o CSS declarado dentro de<style />
; - Quando for montado o portal é melhor inserir todo o CSS num arquivo externo, aplicado à páginas ou canais;
- Os campos do cabeçalho da tabela estão fixos. São chamados como no exemplo:
<xsl:value-ofselect="$fieldPath/field[@id='title']/@name" />
, sendo que a variável “fieldPath” foi declarada no início do código; - Finalmente, o loop de dados cadastrados com
<xsl:for-each select="//control[@type='lum_advancedTabularData']/data/row">
. Neste caso, o código é bem parecido com o funcionamento de um loop de Lista, como foi visto nas primeiras seções, com a diferença de uma interface Administração ter checkboxes.
Após a customização do XSL, a interface Administração ficará assim: