在Drupal 7中的视图中添加/编辑/删除数据

时间:2013-01-22 18:38:27

标签: drupal-7 drupal-views

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

我希望用户能够在不进入默认的Meter Readings创建页面的情况下添加新的Meter Readings。用户应该能够在提供的表视图中输入数据,而不是默认表单类型的页面,它应该自动保存到项目本身。

所以,我希望功能如下: -

  1. 使用两个链接显示所有仪表读数,即“编辑和删除”,
  2. 当用户点击“编辑”链接时,抄表行应该可以编辑,用户应该可以在同一个表格中进行内联更改,
  3. 在页脚中应该有一个用于添加新的抄表的链接,当用户点击它时,应该动态地向表中添加一个新的空行,用户应该可以在其中创建一个新的条目。
  4. Drupal 7中是否有一个模块可以执行此操作?我已经尝试了几个模块,例如SlickGridjQGridjEditable

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

2 个答案:

答案 0 :(得分:12)

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

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

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

  
      
  1. 当用户点击编辑链接时,抄表行应该可以编辑,用户应该可以在线进行更改   在同一张桌子里。
  2.   

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

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

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

  
      
  1. 在页脚中应该有一个用于添加新抄表的链接,当用户点击它时,应该有一个新的空白行   动态添加到表中,用户应该能够创建一个   新进入。
  2.   

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

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

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

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

答案 1 :(得分:3)

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

Views Bulk Operations (VBO) - 支持Drupal 7

  

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

editablefields - 开发中的Drupal 7版本

  

此模块允许在节点的显示屏上编辑CCK字段(例如   at node / 123),而不仅仅是节点编辑页面(例如node / 123 / edit)。它   也可以在视图等内工作。可以选择“格式化程序”,   您可以选择可编辑(或点击编辑)。

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

  

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