Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当自定义模板已应用于Drupal 6中的节点';什么是内容类型?_Drupal_Drupal Templates_Drupal Nodes_Drupal Content Types - Fatal编程技术网

当自定义模板已应用于Drupal 6中的节点';什么是内容类型?

当自定义模板已应用于Drupal 6中的节点';什么是内容类型?,drupal,drupal-templates,drupal-nodes,drupal-content-types,Drupal,Drupal Templates,Drupal Nodes,Drupal Content Types,[对于Drupal 6]假设我创建了一个名为“我的内容类型”的内容类型。我可以通过创建“page-node-my_content_type.tpl.php”覆盖整个内容类型的默认模板。但是,进一步定制该内容类型的单个节点(例如,节点5555)的最佳方式是什么 我尝试了以下方法,但均无效: page-node-5555.tpl.php page-node-my_content_theme-5555.tpl.php node-5555.tpl.php 这些都不管用。他们都继续使用我原来的内容类型

[对于Drupal 6]假设我创建了一个名为“我的内容类型”的内容类型。我可以通过创建“page-node-my_content_type.tpl.php”覆盖整个内容类型的默认模板。但是,进一步定制该内容类型的单个节点(例如,节点5555)的最佳方式是什么

我尝试了以下方法,但均无效:

  • page-node-5555.tpl.php
  • page-node-my_content_theme-5555.tpl.php
  • node-5555.tpl.php

这些都不管用。他们都继续使用我原来的内容类型模板。

Drupal的页面模板在建议系统上工作。基于当前URL,将创建一个可能的模板文件数组。它在数组中循环(按相反顺序),查找存在的模板文件。它找到的第一个将使用

drupal的主题系统为您提供了修改模板建议的挂钩。。打开template.php并查找

function phptemplate_preprocess_page(&$vars) {
$vars变量包含建议,特别是$vars['template_files']

默认情况下,唯一可用的页面建议是

  • page.tpl.php
  • page-node.tpl.php
  • 页面节点-[node_id].tpl.php
据我所知,页面节点-[node_type].tpl.php在默认情况下不起作用,因此您可能已经修改了预处理_页面模板以添加到此功能中

但是,如果你想添加更具体的模板,你可以这样做

function phptemplate_preprocess_page(&$variables) {
  if ($variables['node']->type != "") {
    $variables['template_files'][] = "page-node-" . $variables['node']->type;
    $variables['template_files'][] = "page-node-" . $variables['node']->type . "-" . $variables['node']->nid;
  }
}
这将允许以下模板建议层次结构

  • page.tpl.php
  • page-node.tpl.php
  • 页面节点-[node_id].tpl.php
  • 页面节点-[节点类型].tpl.php
  • 页面节点-[节点类型]-[节点id].tpl.php

    • Drupal的页面模板在建议系统上工作。基于当前URL,将创建一个可能的模板文件数组。它在数组中循环(按相反顺序),查找存在的模板文件。它找到的第一个将使用

      drupal的主题系统为您提供了修改模板建议的挂钩。。打开template.php并查找

      function phptemplate_preprocess_page(&$vars) {
      
      $vars变量包含建议,特别是$vars['template_files']

      默认情况下,唯一可用的页面建议是

      • page.tpl.php
      • page-node.tpl.php
      • 页面节点-[node_id].tpl.php
      据我所知,页面节点-[node_type].tpl.php在默认情况下不起作用,因此您可能已经修改了预处理_页面模板以添加到此功能中

      但是,如果你想添加更具体的模板,你可以这样做

      function phptemplate_preprocess_page(&$variables) {
        if ($variables['node']->type != "") {
          $variables['template_files'][] = "page-node-" . $variables['node']->type;
          $variables['template_files'][] = "page-node-" . $variables['node']->type . "-" . $variables['node']->nid;
        }
      }
      
      这将允许以下模板建议层次结构

      • page.tpl.php
      • page-node.tpl.php
      • 页面节点-[node_id].tpl.php
      • 页面节点-[节点类型].tpl.php
      • 页面节点-[节点类型]-[节点id].tpl.php

      在Drupal 7中,只需复制
      page.tpl.php模板
      并将其重命名为

      页面--节点--[node:id].tpl.php


      清除缓存并开始调整..

      在Drupal 7中,只需复制
      page.tpl.php模板
      并将其重命名为

      function phptemplate_preprocess_page(&$variables) { if ($variables['node']->type != "") { $variables['template_files'][] = "page-node-" . $variables['node']->type; $variables['template_files'][] = "page-node-" . $variables['node']->type . "-" . $variables['node']->nid; } } 页面--节点--[node:id].tpl.php


      清除缓存并开始调整..

      是否需要向template.php添加内容?是否需要向template.php添加内容?谢谢。这很有效。有没有关于如何将节点的内容(而不是整个页面)作为la node.tpl.php的目标的提示?我应该使用phptemplate\u预处理\u节点吗?我希望它将我的主模板(page-node-my_content_type.tpl.php)应用于所有内容类型,包括相关页面。但是,我希望Drupal考虑另一个文件的建议,用于特定呈现单个节点的内容部分(5555)。您给出的是为节点定制整个模板,而不仅仅是内容部分。忽略后续问题。使用phptemplate_preprocess_node函数完成了我需要的工作。再次感谢,谢谢。这很有效。有没有关于如何将节点的内容(而不是整个页面)作为la node.tpl.php的目标的提示?我应该使用phptemplate\u预处理\u节点吗?我希望它将我的主模板(page-node-my_content_type.tpl.php)应用于所有内容类型,包括相关页面。但是,我希望Drupal考虑另一个文件的建议,用于特定呈现单个节点的内容部分(5555)。您给出的是为节点定制整个模板,而不仅仅是内容部分。忽略后续问题。使用phptemplate_preprocess_node函数完成了我需要的工作。再次感谢。 function phptemplate_preprocess_page(&$variables) { if ($variables['node']->type != "") { $variables['template_files'][] = "page-node-" . $variables['node']->type; $variables['template_files'][] = "page-node-" . $variables['node']->type . "-" . $variables['node']->nid; } }