区块

动态处理区块的样式

区块的输出由block.tpl.php模板控制。如我们在其他地方所看到的,PHPTemplate将根据名称在多模板中搜寻来决定显示哪个模板。区块模板的优先次序与其他地方所用的一样。

命名约定决定显示内容。最具体的,你可以为某个版次的某个模块的区块提供模板(block-modulename-delta.tpl.php)。你也可以将一个模板根据模块的名字用于模块的区块上去(block-modulename.tpl.php),或者用于特定区域的区块(block-regionname.tpl.php),如果,以上模板都不在的话,系统将应用默认的block.tpl.php模板。

注意看这个优先次序包含了生成显示于区块输出的模块的名字。Delta是系统生成的一个值用来识别每一个区块的。


用户人工创建的区块公用一个名字“block.”

模块和区块的动态样式处理

在第5章,我们详细讨论了对默认模板和主题函数的拦截和覆写的过程。这些模板和函数提供了Drupal站点的很多关键输出,很多都是通过区块指派到区域的方式显示到页面中来。在本章,我们想看看你可以如何来控制站点模块和区块的格式内容。


切记,建议(suggestions)只在与父级模板处于同一文件夹下时有效。也就是说,要让block-user.tpl.php生效,你必须把block.tpl.php放到同一个文件夹来。


 

启用并配置区块

Tags: 

我们来启用一些需要用到的区块以便我们能将输出显示到屏幕上。将Recent comments(最新评论), Syndicate(同步)和 Who's online(谁在线) 三个区块放到 Right sidebar(右边栏)中,顺序随你便。

Navigation(导航)区块目前在左边栏,我们要把它弄到右边栏来,并放到这一栏的顶部位置。

另外把Footer Nav(页脚导航)区块放到页脚区域,把Primary Links(主要链接)区块放到page top(页面顶端)区域,保存。

同时在这里,把一些我们不想在页面显示的区块标题隐藏掉。打开Syndicate区块的配置窗口,把Block title 设为 <none>Primary Links, Footer, Navigation同理,保存修改。

主题化Block(区块)模块

Tags: 

区块模块为页面中的区块处理提供了手段。

默认模板

系统只包含了两个专门针对区块的模板文件:

  • block.tpl.php
  • block-admin-display-form.tpl.php

block.tpl.php位于modules/system/ ,block-admin-display-form.tpl.php在modules/block/下。

block.tpl.php

这是区块格式处理的关键模板,包含有如下变量:

Variable Description
 $block->content

区块内容

主题化操作:装扮Garland主题

现在,为了练习,我们把本章学习的内容用来自定义一个现有的主题。我们将从一个默认主题开始,然后运用系统提供的各种选项来把一个现成的主题剪裁装扮一番。

对于下面的例子,假定我们有一个假想客户,名叫“Fluid Carbon”,他们想建一个意大利跑车活动的粉丝网站。这是一个爱好者网站,因此这个主人的预算很有限,不打算付钱做设计或者组件开发,预算限制逼迫我们基本上只能把Drupal拿过来就用了,而不做什么修改了。

下面是用户的需求……

外观:

  • 不固定的3栏布局
  • 配色方案匹配用户现有的个性特征
  • 必须在页头使用用户的Logo
  • 用户希望一个简洁的外观——不要太杂乱
  • 右边栏中垂直放置网站主导航

功能:

管理模块和区块

模块是些用来扩展Drupal核心功能的插件。你使用的模块和它们的输出所放置的位置对站点的外观有重大影响。有效的管理各种模块和区块对控制用户在你站点的体验很关键。

标准的Drupal包里包含了很多的模块,但只有部分默认开启。你可以启用或者关闭附加模块或可选模块来实现你希望的功能。


各种附加模块可在Drupal官网找到:http://drupal.org/project/Modules


 

模块管理器( module manager)

模块管理器 (Administer | Site building | Modules)中包含了所有已安装模块的列表。默认模块分为两类:Core – optional(核心-可选模块)和 Core – required(核心-必选模块)。当你添加附加模块到站点时,还可能出现其他的分组名称。

屏幕所见

当你访问一个Drupal网站,你从屏幕上所看到东西就是站点当前主题文件的产物。主题文件一边调用函数生成数据,一边设置这些数据在屏幕中的样式和定位。一小堆文件做一大堆事。

在一个网页布局中,Drupal主题设计者可以指派某个区域来实现某个目的。比如说,在一个典型的三栏主题中,中间一栏主要用来放些比较主要的内容,而两个边栏放的信息就次要些。每个区域中的屏幕空间放什么内容也要看设计者的喜好。


在Drupal中,主要内容所在的区域叫做内容栏,两边的叫边栏。


 Drupal主题文件通过一个叫做区域(Region)的标记符来将页面中的各个元素进行分隔。主题开发人员只要在相应文件的代码里添加一个简短的声明就可以将区域放置在页面的任何一个位置。

默认的Garland主题中被编入的区域
                

布置边栏区块

点管理菜单中的 Structure>Block,出现一个表,如下图。注意表中”Sidebar first“部分。

Drupal中的区块

图33.区块管理窗口

点 Navigation一行右边的下拉框,选定”-None-“,你会看到Navigation从这里消失了。再来到页面的底部位置, 将”blog_posts:block“一行拖至Search form的下边,点页面底部的 Save blocks 按钮保存。回到首页,这是你发现Recent Post区块位于搜索区块之下了。

操作:“最新照片”区块

尽管我们设立了一个非常令人信服的图库视图,但是我们的首页在默认图片列表显示下仍不能让人称心。那让我们与另外一个特殊的视图即能显示站内最新上 传图片的视图调配起来使用。为加速进程,我们可以克隆图库视图然后在它的基础上稍作修改。完成后,首页看起来将如图7-28那样。

      图7-28.带“最新照片”区块的首页效果

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

     

Subscribe to RSS - 区块