C'est pas compliqué, mais faut juste tout faire dans l'ordre.
Je dois malheureusement partir et ne serai de retour que demain.
Si tu n'as pas de réponse, je te mettrai (j'essayerai) de te mettre un code plus détaillé, mais en attendant :
- Comment gères-tu tes accès à ta table "xoops_table" ? En passant le nom n'est pas bon, car tu devrais normalement (si tu veux respecter les conventions de nommage) avoir le nom de ton module dans le nom de ta table :
- ex.: mymodule_mytable, donc dans ton cas, cela pourrait être :
-> userpoint_config (il me semble que c'est userpoint, mais je peux me tromper).
Donc à partir de là, moi j'accéderai à cette table via les deux classes XoopsObject et XoopsObjectHandler (
doc)
Donc pour créer l'ObjectHandler :
Tu crées une classe (fichier php), dénommé class/configHandler.php
class userpointConfigObj extends XoopsObject
{
function userpointConfigObj()
{
$this->initVar('uid', XOBJ_DTYPE_INT, 0, false);
$this->initVar('actifnewbb', XOBJ_DTYPE_INT, 0, false);
$this->initVar('actifsmartsection', XOBJ_DTYPE_INT, 0, false);
...
function getConfig_actifnewbb($id = 0) {
return $this->get($activenewbb);
}
...
Dans cette classe tu crée le constructeur (function userpointConfigObj() et tes fonctions te permettant d'écrire ou de lire tes données, dont celle de l'exemple :
function getConfig_getactifnewbb()
Ensuite c'est selon tes besoins et souhaits.
Dans ton cas, il s'agit en fait de configurer si tel ou tel module doit enregistrer de points, donc ta table n'aura qu'un enregistrement. Par conséquent ce fichier affichera directement les valeurs contenues dans ta table. C'est bien c'est plus simple. par contre tu devras gérer les données saisies/modifièes avec l'envoi du formulaire
Pour cela je mettrai une variable $_GET 'op'. Si 'op' est défini, alors tu dois gérer les données, sinon tu affiches bêtement le formlaire
Donc ce fichier devra :
- Vérifier si 'op' exist et éventuellement sa valeur (op='submit')
- Si 'submit' alors je modifie mes valeurs de ma table
- Sinon j'affiche mes valeurs actuelles. De toute façon, tu affichera ton formulaire avec les valeurs actuelles,mais s'il y a eu modification, car l'utilisateur doit pouvoir à nouveau modifier ces valeurs
Donc pour cela utilise un instruction switch()/case
Passons à l'affichage du formulaire maintenant avac ta valeur pour 'activenewbb'. Pour cela reprends mes précédent post :
$configObjHandler = xoops_getmodulehandler('userpointConfigObj', 'userpoint');
$configObj = $configObjHandler->getConfig_activenewbb($_POST['uid']);
et après tu crée ton formulaire, puis tu affiches quand tu veux la ligne concernant l'activation du module Newbb
$form->addElement(new XoopsFormRadioYN('Activation du module Newbb', 'activenewbb', ($configObj->getConfig_activenewbb('uid')==1) ? 1 : 0));
Voilà, je sais pas si c'est plus clair et j'espère ne pas avoir écrit de boulette.
Sinon cette semaine, je vais écrire la partie 'Accès au données avec XoopsObject et XoopsObjectHandler dans ma section de tuto (voir signature) et tu auras un exemple complet.
Bonne chance
A+