Rsultats de 1 5 sur 5

Sujet : cration message priv depuis la base de donne

  1. #1
    Version
    vB 3.8.6
    Inscrit
    juin 2011
    Messages
    13
    Pouvoir de rputation
    0

    Par dfaut cration message priv depuis la base de donne

    Salut tous, j'aimerai mettre au point un script permettant d'envoyer un mp au crateur 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 manire d'allger ce script en requtes, ensuite, dans la colonne touserarray, quoi correspond une fois passe au explode() la variable s: et quelle valeur faut il que je lui mette.
    De plus, malgr que ce script fonctionne, aucune notification n’apparat de nouveaux mp alors qu'il est bien prsent et signal comme non lu dans la messagerie.

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

    Merci d'avance
    Dernire dition par godzlove; 01/05/2012 11h43

  2. #2
    Version
    vB 4.2.0
    Inscrit
    octobre 2008
    Messages
    11 977
    Billets
    33
    Pouvoir de rputation
    66

    Par dfaut

    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 copie 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'expditeur */
        
    'fromusername'    => 'Simon',         /* Expditeur */
        
    '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 rputation
    0

    Par dfaut

    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 rputation
    0

    Par dfaut

    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 977
    Billets
    33
    Pouvoir de rputation
    66

    Par dfaut

    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 rsolu Rsolu ! Touches manquantes dans la cration d'un message priv
    Par LAYLA dans le forum Support vBulletin 4.x
    Rponses: 5
    Dernier message: 20/09/2011, 17h10
  2. Sujet rsolu Rsolu ! Problme de base de donne lors de la cration d'un groupe
    Par Bandit59 dans le forum Support vbulletin 3.x
    Rponses: 4
    Dernier message: 29/10/2008, 16h06
  3. Sujet rsolu Rsolu ! base de donne
    Par neo6417 dans le forum Support vbulletin 3.x
    Rponses: 9
    Dernier message: 14/08/2008, 20h41

Liens sociaux

Rgles des messages

  • Vous ne pouvez pas crer de sujets
  • Vous ne pouvez pas rpondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas diter vos messages
  •  
Hberg par PlanetHoster