IF fuori dalle viste

Il costrutto IF-ELSE-ENDIF può venire utilizzato in congiunzione con il nome di un campo, come nell'esempio qui sopra, o con il nome di una vista. Quando viene usato con una vista, il ramo IF verrà inserito nella pagina web se la vista seleziona almeno un record e il ramo ELSE se la vista non seleziona alcun record.

Per esempio, vediamo come creare un semplice motore di ricerca interno al nostro sito, che seleziona tutte le pagine di una sezione il cui titolo contiene una parola scelta dal visitatore.

  1. Creiamo una nuova Vista. Le diamo un nome a piacere e per etichetta scegliamo "motore_ricerca". Impostiamo la Vista perché selezioni in soli record il cui titolo contiene un valore scelto dal visitatore, che la pagina HTML passerà nel parametro search.
  2. Creiamo la interfaccia utente del motore di ricerca usando lo HTML. Ecco una proposta minimalista:
    <form action="showPage.php" method="post">
         <input type="hidden" name="template" value="articoli" />
         <input type="hidden" name="masterPage" value="trova.html" />
         <input type="text" name="search" size="30" />
         <input type="submit" name="Trova" />
    </form>
  1. Creiamo la pagina mastro "trova.html" destinata ad ospitare l'elenco di pagine trovate. Ecco una possibile implementazione:
    {IF motore_ricerca}

<p>Elenco dei prodotti il cui nome contiene la parola {search}:</p> {BEGIN motore_ricerca}

<p>{title}</p> {END motore_ricerca}

{ELSE motore_ricerca}

<p>Spiacente, nessun prodotto contiene la parola {search} nel nome.</p> {ENDIF motore_ricerca}

Se vogliamo inserire un link a ciascuna pagina trovata, la prima parte del nostro esempio diventa:

    {IF motore_ricerca}

<p>Elenco dei prodotti il cui nome contiene la parola {search}:</p> {BEGIN motore_ricerca}

<p><a href='showPage.php?template=prodotti&id={id}'>{title}</a></p> {END motore_ricerca}

{ELSE motore_ricerca}

eccetera.

Se vogliamo preparare una pagina che cerca la parola digitata dal visitatore in più sezioni del sito possiamo ottenete il risultato creando (al punto "1" di questo paragrafo) più viste. Ogni vista lavorerà su una sezione distinta: per esempio avremo una vista "motore_ricerca1" che opera sulla sezione "prodotti", una vista "motore_ricerca2" che lavora sulla sezione "risposte" e una vista "motore_ricerca3" che lavora sulla sezione "recall".

Al punto 3, nella pagina che mostra i risultati della ricerca, concateneremo le Viste.

    {IF motore_ricerca1}

<p>Elenco dei prodotti il cui nome contiene la parola {search}:</p> {BEGIN motore_ricerca1}

<p><a href='showPage.php?template=prodotti&id={id}'>{title}</a></p> {END motore_ricerca1}

{ENDIF motore_ricerca1}

{IF motore_ricerca2}

<p>Elenco delle risposte il cui titolo contiene la parola {search}:</p> {BEGIN motore_ricerca2}

<p><a href='showPage.php?template=risposte&id={id}'>{title}</a></p> {END motore_ricerca2}

{ENDIF motore_ricerca2}

{IF motore_ricerca3}

<p>Elenco dei recall il cui nome contiene la parola {search}:</p> {BEGIN motore_ricerca3}

<p><a href='showPage.php?template= recall&id={id}'>{title}</a></p> {END motore_ricerca3}

{ENDIF motore_ricerca3}