vendredi 9 mars 2012

CHtml : créer des liens

Le framework Yii propose la classe CHtml, qui vous permettra facilement de générer du code HTML par l'intermédiaire des nombreuses méthodes statiques disponibles.

Pour commencer doucement, voyons comment rajouter simplement un lien hypertexte (une balise <a href="...">) avec la méthode CHtml::link


<?php
 // lien simple, vers l'action 'index' du controleur
 // 'site'. On note que le texte du lien ne sera PAS encodé
 // automatiquement par Yii ! .. il faudra nous même appeller
 // CHtml::encode().
 echo CHtml::link(
  '<b>texte du lien</b>',
  array('/site/index')
 );
 
 // L'URL de destination reste la même mais cette fois, on y
 // rajoute les paramètres 'param1' et 'param2'
 echo CHtml::link(
  'lien avec paramètres',
  array('/site/index',
   'param1'=>'valeur1',
   'param2'=>'valeur2'
  )
 );
 
 // On ajoute quelques attributs standards
 echo CHtml::link(
  'lien avec attributs',
  array('/site/index'),
  array(
   'title' => 'ceci est un message d\'info',
   'class' => 'class1 class2',
   'target'=> '_blank'
  )
 ); 
 
 // L'attribut 'confirm' ajoute une demande de confirmation
 echo CHtml::link(
  'lien avec confirmation',
  array('/site/index'),
  array('confirm'=> 'êtes vous sûr de vouloir visiter ce lien ?')
 );
 
 // L'attribut 'ajax' encapsule les fonctionnalités fournies par
 // la classe Ajax de JQuery. Lorsque ce lien est cliqué, le contenu
 // de la réponse (un fragment HTML par exemple) est placé dans
 // l'élément dont l'identifiant est défini par le paramètre 'update'.
 // (ici 'target')
 echo CHtml::link(
  'lien ajax',
  array('/site/index'),
  array('ajax'=> array(
   'update' =>'#target',
  ))
 );
?>
<div id="target"></div>
Pour constater le fonctionnement du dernier exemple, vous devrez bien entendu créer un élément (DIV par exemple) ayant pour identifiant target.

Pour en savoir plus, consultez la documentation de CHtml::link.



Aucun commentaire:

Enregistrer un commentaire