由于国内使用 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
- 创建模块主文件:在您的模块文件夹中创建一个名为
cravatar_module.module
的文件,并将之前提供的钩子函数代码添加到该文件中。 - 启用模块:登录到 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 站点中的头像功能。