Drupal 主题化 第 6 课:Views Slideshow 与 jCarousel 的主题化
在本视频中,我将为 Views Slideshow 进行主题化,重写几个模板并集成 jCarousel 插件,用于对幻灯片分页器(pager)进行美化。
使用的模块:
Views Slideshow - http://drupal.org/project/views_slideshow
插件:
jQuery jCarousel - http://sorgalla.com/projects/jcarousel/
用于运行 jCarousel 的代码:
Drupal 主题化 第 7 课:分类术语(Taxonomy Term)主题化
在本课中,我们将使用模板 taxonomy-term.tpl.php 和模块 Taxonomy Views Integrator (TVI) 来对分类术语页面进行主题化。
Drupal 主题化 第 8 课:用户页面主题化(user-profile.tpl.php)
在本课中,我们将学习如何为用户页面进行主题化。我们将使用模板 user-profile.tpl.php。
Drupal 主题化:Webform 模块通知邮件模板
我们通过 CCK、Taxonomy、Webform 模块创建的目录,可以在下单后通过电子邮件通知客户和网站管理员(经理)。然而,目前发送给经理的邮件中只包含商品名称、数量和客户信息。我认为,如果邮件中能够直接包含所订购商品的链接,将会更加方便。
当前下单后发送到邮箱的邮件内容如下:
提交时间:星期二,2010 年 11 月 16 日 - 15:56 提交者:用户 Admin 表单内容: 名称:彩色盘子 数量:1 E-mail: levmyshkin2@mail.ru 地址:鄂木斯克市 备注与偏好: 可在此处查看提交内容: http://drupal/node/14/submission/1
可以在 Webform 的设置界面中配置邮件模板:
在 Drupal 7 中创建幻灯片(slideshow)和 jQuery 轮播(carousel)。第 1 部分
在网站开发中,我们经常希望为页面增添一些亮点,使网站更加生动。用 Drupal 创建的网站在初始安装后通常显得比较静态、普通,而我们希望它看起来更有个性、更具动感、更鲜明、更“活”。为此,我们可以添加下拉菜单、动态更新的页面,或者在网站头部放置一个轮播横幅(banner)。
掌握 CSS 是非常有帮助的,因为借助它我们可以使网站具有独特的风格,改变配色方案。当然,即使使用默认模板,我们仍然可以让网站变得更吸引人——虽然未必完美,但也是一个不错的开始。让我们从制作横幅开始。
以前,大多数横幅都是通过 .gif 图像实现的,这类图片可以包含多个帧;或者使用 Flash 横幅。制作 GIF 动画较为繁琐,而 Flash 虽然效果更好,但也有明显缺点,比如对系统资源的高消耗。
也可以使用 JavaScript 编写横幅效果,但那需要更多的时间和对语言的掌握。自从出现了 JavaScript 框架 jQuery,这一切变得简单许多——现在可以快速、高效地创建动画效果,而且无需深入掌握 JavaScript。
下面是我们将要继续改进的网站:
在 Drupal 7 中创建幻灯片(slideshow)和 jQuery 轮播(carousel)。第 2 部分
在上一部分课程中,我们已经创建了一个幻灯片(slideshow)。我使用它来展示组织的员工,而您也可以将其用作网站的横幅(banner)。不过,这种默认的方案还不够理想——我希望为网站添加“上一张”和“下一张”的切换按钮。与普通的文本或数字分页器相比,这样的按钮看起来更加美观。
提醒一下,我们已经安装了 Views 和 Views_slideshow 模块。
接下来,我附上了几种箭头样式,我们将把它们放入我们的幻灯片中。首先,添加一个文本切换器(pager)。

page-content-type.tpl.php —— 针对特定内容类型的独立模板
您可能已经多次为自己的节点创建单独模板,例如通过 node-content-type.tpl.php 来重写输出。
有时这样就足够了,但有时需要为特定的内容类型创建独立的页面模板。不幸的是,在 Drupal 6 中,无法直接实现这一点,除非编写额外的代码。为了让我们新的内容类型模板 page-content-type.tpl.php 生效,请在 template.php 文件中添加以下代码:
function phptemplate_preprocess_page(&$vars) {
if (isset($vars['node'])) {
$vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);
}
}
现在,您可以为特定的内容类型创建独立模板,例如 page-news.tpl.php(其中 news 是新闻内容类型的机器名称)。
删除或重写默认的 CSS 文件
有时我们需要修改或删除 Drupal 的默认 CSS 文件,例如:system.css、defaults.css 或 system-menus.css。虽然我们可以直接修改这些文件,但在更新 Drupal 时,很容易忘记曾经改动过它们,从而被新版本覆盖。为了避免这种情况,可以将这些文件从 Drupal 输出的 CSS 列表中排除。如果其中某些样式仍然需要使用,可以将它们复制到主题的 style.css 文件中进行修改。这样可以防止自定义样式被意外删除。
首先,在主题目录中创建 template.php 文件(如果已经存在则直接编辑),并添加以下代码:
Views 主题化:修改 view.tpl.php 模板(字段、行、区块、页面),并集成 jQuery 插件 EasySlider
在本文中,我们将了解 Drupal 的查询构建器 —— 模块 Views (http://drupal.org/project/views)。Views 允许以可视化方式输出各种内容类型的字段、评论、分类术语、用户信息以及其他来自数据库的数据。该模块配备了图形化界面,可通过鼠标轻松创建数据库查询。
注意! 如果您希望在一小时内立即使用 EasySlider,我强烈建议直接使用对应模块。本文主要用于讲解 Views 模板结构及其主题化(theming)原理。稍后若要自定义 EasySlider 的外观,还需修改 CSS。
当我们配置好所需字段后,需要按照自己的要求排版。这可以通过模板文件实现。默认情况下,这些模板位于 theme 文件夹中。
使用 Sassy 模块在 Drupal 中快速集成 SCSS(SASS)
SASS/SCSS 早已成为编写 CSS 代码的标准。如果您还没有在自己的网站中使用它,那么现在正是时候。通过 Sassy 模块可以非常快速地连接 SCSS,而且即使在共享主机(shared hosting)上也能工作,因为 CSS 文件的编译是通过 PHP 库完成的。
我们开始吧。我这里有一个带有 Zen 主题的干净 Drupal。首先需要安装 Sassy 模块:
https://www.drupal.org/project/sassy
Sassy 模块需要 Prepro 模块来编译 CSS:
https://www.drupal.org/project/prepro
还需要安装 Libraries API 模块,用于连接 Sassy 所需的库: