Drupal 7 中的多种表单

发布于 2024-11-07 07:18:30 字数 161 浏览 0 评论 0原文

我希望向我的网站添加一个“待办事项”列表,以便登录用户可以维护一个简单的待办任务列表。 从概念上讲,我想显示一组输入框,允许用户编辑任何现有任务、添加新任务或删除现有任务。 每个输入框都有自己的表单,以便可以一一提交更改。 我对 drupal 完全陌生,似乎无法在网上找到任何可以展示如何实现这一目标的资源。

I wish to add a "todo" list to my site so that a logged in user can maintain a simple list of tasks to do.
Conceptually I want to display an array of input boxes, allowing the user to edit any of the existing tasks, add a new task, or delete an existing task.
Each input box will be its own form so that changes can be submitted one-by-one.
I'm completely new to drupal and can't seem to find any resource online that can show how to achieve this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小红帽 2024-11-14 07:18:30

您需要编写一个多次调用 drupal_get_form 的页面回调。如果同一个表单构建器处理表单,那么您需要实现 hook_forms

function foo_menu() {
  $items['foo'] = array(
    'page callback' => 'foo_page',
    'access arguments' => array('access foo'),
  );
  return $items;
}
function foo_page() {
  for ($i = 0; $i < 10; $i++) {
    $build[] = drupal_get_form('foo_form_' . $i, $i);
  }
  return $build;
}
function foo_forms($form_id, $args) {
  if (!empty($args) && $form_id == 'foo_form_' . $args[0]) {
    $forms[$form_id]['callback'] = 'foo_form';
  }
  return $forms;
}
function foo_form($form, $form_state, $i) {
  return $form;
}

当然,如果形式不同,则省略 foo_forms 并只写 foo_form_0foo_form_1 等。

You need to write a page callback which calls drupal_get_form several times. If the same form builder handles the forms, then you need to implement hook_forms.

function foo_menu() {
  $items['foo'] = array(
    'page callback' => 'foo_page',
    'access arguments' => array('access foo'),
  );
  return $items;
}
function foo_page() {
  for ($i = 0; $i < 10; $i++) {
    $build[] = drupal_get_form('foo_form_' . $i, $i);
  }
  return $build;
}
function foo_forms($form_id, $args) {
  if (!empty($args) && $form_id == 'foo_form_' . $args[0]) {
    $forms[$form_id]['callback'] = 'foo_form';
  }
  return $forms;
}
function foo_form($form, $form_state, $i) {
  return $form;
}

Of course, if the forms are different then omit foo_forms and just write foo_form_0, foo_form_1 etc etc.

欢你一世 2024-11-14 07:18:30

或者,您可以使用 myTinyTodo 模块(http://drupal.org/project/mytinytodo)来实现http://www.mytinytodo.net/。我在一个网站上使用它,它很灵活,ajaxified,允许对项目进行优先级排序和注释,以及其他很酷的东西。

Alternatively, you could user the myTinyTodo module (http://drupal.org/project/mytinytodo) which implements http://www.mytinytodo.net/. I'm using it on a site and it's flexible, ajaxified, allows prioritization and annotation of items, and other cool stuff.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文