这是我目前的设置。
我创建了一个包含以下区域的新自定义主题。
regions[header] = Header
regions[content] = Content
regions[footer] = Footer
page.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
所以我认为我需要更改内容区域的显示方式,以便它可以包含侧边栏区域?
感谢您的帮助
答案 0 :(得分:1)
我认为第一步是在.module文件中声明sidebar
区域以及其他区域,即使它不会显示在每个页面上。
在您的页面模板中,您可以检查(伪代码)
if (isset($page['sidebar'])) {
<div sidebar float left theme this how you want>
print render($page['sidebar']);
</div>
}
现在,当您创建一个块时,您可以指定要显示的特定路径或要显示的特定内容类型。上面的代码将检查页面是否在侧边栏中有一个块并相应地进行渲染。
如果你在drupal堆栈交换上发帖,你可能会更有可能获得答案。 https://drupal.stackexchange.com/
答案 1 :(得分:1)
内容类型特定模板通常是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使用这个页面.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]”之间有1个连字符) 如果看不到更改,请记得清除缓存。