salut,
suite à ta demande, j'ai testé ce qu'on pouvait faire (même si je n'en vois pas un intérêt direct

A part que les profs sont trop fatigués pour cliquer sur leur lien de messagerie

(enfin perso, j'ai déjà un truc bien fluo qui leur annonce qu'il y a de nouveaux messages)
Dans un bloc personnalisé, tu peux essayer de coller le code suivant :
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('to_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'>"._PM_YOUDONTHAVE."</td></tr> ";
$display= 0;
} else {
echo "<tr align='center' valign='middle'><th> </th><th>". _PM_FROM ."</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("from_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("from_userid").">".$postername."</a>";
} else {
echo $xoopsConfig['anonymous'];
}
echo "</td>n";
echo "<td valign='middle' width='10%'><a href='".XOOPS_URL."/readpmsg.php?start=$i&total_messages=$total_messages'>".$pm_arr[$i]->getVar("subject")."</a></td>";
echo "<td valign='middle' align='center' width='20%'>".formatTimestamp($pm_arr[$i]->getVar("msg_time"))."</td></tr>";
}
echo "</table>";
}
Il y a sans doute un peu de travail au niveau de la mise en page (largeur de colonne, etc...)
Je te laisse voir ce que ça donne ici :
http://xoops.romanais.infoavec chess/chess (en login/mot de passe)
puis archives/archives (login/mot de passe)
bien entendu, tu peux placer le bloc où tu veux, là je l'ai calé à gauche, et uniquement sur la page d'accueil.
Exemple avec 2 messages dans la boîte, un lu, l'autre non

Exemple, avec aucun message dans la boîte
