Events 在Drupal 6上的表单提交中锁定表

Events 在Drupal 6上的表单提交中锁定表,events,drupal,drupal-6,validation,Events,Drupal,Drupal 6,Validation,我正在为Drupal6模块编写一个表单,供人们订阅一些活动,并希望限制可用订阅 我对Drupal API很陌生,但我想在验证时锁定一个表(使用db_lock_table,检查我们是否还有座位,然后在表单提交时,插入数据库中的所有内容并解锁,以防止竞争条件 这行得通吗?有没有更好的方法呢?与其用drupal编写自己的事件管理系统,为什么不利用现有的模块呢 将事件和事件订阅管理安装到Drupal 6与安装几个模块和快速安装一样简单 下载并安装事件模块 下载并安装注册模块 启用事件模块及其所有子模块(

我正在为Drupal6模块编写一个表单,供人们订阅一些活动,并希望限制可用订阅

我对Drupal API很陌生,但我想在验证时锁定一个表(使用
db_lock_table
,检查我们是否还有座位,然后在表单提交时,插入数据库中的所有内容并解锁,以防止竞争条件


这行得通吗?有没有更好的方法呢?

与其用drupal编写自己的事件管理系统,为什么不利用现有的模块呢

将事件和事件订阅管理安装到Drupal 6与安装几个模块和快速安装一样简单

  • 下载并安装事件模块
  • 下载并安装注册模块
  • 启用事件模块及其所有子模块(如果要快速运行,请不要选中datepicker,因为它需要额外的CSS和JS才能工作)
  • 启用注册模块(事件注册所需)
  • 转到“权限”并根据需要为用户角色启用事件和注册功能(节点和注册部分)(可能您希望允许匿名人员注册事件…)
  • 转到内容管理->内容类型->事件->编辑
  • 在注册配置部分,选择最后两个选项中的任意一个(允许或启用),然后保存
  • 创建一个事件并“启用”注册选项(编辑相应的元素以满足您的需要)

  • “事件注册”模块具有“将注册限制为所选角色和内容类型以及限制可以注册任何给定节点的用户数”的功能-请参见

    db_lock_表的要点是避免比赛条件。我看不到任何其他方法来做到这一点。

    谢谢提醒,但这些模块无法帮助我,因为我需要在注册时进行一些复杂的验证。用户必须在同一事件上选择多个活动,但其中一些活动不能根据or同时选择组织的规则我从未使用过这些模块,但是否可以将您所需的验证添加到它们提供的表单中?不知道,但很可能我最终不得不锁定一些表,这又引出了我的问题:)我的问题是:“验证和提交功能之间是否保留了锁?”锁会一直保留,直到你解锁它。。。或者我遗漏了一点?我说的函数实际上是drupal框架调用的钩子,而不是我调用的函数。如果你确定锁确实是通过这些钩子保存的,我会给你答案。你确定吗(或者更好,你能提供一个参考吗?)好吧,我还没有测试,但是你更快地发现的方法是在测试的时候。