Open the menu

    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:

    using_lum_advancedtabulardata_control_001