如何获得drupal自定义配置文件值?

时间:2010-10-29 10:51:04

标签: drupal

在用户个人资料表单中添加了一个复选框,订阅每日简报。我想获得已订阅的用户列表(复选框ON)并每天发送新闻通讯。我怎么能在drupal-6中这样做。 (1)获取所有订阅用户的列表(2)发送电子邮件。

如果您可以在代码级别进行解释,我将非常感激。

2 个答案:

答案 0 :(得分:4)

如果您的个人资料字段是profile_newsletter,则:

<?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
  }
?>

此代码很快,未经测试,可能包含一些完整性检查。但它应该有用。

对于发送时事通讯等,我建议使用预先滚动的模块。我没有尝试任何Drupal,但Simplenews似乎可以做到这一点。 http://drupal.org/project/simplenews

如果没有别的东西它可能包含一个好的发送功能。否则只需使用PHP mail() - function。

答案 1 :(得分: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;
               }