首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Drupal中定义内容类型时

在Drupal中定义内容类型时
EN

Stack Overflow用户
提问于 2012-04-10 11:08:46
回答 2查看 316关注 0票数 0

目前,我有一个模块,它可以上传文件、解压缩文件、读取一些文件并存储在数据库中。因为我只是一个PHP开发人员,而不是一个Drupal开发人员,所以我不常见于内容类型、视图和其他Drupal内容。我只想从数据库中显示一些东西到多个页面,并编辑一些东西(不是所有东西)。

在PHP中这样做就像在信封里放一个简短的东西一样简单,但在Drupal中,这就像你把轮椅放在信封里一样。

我必须为它定义一个内容类型吗?

如果我不使用内容类型并拥有手动控制的权限,那么容易吗?

假设我必须定义一个内容类型。我的数据库有5个表。我应该定义5种不同的内容类型吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-10 14:28:17

如果您也需要一些Drupal工具来处理数据,您就不必使用Drupal的方式了。我还开发了一个模块。它访问一个数据库,显示来自它的数据,然后授权用户可以更新数据,我的模块会保存它。但这些都不是节点。除非您需要(例如)在节点上运行的钩子来运行您的内容,否则只需使用PHP知识为页面创建内容即可。

您可以使用hook_menu来定义显示页面的路径。例如,在我的代码(detail_pages模块)中,查询在路径中获得两个参数,如example.com/应变/3/4,我将其定义如下,并在detail_page($arg1,$arg2)函数定义中使用了php对数据库的调用。

代码语言:javascript
复制
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,
  );
....

回答你的具体问题

,我必须为它定义一个内容类型吗?

不是的。您可以使用页面呈现数组,甚至可以向PHP中的页面添加直接的html。

如果我不使用内容类型并手动控制权限,

会很容易吗?

是。在我写的上面的示例中,这一行是用于权限:“访问回调”=> TRUE --这允许每个人查看。您可以指定一个函数来代替TRUE,返回一个布尔值来表示它授权查看该页面的用户。

假设我必须定义一个内容类型。我的数据库有5个表。我应该定义5种不同的内容类型吗?

特别是当您需要一个良好的数据库结构时,您可能希望避免使用节点和定义内容类型。Drupal为按节点ID逻辑键控的列创建一个表,因此您有许多不必要的表…

票数 2
EN

Stack Overflow用户

发布于 2012-04-10 14:16:44

有很多方法可以实现你想要的。从你的描述中,我感觉到你想在一些页面上显示一些信息(不太清楚你用“编辑一些东西”意味着什么)。

在Drupal中可以有一个块(=多个页面上的定义区域),您可以使用规则或PHP来控制哪些页面(例如,在内容类型“”上),该块将使用类似于page.tpl.php和node.tpl.php的自定义节点结构(可能会混淆扩展,在这里已经有一段时间了)来定义主题所包含的某些部分的结构,您可以让内容类型-节点显示您想要的任何信息,使用PHP、HTML和CSS。(就像所有该内容类型的对象的包装器一样),

  1. 面板用于拆分页面。菜单项可以指向单个面板,例如,页面的上部是静态的" page“(=该内容类型的节点),下部是另一个”页面“,其中包含显示信息的PHP代码。

在这三个选项中,您都可以显示个性化数据,这意味着您有全局变量,这些变量告诉您用户id、名称、角色等,以便从DB加载特定的数据并相应地呈现出来。

结论:内容类型使一切变得更容易组织,但是如果您只有一个实例(=节点)的类型/结构,您可以将代码放在一个"Page“中。

可以自由地要求更多的细节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10087568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档