为 Drupal 集成

由于国内使用 Drupal 的用户不多,所以并未进行最新版的兼容测试,如果遇到代码异常请通过 Cravatar 支持论坛反馈。

您可以很方便的为 Drupal 集成 Cravatar 头像服务:

/**
 * Implements hook_avatar_default_list_alter().
 *
 * 替换 Drupal 的默认头像
 */
function cravatar_module_avatar_default_list_alter(&$defaults) {
  $defaults['gravatar_default'] = 'https://example.com/path/to/cravatar.jpg';
}

/**
 * Implements hook_user_avatar_url_alter().
 *
 * 替换 Gravatar 头像为 Cravatar 头像
 */
function cravatar_module_user_avatar_url_alter(&$url) {
  $sources = array(
    'www.gravatar.com',
    '0.gravatar.com',
    '1.gravatar.com',
    '2.gravatar.com',
    'secure.gravatar.com',
    'cn.gravatar.com',
    'gravatar.com',
  );
  $url = str_replace($sources, 'cravatar.cn', $url);
}

/**
 * Implements hook_user_profile_picture_alter().
 *
 * 替换个人资料中的头像上传地址
 */
function cravatar_module_user_profile_picture_alter(&$description) {
  $description = '<a href="https://cravatar.com" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
}

要使用您的自定义模块和相关的钩子函数,您需要按照以下步骤进行操作:

创建一个新的模块文件夹:在 Drupal 的 modules 目录下创建一个新的文件夹,用于存放您的模块文件。您可以将文件夹命名为 cravatar_module 或任何您喜欢的名称。

创建模块信息文件:在您的模块文件夹中创建一个名为 cravatar_module.info.yml 的文件,并添加以下内容:


name: 'Cravatar Module'
type: module
core_version_requirement: ^8 || ^9
package: Custom
version: 1.0
  1. 创建模块主文件:在您的模块文件夹中创建一个名为 cravatar_module.module 的文件,并将之前提供的钩子函数代码添加到该文件中。
  2. 启用模块:登录到 Drupal 管理后台,转到 “Extend”(扩展)页面,找到您的模块(”Cravatar Module”),然后启用它。

一旦您启用了模块,钩子函数将会生效。根据您的代码,以下是每个钩子函数的作用:

  • hook_avatar_default_list_alter(): 这个钩子函数用于替换 Drupal 的默认头像。您需要将 'https://example.com/path/to/cravatar.jpg' 替换为您实际想要用作默认头像的图片URL。
  • hook_user_avatar_url_alter(): 这个钩子函数用于将 Gravatar 头像的URL替换为 Cravatar 头像的URL。当用户请求头像时,URL将被替换为 cravatar.cn 域名下的地址。
  • hook_user_profile_picture_alter(): 这个钩子函数用于修改用户个人资料页面中的头像上传地址。描述文本将显示一个链接,用户可以点击该链接以访问 cravatar.cn 网站来修改他们的资料图片。

确保您的模块文件夹和文件名正确,并按照上述步骤启用模块后,您的自定义逻辑将生效,并应用于 Drupal 站点中的头像功能。

文档最后修改于

文派文库团队编撰