【发布时间】:2023-03-10 09:50:01
【问题描述】:
我在 /sites/all/themes/[theme] 目录下的 .info 文件中添加了一个新的区域行。但是,当我查看“块”页面时,该区域不可见,也不是下拉菜单中的可选项目。我也清除了缓存。我错过了什么?
【问题讨论】:
我在 /sites/all/themes/[theme] 目录下的 .info 文件中添加了一个新的区域行。但是,当我查看“块”页面时,该区域不可见,也不是下拉菜单中的可选项目。我也清除了缓存。我错过了什么?
【问题讨论】:
如果您启用了多个主题,请确保您在块配置页面上查看正确的主题。
例如,如果您启用了 custom_theme 和 garland,则每个都有一个块配置页面。
转到http://www.example.com/admin/build/block/list/custom_theme 以查看您的 custom_theme 的块
去http://www.example.com/admin/build/block/list/garland查看花环主题的块
等... 适用于所有启用的主题
【讨论】:
当您说您清除了缓存时,您实际上是指主题注册表吗?还是您真的清除了数据库缓存?如果您刚刚清除了主题注册表,它不会反映对主题 .info 文件的更改。您可以通过...清除缓存
来自Drupal.org的列表
也有可能浏览器本身正在缓存页面。您可以清除浏览器缓存以及 Drupal 缓存,以确保万无一失。
如果这些都不起作用,您能否从 .info 文件中发布您的区域分配?
【讨论】:
我在这里假设 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>
当然,它会被你想要的任何东西和其他东西包围。然后刷新缓存并查看它是否在块中。
安迪-
【讨论】:
以下假设您使用 Zen 作为基本模板。
打开/sites/[yoursite]/themes/[yourtheme]/[yourtheme].info 文件并向下滚动到有regions[xxx] = yyy 负载的地方
括号中的名称是区域的机器名称。等号后面的文字是
admin/structure/blocks页面上使用的描述性文字。
打开/sites/[yoursite]/themes/[yourtheme]/templates/page.tpl.php 并在您希望该区域出现的位置添加<?php print render($page['MACHINE-NAME']); ?>。
【讨论】: