问题标签 [form-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
324 浏览

drupal-7 - 将 cck 字段添加到 Drupal 7 中的现有作者字段集

我已经为自定义节点类型创建了自己的 cck 布尔字段“显示作者”。节点类型具有由 node.module 设置的默认作者字段,您可以在其中设置作者和日期。我想在这个字段集中显示我自己的字段。

到目前为止,我只是移动了该字段并取消了旧字段:

一切正常;该字段显示在我想要的位置,该值已正确保存。

但是随后 locales.modules 出现并破坏了一切!它使用 field_info_instances() 循环遍历所有字段,并且由于该字段未设置,因此找不到数组索引并失败。

那么如何在不破坏语言环境的情况下将自定义 cck 字段移动到现有作者字段集?我可以指定它是添加在那里而不是在表单的“根”中吗?

0 投票
1 回答
4123 浏览

database - 在moodle表单中按下“提交”按钮时将数据插入数据库

我正在使用 Moodle 安装 v 2.3.4,并在 NEWMODULE 插件中创建了一个简单的表单,并使用它输入 2 个字段,名称和描述。

我想插入在数据库中输入的数据,但数据没有被插入。按下提交后,moodle 会查找 modedit.php,它当然不在当前目录中,因此会显示“找不到页面”错误。

代码片段如下所示:make_form.php(表单页面):

mod_form.php

0 投票
1 回答
911 浏览

php - Drupal 7 Form API - 自定义选择主题

我整天都在搜索,但找不到任何答案——我确信我做得对,在 Drupal 6 中运行良好,并且在 Drupal 7 中应该运行良好。

我想为表单中的选择元素提供自定义主题功能

$form['field_name'] = array(
'#type' => 'select',
'#title' => t('Title Here'),
'#theme' => 'custom_select',
'#options' => $values,
);

我有权声明新的自定义主题函数,但我的问题是当使用上面的自定义主题函数时,我得到一个空的 $variables 数组,它只是读取

Array([element] => null)

谁能看到我可能做错了什么?清除缓存,完成了我能想到的一切 - 为什么 Drupal 没有将元素数据传递给主题函数?谢谢

0 投票
1 回答
1073 浏览

drupal - 在节点编辑表单中嵌入带有公开表单过滤器的视图(VBO 表单)

案例:在另一个表单中插入/嵌入表单,同时保持<form>嵌入输出中的原始标记。在这种情况下,它是一个 Views Bulk Operations 表单,其中包含嵌入在节点编辑表单中的公开表单过滤器。

问题:嵌入时,表面上的一切看起来都很好,视图显示表单及其所有元素。但是,当检查 Views Exposed Form 呈现的输出时,Exposed Filter 被剥离了它的<form>标记。但是,当我在与节点编辑表单相同的页面上以标准方式将块添加到区域时,Views Exposed Form 输出包含<form>标记并且过滤器工作正常。

注意:VBO 表单的视图内容不受影响,其<form>标记在节点编辑表单中保持不变。只有同一视图显示中的 Exposed Form Filter 会被剥离<form>。此外,在视图显示中使用分页器并将 Use Ajax 设置为 Yes,如果我单击视图结果的下一页,Ajax 刷新的表单将包含<form>Views Exposed Form 的正确标记,并且过滤器从那时起开始工作。

我尝试过的事情

  • 将公开的表单设置为出现在一个块中,然后使用 module_invoke('views', 'block', 'view', '-exp-instructor_select-page_1') 单独嵌入公开的表单块。

  • 使用 views_embed_view('VIEW-NAME', 'VIEW-DISPLAY') 嵌入视图 - VIEW-DISPLAY 是“默认”、“page_1”还是“block_1”——同样的问题。

  • 使用 module_invoke('views', 'block', 'view', 'VIEWS-DISPLAY-block_1') 嵌入视图块显示;

  • 使用 drupal_build_form($form_id, &$form_state) 直接插入表单(视图替换 drupal_get_form)

经测试

  • 使用 hook_form_alter

  • theme_preprocess_NODETYPE_node_form($vars)

  • 在自定义视图公开的过滤器模板中对标记进行硬编码:

  • <form id="views-exposed-form-VIEWS-DISPLAY" method="get" accept-charset="UTF-8" action="/URL" class="views-processed"> 查看暴露的表单模板代码 <input type="hidden" value="instructor_select" name="view_name"><input type="hidden" value="block_1" name="view_display_id"><input type="hidden" value="" name="view_args"><input type="hidden" value="user/1/edit/studio" name="view_path"><input type="hidden" value="URL-PATH" name="view_base_path"><input type="hidden" value="VIEWS-DISPLAY" name="view_dom_id"><input type="hidden" value="0" name="pager_element"></form>

我确定我错过了一些我尝试解决的其他方法,但这应该足以作为尝试的示例。

无论表单如何嵌入到节点编辑表单中,视图暴露过滤器都不起作用,因为<form>缺少元素,但是 AJAX 可以与 VBO 表单的其余部分一起使用,并且在使用分页器和 AJAX 刷新视图表单显示时,Exposed Form Filter 标记被正确呈现并且过滤器工作。

在这一点上,我没有想法。我真的很感激一些关于如何尝试的指针或代码示例。

提前致谢。

0 投票
1 回答
1264 浏览

drupal-7 - 提交按钮在主题功能中不起作用

我创建了一个可拖动的表格并在其下方添加了一个提交按钮。我可以查看提交按钮,但提交处理程序不起作用。下面是代码。

$themes .= drupal_render($element['submit']); 能够显示按钮,但函数 user_content_ranking_save 没有被调用。请帮助我。

0 投票
1 回答
3239 浏览

drupal-6 - 如何使用 Drupal Form API 将两个表单元素连续放置?

我正在使用表单 API 在 Drupal 6 中创建一个表单。

我需要将一个文本字段和一个选择放在一起。它们用于输入类似 'www.domainname.com' 的内容。万维网。是固定的。domainname 部分由用户在文本字段中给出,.com 部分由用户从 select 元素中选择。

所以他们应该排成一行。但正如我所见,我可以将这两个表单元素放在一行中,它们位于 div 容器中。

你能帮我吗?谢谢你。

0 投票
1 回答
720 浏览

ajax - 有没有办法加快 Drupal 表单中的 ajax 调用

我使用表单 API 和 ajax 调用在 Drupal 7 中构建了一个表单。一个典型的表单项如下所示:

一切都在正常工作,但即使 ajax 调用只是重建表单的一小部分,它也需要几秒钟(颤抖者正在加班:)。

这是正常的吗?

有没有办法加快速度(保持 Drupal 的方式)?

0 投票
1 回答
652 浏览

drupal-7 - 提交始终默认为第一个提交按钮(多表单)

按照 Drupal 7 中的示例模块,我正在创建一个多步骤表单。第 1 页是值,提交后转到第 2 页(一种确认屏幕)。在第 2 页,我有一个提交和一个后退按钮。

根据示例模块中的示例#8,我们使用一个提交按钮作为后退按钮,并带有一个自定义的#submit 处理程序,如下所示:

一切正常,直到我尝试提交或回击。无论哪个按钮(提交或返回)首先放置在代码中,都是 Drupal 7 注册为单击按钮的按钮,包括在 form_state 中。每个函数都有自己的#submit 指向不同的函数。我已经确认 Drupal 可以查看/执行这两个功能。

无论 Drupal 认为哪个提交按钮被触发,都是被处理的 #submit 处理程序。

当我首先放置后退按钮时,两个按钮都会触发后退按钮功能。当我首先放置提交按钮时,两者都会触发提交逻辑。尽管示例模块没有在每个模块上设置#name(以防止两个字段的 name=op),但我已经尝试过这样做。我试过没有那个。这似乎没有什么不同。

我没有使用 image_button,而是普通的 '#type'='submit'。有没有其他人遇到过这个问题?

0 投票
2 回答
2784 浏览

drupal - Drupal 7 - 删除表格第一列中的复选框

所以我在我的 .admin.inc 文件中写了一个简单的表:

而且我有我想要的所有数据,但是表格的第一列有复选框,而我不想要任何...是否可以删除它们?

谢谢 !

0 投票
1 回答
73 浏览

drupal-7 - 在移动到不同位置之前验证 l()

这将是 Drupal 7 中最简单的功能问题。下面提到的事情是强制性的,不能改变功能。1)我在模块中创建了一个自定义块。2) 我已包含如下表格:-

3)现在我有一些其他内容在块中,但给我带来了麻烦如下所示: -

4)所以它包含一个链接,一旦点击,我就会转到谷歌。5)现在我想在用户导航到 Google 之前验证块内的某些内容。因此,如果条件不匹配,那么我将通过显示错误消息来阻止用户,因此用户无法遍历到 Google。

请告诉我是否有可能或者我应该使用不同的技术来处理这种情况。