Fork me on GitHub




(1) 2 »


Help création de module
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
Salut à tous, ça fait déjà un bon moment que je suis inscrit ici, mais je n'ai jamais posté de message jusqu'à aujourd'hui.
Voilà, j'ai besoin de renseignements sur la création de module pour xoops.
J'ai fait des recherches, autant sur ce site, que sur le net, et je n'ai pas trouvé beaucoup de doc pour vraiment expliquer le fonctionnement de xoops. J'ai essayé de partir sur la base d'un module existant qui est myalbum, pour créer un module presque semblable, mais avec pas mal de différences quand même.
Mon problème, euh non, mes problèmes :
-Je n'arrive pas à saisir comment on envoie des données en templates, et comment ceux-ci les réoccuper pour afficher le contenu.
-Comment gérer les droits des blocs avec les fichiers pré-intégré à Xoops.

Je crois que ce sont mes deux plus gros soucis pour le moment.
Voila, j'espère que vous pourrez m'aider, et si quelqu'un connait un tutorial qui fait un exemple de création de module de A a Z, ce serai cool.

Posté le : 03/03/2008 21:42
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2561
Tu trouveras ICI la documentation dont je me suis servi pour démarrer.
Tu y trouveras presque tout ce qu'il faut savoir.
J°J°D

Posté le : 03/03/2008 21:58

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Xoops accro
Inscrit: 25/11/2004 12:53
De 48400 Florac - France
Messages: 3370
Un lien qui peut éventuellement t'aider :

http://www.xoops.org/modules/repository/viewcat.php?cid=112

Philippe.

Posté le : 03/03/2008 21:58
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
Je vous remercie de vos réponses aussi rapide.
Je regarde tous ça, et je vous tient au courant si je m'en sort, où pas.

Posté le : 03/03/2008 22:50
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
J'ai un nouveau petit soucis.
J'ai réussi a comprendre quel code va dans quel fichier, enfin à peu près. Mais la j'ai un soucis au niveau de l'envoie des données dans les templates.
Je me suis fait un petit tableau tout simple qui récup des données dans ma bdd.

$sql = mysql_query("SELECT * FROM ".$xoopsDB->prefix(elrayser)."");
while($result = mysql_fetch_assoc($sql)){

echo "".$result['cid']."<br />";
echo "".$result['title']."<br />";
echo "".$result['post_time']."<br />";

}

j'ai fait des echo pour voir si ca marchai bien, ce qui est le cas.
par contre j'ai du mettre mysql_query car $xoopsDB->query($sql) ne fonctionnai pas.

Apres, je voudrai savoir comment récupérer mes result pour les envoyées aux templates.
Je pensais utiliser :
$xoopsTpl->append('posts', $array_msg); c'est ce que j'ai trouvé dans la doc, mais je ne vois pas réellement comment ca marche. Et aussi si je suis obligé de mettre :

$ array _msg['title'] = $myts->sanitizeForDisplay($sqlfetch["title"], 0, 0, 0);
$ array _msg['msg'] = $myts->sanitizeForDisplay($sqlfetch["message"],0,1,1);

dans mon while, et si oui, a quoi peu correspondre les 0,0,0, a la fin de la ligne.
Merci pour la réponse

Posté le : 04/03/2008 22:25
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2561
Déja il faut mettre un :
global $xoopsDB;
pour utiliser : $xoopsDB->prefix($sql) et les autres API de xoops.

secondo plusieures approches, soit la boucle est fait dans PHP soit elle est faite dans les templates.
dans tous les cas en debut de page php il faut :
//--------------------------------------------
global $xoopsTpl;
$xoopsOption['template_main'] = 'nomDuTemplate.html';
//----------------------------------------------

nomDuTemplate.html doit etre declaré dans "xoops_version.php":
un truc du genre:
//----------------------------------------------
$modversion['templates'][1]['file'] = 'nomDuTemplate.html';
$modversion['templates'][1]['description'] = 'Page nomDuTemplate';
Le module doit etre mis a jour pour prendre en compte de template
//----------------------------------------------
methode boucle cote php

$sql = "SELECT idUser, state FROM ".$xoops->prefix('ta_table_sans_prfix')
." WHERE idLettre in (0,{$idLettre})";
$sqlquery = $xoopsDB->queryF ($sql);


while ($sqlfetch = $xoopsDB->fetchArray($sqlquery)) {
$xoopsTpl->assign('baliseSmarty1', $sqlfetch['nomduChamp1']);
$xoopsTpl->assign('baliseSmarty2', $sqlfetch['nomduChamp1']);
//ect....
}
********************************************************
le template doit bien sur contenir les balises adoc
<{$baliseSmarty1}> <{$baliseSmarty2}> ect ...

*********************************************************
methode cote template:
**************************
code PHP:
**************************
$sql = "SELECT idUser, state FROM ".$xoops->prefix('ta_table_sans_prfix')
." WHERE idLettre in (0,{$idLettre})";
$sqlquery = $xoopsDB->queryF ($sql);
$tinfo = array();
while ($sqlfetch = $xoopsDB->fetchArray($sqlquery)) {
$tinfo [] = sqlfetch;
}
$xoopsTpl->assign('baliseSmartyArray', $tinfo );
**************************
code template:
**************************
</table>
<div class="itemInfo" style="text-align:left"><b><{$post.property}></b>
<table border="0" width="70%" cellspacing="0" cellpadding="0">

<{foreach item=archive from=$baliseSmartyArray}>
<tr>
<td width="50px" class="odd" style="text-align:right" >
<{$archive.idLettre}>/<{$archive.idArchive}>
</td>
<td width="100px" class="even" style="text-align:left" >
<{$archive.dateCourte}>
</td>
</tr>
<{/foreach}>
</table>
</div>



Ceci dit je te conseil de regarder d'autre modules pour voir comment c'est fait, ce sera surement plus parlant.

Posté le : 05/03/2008 11:27

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
Merci JJDai.
j'ai enfin réussi à faire passer mes infos dans le template.
C'est nickel.

Posté le : 05/03/2008 13:22
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2561
Super, j'ai crains un moment d'être un peux confus dans mon explication.

Posté le : 05/03/2008 13:42

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
J'ai une nouvelle question.

A propos des tableau, j'ai un while et je voudrai envoyé les résultats au template, mais rien ne s'affiche. Voici le code.

/*---------viewcat.php---------------*/

$letter = $_GET['list'];
$alphabet = wfd_letters();
$xoopsTpl->assign('alphabet', $alphabet);

$sql = "SELECT * FROM ".$xoopsDB->prefix('utilisateur')." WHERE pseudo LIKE '$letter%' ";
$sqlquery = $xoopsDB->query($sql);

$array_msg = array();
$i=0;
while ($sqlfetch= $xoopsDB->fetcharray($sqlquery)) {

$array_msg[$i]['pseudo'] = $myts->sanitizeForDisplay($sqlfetch["pseudo"],0,0,0);
$array_msg[$i]['real_name'] = $myts->sanitizeForDisplay($sqlfetch["real_name"],0,0,0);
$array_msg[$i]['id_user'] = $myts->sanitizeForDisplay($sqlfetch["id_user"],0,0,0);
$xoopsTpl->append('posts', $array_msg);
$i++;
}

include XOOPS_ROOT_PATH.'/footer.php';


/*---------Template---------*/

<table style="border:none">
<tr>
<td style="text-align:center"><{$alphabet}></td>
</tr>
<tr><td height="50">&nbsp;</td>
</tr>
<tr>
<td style="text-align:center">Liste des pseudo possedant un album.</td>
<td><{$posts[i].pseudo}></td>
</tr>
<{section name=posts loop=$array_msg}>
<tr>
<td>Pseuso :<{$posts[i].pseudo}>, Nom réel :<{$posts[i].real_name}>, Lien :<a href="extgallery_public-viewuser.php?id=<{$posts[i].id_user}>">Ici</a></td>
</tr>
<{/section}>
</table>

/*---------------------------*/

Voila, si vous pouvez m'aider.

Posté le : 11/03/2008 11:00
Partager Twitter Partagez cette article sur GG+
Re: Help création de module
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2561
J'utilise pas la balise {section}, c'est peut être un tord, mais le {foreach} fait ça bien aussi.
perso je ferais plutôt un truc comme ça :
Assignat du tableau après la boucle, et remplacement de section par foreach, et accès au tableau par l'item à chaque occurence.


//----------------------------------------------------
$letter = $_GET['list'];
$alphabet = wfd_letters();
$xoopsTpl->assign('alphabet', $alphabet);

$sql = "SELECT * FROM ".$xoopsDB->prefix('utilisateur')." WHERE pseudo LIKE '$letter%' ";
$sqlquery = $xoopsDB->query($sql);

$array_msg = array();
$i=0;
while ($sqlfetch= $xoopsDB->fetcharray($sqlquery)) {

$array_msg[$i]['pseudo'] = $myts->sanitizeForDisplay($sqlfetch["pseudo"],0,0,0);
$array_msg[$i]['real_name'] = $myts->sanitizeForDisplay($sqlfetch["real_name"],0,0,0);
$array_msg[$i]['id_user'] = $myts->sanitizeForDisplay($sqlfetch["id_user"],0,0,0);
//$xoopsTpl->append('posts', $array_msg);
$i++;
}

$xoopsTpl->assign('posts', $array_msg);


include XOOPS_ROOT_PATH.'/footer.php';


/*---------Template---------*/

<table style="border:none">
<tr>
<td style="text-align:center"><{$alphabet}></td>
</tr>
<tr><td height="50">&nbsp;</td>
</tr>
<tr>
<td style="text-align:center">Liste des pseudo possedant un album.</td>
<td><{$posts[i].pseudo}></td>
</tr>

<{foreach item=zone from=$array_msg}>
<tr>
<td>Pseuso :<{$zone.pseudo}>, Nom réel :<{$zone.real_name}>, Lien :<a href="extgallery_public-viewuser.php?id=<{$zone.id_user}>">Ici</a></td>
</tr>
<{/foreach}>


</table>

/*---------------------------*/

Posté le : 11/03/2008 11:21

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



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

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