Fork me on GitHub

Rapport de message :*
 

Integrer une nouvelle classe dans xoops 2.33

Titre du sujet : Integrer une nouvelle classe dans xoops 2.33
par daviddu54 sur 18/07/2009 00:23:56

Salut tous le monde,

Je cherche à découper la table users en 2 parties pour pas quelle sois trop lourde,j'ai donc creer une classe qui est le clone de la classe users mais ça ne fonctionne pas et aucune erreur est generée.

Voici le code :

table sql:
CREATE TABLE usersinfo (
  
uid mediumint(8unsigned NOT NULL auto_increment,
  
user_occ varchar(100NOT NULL default '',
  
bio tinytext,
  
user_intrest varchar(150NOT NULL default '',
  
PRIMARY KEY  (uid),
  
KEY uiduser_occ (uid,user_occ)
TYPE=MyISAM;
 
INSERT INTO `usersinfo` (`uid`, `user_occ`, `bio`, `user_intrest`) VALUES
(1'test user_occ''test bio''test user_intrest');



fichier kernel/userinfo.php (la classe userinfo):

class XoopsUserinfo extends XoopsObject{

    function 
XoopsUserinfo($id null){
        
$this->initVar('uid'XOBJ_DTYPE_INTnullfalse);
        
$this->initVar('user_occ'XOBJ_DTYPE_TXTBOXnullfalse100);
        
$this->initVar('bio'XOBJ_DTYPE_TXTAREAnullfalsenull);
        
$this->initVar('user_intrest'XOBJ_DTYPE_TXTBOXnullfalse150);
        
// for backward compatibility
        
if (isset($id)) {
            if (
is_array($id)) {
                
$this->assignVars($id);
            } else {
                
$member_handler =& xoops_gethandler('member');
                
$user =& $member_handler->getUserinfo($id);
                foreach (
$user->vars as $k => $v) {
                    
$this->assignVar($k$v['value']);
                }
            }
        }        
    }
        
        
    function 
user_occ($format="S")
    {
        return 
$this->getVar("user_occ"$format);
    }

    function 
bio($format="S")
    {
        return 
$this->getVar("bio"$format);
    }

    function 
user_intrest($format="S")
    {
        return 
$this->getVar("user_intrest"$format);
    }        
        
}        
        
        
        
class 
XoopsUserinfoHandler extends XoopsPersistableObjectHandler{
    function 
__construct(&$db
    {
        
parent::__construct($db"usersinfo"'XoopsUserinfo'"uid""user_occ");
    }
}



Le code ajouté au fichier kernel/member.php

var $_iHandler;


    function 
XoopsMemberHandler(&$db)
    {
        
$this->_gHandler = new XoopsGroupHandler($db);
        
$this->_iHandler = new XoopsUserinfoHandler($db);        
        
$this->_uHandler = new XoopsUserHandler($db);
        
$this->_mHandler = new XoopsMembershipHandler($db);
    }


    function &
getUserinfo($id)
    {
        if (!isset(
$this->_members[$id])) {
            
$this->_members[$id] =& $this->_iHandler->get($id);
        }
        return 
$this->_members[$id];
    }




Et j'ai tester l'affichage des informations dans les profils (userinfo.php) avec ce code.
$member_handler =& xoops_gethandler('member');
$thisUserinfo =& $member_handler->getUserinfo($uid);
$xoopsTpl->assign('lang_occupation'_US_OCCUPATION);
$xoopsTpl->assign('user_occupation'$thisUserinfo->getVar('user_occ'));
$xoopsTpl->assign('lang_interest'_US_INTEREST);
$xoopsTpl->assign('user_interest'$thisUserinfo->getVar('user_intrest'));
$xoopsTpl->assign('lang_extrainfo'_US_EXTRAINFO);
$var $thisUserinfo->getVar('bio''N');
$xoopsTpl->assign('user_extrainfo'$myts->displayTarea$var,0,1,1) );


Voila ca fait 2 jours que je suis coincer sur ca ,donc si vous savez pourquoi ca marche pas,n'hésitez à me le dire.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

70 Personne(s) en ligne (49 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 70 | Plus ...