Fork me on GitHub

Rapport de message :*
 

Re: Module de message

Titre du sujet : Re: Module de message
par blueteen sur 10/03/2006 17:00:53

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 :

Open in new window

En affichage de côté :

Open in new window

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 == ) {
        echo 
"<tr><td class='even' align='center'>Aucun message envoyé</td></tr> ";
        
$display0;
    } 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'>&nbsp;</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.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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