Drupal6:DrupalThemer为不同类型的内容类型提供相同的候选名称

Drupal6:DrupalThemer为不同类型的内容类型提供相同的候选名称,drupal,drupal-6,content-type,drupal-theming,Drupal,Drupal 6,Content Type,Drupal Theming,我是一个drupal新手 我有不同类型的内容,如新闻、事件等,它们的内容是不同的。新闻详细信息页面具有标题内容文本日期。但事件详细信息页面有标题日期内容文本位置扬声器等,所以我需要这些不同类型的不同布局页面。因此,我使Drupal Themer能够获得候选名称。对于事件页面,它为我提供了页面节点.tpl.php,对于新闻页面,它也提供了相同的内容:(我如何将这些页面分开?我希望像页面事件节点.tpl这样的内容,但是没有.:/Drupal Themer还为事件页面指定了唯一的候选名称,比如页面节点

我是一个drupal新手

我有不同类型的内容,如新闻、事件等,它们的内容是不同的。新闻详细信息页面具有标题内容文本日期。但事件详细信息页面有标题日期内容文本位置扬声器等,所以我需要这些不同类型的不同布局页面。因此,我使Drupal Themer能够获得候选名称。对于事件页面,它为我提供了页面节点.tpl.php,对于新闻页面,它也提供了相同的内容:(我如何将这些页面分开?我希望像页面事件节点.tpl这样的内容,但是没有.:/Drupal Themer还为事件页面指定了唯一的候选名称,比如页面节点-18.tpl.php,但这并不意味着什么,因为我无法使用此节点名称为所有事件创建一个总体布局:(


非常感谢您的帮助!!非常感谢!!!

我对Drupal Themer不太熟悉,但是一种稍微不同的方法是使用节点模板来设计内容的样式,并使用优秀的(可能的)更改页面上任何附加信息(如块)的布局

要使用节点模板对不同的内容类型进行主题化,只需基于node.tpl.php以node-content_type.tpl.php的形式创建模板即可。因此,您的事件节点有一个名为node-events.tpl.php的模板


然后,您可以使用上下文模块定义上下文,该模块在显示事件内容类型的页面时会做出反应,并选择要显示的区域/块。

同时使用Monkeynija(+1)建议的不同node.tpl.php文件如果是“正常”方式,您可以通过在自定义模块/主题中添加基于节点类型的页面模板建议来添加所需的功能:

function yourModuleOrTheme_preprocess_page(&$variables) {
  // If this is a node page, add a page template suggestion based on node type
  if (isset($variables['node'])) {
    // Build the suggestion name ('.tpl.php' suffix will be added by the theming system)
    $suggestion = 'page-type-' . $variables['node']->type;
    // Add to end of suggestion array, thus keeping the fallback to other suggestions,
    // if this specific version is not implemented by the theme
    $variables['template_files'][] = $suggestion;
  }
} 
有了它,您应该能够添加一个“page type event.tpl.php”文件,该文件应该用于所有事件节点页面


(注意:在添加该函数后,您需要重新设置,以使其被系统识别)

感谢回复…node.tpl.php只包含内容部分,但对于此事件详细信息页面,我还需要指定边栏、页脚等。这就是我一直在寻找page-node.tpl.php解决方案的原因。因此,我现在将回顾上下文模块,谢谢!上下文模块非常值得一试,因为它可以更好地控制ver在一个站点上阻塞,并向Drupal site.ps介绍了更常见的“部分”概念,感谢您提到上下文模块。我将在下一个项目中使用它。非常感谢!)哇!谢谢你的回复!这看起来很适合我的解决方案…所以我把这个函数添加到themes/mysite/template.php中,如何使用它来定义事件页面的page-type-event.tpl.php?ps,谢谢你的链接,我正在阅读所有的链接。哇哇,你是大师!!!忘了清除缓存,现在它工作得太好了!!现在我有了page-type-event.tpl.php!!谢谢你!我是说真的!!我很想给你买杯啤酒或任何东西…:)很高兴能帮上忙——不过,有一句话要提醒大家:在今后的维护过程中,过度增加页面模板可能会成为一个相当大的负担,因为最终你会有多个地方需要保持同步,以便在整个网站上都能保持基本内容的同步。因此,你可能仍然希望探索其他解决方案,如建议的上下文m模块,或根据节点类型切换块可见性等。感谢您的警告。今天是项目的截止日期。我知道如何使用$node->fields塑造内容…我可以很快完成。我稍后有时间会查看上下文模块,下一个项目:)再次感谢。