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