Como eu identifico condicionalmente variáveis SSI indefinidas usando o Apache?

2

Eu quero incluir um cabeçalho em várias páginas, assim:

header.html :

<html>
  <head>
    <title>My site</title>
  </head>

Para ativar um título específico da página, estou tentando usar uma variável SSI definida em cada página:

page1.html :

<!--#set var="TITLE" value="first page" -->
<!--#include file="header.html" -->

Depois, estou modificando header.html para usar essa variável:

<title>My site - <!--#echo var="TITLE" --></title>

Isso funciona bem, mas, claro, tem o efeito infeliz que, se TITLE não estiver definido, o resultado é:

<title>My site - (none)</title>

Por isso, estou tentando várias tentativas condicionalmente de echo ing dessa variável, dependendo se ela é none ou não (por exemplo, <!--#if expr="TITLE != \(none\)" --> ... <!--#endif--> ) ... mas nada parece funcionar.

Parece que isso seria um requisito bastante comum. Alguém tem uma referência a uma solução de trabalho?

    
por Bobby Jack 01.08.2011 / 14:17

3 respostas

0

OK, resolvi sozinho. Para referência de outros:

<!--#if expr="${TITLE}!=''" -->

é a sintaxe correta a ser usada. Faz sentido que você não precise verificar "(nenhum)", pois o valor do texto indefinido pode ser configurado; Eu só não percebi que isso ocorreu depois de verificar o valor, não antes.

    
por 01.08.2011 / 14:34
2

Para o Apache 2.4, as expressões foram alteradas:

<!--#if expr="-z v('CONTENT_LANGUAGE')"-->
<!--#set var="CONTENT_LANGUAGE" value="en"-->
<!--#endif-->
    
por 25.10.2016 / 06:04
0

Eu usei isso com sucesso:

<!--#if expr="! $CONTENT_LANGUAGE" -->
<!--#set var="CONTENT_LANGUAGE" value="en" -->
<!--#endif -->
    
por 12.04.2012 / 21:43