如果您也需要一些 Drupal 的东西来处理您的数据,那么您不必以 Drupal 的方式进行操作。我还开发了一个模块。它访问数据库,显示其中的数据,然后授权用户可以更新数据,我的模块将保存它。但这些不会是节点。除非您需要(例如)一些在节点上运行的钩子以在您的内容上运行,否则只需使用您的 PHP 知识为页面创建内容。
您使用 hook_menu 来定义将显示您的页面的路径。例如,在我的代码(detail_pages 模块)中,查询在 example.com/strain/3/4 之类的路径中获取两个参数,我将其定义如下,我在 detail_page($arg1, $ arg2) 函数定义。
function detail_pages_menu() {
$items = array();
$items['strain/%/%'] = array(
'title' => t('Strain Detail Page'),
//'page callback' => 'strain_form',
'page callback' => 'detail_page',//'drupal_get_form',
//'page arguments' => array('strain_detail_form'),
'page arguments' => array(1,2),
'access callback' => TRUE,
'access arguments' => array('access content'),
'description' => t('Detail Page'),
'type' => MENU_NORMAL_ITEM,
);
....
回答您的具体问题
我必须为它定义一个内容类型吗?
不,您可以使用页面渲染数组,甚至可以将直接 html 添加到 PHP 中的页面。
如果我不使用内容类型并手动控制权限,是否容易?
是的。在上面我写的例子中,这一行是权限:'access callback' => TRUE 这允许每个人查看。您可以分配一个函数来代替 TRUE,以返回一个布尔值来表示用户是否有权查看该页面。
假设我必须定义一个内容类型。我的数据库有 5 个表。我应该定义 5 种不同的内容类型吗?
特别是如果您需要一个好的数据库结构,您可能希望避免使用节点和定义内容类型。Drupal 为按节点 ID 逻辑键控的列创建一个表。所以你有很多不必要的桌子......