logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

Drupal 主题化:Webform 模块通知邮件模板

14/10/2025, by Ivan

我们通过 CCKTaxonomyWebform 模块创建的目录,可以在下单后通过电子邮件通知客户和网站管理员(经理)。然而,目前发送给经理的邮件中只包含商品名称、数量和客户信息。我认为,如果邮件中能够直接包含所订购商品的链接,将会更加方便。

当前下单后发送到邮箱的邮件内容如下:

提交时间:星期二,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 部分

14/10/2025, by Ivan

在网站开发中,我们经常希望为页面增添一些亮点,使网站更加生动。用 Drupal 创建的网站在初始安装后通常显得比较静态、普通,而我们希望它看起来更有个性、更具动感、更鲜明、更“活”。为此,我们可以添加下拉菜单、动态更新的页面,或者在网站头部放置一个轮播横幅(banner)。

掌握 CSS 是非常有帮助的,因为借助它我们可以使网站具有独特的风格,改变配色方案。当然,即使使用默认模板,我们仍然可以让网站变得更吸引人——虽然未必完美,但也是一个不错的开始。让我们从制作横幅开始。

以前,大多数横幅都是通过 .gif 图像实现的,这类图片可以包含多个帧;或者使用 Flash 横幅。制作 GIF 动画较为繁琐,而 Flash 虽然效果更好,但也有明显缺点,比如对系统资源的高消耗。

也可以使用 JavaScript 编写横幅效果,但那需要更多的时间和对语言的掌握。自从出现了 JavaScript 框架 jQuery,这一切变得简单许多——现在可以快速、高效地创建动画效果,而且无需深入掌握 JavaScript。

下面是我们将要继续改进的网站:

在 Drupal 7 中创建幻灯片(slideshow)和 jQuery 轮播(carousel)。第 2 部分

14/10/2025, by Ivan

在上一部分课程中,我们已经创建了一个幻灯片(slideshow)。我使用它来展示组织的员工,而您也可以将其用作网站的横幅(banner)。不过,这种默认的方案还不够理想——我希望为网站添加“上一张”和“下一张”的切换按钮。与普通的文本或数字分页器相比,这样的按钮看起来更加美观。

提醒一下,我们已经安装了 ViewsViews_slideshow 模块。

接下来,我附上了几种箭头样式,我们将把它们放入我们的幻灯片中。首先,添加一个文本切换器(pager)。

Drupal views

page-content-type.tpl.php —— 针对特定内容类型的独立模板

14/10/2025, by Ivan

您可能已经多次为自己的节点创建单独模板,例如通过 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 文件

14/10/2025, by Ivan

有时我们需要修改或删除 Drupal 的默认 CSS 文件,例如:system.css、defaults.css 或 system-menus.css。虽然我们可以直接修改这些文件,但在更新 Drupal 时,很容易忘记曾经改动过它们,从而被新版本覆盖。为了避免这种情况,可以将这些文件从 Drupal 输出的 CSS 列表中排除。如果其中某些样式仍然需要使用,可以将它们复制到主题的 style.css 文件中进行修改。这样可以防止自定义样式被意外删除。

首先,在主题目录中创建 template.php 文件(如果已经存在则直接编辑),并添加以下代码:

Views 主题化:修改 view.tpl.php 模板(字段、行、区块、页面),并集成 jQuery 插件 EasySlider

14/10/2025, by Ivan

在本文中,我们将了解 Drupal 的查询构建器 —— 模块 Views (http://drupal.org/project/views)。Views 允许以可视化方式输出各种内容类型的字段、评论、分类术语、用户信息以及其他来自数据库的数据。该模块配备了图形化界面,可通过鼠标轻松创建数据库查询。

注意! 如果您希望在一小时内立即使用 EasySlider,我强烈建议直接使用对应模块。本文主要用于讲解 Views 模板结构及其主题化(theming)原理。稍后若要自定义 EasySlider 的外观,还需修改 CSS。

当我们配置好所需字段后,需要按照自己的要求排版。这可以通过模板文件实现。默认情况下,这些模板位于 theme 文件夹中。

使用 Sassy 模块在 Drupal 中快速集成 SCSS(SASS)

14/10/2025, by Ivan

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

14/10/2025, by Ivan

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 功能管理)

14/10/2025, by Ivan

Features 是一个模块,它可以将网站的功能打包在一起,并通过一次点击将其迁移到另一网站。最终会生成一个可作为模块安装的 feature(特性)。Feature 是一组实体的集合,这些实体共同构成了网站上的某个功能。

Features 模块 提供了用户界面(UI)和程序接口(API),用于将 Drupal 中的各种组件(模块、内容类型、分类词汇表、视图、菜单等)组合成一个 Feature 模块。Feature 模块与普通模块一样,包含 .info 文件,可以通过后台管理修改、启用、禁用、更新或删除。

Feature 模块可以包含的功能示例:

Drupal Features 新闻

14/10/2025, by Ivan

在本课中,我将介绍如何通过 Feature 模块 将网站中的某些功能复制到其他网站上使用。我们先从简单的例子开始,创建一个新闻流(News Feed),包括以下内容:

  • 在菜单中添加“新闻”链接,指向新闻页面;
  • 创建新闻页面;
  • 在首页添加新闻区块(block)。

这些功能足够我们了解 Features 模块的基本用法。

首先需要安装以下模块:

FeaturesViewsCTools

然后创建一个“新闻(News)”内容类型(Content Type),并添加几条该类型的节点(nodes)。

接下来我们来创建 View 页面和区块。

页面设置: