Résultats de 1 à 5 sur 5

Sujet : création message privé depuis la base de donnée

  1. #1
    Version
    vB 3.8.6
    Inscrit
    juin 2011
    Messages
    13
    Pouvoir de réputation
    0

    Par défaut création message privé depuis la base de donnée

    Salut à tous, j'aimerai mettre au point un script permettant d'envoyer un mp au créateur d'un topic, voici où j'en suis :

    Code PHP:
    require ('includes/config.php');
    require_once(
    './global.php');       
     
    $_GET['id']= 20807// id du topic   
     
    $time time();   
     
    $req mysql_query("SELECT postuserid, postusername FROM thread WHERE threadid={$_GET['id']}") or die (mysql_error());    
    $user mysql_fetch_array($req);    
    mysql_query("INSERT INTO pmtext VALUES('', '2605', 'godzlove', 'titre_test', 'message_test',                
     'a:1:{s:2:\"cc\";a:1:{i:
    {$user['postuserid']};s:9:\"{$user['postusername']}\";}}', '0', {$time}, '1', '1', '0')") or die(mysql_error());    
    $req2 mysql_query("SELECT pmtextid FROM pmtext ORDER BY pmtextid DESC LIMIT 0,1") or die(mysql_error());        
    $id mysql_fetch_array($req2);    
    mysql_query("INSERT INTO pm VALUES('', '{$id['pmtextid']}', '{$user['postuserid']}', '0', '0', '0')");    
    $req3 mysql_query("SELECT pmid FROM pm ORDER BY pmid DESC LIMIT 0,1") or die(mysql_error());        
    $id2 mysql_fetch_array($req3);    
    mysql_query("INSERT INTO pm VALUES('', '{$id['pmtextid']}', '2605', '-1', '1', '{$id2['pmid']}')");    
    echo 
    'Effectué !'
    J'ai plusieurs question : D'abord, si en tant que programmateur vous voyez une manière d'alléger ce script en requêtes, ensuite, dans la colonne touserarray, à quoi correspond une fois passée au explode() la variable s: et quelle valeur faut il que je lui mette.
    De plus, malgré que ce script fonctionne, aucune notification n’apparaît de nouveaux mp alors qu'il est bien présent et signalé comme non lu dans la messagerie.

    Enfin, si vous avez une autre méthode qui marche, faites moi en part ! Je pensais aussi sinon appeler la page private.php?do=insertpm avec curl et les paramètres en POST.

    Merci d'avance
    Dernière édition par godzlove; 01/05/2012 à 10h43

  2. #2
    Version
    vB 4.2.0
    Inscrit
    octobre 2008
    Messages
    11 976
    Billets
    33
    Pouvoir de réputation
    69

    Par défaut

    Salut,

    Code PHP:
    require_once('./global.php');
    require_once(
    DIR '/includes/functions_user.php');
    require_once(
    DIR '/includes/functions_misc.php');
    require_once(
    DIR '/includes/functions_newpost.php');

    // bootstrap framework
    require_once(DIR '/includes/class_bootstrap_framework.php');
    vB_Bootstrap_Framework::init();

    // Mets à jour les compteurs de message
    // Fonction copiée depuis private.php.
    function build_pm_counters()
    {
        global 
    $vbulletin;

        
    $pmcount $vbulletin->db->query_first("
            SELECT
                COUNT(pmid) AS pmtotal,
                SUM(IF(messageread = 0 AND folderid >= 0, 1, 0)) AS pmunread
            FROM " 
    TABLE_PREFIX "pm AS pm
            WHERE pm.userid = " 
    $vbulletin->userinfo['userid'] . "
        "
    );

        
    $pmcount['pmtotal'] = intval($pmcount['pmtotal']);
        
    $pmcount['pmunread'] = intval($pmcount['pmunread']);

        if (
    $vbulletin->userinfo['pmtotal'] != $pmcount['pmtotal'] OR $vbulletin->userinfo['pmunread'] != $pmcount['pmunread'])
        {
            
    // init user data manager
            
    $userdata =& datamanager_init('User'$vbulletinERRTYPE_STANDARD);
            
    $userdata->set_existing($vbulletin->userinfo);
            
    $userdata->set('pmtotal'$pmcount['pmtotal']);
            
    $userdata->set('pmunread'$pmcount['pmunread']);
            
    $userdata->save();
        }
    }

    function 
    send_pm(array $pm) {
        global 
    $vbulletin$permissions;

        
    $pmdm =& datamanager_init('PM'$vbulletinERRTYPE_ARRAY);
        
    $pmdm->set_info('savecopy',      $pm['savecopy']);
        
    $pmdm->set_info('receipt',       $pm['receipt']);
        
    $pmdm->set_info('cantrackpm',    $cantrackpm);
        
    $pmdm->set_info('forward',       $pm['forward']);
        
    $pmdm->set_info('bccrecipients'$pm['bccrecipients']);

        
    $pmdm->set('fromuserid', isset($pm['fromuserid']) ? $pm['fromuserid'] : $vbulletin->userinfo['userid']);
        
    $pmdm->set('fromusername', isset($pm['fromusername']) ? $pm['fromusername'] : $vbulletin->userinfo['username']);
        
    $pmdm->setr('title'$pm['title']);
        
    $pmdm->set_recipients($pm['recipients'], $permissions'cc');
        
    $pmdm->set_recipients($pm['bccrecipients'], $permissions'bcc');

        
    $pmdm->setr('message'$pm['message']);
        
    $pmdm->setr('iconid'$pm['iconid']);
        
    $pmdm->set('dateline'TIMENOW);
        
    $pmdm->setr('showsignature'$pm['signature']);
        
    $pmdm->set('allowsmilie'$pm['disablesmilies'] ? 1);

        
    $pmdm->overridequota true;    /* Contourne les quotas */

        
    ($hook vBulletinHook::fetch_hook('private_insertpm_process')) ? eval($hook) : false;
        
    $pmdm->pre_save();

        
    $pmdm->save();
        
    $vbulletin->userinfo['pmunread'] = -1;
        
    build_pm_counters();
        (
    $hook vBulletinHook::fetch_hook('private_insertpm_complete')) ? eval($hook) : false;
    }

    send_pm(array(
        
    'fromuserid'    => 1,                         /* ID de l'expéditeur */
        
    'fromusername'    => 'Simon',         /* Expéditeur */
        
    'recipients'    => 'Simon',                 /* Destinataire */
        
    'message'    => 'Hello World',          /* Message */
        
    'title'        => 'Dit bonjour!'              /* Titre */
    )); 


  3. #3
    Version
    vB 3.8.6
    Inscrit
    juin 2011
    Messages
    13
    Pouvoir de réputation
    0

    Par défaut

    require_once(DIR . '/includes/class_bootstrap_framework.php');


    Warning: require_once() [function.require-once]: Unable to access /includes/class_bootstrap_framework.php in [path]/test.php on line 15

    Warning: require_once(/includes/class_bootstrap_framework.php) [function.require-once]: failed to open stream: No such file or directory in [path]/test.php on line 15

    je n'ai pas ce fichier dans mon FTP

    Tu pourra me copier le code qui le compose s'il te plait ?

    Ma version de VBulletin est 3.8.6

  4. #4
    Version
    vB 3.8.6
    Inscrit
    juin 2011
    Messages
    13
    Pouvoir de réputation
    0

    Par défaut

    J'ai supprimé cette ligne de code et l'appel de la fonction suivante et ça marche nickel, merci

  5. #5
    Version
    vB 4.2.0
    Inscrit
    octobre 2008
    Messages
    11 976
    Billets
    33
    Pouvoir de réputation
    69

    Par défaut

    Citation Envoyé par godzlove Voir le message
    J'ai supprimé cette ligne de code et l'appel de la fonction suivante et ça marche nickel, merci
    Pardon, je n'avais pas attention à ta version de vBulletin. Elle doit être ajouté sous vBulletin 4


Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Sujets similaires

  1. Sujet résolu Résolu ! Touches manquantes dans la création d'un message privé
    Par LAYLA dans le forum Support vBulletin 4.x
    Réponses: 5
    Dernier message: 20/09/2011, 16h10
  2. Sujet résolu Résolu ! Problème de base de donnée lors de la création d'un groupe
    Par Bandit59 dans le forum Support vbulletin 3.x
    Réponses: 4
    Dernier message: 29/10/2008, 15h06
  3. Sujet résolu Résolu ! base de donnée
    Par neo6417 dans le forum Support vbulletin 3.x
    Réponses: 9
    Dernier message: 14/08/2008, 19h41

Liens sociaux

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Hébergé par PlanetHoster