2009-12-14 51 views
1

當用戶登錄時,用戶將重定向到設置了我的帳戶字段的用戶個人資料頁面。更改user_profile_form表單字段順序

該字段集有2個字段,「用戶名:」,「電子郵件地址:」。這兩個字段是由drupal生成的。

這些2字段包含在具有id(「user_profile_form」)的表單中。我想改變這兩個字段的順序。

我試圖攔截hook_form_alter中的'user_profile_form'。 代碼如下: $form['account']['name']['#weight'] = 1;

,但沒有成功,Drupal的甚至沒有渲染的「名稱」字段,所以沒有用戶名:顯示在瀏覽器中。

回答

2

你所做的是絕對正確的,可能確實有效。您可以使用上述方法更改字段的權重。

用戶名字段並不總是呈現。原因是需要執行任務:change own username。如果這個燙髮沒有設置,你不會被允許改變你的用戶名和字段不會被顯示。

有關調試的信息。
您的信息不足以進行調試。從你所描述的,你做的是正確的事情,但其他模塊可能會讓你有點棘手。 devel模塊是相當不錯的,當涉及到調試,TI定義了兩個功能調試的時候我用了很多:

  • dpm()漂亮打印變量使用krumo消息區域。
  • dd()打印/保存變量到日誌文件。當您無法在屏幕上查看消息時很有用。

我建議你看看$form變量之前,你改變它之後。

東西可以使它出錯:

  • 你記得參照使用&符號傳遞$form變量?
  • 另一個模塊是在你之後改變你的形式嗎?
  • 您是否正在檢查正確的表單ID,以便更改正確的表單?

這些是一些指針,在你帶來更多信息之前,我所能做的就是猜測你的問題到底是什麼。前幾天我做了這樣的事情,所以我知道你所描述的不應該是一個問題。

+0

我正在管理員帳戶 – anru 2009-12-15 21:13:39

+0

@googletorp - 你可能想修復「你記得通過...」的錯字:你輸入$而不是&! :)另一層:關於dpm和dd的提示。我通常使用drupalforfirebug,它提供了類似的功能,但可以自動在firebug區域中轉儲,比如表單數組,用戶對象等等。它也有類似的功能來轉儲附加變量。 +1 – mac 2009-12-16 18:05:33