【发布时间】:2012-02-03 13:27:53
【问题描述】:
有没有一种方法可以在 Drupal 中完全自定义页面?我不希望 Drupal 标头或任何其他由 Drupal 生成的 HTML 出现,但我希望能够访问 Drupal 函数。
【问题讨论】:
有没有一种方法可以在 Drupal 中完全自定义页面?我不希望 Drupal 标头或任何其他由 Drupal 生成的 HTML 出现,但我希望能够访问 Drupal 函数。
【问题讨论】:
基本上你想要一个新的页面模板(而不是节点模板)。这在 Drupal 7 中不能开箱即用,因此有几个步骤:
第 1 步 为这个特殊主题的页面创建一个新的内容类型,称它为“特殊”或其他...
第 2 步 将此代码添加到您的模板的 template.php 文件中。 (将下面代码中的“yourthemename”替换为你的主题的机器名,即/sites/all/中你的主题文件夹的名称)
function yourthemename_preprocess_page(&$vars) {
if (isset($vars['node']->type)) {
$vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
}
}
第 3 步
在您的主题文件夹中创建一个新的页面模板,并以新的内容类型命名。例如:page--special.tpl.php 和“特殊”是内容类型的名称。自定义!
第 4 步 清除缓存
第 5 步 使用您的新内容类型创建新的内容——它将在您的新页面模板的设计中。
最终结果就像拥有一个完全独立的主题,但仍保留在您现有的主题中。
注意,我写了一篇关于如何为 Drupal 6 执行此操作的博客文章,但如果您阅读了 cmets,则有一些想法和链接如何为 D7 执行此操作,但基本上就是我在这里所说的。
http://highrockmedia.com/blog/creating-custom-content-type-page-templates-drupal-php
【讨论】:
您可以运行替代的page.tpl.php 文件。例如。 page--front.tpl.php
不确定这是最好的方法,但它会起作用。您可以从文件中删除您不想要的任何内容,使其与其他页面完全不同。
【讨论】:
Drupal 非常灵活:
<?php
$json = array(
'body' => 'This is the body of the page.',
'title' => 'This is the page title',
);
return drupal_json_output($json);
?>
【讨论】: