关闭区块模块——Close Block
Submitted by Very on
Close Block 模块可以给任何区块添加“关闭”按钮。关闭时可以附带效果,如上滑、淡出,还能设定是否一次性关闭,如果是的话这个区块就不会出现了。
- Read more about 关闭区块模块——Close Block
- Log in to post comments
Submitted by Very on
Close Block 模块可以给任何区块添加“关闭”按钮。关闭时可以附带效果,如上滑、淡出,还能设定是否一次性关闭,如果是的话这个区块就不会出现了。
Submitted by Very on
区块的输出由block.tpl.php模板控制。如我们在其他地方所看到的,PHPTemplate将根据名称在多模板中搜寻来决定显示哪个模板。区块模板的优先次序与其他地方所用的一样。

命名约定决定显示内容。最具体的,你可以为某个版次的某个模块的区块提供模板(block-modulename-delta.tpl.php)。你也可以将一个模板根据模块的名字用于模块的区块上去(block-modulename.tpl.php),或者用于特定区域的区块(block-regionname.tpl.php),如果,以上模板都不在的话,系统将应用默认的block.tpl.php模板。
注意看这个优先次序包含了生成显示于区块输出的模块的名字。Delta是系统生成的一个值用来识别每一个区块的。
用户人工创建的区块公用一个名字“block.”
Submitted by Very on
在第5章,我们详细讨论了对默认模板和主题函数的拦截和覆写的过程。这些模板和函数提供了Drupal站点的很多关键输出,很多都是通过区块指派到区域的方式显示到页面中来。在本章,我们想看看你可以如何来控制站点模块和区块的格式内容。
切记,建议(suggestions)只在与父级模板处于同一文件夹下时有效。也就是说,要让block-user.tpl.php生效,你必须把block.tpl.php放到同一个文件夹来。
Submitted by Very on
我们来启用一些需要用到的区块以便我们能将输出显示到屏幕上。将Recent comments(最新评论), Syndicate(同步)和 Who's online(谁在线) 三个区块放到 Right sidebar(右边栏)中,顺序随你便。
Navigation(导航)区块目前在左边栏,我们要把它弄到右边栏来,并放到这一栏的顶部位置。
另外把Footer Nav(页脚导航)区块放到页脚区域,把Primary Links(主要链接)区块放到page top(页面顶端)区域,保存。
同时在这里,把一些我们不想在页面显示的区块标题隐藏掉。打开Syndicate区块的配置窗口,把Block title 设为 <none>,Primary Links, Footer, Navigation同理,保存修改。
Submitted by Very on
区块模块为页面中的区块处理提供了手段。
默认模板
系统只包含了两个专门针对区块的模板文件:
block.tpl.php位于modules/system/ ,block-admin-display-form.tpl.php在modules/block/下。
block.tpl.php
这是区块格式处理的关键模板,包含有如下变量:
| Variable | Description |
| $block->content |
区块内容 |
Submitted by Very on
现在,为了练习,我们把本章学习的内容用来自定义一个现有的主题。我们将从一个默认主题开始,然后运用系统提供的各种选项来把一个现成的主题剪裁装扮一番。
对于下面的例子,假定我们有一个假想客户,名叫“Fluid Carbon”,他们想建一个意大利跑车活动的粉丝网站。这是一个爱好者网站,因此这个主人的预算很有限,不打算付钱做设计或者组件开发,预算限制逼迫我们基本上只能把Drupal拿过来就用了,而不做什么修改了。
下面是用户的需求……
外观:
功能:
Submitted by Very on
模块是些用来扩展Drupal核心功能的插件。你使用的模块和它们的输出所放置的位置对站点的外观有重大影响。有效的管理各种模块和区块对控制用户在你站点的体验很关键。
标准的Drupal包里包含了很多的模块,但只有部分默认开启。你可以启用或者关闭附加模块或可选模块来实现你希望的功能。
各种附加模块可在Drupal官网找到:http://drupal.org/project/Modules 。
模块管理器( module manager)
模块管理器 (Administer | Site building | Modules)中包含了所有已安装模块的列表。默认模块分为两类:Core – optional(核心-可选模块)和 Core – required(核心-必选模块)。当你添加附加模块到站点时,还可能出现其他的分组名称。
Submitted by Very on
当你访问一个Drupal网站,你从屏幕上所看到东西就是站点当前主题文件的产物。主题文件一边调用函数生成数据,一边设置这些数据在屏幕中的样式和定位。一小堆文件做一大堆事。
在一个网页布局中,Drupal主题设计者可以指派某个区域来实现某个目的。比如说,在一个典型的三栏主题中,中间一栏主要用来放些比较主要的内容,而两个边栏放的信息就次要些。每个区域中的屏幕空间放什么内容也要看设计者的喜好。
在Drupal中,主要内容所在的区域叫做内容栏,两边的叫边栏。
Drupal主题文件通过一个叫做区域(Region)的标记符来将页面中的各个元素进行分隔。主题开发人员只要在相应文件的代码里添加一个简短的声明就可以将区域放置在页面的任何一个位置。

默认的Garland主题中被编入的区域
Submitted by Very on
点管理菜单中的 Structure>Block,出现一个表,如下图。注意表中”Sidebar first“部分。

图33.区块管理窗口
点 Navigation一行右边的下拉框,选定”-None-“,你会看到Navigation从这里消失了。再来到页面的底部位置, 将”blog_posts:block“一行拖至Search form的下边,点页面底部的 Save blocks 按钮保存。回到首页,这是你发现Recent Post区块位于搜索区块之下了。
Submitted by Very on
尽管我们设立了一个非常令人信服的图库视图,但是我们的首页在默认图片列表显示下仍不能让人称心。那让我们与另外一个特殊的视图即能显示站内最新上 传图片的视图调配起来使用。为加速进程,我们可以克隆图库视图然后在它的基础上稍作修改。完成后,首页看起来将如图7-28那样。

图7-28.带“最新照片”区块的首页效果
除 克隆外,另外一个选择就是在既有的图库视图上添加一个新的显示。但是,因为我们要去掉一个过滤器,以及为了使用不同的ImageCache预置我们还可能 要修改image字段,所以我们将需要覆盖很多的视图默认项。在这样一种情况下,如果覆盖多余继承,那最好是建立一个新的视图,而不要在原来的视图上添加 更多的显示。