2010-03-28 6 views
0

J'ai transformé une classe PHP normale en une bibliothèque afin de pouvoir l'utiliser dans Codeigniter en tant que bibliothèque. Je peux le charger et appeler les fonctions dont j'ai besoin dans cette classe. Here is that class to help with the question.Appel de fonctions de modèle à partir d'une bibliothèque

Cependant, il y a plusieurs points où je dois appeler des fonctions dans ma classe. Ces fonctions résident dans le modèle qui a instancié ma classe. Comment puis-je faire cela car les appels actuels ne fonctionnent pas normalement. Voici mon code:


class Controlpanel_model extends Model { 

    var $category = ''; 
    var $dataa = 'a'; 

    function Controlpanel_model(){  

     parent::Model(); 

    } 

    function import_browser_bookmarks(){ 

     $this->load->library('BookmarkParser'); 
     /* 
     *In this function call to the class I pass 
     * what model functions exist that it should call 
     * You can view how this done by clicking the link above and looking at line 383 
     */ 
     $this->bookmarkparser->parseNetscape("./bookmarks.html", 0, 'myURL', 'myFolder'); 
     return $this->dataa; 

    } 

    function myURL($data, $depth, $no) { 

     $category = $this->category; 
     $this->dataa .= 'Tag = '.$category.'<br />'.'URL = '.$data["url"].'<br />'.'Title = '.$data["descr"].'<br />'.'<br /><br />'; 
    } 

    function myFolder($data, $depth, $no) { 

     $this->category = $data["name"]; 

    } 

} 

Merci à tous pour toute aide.

Répondre

2

Juste pour clarifier, vous avez des problèmes pour appeler les fonctions du modèle passées à votre bookmarkparser?

Au sein de votre bibliothèque, vous aurez besoin de référencer le modèle lui-même et il est des fonctions via:

// Based on the signature you provided 
parseNetscape($url, $folderID, $urlFunction, $folderFunction) { 
    get_instance()->Controlpanel_model->$urlFunction(); 
    get_instance()->Controlpanel_model->$folderFunction(); 
} 

Nous devons utiliser get_instance() puisque les bibliothèques ne héritent pas tous les goodies CI. Cela supposera que votre modèle a déjà été chargé. Je ne suis pas sûr de ce que vous rencontrez des problèmes, en référence à l'instance $ CI ou à l'appel dynamique de fonctions.

J'espère que c'est ce que vous cherchiez.

+0

Parfait - juste ce que je cherchais! – Abs

Questions connexes