Fork me on GitHub






Integrer une nouvelle classe dans xoops 2.33
Régulier
Inscrit: 27/02/2005 12:24
De longwy(54)
Messages: 425
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.

Posté le : 18/07/2009 00:23

Marre des sites de rencontre payants? alors vient t'inscrire sur I seek you
http://www.iseekyou.fr
Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Integrer une nouvelle classe dans xoops 2.33
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
Salut,

Aurais tu un mode debug a fournir?
Car a première vue ca semble bon.

Posté le : 18/07/2009 01:01
Partager Twitter Partagez cette article sur GG+
Re: Integrer une nouvelle classe dans xoops 2.33
Régulier
Inscrit: 27/02/2005 12:24
De longwy(54)
Messages: 425
Le mode debug n'affiche aucune erreur,apparement la classe est bien reconnue par xoops car si je change le nom ca plante,par contre elle ne renvoie aucun resultat,et aucune requete est executée.

Peut etre qu'il y a d'autres fichiers à modifier?

Posté le : 18/07/2009 01:20

Marre des sites de rencontre payants? alors vient t'inscrire sur I seek you
http://www.iseekyou.fr
Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Integrer une nouvelle classe dans xoops 2.33
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
Bon je suppose que tu as bien intégrer ta classe en haut de member.php

require_once XOOPS_ROOT_PATH.'/kernel/userinfo.php';


Sinon pour la fonction, j'utiliserai plutot ca

function &getUserinfo($id)
    {
        return 
$this->_iHandler->get($id);
    }

Posté le : 18/07/2009 10:26
Partager Twitter Partagez cette article sur GG+
Re: Integrer une nouvelle classe dans xoops 2.33
Régulier
Inscrit: 27/02/2005 12:24
De longwy(54)
Messages: 425
Salut muss,

Genial c'était bien la fonction "get" le probléme.

Posté le : 18/07/2009 21:22

Marre des sites de rencontre payants? alors vient t'inscrire sur I seek you
http://www.iseekyou.fr
Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Integrer une nouvelle classe dans xoops 2.33
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
De rien

Posté le : 19/07/2009 11:29
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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