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

×