2010-10-29 69 views
1

用戶個人資料表格中添加了一個複選框,訂閱每日通訊。我想獲得已訂閱的用戶列表(複選框打開)並將其發送給每日通訊。我如何在drupal-6中做到這一點。 (1)獲得所有訂閱用戶的列表(2)發送他們的電子郵件。如何獲取drupal自定義配置文件值?

如果你可以在代碼級解釋,我會非常感激。

回答

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郵件() - 函數。

+0

真的很好的幫助...噸謝謝:) – Dev 2010-10-29 11:46:07

+0

只是在說聲謝謝你。這使我指出了一個好方向! – Richard 2012-03-30 16:10:18

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

使用此函數可以獲得單個配置文件字段值,因此我們可以避免使用單獨的模塊將配置文件字段作爲令牌 – gobinathan 2012-08-29 06:32:06