|
|
|
Materia tags
(T:CONT) Posicionamento de conteúdo no template Indica local onde a matéria será inserida no template, formando uma página final do site. O template deve necessáriamente ter este tag. Exemplo: <template:content /> (MA:INC) Inclusão de matéria Inclui uma matéria indicada por seu ID em local especificado na matéria em edição. O atributo useTemplate indica se o template será ou não incluído juntamente com a matéria. Utilize o assistente Exemplos: <materia:include id="1001" usetemplate="false" /> <materia:include id="1002" usetemplate="true" /> (MA:TIT) Lista o título de uma matéria Retorna o título de uma matéria, referenciada por seu ID ou alias. Utilizado principalmente em listagens automáticas. Exemplos: <materia:title id="1001" /> <materia:title alias="/alias" /> onde "1001" é o ID de uma matéria e "/alias" o alias de uma segunda matéria. (MA:LIST) Listagem automática de matérias Lista as matérias de um diretório, retornando atributos das matérias. A listagem é especialmente útil para criar navegações automatizadas e listagens de notícias, entre outras aplicações. O tag listchildren é qualificado pelos seguintes atributos: • materiaid : número ID da matéria cujas filhas serão listadas; padrão = "false" • var : nome de variável opcional; padrão = "materia" • ordering : ordenação da listagem (id, date, index, reference, title):(asc, desc); padrão = "false" • max : número máximo de matérias filha a serem listadas; padrão = "false" • offset : lista a partir do offset estipulado (primeira matéria + offset); padrão = "false" • statusvar : variável de controle de loop de iteração; padrão = "false" • followredirect : seguir direcionamento da matéria materiaid ; padrão = "true" Exemplo 1: Lista simples Operação: Listar as filhas da matéria de ID "2" em ordem ascendente do fator de ordenação (definido nos detalhes da matéria). A listagem retorna o título da matéria. <materia:listchildren materiaid="2" ordering="index:asc"> <materia:title id="${child.id}" /> <br /> </materia:listchildren> Criando menus dinâmicos com o listchildren O exemplo acima demonstra como criar uma lista de titulos de matérias. O listchildren é especialmente útil para criar menus dinâmicos, que são montados de acordo com a estrutura de matérias. Você pode transformar a lista do primeiro exemplo em um menu, simplesmente adicionando links para as matérias correspondentes, como descrito a seguir. Exemplo 2: Menu simples Operação: Listar as filhas da matéria de ID "2" em ordem ascendente do fator de ordenação (definido nos detalhes da matéria). A listagem retorna o título da matéria com link automático para seu ID. Descrição: A variável $child.id retorna o ID que constitui o link para a matéria correspondente. <materia:listchildren materiaid="2" ordering="index:asc"> <a href="/${child.id}" > <materia:title id="${child.id}" /> </a><br /> </materia:listchildren> Exemplo 3: Menu com estado de link selecionado (on) e não-selecionado (off) Operação: Listar as filhas da matéria de ID "2" em ordem ascendente do fator de ordenação. Caso a matéria corrente seja uma das filhas, aplica um negrito no título. Caso contrário, gera um link para a matéria. Descrição: O método child.checkPath compara o caminho da matéria listada com o caminho solicitado pelo visistante (requestedPath) . Caso o resultado seja verdadeiro, ou seja, a matéria corrente é também a matéria listada, o bloco definido no tag de operação <c:when /> é retornado. Caso contrário, o bloco definido no tag de operação <c:otherwise /> é retornado. Somente uma matéria, a atual, estará no caminho solicitado (requestedPath) , o que permite aplicar um estilo diferenciado para o item do menu desta matéria. <materia:listchildren materiaid="2" ordering="index:asc"> <c:choose> <c:when test="${child.checkPath(requestedPath)}"> <b><materia:title id="${child.id}" /></b><br /> </c:when> <c:otherwise> <a class="bar" href="/${child.id}"> <materia:title id="${child.id}" /> </a><br /> </c:otherwise> </c:choose> </materia:listchildren> Exemplo 4: Menu de múltiplos níveis Operação: Listar as filhas da matéria de ID "2" e suas filhas de segundo nivel em ordem ascendente do fator de ordenação. Aplicar teste para verificar se a matéria solicitada é a matéria corrente. Descrição: O listchildren pode ser aninhado dentro de outro para construir menus de múltiplos níveis. O mesmo teste do exemplo 3 é aplicado para definir estilos diferentes, conforme o nível em que se encontra a matéria. Perceba que para cada link é definido um estilo css diferente, conforme o nível da matéria e seu estado. <materia:listchildren materiaid="2" ordering="index:asc"> <c:choose> <c:when test="${child.checkPath(requestedPath)}"> <a href="/${child.id}" class="nivel1On"><materia:title id="${child.id}" /></a><br /> <materia:listchildren materiaid="${child.id}" ordering="index:asc"> <c:choose> <c:when test="${child.checkPath(requestedPath)}"> <a href="/${child.id}" class="nivel2On"> <strong><materia:title id="${child.id}" /></strong> </a><br /> </c:when> <c:otherwise> <a href="/${child.id}" class="nivel2Off"> <strong><materia:title id="${child.id}" /></strong> </a><br /> </c:otherwise> </c:choose> </materia:listchildren> </c:when> <c:otherwise> <a href="/${child.id}" class="nivel1Off"> <strong><materia:title id="${child.id}" /></strong> </a><br /> </c:otherwise> </c:choose> </materia:listchildren> |
||