13.9.5 Layout::setBlockData()
La méthode setBlockData()
permet de spécifier les valeurs des balises
contenues dans les blocs (e.g. [BLOCK TAG]...[ENDBLOCK TAG]
) du template.
13.9.5.1 Description
void setBlockData ( string $blockTag, array $data = NULL )
13.9.5.1.1 Avertissements
Aucun.
13.9.5.2 Liste des paramètres
- (string)
tag
- Le nom de la balise du bloc à affecter. Le nom de la balise est spécifié
sans les crochets ouvrant (
[
) et fermant (]
). - (array)
data
- La liste des couples (
TAG
=>valeur
) à affecter dans le bloc.
13.9.5.3 Valeur de retour
Aucune.
13.9.5.4 Erreurs / Exceptions
Aucune.
13.9.5.5 Historique
Aucun.
13.9.5.6 Exemples
- Exemple #1
Fichier de template MOVIES/Layout/movies.xml
:
<ul> [BLOCK MOVIES] <li> <span class="movie_title">[MOVIE_TITLE]</span> (<span class="movie_date">[MOVIE_DATE]</span>) </li> [ENDBLOCK MOVIES] </ul>
Contrôleur :
$layout = new Layout("MOVIES/Layout/movies.xml"); $movies = array( array( 'MOVIE_TITLE' => htmlspecialchars('Star Wars: A New Hope'), 'MOVIE_DATE' => '1977' ), array( 'MOVIE_TITLE' => htmlspecialchars('Star Wars: The Empire Strikes Back'), 'MOVIE_DATE' => '1980' ), array( 'MOVIE_TITLE' => htmlspecialchars('Star Wars: Return of the Jedi'), 'MOVIE_DATE' => '1983' ) ); print $layout->gen();
13.9.5.7 Notes
Pour se prémunir de toute attaque du type XSS (Cross-site scripting) il vous faudra potentiellement échapper les valeurs en fonction du contexte dans lesquelles elles seront utilisés.
Par exemple, pour un fragment (ou un document) HTML il vous faudra utiliser la
méthode eSetBlockData()
ou la fonction PHP
htmlspecialchars()
afin d'échapper les caractères qui
pourraient être utilisés pour injecter du code HTML (ou JavaScript) dans le
résultat du template.
13.9.5.8 Voir aussi
- Méthode
Layout::set()