Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
slam4:php:codeigniter:helpers [2012/12/08 17:41] – [Création d'un Helper personnalisé] jcheron | slam4:php:codeigniter:helpers [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== Helpers ====== | ====== Helpers ====== |
<html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter" class="wikilink1" title="slam4:php:codeigniter"><< Introduction à CodeIgniter</a></div></html> | <html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter" class="wikilink1" title="slam4:php:codeigniter"><< Introduction à CodeIgniter</a></div></html><html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:libraries" class="wikilink1" title="slam4:php:codeigniter:libraries">Bibliothèques >></a></div></html> |
| |
| - [[slam4:php:codeigniter|Introduction à CodeIgniter]] |
| - Helpers |
| - [[slam4:php:codeigniter:libraries|Bibliothèques]] |
| - [[slam4:php:codeigniter:session|Sessions CodeIgniter]] |
| - [[slam4:php:codeigniter:validation|Validation des formulaires]] |
| - [[slam4:php:codeigniter:orm|ORM IgnitedRecord]] |
| - [[slam4:php:codeigniter:doctrine|Doctrine]] |
| - [[slam4:php:codeigniter:javascript|Javascript et codeIgniter]] |
| |
==== helper url ==== | ==== helper url ==== |
- [[http://ellislab.com/codeigniter/user-guide/general/urls.html| URLs codeIgniter]] | - [[http://ellislab.com/codeigniter/user-guide/general/urls.html| URLs codeIgniter]] |
| |
Le helper url permet de gérer plus facilement les urls codeIgniter : | Le helper **url** permet de gérer plus facilement les urls codeIgniter : |
| |
^Fonction ^Paramètres ^Rôle ^ | ^Fonction ^Paramètres ^Rôle ^ |
Nous allons créer un helper permettant d'accéder plus facilement aux ressources du dossier **assets**, qui contient les css, les images, les fichiers javascript... | Nous allons créer un helper permettant d'accéder plus facilement aux ressources du dossier **assets**, qui contient les css, les images, les fichiers javascript... |
| |
<code php |h application/helpers/assets_helper.php> | <sxh php;title:application/helpers/assets_helper.php> |
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); |
| |
} | } |
?> | ?> |
</code> | </sxh> |
| |
Il suffit ensuite d'activer le helper dans autoload.php : | Il suffit ensuite d'activer le helper dans autoload.php : |
</div></html> | </div></html> |
| |
| ===== Surdéfinition d'un Helper codeIgniter ===== |
| |
| Vérifier la valeur de subclass_prefix dans le fichier config/config.php : |
| <code php> |
| $config['subclass_prefix'] = 'MY_'; |
| </code> |
| |
| La surdéfinition d'un helper existant permet de modifier le comportement des fonctions du helper prédéfinies. |
| ==== Exemple ==== |
| Surdéfinition du helper **url** et modification de la fonction **site_url** : |
| |
| |
| |
| <html><div class="note"> |
| Le fichier helper surdéfinit doit être enregistré dans le dossier <b>helpers</b> de l'application, et son nom doit commencer par le <b>subclass_prefix</b> devant le nom du helper à modifier. |
| </div></html> |
| |
| La surdéfinition du helper url sera donc enregistrée sous **application/helper/MY_url_helper.php** |
| |
| |
| **Surdéfinition de la fonction site_url :**\\ |
| Cette fonction prend en paramètre soit un String, soit un tableau :\\ |
| **Exemples :** |
| |
| * site_url("test");->http://localhost/testPhp/test |
| * site_url(array("test","page"));->http://localhost/testPhp/test/page/ |
| |
| Nous voulons qu'elle puisse prendre plusieurs arguments de type String, pour obtenir le résultat suivant :\\ |
| * site_url("test","page");->http://localhost/testPhp/test/page/ |
| |
| <sxh php ;title:MY_url_helper.php> |
| function site_url($uri = '') |
| { |
| if( ! is_array($uri)) |
| { |
| //paramètres de la fonction mis dans un tableau |
| $uri = func_get_args(); |
| } |
| |
| // fonction d'origine |
| $CI =& get_instance(); |
| return $CI->config->site_url($uri); |
| } |
| </sxh> |
| |
| <html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter" class="wikilink1" title="slam4:php:codeigniter"><< Introduction à CodeIgniter</a></div></html><html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:libraries" class="wikilink1" title="slam4:php:codeigniter:libraries">Bibliothèques >></a></div></html> |