首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Drupal7-向页面添加块

Drupal7-向页面添加块
EN

Stack Overflow用户
提问于 2012-06-10 02:43:38
回答 2查看 6.4K关注 0票数 3

这是我目前的设置。

我已经创建了一个新的自定义主题与以下地区。

代码语言:javascript
运行
复制
regions[header] = Header
regions[content] = Content
regions[footer] = Footer

page.tpl.php

代码语言:javascript
运行
复制
    <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">&nbsp;</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">&nbsp;</div>

        <div class="row">
            <div class="span8 offset1">
                <h1><?php print $title; ?></h1>
            </div>
        </div>

        <div class="row">&nbsp;</div>

        <div class="row">
            <div class="span10 offset1">
                <?php print render($page['content']) ?>
            </div>
        </div>

        <div class="row">&nbsp;</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">&nbsp;</div>
    </footer>

</div><!-- /container -->

这一切都很好,我已经创建了几个基本页面很好。当我想要在页面上有一个自定义的“内容类型”时,问题就来了,其中一个块在左边,一个块在左边,另一个块在右边。现在我还不能完全理解区域是如何工作的。

我想要一些像sidebar_second效果,但我不确定它如何设置与我的宽度。这是我所在地区的截图。http://goo.gl/XFVnl

所以我想我需要改变我的内容区域的显示方式,这样它才能包含侧边栏区域?

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-10 03:03:02

内容类型特定的模板通常是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文件中。如果节点类型是(机器名)是“page.tpl.php”,那么Drupal将不会在page-- node -book.tpl.php文件中查找替代的book文件。

代码语言:javascript
运行
复制
<?php
function themename_preprocess_page(&$variables) {
  if (!empty($variables['node'])) {
    $variables['theme_hook_suggestions'][] = 'page__node_' . $variables['node']->type;
  }
}
?>

现在可以将page.tpl.php文件复制到页面--node-type.tpl.php并在那里进行更改。您放在此文件中的任何内容都将用于该节点类型的页面模板。(注意:"page“和"node”之间有两个连字符,"node“和”type“之间有一个连字符)如果看不到更改,记得要清除缓存。

票数 1
EN

Stack Overflow用户

发布于 2012-06-10 03:02:26

我认为第一步是在.module文件中声明一个sidebar区域以及其他区域,即使它不会显示在每个页面上。

在你的页面模板中,你可以检查(psuedo-code)

代码语言:javascript
运行
复制
if (isset($page['sidebar'])) {
   <div sidebar float left theme this how you want>
     print render($page['sidebar']);
   </div>
}

现在,当您创建一个块时,您可以指定它要显示的特定路径,或者指定它要显示的特定内容类型。上面的代码将检查页面在您的侧边栏中是否有块,并相应地呈现它。

如果你在drupal堆栈交换上发表文章,你可能更有可能得到答案。https://drupal.stackexchange.com/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10963613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档