Posts tagged with “tutoriel”

Posted 2 years ago

CodeIgniter - afficher le résultat d’un formulaire validé avec succès

Salut,

Avec CodeIgniter, la validation de formulaires est assez simple grâce à la librairie Form_validation. Je reviendrai sur son utilisation dans la série de screencasts (sur laquelle je travaille).

Dans les exemples de CodeIgniter.com, ils créent une vue “success” pour chaque formulaire.

Pour ma part, je crée une seule vue “form_validated_view” (un truc comme ça qui dit ce que c’est).

Je fais appel à cette vue avec le paramètre suivant:

$data = array (“texte” => “Formulaire de login validé”, “redirect” => anchor(“contrôleur/methode,”texte du lien”));

La vue se charge ensuite de l’afficher selon un comportement unique, avec le texte et un lien de redirection.

Bien sûr, c’est à changer à sa convenance et ses besoins (pour par exemple mettre une redirection automatique après quelques secondes). Ca pourrait même faire l’objet d’une future amélioration de CodeIgniter x)

Rien de très compliqué (vraiment pas ! ^^), simplement une réponse à une question que je me suis posé, alors si ça peut aider :)

Posté le 13 January 2010.

Tags: #code igniter #php #technique #tutoriel - Comments

Posted 2 years ago

CodeIgniter - plugin de transformation d’une chaine en url

Salut,

Bien qu’il existe une fonction dans le helper url (la fonction url_title) permettant de transformer une chaîne de caractères en URL, j’ai réécris une fonction sous forme de plugin pour le faire.

Le gros problème de cette petite fonction c’est qu’une chaîne du type “j’étais tout ouïe” devient “jtais-tout-oue” au lieu de “jetais-tout-ouie”. J’avais besoin d’une fonction prenant en compte les accents (pour faire des jolies urls).

Jusqu’à présent le bout de code n’a pas posé de problème, si vous en trouvez n’hésitez pas à la modifier (et à me transmettre la modification :p).

La fonction retire aussi les caractères non-autorisés dans l’application (via la variable de configuration).

Le code en lui même n’est pas très propre, j’ai un peu de mal avec les regex mais bon, si ça marche….(j’aime pas dire ça en général, mais là, c’est des regex t_t)

Placez le fichier dans le dossier /systeme/application/plugins/

Pour le charger, c’est le classique: $this->load->plugin(‘string_to_url’);

Quant à l’utilisation, c’est la fonction string_to_url($chaine_a_transformer) : string (la chaîne transformée).

Le téléchargement, c’est par ici.

Posté le 13 January 2010.

Tags: #code igniter #technique #php #tutoriel - Comments

Posted 2 years ago

CodeIgniter - Intégrer facilement un header et un footer à toutes les pages de votre site

Salut,

Un des grands problèmes qui se posent (je pense qu’il se pose pour tout le monde) quand on commence avec CodeIgniter est “Comment fait-on pour ne pas avoir à réécrire le header et le footer à chaque fois ? D’habitude j’utilise des includes”.

Il existe pas mal de solutions, plus ou moins complexes sur le wiki officiel de CodeIgniter.

N’ayant pas vraiment cherché quand la question s’est posée pour moi, j’ai développé ma propre solution. Je la trouve flexible et conceptuellement juste (je peux me tromper :)) vis à vis du framework.

Le principe réside dans l’extension de la classe Controller et jouer avec le principe d’héritage des méthodes.

Pour l’exemple, nous utiliserons un contrôleur Blog.php dont la méthode index() affiche la liste des billets du blog en appelant la vue afficher_billets.

NB: veuillez m’excuser pour la forme, mais tumblr ne propose pas toutes les options de mise en page dont j’aurais besoin :p Je le referai peut-être sous forme d’un screencast !

  1. Je créé un fichier MY_Controller.php (assurez vous dans la configuration que le prefixe d’extension est bien MY_, il l’est par défaut) dans le répertoireapplication/libraries.
  2. Je fais hériter mon contrôleur Blog de MY_Controller et non plus de Controller:
    class Blog extends MY_Controller {
    function Blog() {
    parent::MY_Controller();

    }

    }

    N’oubliez pas de modifier le constructeur de Blog.php !
  3. Dans le fichier MY_Controller.php, j’écris deux méthodes:

    private function afficher_header() {

    $this->load->view(‘header’);

    }

    private function afficher_footer() {

    $this->load->view(‘footer’);

    }

  4. A présent, on crée les deux vues header.php et footer.php dans le répertoire application/views. Je vous laisse le soin de les remplir, généralement mon header contient les informations des balises <head> et l’ouverture de <body> ainsi que, pourquoi pas, le menu. Et mon footer, bah les informations légales et le blablabla habituel.
  5. Et maintenant, vous pouvez charger votre vue afficher_billets comme cela:

    $this->afficher_header();

    $this->load->view->(‘afficher_billets’,$data);

    $this->afficher_footer();

  6. Pour éviter de devoir écrire ces trois lignes à chaque fois (et d’en oublier par la même occasion) j’ai développé une méthode chargement_vue dans leMY_Controller:

    function chargement_vue($vue,$data) {
    $this->afficher_header();

    $this->load->view->($vue,$data);

    $this->afficher_footer();

    }

  7. Vous faites à présent appel à votre vue comme cela:

    $this->chargement_vue(‘afficher_billets’,$data);

Le premier intérêt de la méthode est que sur toutes vos pages vous aurez le header et le footer dès que vous ferez appel à une vue (après tout, c’était le but :p).

Le second intérêt c’est que vous pouvez réécrire les méthodes afficher_header()et afficher_footer() dans un contrôleur pour lui donner un comportement particulier pour certaines pages. Et tout ceci proprement.

N’hésitez pas à me faire part de vos remarques, qu’elles concernent le fond ou la forme !

Posté le 10 January 2010.

Tags: #code igniter #php #technique #tutoriel - Comments