Code de l’aide de vue

  1. <?php
  2. /**
  3.  *
  4.  * @author ndesaleux
  5.  *
  6.  */
  7.  
  8. class ND_View_Helper_Dico extends Zend_View_Helper_Abstract{
  9.  
  10. /**
  11.   * dico
  12.   *
  13.   * @param (array) $authorizedChar
  14.   * @param (string) $selected
  15.   * @param Zend_View $view
  16.   * @param (string) $sCharList
  17.   * @return string
  18.   */
  19.  
  20. public function dico(array $authorizedChar
  21. , $selected = null
  22. , Zend_View $view
  23. , $sCharList = 'ABCDEFGHIJKLMNOPQRSTUVWXZ0123456789-' ){
  24.  
  25. $this->setView($view) ;
  26. $oI18n = Zend_Registry::get('Zend_Translate');
  27. $sListing = '' ;
  28. for($i = 0,$len=strlen($sCharList); $i<$len; $i++){
  29. $char = $sCharList{$i} ;
  30. if ( in_array($char, $authorizedChar) ){
  31. if ( $char == $selected ){
  32. $sListing .=
  33. '<li class="selected_dico">'
  34. .$this->view->makelink($char,
  35. 'letter' =>$char
  36. )
  37. )
  38. .'</li>' ;
  39. }else{
  40. $sListing .= '<li>'.$this->view->makelink(
  41. $char,
  42. 'letter' =>$char
  43. )
  44. )
  45. .'</li>' ;
  46. }
  47. }else{
  48. $sListing .= '<li>'.$char.'</li>' ;
  49. }
  50. }
  51.  
  52. return preg_replace('#/page/[0-9]+#','',
  53. '<ul class="dico">
  54. <li>'
  55. '#/letter/.{1}#'
  56. ,''
  57. ,$this->view->makelink($oI18n->_('Init'))).'
  58. '.$sListing.'
  59. </ul>' );
  60. }
  61.  
  62.  
  63. }

Exemple d’utilisation

  1. <?php
  2. $allowC = array('A', 'C');
  3. echo $this->dico($allowC, 'A', $this, 'ABCD');

Résultat

  1. <ul class="dico">
  2. <li><a href="/mon/lien/vers/letter/A">A</a></li>
  3. <li>B</li>
  4. <li class="selected_dico"><a href="/mon/lien/vers/letter/D">D</a></li>
  5. <li>D</li>
  6. </ul>

On obtient donc un listing d’item donc seule les items authorisés sont liés (Pour l’instant, cela ne marche que pour les listes de caractères)