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 所需的库:
Emmet(原名 Zen Coding)——更快速地编写 HTML/CSS
Emmet 是 Zen Coding 项目的改名版本。Emmet 允许通过简写快速生成 HTML 列表、带类名或 ID 的块结构。不仅如此,它还支持通过简写快速编写 CSS 属性。虽然一开始记忆这些缩写和工具看起来有些多余,但当你习惯之后,会发现没有 Emmet 写代码反而变得不方便。
Emmet(Zen Coding)的功能
在编写 HTML 时,我们经常需要写大量代码,写得越多,出错的几率(例如忘记闭合标签)也越高。这时 Emmet(Zen Coding)就能帮上忙。大多数 IDE 都内置或支持安装 Emmet 插件,只需设置一个快捷键即可生成 HTML 代码。
例如,你可以写下:
div#content>h1+p
按下 Emmet 执行快捷键后,它会转换为:
<div id="content">
<h1></h1>
<p></p>
</div>
如你所见,我们输入的只是类似 CSS 的选择器,而生成的却是对应结构的 HTML。
Features Drupal(Drupal 功能管理)
Features 是一个模块,它可以将网站的功能打包在一起,并通过一次点击将其迁移到另一网站。最终会生成一个可作为模块安装的 feature(特性)。Feature 是一组实体的集合,这些实体共同构成了网站上的某个功能。
Features 模块 提供了用户界面(UI)和程序接口(API),用于将 Drupal 中的各种组件(模块、内容类型、分类词汇表、视图、菜单等)组合成一个 Feature 模块。Feature 模块与普通模块一样,包含 .info 文件,可以通过后台管理修改、启用、禁用、更新或删除。
Feature 模块可以包含的功能示例:
Drupal Features 新闻
在本课中,我将介绍如何通过 Feature 模块 将网站中的某些功能复制到其他网站上使用。我们先从简单的例子开始,创建一个新闻流(News Feed),包括以下内容:
- 在菜单中添加“新闻”链接,指向新闻页面;
- 创建新闻页面;
- 在首页添加新闻区块(block)。
这些功能足够我们了解 Features 模块的基本用法。
首先需要安装以下模块:
然后创建一个“新闻(News)”内容类型(Content Type),并添加几条该类型的节点(nodes)。
接下来我们来创建 View 页面和区块。
页面设置: