您在這裡

建立表單時自動代入數值

詢問製作概念!
若以cck製作了一個表單。
其中這表單包含了"姓名"、"單位"、"電話"、"說明"四個欄位。
那這樣子當使用者登入平台並且要建立內容時,就能自動帶入值
姓名和單位進入空格中。

因為當使用者登入平台時,就有他的個人資訊profile,這樣他就不必再建立表單時,再key入一次姓名、單位(也就是希望是自動代入)。

想詢問製作方向~謝謝

目前想到的是使用Prepopulate,他可以做到比如說:
http://www.example.com/node/add/blog?edit[title]=this is the title

但是這個連結你必須自己用變數寫,像是
http://www.example.com/node/add/blog?edit[title]=$user->uid

另外Prepopulate我測試過,中文可能會有點問題,不知有沒有人用過。

---------------------------------

除了以上這個可能會有點問題的方式之外,想問你為何需要把使用者值帶入內容呢?
如果只是需要在內文顯示的時候也顯示個人資料的話,其實用Content template也很方便,或是可以考慮Author Pane。

謝謝兩位的寶貴意見。
由於我們單位需以LDAP的方式來驗證並登入。
並希望使用者登入「申請單」平台時,他不必再輸入一次「單位」+「姓名」+「分機」只需輸入「項目」+「此次用突說明」+「檔案格式->圖片OR影片」。

就思考到一些流程面向的問題。
LDAP它記載了使用者的所屬單位、分機、等等訊息的目錄資訊。
這樣的話想到兩個問題
(1)個人資訊profile的部份,創建完「單位」+「姓名」+「分機」的欄位完後,需自動從LDAP代入。
(2)使用者填寫平台上的資訊時,並不需勾選「單位」+「姓名」+「分機」。
(3)當使用者填完「申請單」,管理者收到「申請單」的相關資訊(那個單位、姓名、分機)所申請,管理者可選擇核準或不核準此項申請單。
若管理者核準則寄發通知信給申請者的主管(申請單位主管),若申請單位主管同意。
管理者接下來則指派任務通知給「承辦人」

-------------------------------------------------------------------------------------------------------
-->「目前想到的是使用Prepopulate,他可以做到比如說:
http://www.example.com/node/add/blog?edit[title]=this is the title」
*若使用Prepopulate是不是用法是透過網址去預填表單欄位呢?

-->「表示那些個人資訊已經存在於資料庫了, 就 db_query 就行囉,
把值帶入顯示即可,何必多浪費資料庫空間呢 ?」
是指我在form的部份需另外用頁面去從資料庫撈資料來自動代入
用form API 生成表單再來db_query是嘛?

1.若使用Prepopulate是不是用法是透過網址去預填表單欄位呢?
就是這個意思。

2.Ricky的意思應該是其實不需要把資料代入node表單,因為當你submit的時候就已經有作者資訊附在node裡面了。所以一般來說應該沒必要重新把這些資料存到另一個地方。不過我不知道LDAP是啥,也許有不同需求...

謝謝hanamizuki的解說~
我再來實作測試!

------------------ LDAP說明 ----------------------------------------------
簡單來說 LDAP server就是一個簡單的通訊錄DB主機,它負責存放人員的帳號資料,然後藉由與LDAP server連線來達成單一帳號登入的目標。
LDAP的優點:
1.單一帳號登入
2.使用者帳號集中,方便管理
3.免去多平台匯帳號的困擾

drupal與ldap
相關模組:http://drupal.org/project/ldap_integration

但還有一點想詢問的是。是關於ldap的部份。不知有否有人架設過…
目前已使用http://drupal.org/project/ldap_integration中的ldap模組。
但是遇到一問題~問題如下:
(1)使用者一登入時相關帳號密碼…個人資訊,會寫入到drupal的user資料表,但是「角色」的部份不知如何設定,
使用者在登入時,就知道它的角色是什麼?
不然會變成雖然drupal的預設角色權限我是設最高管理者、註冊使用者、未註冊使用者。
當使用者登入時,它是註冊使用者。但變成後端很多管理介面都會被使用者所看到~
還滿頭痛的這問題~

即然你是公司用的,那你的角色應當是組織單位,
跟 LDAP 上的一樣,例如: 台北總事業處 、台中分公司、上海營業處
一個 user 能有多個角色的,所以你還能再玩,
台北總事業處->資訊部
台北總事業處->財務部
台北總事業處->人事處
台北總事業處->人事處->人資專員

這樣設的話你之後就能用 workflow 針對不同的角色做事。

Ricky5678:
在ldap的部份在不同地區的劃分是以ou來做一個群組
ou=tp,dc=xxx,dc=com,dc=tw (台北總事業處)
ou=tc,dc=xxx,dc=com,dc=tw (台中分公司)
然後drupal中能再設定角色~
再分為~以下
台北總事業處->資訊部
台北總事業處->財務部
台北總事業處->人事處
台北總事業處->人事處->人資專員
------------------------------------------------------------------------------------
但是哦我遇到一個問題是~雖然我ldap中區分好群組,然後drupal設定好角色。
但是…當ldap的台北總事業處登進來drupal的系統中,不知如何讓它自動判別它是台北總事業處的資訊部。

因為使用者key入帳號密碼登入,會寫入資料庫中,但是角色的部份它無法自動判別會直接帶入如上圖中的角色是被空下來的~。
得手動去幫使用者一一勾選。

Ricky5678:
就特殊需求角色能自已手動勾沒關係。像是管理者方面。
但是啊我遇到最大的瓶頸是。drupa對於角色若是空的沒勾選它是一律規在「管理者」的權限的說。
這樣使用者一登進來,會看到「管理」中的全部像是(內容管理)、(網站建置)、(使用者管理)…的東西說~

其它我在角色分管理者和註冊者都沒關係。只是差別在~我讓各不同地方單位的都一律登進來就是註冊者。而若要挑選誰來當管理
者再另挑出來都沒關係。差別就差在~上述的問題瓶頸。哀~~~

Ricky5678:
我解決問題了~我這笨但。
其實「其它我在角色分管理者和註冊者都沒關係。只是差別在~我讓各不同地方單位的都一律登進來就是註冊者。而若要挑選誰來當管理」已經達到了~只是我那時把註冊者的權限全開~
思考問題到混亂了~~非常謝謝你耐心的回答~~
感謝!

(1)個人資訊profile的部份,創建完「單位」+「姓名」+「分機」的欄位完後,需自動從LDAP代入。
這樣的做法是有問題的,當 LDAP 的資訊改變時,你的 profile 並不會改變,
請在 LDAP 多加一個欄位,記錄 Drupal 的 Nid or 在 Node Profile 記錄 LDAP 的那一筆 user id。

(2)使用者填寫平台上的資訊時,並不需勾選「單位」+「姓名」+「分機」。
建議你將此需求寫成一個 function ,當填寫表單時,將填寫表單的 uid 傳入,將 LDAP 的所有資訊欄位
抓回, 再 print 出來就行了。

第三題是 workflow 的問題,簡單的做法就多加一個 站別 欄位,
例如:
第一站 : 填寫中
第二站 : 管理單位審核中
第三站 : 指派人員處理中
第四站 : 結案

Ricky5678:
想詢問一些製作流程問題,因為目前實作時發現的問題~
(1)workflow是指定工作流程狀態。但是像每一站要給相關人員去審查狀態時,能設定寄發給每一站相關人員通知信,請他們上來平台來修改審查狀態嘛?
(2)要如何能讓使用者能看到目前的狀態附表呢。因為只有相關權限的人才能看到~
要怎拉出表格給使用者看目前的狀態,以及結案時,寄發信件通知給使用者。

Ricky5678:
workflow只適用於簡單的流程。了解~
所以說各管理者也只能登入平台來修改狀態就是。

但是啊我在操作的設定中遇到一些問題…覺得流程給另一個人員沒產出處理狀態的作用。
我的步驟如下~不知那個環節出問題
1.啟用workflow模組。
2.設定workflow模組增加三種狀態。如圖test1.JPG
3.三種狀態的權限者是依狀態分。如圖test2.JPG
4.之後若有使用者提單後就是秀「管理單位審核中」的狀態。
然後管理者去點閱,之後選擇 Workflow如圖test3.JPG
5.接下來常理來說~假如用戶是(承辦人的話),它一登入平台應要有像test3.JPG的模式讓它去勾選處理狀態。
但承辦人一登入看到的畫面只有。如圖test4.JPG的狀態~~也不能去做什麼動作~~
但權限的部份全開了~也沒反應~如圖test5.JPG~

謝謝