Drupal 房地产分类信息板
在本课中,我将介绍如何使用 Views 模块 及其 公开过滤器(exposed filters) 在 Drupal 上创建分类信息板。
这是课程的第一部分,我将创建一个房地产分类信息板。未来,我还计划制作一个带有各种功能的汽车分类信息板。如果你希望看到关于分类信息板的其他教程,请在论坛上留言,我会尽力制作相关课程。同时,欢迎观看我的其他教程并加入我的社交网络。
Drupal Node Expire 和 Auto Expire —— 广告到期后自动取消发布
我们Drupal 公告板的一个必要功能是让发布的广告在一段时间后自动下架。我建议先使用现成的模块来实现,然后再尝试使用 Rules 模块实现相同的功能。在现有模块中,我找到了两个适用于 Drupal 6 的模块和一个适用于 Drupal 7 的模块,它们分别是:
Node Expire —— 适用于 Drupal 6
Auto Expire —— 适用于 Drupal 6 和 7
Drupal 6 Node Expire
我们先来试试适用于 Drupal 6 的 Node Expire 模块:
http://drupal.org/project/node_expire
我将使用版本 2.06。
安装并启用 Node Expire 模块。
在 Drupal 上创建社交网络
Drupal 的潜能边界
Drupal 是最优秀的内容管理系统(CMS)之一。事实上,它曾两次荣获“2008 年最佳开源 CMS”和“最佳 PHP 开源 CMS 奖”。经过大约 8 年的发展,Drupal 已经成为最强大、最通用的框架之一。Drupal 的非凡灵活性是它的绝对优势……同时也是它的弱点。任何功能都可以实现,但从哪里开始呢?我花了很多时间研究各种模块、它们的用法和兼容性、错误和特性,以便能为你提供可靠的建议。越来越多的人开始询问我如何实现某些社区功能,因此我决定将这些经验汇编成一个系列文章。读者将会了解创建社区网站所需的各种模块和配置参数。这将是一场针对 CMS(内容管理系统)模块及其特性的探索。
迈向社交网络之路
社区网站像虚拟的蘑菇一样在网络上不断涌现。每个网站都有自己的特点,所以让我们确保我们的网站将成为一个社交网络。我提出以下标准,用以定义一个社交网络网站:
在Drupal上预设社交网络网站
在本课中,我将为社交网络预配置Drupal。我将安装以下模块:
- Logintobogan
- Captcha
- Pathauto, token, transliteration
- Tagadelic
- Backup and migrate
Captcha
每个人在创建账户时都遇到过一些小问题。Captcha 允许您使用 CAPTCHA 图像、数字验证码等。Captcha 模块提供了一些额外的选项。您可以选择要使用验证码的表单类型(注册、登录、联系表单等),以及其他一些选项。
Pathauto
Pathauto 模块显著改善了您的 URL 外观。它将类似 node/46532 之类的内容更改为 content/o-drupale。您可以使用额外的标记生成基于名称、用户名、用户 ID 等的 URL。
Drupal 中的用户资料(User Profile)
Drupal 中的用户资料页面
用户资料页面是任何社交网络中最复杂又最有趣的部分。我希望在阅读这篇文章后,对你来说它也会变得充满乐趣。Drupal 为我们提供了多种实现用户资料的方式。第一个选项是核心模块 Profile。如果你只需要一个非常简单的用户资料页面,那么这个模块已经足够。然而,我们现在谈论的是社交网络。如果我们希望用户资料中能够添加图片、视频以及更多信息,那么我们将使用 Profile2(Content Profile)模块。这个模块主要是为每个用户创建一个包含资料信息的节点,从而使资料与特定用户关联。
为什么需要用户资料?
在开始之前,让我们先问自己:我们希望通过用户资料实现什么?
我对此有许多想法。用户资料应该能够:
配置 Drupal 用户资料页面
个人资料字段
我们的用户资料内容目前几乎是空的。让我们添加一些基本信息字段,我将其称为 “个人资料字段”。这一步确实需要一些思考,以确定需要哪些字段。常见的字段包括:关于我、性别、爱好、职业等。要定义这些附加字段,我们需要使用 Profile2 模块。我通常会将所有字段放在一个 fieldset 中。你也可以添加字段分组。只需填写字段内容、拖放排序即可完成。请记住,用户资料会在注册时自动创建。这意味着:应尽量减少必填字段。用户应该能够快速注册。此外,即使某些字段不是必填项,我们也不希望用过多的文本输入框让他们感到疲惫。你可以针对特定的字段组,让用户资料页面保持整洁有序。
头像
你的用户需要一个“面孔”。用户头像在现代互联网中扮演着非常重要的角色。它们能够极大地提升整体体验,使用户之间产生“个人联系”的感觉。在 Drupal 中,已经提供了创建精美用户头像所需的所有工具。
为 Drupal 7 开发模块
在本教程部分中,我将向你展示 Drupal 不仅仅是一款 CMS。我们将了解 Drupal 模块 的组成结构,并亲手创建几个属于我们自己的模块。
Drupal 是一个快速发展的系统,目前已经推出了第七个主要版本。成千上万个模块被开发出来,用于在网站上实现各种功能。然而,有时我们不仅仅需要通过鼠标来配置模块。有时我们可能不满意数据的输出顺序,或者数据显示的样式无法满足我们的需求。这时,Drupal 框架就能派上用场。我们将在以下网站上进一步了解该框架的强大功能:
我们决定在 Drupal 中创建一个模块,为此我们需要准备以下内容:
Drupal 7 — 使用 PHP PDO 进行数据库操作
随着我们迁移到 Drupal 7,我们也转向了新的 Drupal 数据库抽象层 API,它基于 PDO 实现。PDO 早已被广泛应用于 Zend Framework 以及许多其他 PHP 框架中。那么,既然在 Drupal 6 中编写 SQL 查询已经很方便了,为什么还需要新的方式呢?
首先,让我们了解一下什么是 PDO。
PDO(PHP Data Objects) 允许将 PHP 与数据库交互的代码从一种数据库轻松迁移到另一种数据库。例如,如果你的网站之前使用 MySQL,现在你可以几乎无缝地迁移到 PostgreSQL。至于 Oracle,我暂时还没测试过,但理论上它也应该可以正常工作。
PHP Data Objects(PDO)是 PHP 的一个扩展,它为访问数据库提供了一个轻量级、统一的接口。每个数据库的驱动程序都通过 PDO 接口实现,并且可以扩展以支持特定数据库服务器的功能。
在 Drupal 7 中操作数据库 - 第1课 - Drupal 数据库 API(DB API)
如果你曾经为 Drupal 6 编写过模块,那么迁移到新的 Drupal 7 Database API 对你来说不会太困难。新的数据库 API 基于 PHP 的 PDO 扩展,这使它能够支持多种数据库,例如 MySQL、PostgreSQL、MSSQL,甚至可能包括 Oracle。虽然语法需要一些时间去适应,但从安全性和可扩展性角度来看,它比直接书写 SQL 更强大。
以下是官方文档中的一些要点:
Drupal 7 Database API 提供了一个标准化且直观的数据库访问抽象层。该 API 在尽可能保持 SQL 语法和灵活性的同时,还提供了以下特性:
在 Drupal 7 中操作数据库 - 第2课 - 数据库配置(Configuration)
在 Drupal 中,定义数据库连接的主要方式是通过 settings.php 文件中的 $databases
数组。顾名思义,$databases
允许定义多个数据库连接,并且支持多目标配置(target)。数据库连接在第一次执行查询时才会被真正建立(即延迟加载)。
连接键(Connection Key)
连接键是数据库连接的唯一标识符。它在整个网站范围内必须唯一,并且必须为主数据库设置一个默认连接键。通常,大多数站点只会有一个默认连接。
连接目标(Connection Target)
每个连接可以包含一个或多个“目标(target)”。目标是一种可选机制,用于在可用时使用不同的数据库。若所请求的目标未定义,系统会自动回退到默认目标(“default”),而默认目标必须始终存在。