Le fichier modèle (template) /application/views/templates/share.php
sert à l'affichage d'un composant HTML contenant de simples liens qui permettent de partager un contenu vers les réseaux sociaux ou de l'envoyer par email :
[...]
<a target="_blank"
title="Twitter"
href="https://twitter.com/share?url={current_url}&via={page_title}"
class="btn btn-outline-default btn-sm"
rel="nofollow"
onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=400,width=700');return false;">
<span class="fa fa-twitter" aria-hidden="true"></span>
</a>
[...]
Ce composant est utilisé dans la vue par défaut d'un contenu : /application/views/data/view.php
: vous pouvez en voir le résultat sur cette page. Dans son code, {current_url}
et {page_title}
sont respectivement remplacés par l'URL de la page qui l'inclut et par le titre de la page (ou le nom du contenu affiché).
Le chargement du composant s'effectue dans le contrôleur /application/controllers/Data.php
à l'aide des lignes suivantes :
//Quick view component to share content:
$view_data['page_title']=$this->view_data['label_data'];
$view_data['current_url']=current_url();
$this->view_data['share_component']=$this->load_component('share',$this->view_data);
Comme vous pouvez le voir dans cet exemple, la variable tableau $view_data
ne contient que les variables à substituer qui sont transmises à la méthode load_component()
pour générer le composant, tandis que la dernière ligne affecte le code résultant de l'appel à cette méthode à la variable tableau $this->view_data
qui sera elle-même ensuite transmise à la vue finale /application/views/data/view.php
.
Pour afficher le composant, le code suivant est placé dans cette vue :
<?=share_component;?>
La méthode générique qui sert à générer le composant (présente dans le contrôleur) consiste en :
//Charge un composant
function load_component($tpl='',$view_data=array()) {
//Parse and returns a template found under views/templates/ to provide a component usable in a view
$this->load->library('parser');
$view_component=@$this->parser->parse('templates/'.sanitizeFilename($tpl), $view_data,true);
if (isset($view_component)) {
return $view_component;
} else {
return '';
}
}
Vous pouvez facilement créer d'autres composants pour les contenus en utilisant les modèles et la méthode load_component()
pour en générer l'affichage.
Contrairement aux vues ordinaires, les modèles acceptent en plus des variables PHP des chaînes de substitution (placées entre {
et }
) qui seront remplacées par la valeur d'une variable du même nom. Cela produit un code HTML lisible.
Outre sa simplicité, le principal avantage de cette solution est de ne pas alourdir les pages en permettant d'externaliser le code des composants réutilisables.
Ce document a été publié le 2019-01-16 16:29:10. (Dernière mise à jour : 2019-01-31 23:02:22.)