2011-07-16 61 views
0

我在爲Drupal 6模塊寫一個表單,供人們訂閱一些活動,並希望限制可用訂閱。在form_validate中鎖定桌面並在Drupal 6上的form_submit上解鎖

我對Drupal API非常陌生,但是想鎖定一個表(在驗證時使用db_lock_table,檢查我們是否仍有可用的位置,然後在表單提交時將所有內容插入數據庫並解鎖,以防止競爭條件。

將這項工作?是否有這樣做的沒有更好的辦法?

回答

1

而是在Drupal編寫自己的事件管理系統,爲什麼不利用現有的模塊,從http://beeznest.wordpress.com/2010/05/28/adding-events-management-to-drupal-6/

安裝採取Drupal 6的事件和事件訂閱管理也是如此sy安裝一些模塊並進行快速設置。

  1. 下載並安裝事件模塊
  2. 下載並安裝註冊模塊
  3. 使事件模塊及其所有子模塊(如果你想走得快不檢查日期選擇器,因爲它會需要額外的CSS和JS工作)
  4. 啓用註冊模塊(必需的事件註冊)
  5. 轉到權限並根據需要啓用用戶角色的事件和註冊功能(節點和註冊部分)(也許您想要允許匿名人士註冊活動......)
  6. 到內容管理 - >內容類型 - >事件 - >編輯
  7. 在註冊配置部分,選擇任意的最後2個選項(允許或啓用)然後保存
  8. 創建活動和「啓用」註冊選項(編輯相應的元素以滿足您的需求)

事件註冊模塊具有「限制註冊到選定角色和內容類型的設置,並限制用戶數量可以註冊任何給定的節點。「 - 請參閱http://drupal.org/project/signup

+0

感謝您的支持,但這些模塊不能幫助我,因爲我需要對註冊進行一些複雜的驗證。用戶必須在同一事件中選擇多個活動,但其中一些活動不能根據組織規則同時選擇 – Vitor

+0

我從未使用過這些模塊,但是可以將所需的驗證添加到表單中他們提供? – mesch

+0

不知道,但最有可能我最終不得不鎖定一些表,這導致我回到我的問題:) – Vitor

0

db_lock_table的要點是避免競爭條件。我沒有看到任何其他的做法。

+0

我的問題是:「是驗證和提交功能之間保存的鎖?」 – Vitor

+0

鎖被保留下來,直到你解鎖它或者我錯過了一個點? –

+0

我所說的函數實際上是由drupal框架調用的鉤子而不是我稱之爲的函數。如果你確定鎖確實保存在這些鉤子上,我會給你答案。你確定嗎(或者更好的,你能提供一個參考嗎?) – Vitor