2010-10-29 3 views
1

Une case à cocher est ajoutée dans le formulaire du profil de l'utilisateur, inscrivez-vous à la newsletter quotidienne. Je veux obtenir la liste des utilisateurs qui se sont inscrits (case à cocher ON) et leur envoyer un bulletin quotidien. Comment puis-je faire cela dans Drupal-6. (1) pour obtenir la liste de tous les utilisateurs abonnés (2) Envoyez-les Email.Comment obtenir des valeurs de profils personnalisés drupal?

Si vous pouvez expliquer au niveau du code, j'apprécierai vraiment cela.

Répondre

4

Si votre champ de profil est profile_newsletter, votre:

<?php 
    function mymodule_get_subscribers() { 
    $query = 'select * from {profile_fields} where `name`="%s";'; 
    $result = db_query($query,'profile_newsletter'); 

    $field = db_fetch_object($result); 

    $user_query = 'select * from {profile_values} where `fid`=%d and `value`=1;'; 
    $result = db_query($user_query,$field->fid); 
    $subscribers = array(); 

    while($subscriber = db_fetch_object($result)) { 
     $subscribers[] = $subscriber->uid; 
    } 

    return $subscribers; // Your array of subscriber user IDs 
    } 
?> 

Ce code a été rapide, est non testé et devrait probablement contenir quelques contrôles-santé mentale. Mais ça devrait marcher.

Pour l'envoi de newsletters et autres, je vous recommande d'utiliser un module pré-roulé. Je n'en ai pas essayé pour Drupal, mais Simplenews semble faire l'affaire. http://drupal.org/project/simplenews

Si rien d'autre, il contient probablement une bonne fonction d'envoi. Sinon, utilisez PHP mail() - fonction.

+0

vraiment une grande aide ... des tonnes de remerciements :) – Dev

+0

Juste chuchotant pour dire merci aussi. Cela m'a indiqué dans une bonne direction! – Richard

0
function your_custom_function ($user_id, "Field you want to get") { 


     $result = db_query("SELECT t2.value FROM profile_fields t1, profile_values t2 where 

    t1.title='Field you want to get' and t2.uid=".$user_id." and t1.fid=t2.fid"); 

        $field = db_fetch_object($result); 

        $profile_type =$field->value; 

        return $profile_type; 
       } 
+0

En utilisant cette fonction, vous pouvez obtenir une valeur de champ de profil unique, de sorte que nous pouvons éviter d'utiliser un module séparé pour obtenir des champs de profil comme un jeton – gobinathan

Questions connexes