Forum pragmaMx France 24 Mai 2012 à 18:53:10 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
 
Accueil Aide Rechercher
Pages: [1] 2   Bas de page
Imprimer
Auteur Fil de discussion: Création d'un module  (Lu 17666 fois)
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« le: 18 Janvier 2009 à 15:00:38 »

Bonjour,

[Je ne sais pas si je poste dans la bonne section]

J'aimerais ma lancer dans la création d'un module :
dans ce module, il faudrait que je récupère le nom de l'utilisateur connecté, mais je sais pas où le récupérer  Pleurs
Dans mx_userfunctions ? Mais je comprends pas grand chose à tout ce code, et je ne vois pas quelle fonction pourrait me donner le nom de l'utilisateur. J'ai pas vu de session_start() non plus dans le header, donc je sais pas si je peux le récupérer par les sessions ???

Et sur pramamx.org, j'ai essayé de regarder dans le wiki, mais la traduction google n'a pas l'air de marcher en ce moment  bof

Merci pour votre aide.

Cordialement,
HollowMac.
Journalisée

Youkoulélé !
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #1 le: 19 Janvier 2009 à 12:44:47 »

J'aimerais aussi savoir s'il était possible d'envoyer un mp ou un email automatiquement dans mon module ?

Merci.
Journalisée

Youkoulélé !
algebre
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 342



« Répondre #2 le: 19 Janvier 2009 à 14:22:08 »

slt
Code:
<?php
if ( MX_IS_USER ){
$usersession mxGetUserSession();

if (!isset(
$username) || (empty($username))) $username "Bonjour " .$usersession[1];
} else{
if (!isset($username) || (empty($username))) $username "Bonjour, chère visiteur vous n'êtes pas enregistré veuillez ....";
}
echo 
$username;
?>


Vous n'avez pas remarqué que en haut de cette page, il est écrit : cher HollowMac ou quelque chose comme ça, si vous avez jeté un coup d'œil dans le fichier functions.php du thème vous trouviez ce que vous chercher

pour la deuxième question , je ne comprend pas ce que vous voulez dire par (automatiquement)
Journalisée
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #3 le: 19 Janvier 2009 à 18:23:39 »

En effet, merci beaucoup pour l'info  Clin d'oeil

En fait, pour le mail (ou mp) automatique : je veux faire un module genre petites annonces, et un membre intéressé par cette annonce cliquerait sur un bouton, qui enverrait un mail au rédacteur de l'annonce afin de l'informer que quelqu'un est intéressé par son annonce. ça peut paraitre bizarre comme système, mais c'est un module de "petites annonces" assez spécial.

Plus j'avance (doucement ^^) dans la création de mon module, et plus j'ai de nouvelles questions ^^ :
pour faire une requête sql, la connexion à la base de donnée ainsi que sa sélection est faite toute seule ? où faut-il le mettre dans son module ? Aussi, j'ai remarqué la ligne :
Code:
global $prefix, $module_name, $pagetitle;
Mais où indique-t-on ce qu'il y a dans ces variables ? Sont-elles "initialisées" automatiquement ?

Merci.
« Dernière édition: 19 Janvier 2009 à 18:35:17 par HollowMac » Journalisée

Youkoulélé !
algebre
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 342



« Répondre #4 le: 19 Janvier 2009 à 19:53:22 »

Code:
<html>
<a href="mailto:couriel@domaine.tld">contacter le rédacteur de l'annonce</a>
</html>
Journalisée
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #5 le: 19 Janvier 2009 à 20:11:40 »

Slt,

Voilà un module vide
Code:
http://www.pragmamx.fr/Forum-topic-1340.html

Partant de là tout est possible
Citation
pour faire une requête sql, la connexion à la base de donnée ainsi que sa sélection est faite toute seule ? où faut-il le mettre dans son module ?

voilà un exemple type de requete
Code:
$qry = sql_query("SELECT cid, title FROM " . $prefix . "_pages_categories ORDER by title");

Code:
global $prefix, $module_name, $pagetitle;

$prefix correspond au nom des péfixes des tables
$module_name correspond à ce que tu aura affecté
$pagetitle correspond à ce que tu aura affecté et c'est pour le <title>...........<title>
Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #6 le: 19 Janvier 2009 à 20:51:08 »

Génial, ça va m'aider  respect

J'ai remarué aussi les include header.php et footer.php dans le lien du module vide. Mais celà correspond-t-il aux header et footer du site, ou aux header et footer que l'on trouve dans certains dossiers de modules ?

Code:
<html>
<a href="mailto:couriel@domaine.tld">contacter le rédacteur de l'annonce</a>
</html>
Ouaip, mais ça, c'est pas automatique  Sourire
Journalisée

Youkoulélé !
algebre
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 342



« Répondre #7 le: 19 Janvier 2009 à 20:55:51 »

RE
encore une fois je comprend pas "automatiquement".
Citation
et un membre intéressé par cette annonce cliquerait sur un bouton, qui enverrait un mail au rédacteur de l'annonce afin de l'informer que quelqu'un est intéressé par son annonce
où est l'automatique ici ?

Citation
J'ai remarué aussi les include header.php et footer.php dans le lien du module vide. Mais celà correspond-t-il aux header et footer du site, ou aux header et footer que l'on trouve dans certains dossiers de modules ?

header et footer du site
« Dernière édition: 19 Janvier 2009 à 20:58:49 par algebre » Journalisée
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #8 le: 19 Janvier 2009 à 23:15:10 »

Le bouton envoie un mail pré-rempli : "bidule est intéressé par votre annonce". Il ne faut pas que l'intéressé clique sur un lien, et écrive un mail. Le mail doit être pré-rempli, l'intéressé ne le voit même pas, il clique juste sur un bouton qui envoie un mail.

 Clin d'oeil
Journalisée

Youkoulélé !
algebre
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 342



« Répondre #9 le: 20 Janvier 2009 à 02:36:23 »

slt
http://www.google.fr/search?hl=fr&q=envoyer+email+php&btnG=Recherche+Google&meta=

choisissez ce qui vous convient le plus , et on en discutera après
Journalisée
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #10 le: 21 Janvier 2009 à 18:59:19 »

Merci  Clin d'oeil Je ferais une ch'tite recherche ...... après que mon module est un tant soit peu fonctionné  Sourire

Aujourd'hui, test, et j'en étais sûr : il marche pas  Sourire

index.php :
Code:
<?php
defined
('mxMainFileLoaded') or die('access denied');

$module_name basename(dirname(__file__));

$index 0// 0 pour ne pas afficher les bloc de droite et 1 pour afficher

include('header.php');

OpenTable();
?>


<?php
$pagetitle 
'Accueil';
include(
'header.php');
?>


<h1>Salut !</h1>

<?php
// Affichage de la liste par espèces
if (isset ($_GET['genid']) and $_GET['genid'] != 0)
{
?>

<table>
<th>Espèces</th>
<th>Nombre de demandes</th>
<?php
$sql mysql_query ("SELECT * FROM " $prefix "fourmis_especes ORDER BY espnom WHERE id_genre='" $_GET['genid'] . "'") or die(mysql_error());

while ($res mysql_fetch_array($sql))
{
$sql2 mysql_query("SELECT COUNT (*) AS nb FROM " $prefix "pa_recherches WHERE id_espece='" $res['espid'] . "'") or die(mysql_error());
$res2 mysql_fetch_array ($sql2);

echo '<tr>';
echo '<td>';
echo '<a href="' $adr_module '&espid=' $res['espid'] . '">' $res['espnom'] . '</a>';
echo '</td>';
echo '<td>';
echo $res2['nb'];
echo '</td>';
echo '</tr>';
}
?>

</table>
<?php
// Affichage de la liste des membres demandeurs
else if (isset ($_GET['espid']) and $_GET['espid'] != 0)
{
?>

<table>
<th>Membre</th>
<th>Accepte la vente</th>
<th>Accéder au détails de l'annonce</th>
<?php
$sql mysql_query ("SELECT * FROM " $prefix "pa_recherches LEFT JOIN users ON pa_recherches.id_membre=users.uid ORDER BY date WHERE id_espece='" $_GET['espid'] . "'") or die(mysql_error());

while ($res mysql_fetch_array($sql))
{
echo '<tr>';
echo '<td>';
echo $res['name'];
echo '</td>';
echo '<td>';
echo $res['vente'];
echo '</td>';
echo '<td>';
echo '<a href="' $adr_module '&rechid=' $res['rechid'] . '">Accéder au détails</a>';
echo '</td>';
echo '</tr>';
}
?>

</table>
<?php
// Affichage des détails d'une annonce
else if (isset ($_GET['rechid']) and $_GET['espid'] != 0)
{
$sql mysql_query("SELECT * FROM " $prefix "pa_recherches WHERE rechid='" $_GET['rechid'] . "'") or die(mysql_error());
$res mysql_fetch_array($sql);

echo '<p>' $res['texte'] . '</p>';
echo '<p>Vente : ' $res['vente'] . '</p>';
}
else 
// Affichage de la liste par genres (par défaut)
{
?>

<table>
<th>Genres</th>
<?php
$sql mysql_query ("SELECT * FROM " $prefix "fourmis_genres ORDER BY gennom") or die(mysql_error());

while ($res mysql_fetch_array($sql))
{
echo '<tr>';
echo '<td>';
echo '<a href="' $adr_module '&genid=' $res['genid'] . '">' $res['gennom'] . '</a>';
echo '</td>';
echo '</tr>';
}
?>

</table>
<?php
}
?>


<?php
CloseTable
();
include(
'footer.php');
?>

header.php :
Code:
<h2>Petites Annonces</h2>

<?php
$nom_site 
'http://localhost/fourmis-passion/';
$adr_module $nom_site 'modules.php?name=Petites_Annonces';

$prefix 'mx673a6b_';
?>

Et je n'ai aucune idée du pourquoi de la cause ! Sûrement un problème dans mon code au niveau de l'intégration avec pmx  bof

Des idées ?
Merci Sourire
Journalisée

Youkoulélé !
algebre
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 342



« Répondre #11 le: 21 Janvier 2009 à 20:01:54 »

 heu

il fait quoi ce modules?
pour l'envoi de courriel il y a la fonction mxMail 

déclarée dans includes/mx_api.php
exemple de l'utilisation de cette fonction dans "modules/Recommend_Us/index.php"
Code:
mxMail($event['fmail'], $subject, $message, $event['ymail'], "text", "", $event['yname']);
rechercher le mot "mxMail" dans le répertoire "pragmaMx"   et vous trouviez d'autres exemples.
« Dernière édition: 21 Janvier 2009 à 23:21:20 par algebre » Journalisée
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #12 le: 22 Janvier 2009 à 10:41:31 »

Slt,
C'est normal qu'il marche pas voici des erreurs:

Dans index.php
Code:
?>

<?php
$pagetitle 
'Accueil';
include(
'header.php');
?>


le header est déjà inclu un peu plus haut, suffit ensuite de rajouter la variable

Code:
$pagetitle = 'Titre de mon module';

ce qui donne
Code:
<?php
defined
('mxMainFileLoaded') or die('access denied');

$module_name basename(dirname(__file__));

$index 0// 0 pour ne pas afficher les bloc de droite et 1 pour afficher
$pagetitle 'Titre de mon module';

include(
'header.php');

OpenTable();
?>

Ensuite ya pas mal d'erreur dans le code car pour les requêtes sql dans pmx nous n'utilisons pas mysql_query, etc.... mais sql_query etc....ca fait parti du layer pragmamx dans /includes/db/db.php

Pour header.php je vois pas l'utilité de ton code ???
Code:
<h2>Petites Annonces</h2>

<?php
$nom_site 
'http://localhost/fourmis-passion/';
$adr_module $nom_site 'modules.php?name=Petites_Annonces';

$prefix 'mx673a6b_';
?>

Car comme on a déjà le nom du module avec dirname dans index.php, si il ya des liens à faire ce doit être de la forme:
Code:
<?php
echo '<a href="modules.php?name=' $module_name '">Index du module</a>';
?>
Pour $prefix = 'mx673a6b_'; ça n'a rien à faire ici

en utilisant ce code en début de fichier
Code:
defined('mxMainFileLoaded') or die('access denied');
Nous récupérons toutes les variables globales dont $prefix, après il suffit juste de sfaire directement les requêtes sql du style
Code:
$result = sql_query("SELECT lid, title, date as updated FROM " . $prefix . "_downloads_downloads WHERE " . $cidwhere . " ORDER BY date DESC limit 0,11");
ensuite si c'est à l'intéreieur d'une fonction, il faut appeler global

Voila en très résumé mais dans tn cas, je te conseille dans un premier temps de bien étudier un module simple, ex: faq/content pour en comprendre le fonctionnement. Ensuite créer un module perso très simple pas à pas . Dans tous les cas il faudra se documenter au mieux sur php avec des excercise simples que tu pourra trouver sur le web  Clin d'oeil


Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #13 le: 22 Janvier 2009 à 17:58:46 »

Merci beaucoup pour votre aide qui va m'être d'une grande utilité  bien joué

J'ai déjà un peu regardé quelque modules, mais je me retrouve vite perdu. Ya plein de fonctions, et des variables qui sortent de je ne sais où. Pouvez-vous me dire qu'est ce que c'est que ça par exemple : _CONTENTCATEGORIES dans le module content (index.php):

Code:
    $pagetitle = _CONTENTCATEGORIES;
    include("header.php");
    if (isset($lines)) {
        OpenTable();
        echo "<center><div class=\"title\">" . _CONTENTCATEGORIES . "</div><br><br>";
        echo "<table border=\"0\" align=\"center\" width=\"95%\">";
        echo implode("\n", $lines);
        echo "</table></center>";
        CloseTable();
        echo "<br>";
        $xlist++;
    }
ça apparait à 2 endroits, et dans le bout de code que j'ai mis, mais je ne sais pas du tout d'où ça sort (pas initilisée quelque part dans le code de la page) bof

Sinon, pour mon index.php, là, euh oui, il sert à rien  Sourire mais il servira à faire une bannière commune à toutes les pages de mon module.

heu

il fait quoi ce modules?
pour l'envoi de courriel il y a la fonction mxMail 

déclarée dans includes/mx_api.php
exemple de l'utilisation de cette fonction dans "modules/Recommend_Us/index.php"
Code:
mxMail($event['fmail'], $subject, $message, $event['ymail'], "text", "", $event['yname']);
rechercher le mot "mxMail" dans le répertoire "pragmaMx"   et vous trouviez d'autres exemples.
Merci pour l'info  bien joué

Mon module est assez spécial, c'est pourquoi un module de petites annonces déjà existant ne pouvait me convenir :
il permet à des personnes recherchant des fourmis de mettre une annonce de recherche.
Une personne possédant des fourmis et voulant les céder, se rend alors dans ce module et arrive sur la page d'accueil qui regroupe les genres de fourmis, clique sur un genre, et arrive sur la liste des espèces de ce genre ; puis il clique sur une espèce, et voit qui recherche cette espèce ; puis il clique sur le nom d'un membre, et arrive à la fiche de la petite annonce.
Ensuite, s'il veut céder son espèce à ce membre, il cliquera sur un lien dans la petite annonce, et ce lien enverra un mail automatique au membre de la petite annonce. L'auteur de la petite annonce recevra alors un mail lui disant que quelqu'un a l'espèce qu'il recherche, et s'il accepte l'offre, il lui restera à cliquer sur un lien dans le mail, qui l'ammènera sur une page du module, qui supprimera l'annonce de la base et enverra un message à celui qui a répondut à l'annonce, lui indiquant que son offre a été acceptée et qu'il peut communiquer les modalité et tout le touti par mp.

ça peut paraitre assez surprenant comme fonctionnement (surtout la partie mail), mais les mails sont là pour éviter des abus (oui, car yen a plein dans le monde des fourmis !) et pour automatiser le retrait des annonces.

 respect
« Dernière édition: 02 Février 2009 à 10:15:25 par HollowMac » Journalisée

Youkoulélé !
fonfonsd
Beta-Testeur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 1039



« Répondre #14 le: 28 Janvier 2009 à 21:51:10 »

bon courage, ton idée est interressante, c'est vrai qu'il n'y a pas de module annonce terrible sur pragmamx en tout cas j'ai pas trouvé
Journalisée

Pages: [1] 2   Haut de page
Imprimer
Forum pragmaMx France  |  Modules spécifiques & Blocs  |  Autres modules dédiés à PragmaMx (Modérateurs: Diabolo, kroms, phi56360)  |  Fil de discussion: Création d'un module
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

Plus