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