Fork me on GitHub






Notifications et base de données
Aspirant
Inscrit: 03/10/2004 15:24
De Lyon
Messages: 96
Bonjour,

Comment sont stockées les infos sur les notifications automatiques dans la base de données ?
Dans quelle table ?

Posté le : 10/03/2006 15:24
Partager Twitter Partagez cette article sur GG+
Re: Notifications et base de données
Aspirant
Inscrit: 02/02/2006 17:39
Messages: 22
Regardes la table : (prefixe)_xoopsnotifications

Je l'ai pas étudiée en détail mais ça m'a pas l'air trop compliqué à comprendre

Posté le : 10/03/2006 15:32
Partager Twitter Partagez cette article sur GG+
Re: Notifications et base de données
Aspirant
Inscrit: 03/10/2004 15:24
De Lyon
Messages: 96
Ok je l'ai trouvé. On dirait qu'elle recense les différentes options possibles pour cahque module.
Je cherche à modifier les notifications pour un utilisateur. Par exemple, activer la notif auto pour la création d'une nouvelle news.
tu vois coment faire ca ?
pas sur que ce soit dans cette table là...

Posté le : 10/03/2006 15:48
Partager Twitter Partagez cette article sur GG+
Re: Notifications et base de données
Aspirant
Inscrit: 02/02/2006 17:39
Messages: 22
Si je pense que c'est dans cette table :

* not_id : identifiant de la notification
* not_modid : module concerné par la notification
* not_itemid : 0 si ça ne concerne pas d'item en particulier, sinon l'id de l'item (une catégorie par exemple, etc.)
* not_category : savoir à quoi s'applique la notification (global si c'est global, ça peut être category si l'on notifie sur une catégorie en particulier, file si c'est un fichier, etc.)
* not_event : l'évènement déclenchant une notification
* not_uid : l'utilisateur concerné
* not_mode : en fait, celui-là je sais pas trop

Le mieux reste de tester en créant une notification avec un utilisateur, et de regarder comment ça s'agence dans la base, et éventuellement reproduire ensuite.

Par contre, pourquoi tu veux passer par la base de données pour faire ça, alors qu'il y a les menus de notifications tout faits ?

Posté le : 10/03/2006 16:03
Partager Twitter Partagez cette article sur GG+
Re: Notifications et base de données
Aspirant
Inscrit: 03/10/2004 15:24
De Lyon
Messages: 96
Merci pour le décodage...
Pourquoi ?
Simplement parcde que les utilsateurs de mon site ne sont pas des habitués de Xoops e des notifications auto.
Bien que j'ai mis des tutos pour expliquer le pricnipe des notifications, 3 users seulement l'ont fait. Concernant les autres, une petite enquete par tel montre qu'ils ne le savaient pas.
En fait, comme je l'expliquais dans un autre message il y a longtemps, j'aimerai activer certaines notificaitons (module news, forums, agenda par exemple) pour tous les utilisateurs.
S'il ne souhaitent pas recevoir les notif, ils peuvent toujours les désactiver bien sur (je vais pas les remettre derrière...).

je viens de chercher un peu et la solution la plus simple c'est de se connecter à la place des utlisateurs et de cocher les jolis blocs de notifications. Sauf que je ne connais pas leurs mots de passe et que ceux-ci sont cryptés en md5 dans la table xoops_users.
Donc je cherche à faire le méchant pirate, mais pas dans une optique malsaine.
A moins que par la base de données ce soit possible, mais ca me semble fastidieux...


Posté le : 10/03/2006 16:19
Partager Twitter Partagez cette article sur GG+
Re: Notifications et base de données
Aspirant
Inscrit: 02/02/2006 17:39
Messages: 22
Bah le "plus simple" si on peut ainsi dire, semblerait de faire un script PHP qui ajoute automatiquement les notifications.

Par exemple, tu crées dans un répertoire "lambda" (protégé si possible) un fichier db_notifications.php avec :

<?php

    
// gestion des blocs de droite
    // 1 = Avec blocs de droite
    // 0 = Sans blocs de droite
    
$xoopsOption['show_rblock'] = 1
    
    if (
file_exists("mainfile.php")) {
    include(
"mainfile.php");
    } elseif (
file_exists("../mainfile.php")) {
    include(
"../mainfile.php");
    } else { 
    include(
"../../mainfile.php");
    }
    
    include(
XOOPS_ROOT_PATH."/header.php");
    
    
    
// On fait la liste des utilisateurs (uid) existants
    
$sql_users 'SELECT uid FROM '.$xoopsDB->prefix("users");
    
    if(!
$result $xoopsDB->query($sql_users)) {
        
redirect_header('index.php',2,MD_ERROROCCURED);
        exit();    
    }
    
    
// Pour chaque uid
    
while(list($id) = $xoopsDB->fetchRow($result)) {
        
// En prenant exemple sur une notifications existante, changes les valeurs '3', '0', 'global' ou 'story_submit' si il y a besoin
        
$sql "INSERT INTO " $xoopsDB->prefix(xoopsnotifications) . "(`not_modid`, `not_itemid`, `not_category`, `not_event`, `not_uid`, `not_mode`) VALUES ('3', '0', 'global', 'story_submit', '".$id."', '0')";
        
        
// Affiche l'erreur s'il y en a une
        
if (!$result_insert $xoopsDB->queryF($sql)) {
            echo 
$sql."<br />";
            echo 
"Erreur avec l'utilisateur : ".$id."<br />";
        }
    }
    
    
redirect_header("index.php",5,$messagesent);
    
    include(
XOOPS_ROOT_PATH."/footer.php");

?>


Tu adaptes la requête SQL pour chaque type de notification, en te basant sur une notification semblable existante (not_modid, not_itemid, not_category et not_event).

Je sais pas si c'est clair

Tu lance le script en allant à l'adresse : http://tonsitexoops/lambda/db_notifications.php

Penses par contre a supprimer le fichier une fois que tu as créé toutes tes notifications.

Posté le : 10/03/2006 17:13
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



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

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