2011-05-29 80 views
1

我正在開發一個Drupal的模塊,它提供了一個登錄表單,並在提交用戶cURL後用其他網站上的憑據登錄。發送變量給用戶配置文件在Drupal 6

如果一切順利,模塊會將用戶重定向到他們的配置文件,並應顯示提取的信息cURL。這是事情出錯的地方。

我想要做的是通過用戶名得到$account變量。這是所有在module_name_form_submit功能:

$account = user_load(array('name' => check_plain($user))); 

然後追加我想要顯示它的數據:

$account->content['module_name'] = array(
    '#title' => t('Module Title'), 
    '#values' => get_info() 
    ); 

如果我重定向之前做了print_r,果然,該數據是有正如它應該。但重定向後:

$form_state['redirect'] = "users/{$user}"; 

我不再有權訪問相同的數據。所以問題是,如何以永久方式設置該變量並在用戶配置文件頁面中重定向後訪問它? (我試圖避免會話)。

在此先感謝:-)

+0

您需要將什麼樣的值傳遞到用戶頁面?一個字符串? – Strae 2011-05-29 23:41:43

+0

p.s:試試在這裏問:http://drupal.stackexchange.com/我敢打賭,你會得到更多的運氣 – Strae 2011-05-29 23:42:16

+0

我想傳遞一個數組。然後我可以使用tpl文件來呈現這些信息。謝謝@DaNieL – brpinto 2011-05-29 23:47:45

回答

1

如何使用variable_set($ name,$ value);根據你的問題:

variable_set('module_name_variable', $account); 

當你需要訪問數據使用variable_get($名稱,$默認);根據你的問題:

variable_get('module_name_variable'); 

請讓我知道它是否適合你。

謝謝

+0

它工作。我使用了'variable_set('var_name',the_array);'然後我實現了一個hook_user函數,所以在重定向之後,我可以執行'variable_get('var_name')'並獲取所有數據。謝謝:-) – brpinto 2011-05-30 14:34:28

+0

儘管這種方法的工作原理並不是最好的方法,因爲'variable_get/set/etc'清除了所有緩存,這會降低你的網站並填滿變量表。所以我想我必須和會議一起去。 – brpinto 2011-05-30 16:17:35

0

也許你可以使用value form element用戶價值添加到您的形式。

$form['userdata'] = array('#type' => 'value', 
        '#value' => $user_load(array('name' => check_plain($user))); 

我認爲這可能會做你正在尋找'drupalish'的方式。

希望它有幫助,祝你好運!

+0

不知道它是否有幫助。但我會仔細研究一下......謝謝。 – brpinto 2011-05-29 23:50:36

+0

Value元素是drupal的內部元素,它比隱藏的fied更好。如果你必須傳遞一個數組,你需要先序列化它。 – stefgosselin 2011-05-30 00:17:18

相關問題