虽然Drupal是一个很好的CMS/网站/Intranet平台,但它很难为用户提供编辑数据集的能力,就像在电子表格或可公开编辑的数据库表中一样。我们被迫进行表单更新,表单更新,表单更新等。点,滚动,点击浪费时间。我还没有找到像电子表格一样编辑数据的模块或视图,但仍然维护数据库结构。
在Drupal 6中,通过ODBC可以方便地通过OpenOffice Base、LibreOffice Base、Microsoft /Access或HeidiSQL等程序编辑节点标题、节点正文、注释或其他文本字段。使用Drupal 7,文本/数据是序列化的(BLOB),因此对许多文本字段的轻松更改现在是不可能的,而且无论如何也是不可能的。
发布于 2013-11-24 12:39:40
在正常情况下,您不应该编辑原始数据库表来进行更改;应该使用一个广泛的API来代替它(无论是通过UI、通过自定义代码、通过REST交互等等)。
手动更新表意味着拒绝模块挂钩运行的机会,可能会使站点处于不一致的状态。更不用说缓存不会失效这一事实,使得前端暂时不一致。
直接回答你的问题:
我不知道你在这里所说的“数据集”是什么意思。如果您的意思是,如何一次性更新一堆实体(例如节点)的值,那么查看大容量操作模块应该是有用的。
( B)您所引用的数据是使用PHP的serialize()
函数序列化的。您可以使用unserialize()
对其进行解码。我不能评论你如何在Excel中这样做。也许您可以编写VBA函数来镜像serialize()
/unserialize()
并将它们应用于传入/传出数据?
( C)您无法阻止Drupal序列化这些数据,这些数据都已经完成了。好吧,理论上你可以这么做,但这将是一项很大的工作。您可能还会发现需要更改许多依赖于已知模式的控制模块。
我没有亲自使用过它,但是我听说过关于数据模块的一些好东西。也许值得一探究竟。饲料可能也很有趣。
总之:通过在API之外直接操作数据库表为用户提供更改站点的能力并不是Drupal的目标之一(或者不是我之前提到的)。如果有什么问题的话,我想他们会因为我前面提到的原因而不鼓励他们这样做。
https://drupal.stackexchange.com/questions/95259
复制