Fonctionnement des modules Topic is solved

Support en français pour CMS Made Simple.

Moderator: jce76350

Post Reply
dhjapan

Fonctionnement des modules

Post by dhjapan »

Bonjour,
je me suis plongé dans CMSMS et j'essais de voir comment fonctionnent les Modules pour pouvoir créer les miens.
Pour ça j'utilise Module Maker pour créer la base de mon Module, et j'essais de m'inspirer du Module "News" qui est installé par defaut dans CMSMS et de 2/3 autres modules que j'ai telechargé...

J'essay donc actuellement de créer un module tout simple qui permettrai à l'admin d'uploader des fichiers pour ensuite les mettre à la disposition des visiteurs ...  un sorte de section "Goodies" quoi.

Quand on accède à l'admin j'ai bien une fonction DoAction() qui par defaut appel une autre fonction qui va générer une liste de fichiers enregistrés dans la base de données.. + un lien "Ajouter" ... j'ai preparrer un un formulaire avec les "CreateFormStart", "CreateFileUploadInput" dans une fonction etc...mais mon problème (et là vous allez peut être rire :)  ... ) c'est que je ne sais pas comment créer le "smarty" de mon lien "Ajouter" pour qui affiche ce formulaire.. pour l'instant j'ai fais :

Code: Select all

$this->smarty->assign('addlink', $this->CreateLink($id, 'Add', $return_id, "ADD"));
J'ai lu dans la doc API "string  $action: The action that this form should do when the form is submitted"... et donc ma question c'est :

C'est quoi cette "action" ? comme j'ai redigé mon "smarty" l'action s'appel "Add" ... mais c'est quoi ? c'est une fonction ? un fichier PHP ? c'est quoi le system qui fais qu'en cliquand sur le bouton je vais arrivé à mon formulaire ?

Ce que j'aimerai faire c'est exactement comme dans le module "News" ... quand on clique sur "Add article" on arrive sur une page avec un formulaire vierge ... mais j'ai beau regarder partout dans les fichier du Module "News" et j'arrive pas à comprendre ...

Voilà, j'espere que j'etais pas trop confus ... sinon dites moi j'essayerai d'éclaircir.

Merci pour votre aide. :)
dhjapan

Re: Fonctionnement des modules

Post by dhjapan »

:) j'ai trouvé ... "ADD" c'est le paramètre qui est passé à la fonction DoAction(); tout c'est éclaircie d'un coup.
User avatar
dam
Forum Members
Forum Members
Posts: 136
Joined: Sat Jan 14, 2006 6:07 pm

Re: Fonctionnement des modules

Post by dam »

Je te conseille plutot, pour chaque action, de créer un fichier spécifique.
Par exemple : action.default.php pour l'action par défaut à l'appel du module depuis une page
action.defaultadmin.php pour l'action par défaut dans l'interface d'administration

Ces fichiers sont détectés automatiquement par l'interface des modules. Et cela permet d'avoir un code plus propre.
dhjapan

Re: Fonctionnement des modules

Post by dhjapan »

Aaah ok c'est ca que j'avais pas du tout compris en regardant le code du module des News... Merci beaucoup pour le tuyau :)
dhjapan

Re: Fonctionnement des modules

Post by dhjapan »

Voilà j'ai bien créer un fichier pour chaque action,
par contre j'ai encore un problème, à chaque action j'ai l'erreure "Undefined variable: return_id in ..." à propos donc de la variable $return_id. Je n'arrive pas à voir pourquoi alors qu'elle n'as pas l'air non plus d'être defini dans le modules "News", j'ai cette erreure dans mon module et pas dans le module News ...
Quelle est le truc ?

Merci encore.
User avatar
dam
Forum Members
Forum Members
Posts: 136
Joined: Sat Jan 14, 2006 6:07 pm

Re: Fonctionnement des modules

Post by dam »

Je ne peux rien te dire sans connaitre ton code, je ne m'y connais pas assez peut-être
dhjapan

Re: Fonctionnement des modules

Post by dhjapan »

Théoriquement, fait quand on s'organise en gardant toutes les actions dans le même fichier, on à un fonction DoAction(); qui avec un "swicth case" appel la fonction qui correspond à l'action attendu... on a :

Code: Select all

function DoAction ($action, $id, $params, $returnid = -1)
{
   SWITCH CASE ICI, PUIS APPEL UNE FONCTION : NOM DE LA FONCTION( $id, $params, $returnid );
}
Ainsi la valeur de $returnid est défini au debut de la function DoAction(); ( = -1 ) puis se pertétue au fil des fonctions...

En revanche si je m'organise comme tu m'as dit avec un fichier pour chaque action, alors le function DoAction(); deviens inutile (c'est bien ca hein?)... et du coup la variable $returnid n'est jamais définie et c'est pour ca que j'ai une erreure à chaque action.
J'ai encore eppluché le module News et je ne vois pas où est defini la valeur de $returnid .. je trouve seulement ses 3 lignes commentées :

Code: Select all

/*
function DoAction($action, $id, $params, $returnid = -1)
{
	include_once(dirname(__FILE__) . '/DoAction.php');
}
*/
..mais je ne vois pas ce qu'elles peuvent vouloir dire.
dhjapan

Re: Fonctionnement des modules

Post by dhjapan »

Voilà,
en fait j'avais des $returnid par ci, et des $return_id par là, d'où l'erreure.
C'est sans doutes dû à des copier/coller depuis differents modules...

LE problème est résolut.
Merci encore.
Post Reply

Return to “French - Français”