Drupal 6:如何为主题添加新区域

时间:2010-04-23 15:28:09

标签: drupal drupal-6 themes

我在/ sites / all / themes / [theme]目录下的.info文件中添加了一个新的区域行。但是,当我查看Blocks页面时,该区域不可见,也不是下拉菜单中的可选项。我也清除了缓存。我错过了什么?

4 个答案:

答案 0 :(得分:2)

当您说清除缓存时,您实际上是指主题注册表吗?或者你真的清除了数据库缓存吗?如果您刚刚清除主题注册表,它将不会反映主题的.info文件的更改。您可以通过...清除缓存。

  1. 使用位于“管理>网站配置>效果”的“清除所有缓存数据”链接或按钮。
  2. 启用了devel块(随devel模块一起提供),单击“Empty cache”链接。
  3. 只需访问主题选择页面“管理>网站建设>主题”。
  4. Drupal.org

    列出

    浏览器本身也可以缓存页面。您可以清除浏览器缓存以及Drupal缓存,只是为了绝对确定。

    如果这些都不起作用,您可以从.info文件发布您的地区分配吗?

答案 1 :(得分:2)

如果您启用了多个主题,请确保在块配置页面上查看正确的主题。

例如,如果您启用了custom_theme和garland,则每个都有一个块配置页面。

转到http://www.example.com/admin/build/block/list/custom_theme查看custom_theme的块 转到http://www.example.com/admin/build/block/list/garland查看花环主题的块

等...适用于所有已启用的主题

答案 2 :(得分:1)

我在这里假设Drupal 6,但在您的andytheme.info中,您是否添加了这样的区域(请查看底线):

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[andyregion] = Andy Region

请记住,如果在.info文件中添加任何区域,则必须添加所有区域 - 它们不会从您的基本主题继承。

并且,在你的page.tpl.php中,你是否添加了要在某处打印的区域变量?像这样的东西?

<div class="region andyregion"><?php print $andyregion ?></div>

当然,它会被你想要的任何东西包围。然后刷新缓存,看看它是否在块中。

安迪 -

答案 3 :(得分:0)

以下假设您使用Zen作为基本模板。

  1. 打开/sites/[yoursite]/themes/[yourtheme]/[yourtheme].info文件并向下滚动到有regions[xxx] = yyy

    的载入的位置
      

    括号中的名称是区域的计算机名称。等号后面的文字是admin/structure/blocks页面上使用的描述性文字。

  2. 打开/sites/[yoursite]/themes/[yourtheme]/templates/page.tpl.php并将<?php print render($page['MACHINE-NAME']); ?>添加到您想要显示该区域的位置。