2012-01-16 6 views
0

J'utilise la classe de session codeigniter (autoload). Comment puis-je initialiser les valeurs? J'ai besoin de cela parce que je veux initialiser la langue par défaut.Comment initialiser les données de session codeigniter?

Cordialement ...

+0

http://codeigniter.com/user_guide/libraries /sessions.html –

+0

Je connais le guide de l'utilisateur. Mais où définir les valeurs initiales d'une session si je l'utilise via autoload? Je ne veux pas les initialiser dans chaque contrôleur! – fillibuster

+0

Ah, je n'ai pas compris la question avant. Je reçois ce que tu veux maintenant. Vous pouvez utiliser un crochet pour le faire. Donnez-moi une seconde pour écrire une réponse. –

Répondre

3

Pour charger initialiser les données dans votre session, vous pouvez utiliser hooks.

Vous pouvez utiliser un crochet post_controller_constructor (dans le crochet pre_controller, la session n'est peut-être pas encore chargée).

Ouvrez config/hooks.php et ajoutez ceci:

$hook['post_controller_constructor'][] = array(
           'class' => 'SessionData', 
           'function' => 'initializeData', 
           'filename' => 'SessionData.php', 
           'filepath' => 'hooks', 
           'params' => array() 
           ); 

Et puis dans le dossier hooks faire un fichier appelé SessionData.php contenant les éléments suivants:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class SessionData{ 
    var $CI; 

    function __construct(){ 
     $this->CI =& get_instance(); 
    } 

    function initializeData() { 
      // This function will run after the constructor for the controller is ran 
      // Set any initial values here 
      if(!$this->session->userdata('language')){ 
      $this->CI->session->set_userdata('language', 'English'); 
      } 
    } 
} 
?> 
+0

super, merci – fillibuster

+0

De rien :-) –

Questions connexes