Php 如何使用Drupal报告在Drupal之外处理的数据表?

Php 如何使用Drupal报告在Drupal之外处理的数据表?,php,drupal,drupal-6,drupal-modules,Php,Drupal,Drupal 6,Drupal Modules,是否有一个或一组模块可用于此目的。我在Drupal之外使用sql脚本等处理数据。我已经读到视图和CCK的组合可以工作,但是它需要重新设置每个字段(在CCK内)。我曾尝试在块中使用php代码,但显示选项有限。我必须创建一个新模块吗?使用CCK来创建模块是一个非常糟糕的主意 CCK只能处理它创建的确切数据库体系结构。在现有的数据库体系结构上使用现有的CCK字段几乎是不可能的 CCK根据其配置更改数据库布局。例如,将一个字段设置为“多个”,或在另一种内容类型上重新使用一个字段将彻底重新排序并规范化数据

是否有一个或一组模块可用于此目的。我在Drupal之外使用sql脚本等处理数据。我已经读到视图和CCK的组合可以工作,但是它需要重新设置每个字段(在CCK内)。我曾尝试在块中使用php代码,但显示选项有限。我必须创建一个新模块吗?

使用CCK来创建模块是一个非常糟糕的主意

  • CCK只能处理它创建的确切数据库体系结构。在现有的数据库体系结构上使用现有的CCK字段几乎是不可能的
  • CCK根据其配置更改数据库布局。例如,将一个字段设置为“多个”,或在另一种内容类型上重新使用一个字段将彻底重新排序并规范化数据库:创建新表、删除列等等
  • 您的外部脚本需要考虑所有这些。唯一正确的方法是通过CCKAPI处理一切,这涉及到编写cron实现或drush脚本

    这给您留下了一个非常好的选择:创建一个模块,它定义自己的内容类型。这样的模块有机会以任何方式定义所有字段(没有CCK,只有
    $node->foo

    这是一个很好的模式,例如创建包含外部服务内容的节点。比如说,一个$node->price字段,其中的价格是从某个外部SOAP服务检索的

    当您有旧式数据库时,这也是一种很好的模式,您需要从中读取、写入或更新数据。
    这种方法的另一个好处是,您可以轻松地限制操作:例如只读,或创建&读取但不更新。CCK不允许这样的事情(很容易)。

    我已经记下了你的答案,谢谢。这似乎很不幸,它需要编写一个新的模块来完成,只是有点奇怪,以前没有人这样做。在其他报表模块上搜索会返回Forena,它声称在PDO数据库上工作正常(也声称在sql server和Oracle dbs等企业数据库上工作)。AFAIK Forena不创建节点。如果不需要节点,有很多不同的解决方案