这是我目前的设置。
我使用以下区域创建了一个新的自定义主题。
regions[header] = Header
regions[content] = Content
regions[footer] = Footer
页面.tpl.php
<div id="Header">
<div class="row">
<div class="span12" style="text-align:center;padding-top:20px;">
<div><a href="/"><img src="logo.png" width="150" height="150" alt="KT Logo"></a></div>
</div>
</div>
<div class="row"> </div>
</div><!-- /Header -->
<div id="Navigation">
<div class="row" style="text-align:center;">
<div class="span12" style="text-align:center;">
<?php print render($page['header']); ?>
<hr class="style-two">
</div>
</div>
</div><!-- /Navigation -->
<div id="Content">
<div class="row"> </div>
<div class="row">
<div class="span8 offset1">
<h1><?php print $title; ?></h1>
</div>
</div>
<div class="row"> </div>
<div class="row">
<div class="span10 offset1">
<?php print render($page['content']) ?>
</div>
</div>
<div class="row"> </div>
</div><!-- /Content -->
<footer>
<div class="row">
<div class="span12">
<img src="separator.png" alt="separator">
<?php print render($page['footer']); ?>
</div>
</div>
<div class="row"> </div>
</footer>
</div><!-- /container -->
这一切都很好,我已经很好地创建了几个基本页面。当我想要一个页面上有 2 个块的自定义“内容类型”时,问题就出现了,一个在左边有主要内容,一个在右边有一个侧边栏。现在我还没有完全理解这些区域是如何工作的。
我想要类似 sidebar_second 效果的东西,但我不确定它会如何设置我的宽度。这是我所在地区的屏幕截图。 http://goo.gl/XFVnl
所以我想我需要改变我的内容区域的显示方式,以便它可以包含侧边栏区域?
谢谢你的帮助
最佳答案
特定于内容类型的模板通常是 node.tpl.php 文件,页面模板是 page.tpl.php 文件。
使用 node.tpl.php 时已经包含 page.tpl.php 文件
首先,将所有区域添加到它们主题的 .info 文件中。这直接影响块管理页面中可用的区域。
没有必要让您定义的所有区域(在 .info 文件中)出现在所有 page.tpl.php 文件中。
因为 page.tpl.php 文件中有 3 个区域,所以保留它,它会继续工作。
但是要覆盖特定节点类型的 page.tpl.php,您必须在主题的 template.php 文件中设置它们。您简单地“询问”Drupal 使用这个 page.tpl.php 文件是节点类型是“页面”(例如)。
将此添加到您的 template.php 文件中。如果节点类型(机器名称)是“book”,Drupal 将不会在 page--node-book.tpl.php 文件中查找替代 page.tpl.php 文件。
<?php
function themename_preprocess_page(&$variables) {
if (!empty($variables['node'])) {
$variables['theme_hook_suggestions'][] = 'page__node_' . $variables['node']->type;
}
}
?>
现在您可以将 page.tpl.php 文件复制到 page--node-[type].tpl.php 并在那里进行更改。您在此文件中放入的任何内容都将用于该节点类型的页面模板。
(注意:“page”和“node”之间有2个连字符,“node”和“[type]”之间有一个连字符)
如果看不到更改,请记住清除缓存。
关于php - Drupal 7 - 向页面添加块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10963613/