Panoramica e documentazione
In A-Parser, il motore di template Template Toolkit viene utilizzato per formattare query e risultati. Il motore di template consente di formare la stringa finale (ad esempio query o risultati) secondo le regole specificate nel modello. Template Toolkit offre molteplici funzionalità:
- Supporto per condizioni e cicli
- Supporto per variabili comuni (scalari), array e hash (array associativi)
- Supporto per metodi per le variabili (lunghezza della stringa, ricerca e sostituzione, dimensione dell'array...)
- Supporto per plugin e filtri (output e formattazione di data e ora, generazione di elementi HTML...)
Esempio di utilizzo del motore di template
Documentazione ufficiale di Template Toolkit
Un grande vantaggio di questo motore di template è la presenza di una documentazione completa in russo e inglese; di seguito sono riportati i link alle sezioni più importanti della documentazione:
- Introduzione - informazioni generali
- Sintassi - regole e stile di scrittura dei modelli
- Direttive - condizioni, cicli, filtri, plugin e macro
- Variabili - accesso e aggiornamento dei valori di variabili, array e hash
- Metodi virtuali - funzioni preimpostate per l'elaborazione di variabili, array e hash
- Plugin e Filtri - funzionalità avanzate del motore di template, A-Parser supporta i seguenti plugin:
- Date - per generare stringhe formattate con date
- Dumper - output del dump della struttura dati
- Format - per creare funzioni di formattazione basate sulla sintassi printf
- HTML - per creare elementi HTML ed eseguire l'escape del codice HTML
- Filter - per creare e utilizzare filtri definiti e accessibili tramite il caricamento del plugin
- Math - per utilizzare qualsiasi funzione matematica
- String - implementa metodi aggiuntivi per lavorare con le stringhe
- Table - per rappresentare i dati in forma tabellare
- URL - per costruire link
- Wrap - per formattare i paragrafi
- Iterator - per scorrere un set di dati. L'iteratore viene creato automaticamente in modo implicito dalla direttiva FOREACH. Questo plugin consente di creare un iteratore esplicitamente con un nome specificato
Esempi di utilizzo
Esempi di modelli utilizzati di frequente
Esempio di utilizzo del plugin Math
Selezionare casualmente un numero specificato di link:
[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]
Esempio di ciclo FOREACH
Visualizzare tutti i link e le loro posizioni dall'array $serp:
[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]
Esempio di ciclo WHILE
Visualizzare 5 anchor dall'array $serp, a partire dal terzo:
[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]
Esempio di condizione
Output di determinati dati a seconda del valore della variabile:
[% IF p1.totalcount < 1000;
query _ " - poco\n";
ELSIF p1.totalcount < 1000;
query _ " - normale\n";
ELSE;
query _ " - molto\n";
END %]