7

我正在尝试创建一个内容类型(比如 Meter)。每个仪表由一个“仪表读数”组成。此抄表内容包含三个字段,例如标题、日期范围和使用情况。我有一个面板页面,其中显示了与父仪表相关的所有仪表读数。我以表格格式显示了仪表读数。

我希望用户能够添加新的仪表读数,而无需转到默认的仪表读数创建页面。用户应该能够在提供的表格视图中输入数据,而不是默认的表单类型的页面,并且应该自动将其保存到项目本身中。

所以,我希望功能类似于:-

  1. 用两个链接显示所有仪表读数,即编辑和删除,
  2. 当用户点击编辑链接时,抄表行应该变成可编辑的并且用户应该能够在同一个表中进行内联更改,
  3. 在页脚中应该有一个用于添加新仪表读数的链接,当用户单击它时,应该将一个新的空白行动态添加到表格中,并且用户应该能够在其中进行新条目。

Drupal 7中是否有这样做的模块?我已经为此尝试了几个模块,例如SlickGridjQGridjEditable

任何帮助都会很棒。提前致谢。

4

2 回答 2

12

恐怕我不知道开箱即用的模块。但如果您继续使用自定义编码,您可以查看以下内容:

  1. 视图中每行的编辑和删除选项

使用视图 Megarow。对于工作示例,您可以查看其在商业后台的使用方式。请注意,您需要在自定义模块中为快速编辑表单编写表单结构( FORM api )。Views Megarow 负责 ajax 填充编辑表单,在客户端提交,并在服务器响应后刷新原始行。

  1. 当用户点击编辑链接时,读表行应该变成可编辑的并且用户应该能够在同一个表中进行内联更改。

视图 Megarow 不支持内联编辑。但是@nmc 建议的另一个模块可以做到这一点。它的可编辑字段。但它没有任何编辑/删除按钮。您直接单击视图中的文本(前提是用户具有编辑字段数据的适当权限)。

如果您要使用可编辑字段,则必须在视图中添加另一个删除按钮,一个确认将重定向到触发删除操作的页面。

由于删除按钮会重定向到默认确认页面,因此您可能需要编写自定义删除操作来覆盖此操作。

  1. 在页脚中应该有一个用于添加新仪表读数的链接,当用户单击它时,应该将一个新的空白行动态添加到表格中,并且用户应该能够在其中进行新条目。

我建议创建一个小的 ajax 表单。在其中创建一个“添加抄表”按钮,提交时将在服务器中创建一个抄表节点。ajax 表单应该在隐藏字段中包含父信息(即 Meter id)。此表单的 ajax 响应可能是另一个在客户端加载/刷新视图的脚本。

刷新视图的客户端代码可以在 Views Hacks的Views Autorefresh子模块中找到。

如果使用视图 megarow,您必须在刷新视图后在 ajax 响应上添加另一个 jquery 函数 - 触发编辑按钮。否则,您可能必须向新创建的行添加一些类或主题以使它们成为焦点。

刷新整个视图很重要,以便将 drupal 行为附加到表中新创建的条目。

于 2013-02-04T07:54:59.117 回答
3

我不知道是否有一个模块可以满足您的所有需求,但您可以组合使用一些模块。

查看批量操作 (VBO) - 支持 Drupal 7

该模块通过允许对显示的行执行批量操作来增强视图。它通过在每个节点前面显示一个复选框,并添加一个包含可以应用的操作的选择框来实现。可以使用 Drupal Core 或规则操作。

editablefields - 开发中的 Drupal 7 版本

该模块允许在节点的显示上(例如在 node/123)上编辑 CCK 字段,而不仅仅是在节点编辑页面上(例如 node/123/edit)。它也适用于视图等。任何可以选择“格式化程序”的地方,您都可以选择可编辑(或单击以编辑)。

editview - 还没有 Drupal 7 支持,但我想我会提到它,以防你能够自己调整代码

Editview 是 Views 模块的插件。它允许您创建节点可编辑的视图,并且可以创建新节点。

于 2013-02-01T14:12:07.787 回答