【问题标题】:When not to use a Drupal node?什么时候不使用 Drupal 节点?
【发布时间】:2010-06-17 14:04:36
【问题描述】:

我最近创建了一个非常简单的 CRUD 表,用户在其中存储了一些数据。对于数据,我创建了一个自定义节点。该功能非常适合使用基本节点功能在 CRUD 表中创建、编辑和删除数据(实际上,我很惊讶使用少量代码通过适当的访问控制对基本功能进行编程是多么快速和容易) ....

由于数据的处理方式与“内容”不同,例如博客文章(无标题、无正文、无评论、无修订,不应出现在 ?q=node 页面上,没有预览,没有预告等)...我发现我大部分时间都在“关闭”并修改drupal自动为节点执行的内容。

我知道这是一个口味问题,但是应该在哪里划定哪些应该被视为节点,哪些不应该被视为节点?换句话说,不使用节点从头开始编程这些东西会更好吗?

【问题讨论】:

  • 作为后续...我决定不使用节点是我的特定实例。我觉得我只是在使用(在我看来)永远不需要像 cmets 和版本控制这样的东西的“数据”;并且在很大程度上对个人用户来说是个人的(想想财务数据)。我决定不作为节点处理更容易。话虽如此,Drupal 菜单系统、表单 API 和数据库 API 仍然使“工作流程”易于编程和定制。披露:我喜欢通过不使用 CCK/views 获得的控制权(但我猜这是个人喜好问题)。

标签: drupal drupal-6


【解决方案1】:

除了简单的编辑/更新/删除功能之外,使用节点来自定义数据还有很多额外的好处:

  • 可能通过分类法进行分类
  • 通过作者跟踪隐式“所有权”
  • 隐式跟踪创建/修改时间
  • 默认的基本访问控制,可通过大量模块进行扩展
  • 通过视图灵活地生成/列出/过滤查询
  • 可能通过 CCK 字段进行临时扩展/注释
  • 工作流、操作等的可能定义
  • 以编程方式拦截/调整几乎每个使用方面/场景的大量挂钩
  • 评论、投票、评级和所有贡献的模块提供的大量其他功能,这些模块在节点上/与节点一起工作......

鉴于这一切,我想说您需要一个很好的理由来使用节点在 Drupal 中存储数据。节点只是Drupal 生态系统中几乎所有事物的基本构建块,与收益相比,删除一些不需要的默认“功能”的开销似乎很小。

也就是说,处理与节点系统分开的数据的一个可能原因/论据可能是该数据是否直接旨在注释其他节点(想想分类法)。但是,由于您可以轻松地从其他节点引用节点(有很多不同的选项来说明如何做到这一点),所以这个论点并不强。

另一个(更强大的)论点是数据完整性 - Drupal 在规范化、关系数据存储、引用完整性、事务处理和其他相关方面不是很强大(礼貌地说) 如果你有这方面的需求,你可能别无选择,只能跳过节点概念,自己在系统内创建和维护一个单独的数据岛。

【讨论】:

    【解决方案2】:

    认为节点也不需要是公共的也是有帮助的。一些节点是私有/内部的,可以通过访问控制进一步控制。你做这件事的方式,无论你在做什么,都会让所有的可扩展性和扩展性都在你的肩上。

    我可能会根据我正在做的事情使用 CCK/Taxonomy 来处理它。这样,我无需编写任何额外代码即可获得 Views/Panels/etc 模块集成的额外好处。

    【讨论】:

    • 您能否详细说明“私有/内部”节​​点的含义。有什么例子可以参考吗?
    • 并非所有 Drupal 内容都必须在网站上公开。这取决于你想要做什么。例如,如果它不需要正文,请在内容类型中禁用该字段。如果它不需要标题,请实现自动节点标题模块,它将隐藏它。您可以禁用节点类型的 cmets。要禁用节点或 /?q=node,您可以更改站点信息中的首页。
    • @stotastic 尽管节点是网站的主要内容,但这并不意味着每个人都可以访问它们。使用不同的模块,您可以根据分类节点类型等创建不同的访问规则。当您保留节点时,您将获得每个与节点一起使用的模块都将与您的 CRUD 表一起使用的能力,而无需做任何额外的工作。这也可以节省大量时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2022-11-10
    • 2022-06-28
    相关资源
    最近更新 更多