bonjour,
A défaut d'avoir ce système tout intégré dans la messagerie privée de xoops, est-ce qu'un bloc contenant tes envois vers différents destinataires, avec indication de 'lu/non lu' te conviendrait ?
Sachant, que si la personne destinatrice supprime le pm, la personne émettrice ne le verra plus dans sa liste.
Ce n'est pas une véritable gestion de boîte aux lettres, juste un script qui reprend des données présentes dans la base de données de messagerie de xoops.
Ce bloc permet d'avoir une vue comme celle-ci :
En affichage central :

En affichage de côté :

Le pseudo du destinataire est cliquable.
Le sujet, la date et l'heure d'expédition sont disponibles.
Une icône apparaît si le message n'a pas été lu par la personne.
Tu peux placer ce bloc où tu veux, et donner les droits d'accès à qui tu veux.
Il faut coller le code suivant, dans un bloc php :
global $xoopsUser;
global $xoopsConfig;
$xoopsOption['pagetype'] = "pmsg";
include_once XOOPS_ROOT_PATH."/language/".$xoopsConfig['language']."/pmsg.php";
include_once XOOPS_ROOT_PATH."/mainfile.php";
if (!is_object($xoopsUser)) {
$errormessage = _PM_SORRY."<br />"._PM_PLZREG."";
redirect_header(XOOPS_URL."/user.php",2,$errormessage);
} else {
$pm_handler =& xoops_gethandler('privmessage');
$pm_arr =& $pm_handler->getObjects(new Criteria('from_userid', $xoopsUser->getVar('uid')));
echo "<table border='0' cellspacing='1' width='100%' class='outer'>n";
$total_messages = count($pm_arr);
if ( $total_messages == 0 ) {
echo "<tr><td class='even' align='center'>Aucun message envoyé</td></tr> ";
$display= 0;
} else {
echo "<tr align='center' valign='middle'><th>Non lu</th><th>". _PM_TO ."</th><th>". _PM_SUBJECT ."</th><th align='center'>". _PM_DATE ."</th></tr>n";
$display = 1;
}
for ($i = 0; $i < $total_messages; $i++) {
if ($pm_arr[$i]->getVar('read_msg') == 1) {
echo "<td valign='top' width='5%' align='center'> </td>n";
} else {
echo "<td valign='top' width='5%' align='center'><img src=".XOOPS_URL."/images/read.gif' alt='"._PM_NOTREAD."' /></td>n";
}
$postername = XoopsUser::getUnameFromId($pm_arr[$i]->getVar("to_userid"));
echo "<td valign='middle' width='10%'>";
// no need to show deleted users
if ($postername) {
echo "<a href=".XOOPS_URL."/userinfo.php?uid=".$pm_arr[$i]->getVar("to_userid").">".$postername."</a>";
} else {
echo $xoopsConfig['anonymous'];
}
echo "</td>n";
echo "<td valign='middle'>".$pm_arr[$i]->getVar("subject")."</td>";
echo "<td valign='middle' align='center' width='30%'>".formatTimestamp($pm_arr[$i]->getVar("msg_time"))."</td></tr>";
}
echo "</table>";
}
Si tu veux limiter le nombre de PM envoyés (avec seulement les plus récents), affichés dans ce bloc, ça ne sera guère plus compliqué.
Je tâche de repasser modifier le code.
Je suis reparti d'un script fait à l'époque où une personne voulait
voir ses PM dans un bloc.