nfourtythree / vcard
Craft CMS 5 的 vCard 生成插件
3.1.0
2024-06-07 14:10 UTC
Requires
- php: ^8.2
- craftcms/cms: ^5.0.0
- jeroendesloovere/vcard: ^1.7
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
README
Craft CMS 5.x 的 vCard 插件
Craft CMS 5 的 vCard 生成插件
需求
此插件需要 Craft CMS 5.0.0 或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并进入您的 Craft 项目
cd /path/to/project -
然后让 Composer 加载插件
composer require nfourtythree/vcard -
在控制面板中,转到设置 → 插件,并点击 vCard 的“安装”按钮。
vCard 概述
此插件可以根据您指定的数据生成一个下载 vCard 的链接
配置 vCard
此插件只有一个设置项,即 salt,这是一个用于生成 vCard 链接时对编码数据进行盐化的 string。
这可以通过在 config/ 目录中创建一个 vcard.php 配置文件来设置。下面是一个配置文件的示例
<?php return [ 'salt' => 'your-salt-here' ];
使用 vCard
唯一必须填写的是名字。其他所有内容都是可选的
用法
在模板中可以使用一个链接变量 craft.vCard.link(options)
{% set options = {
firstName: "Johnny",
lastName: "Appleseed",
additional: "Jim",
prefix: "Mr",
suffix: "Esq",
company: "Apple Inc.",
jobTitle: "Data Demo",
email: [{ address: "johnny@apple.com", type: "WORK" }, "johnny@gmail.com"],
url: "http://apple.com",
phoneNumber: ["+1 234 567 89", { number: "+9 876 543 21"}],
photo: "http://exmaple.com/images/avatar.jpg",
address: [{
name: "Apple",
extended: "Suite 1",
street: "1 Infinte Loop",
city: "Cupertino",
region: "CA",
zip: "95014",
country: "USA",
type: "WORK;PARCEL;POSTAL"
},
{
street: "1 Yemen Road",
zip: "1234",
country: "Yemen",
type: "HOME;POSTAL"
}],
note: "Hi there",
role: "Web Developer",
} %}
<a href="{{ craft.vCard.link(options) }}">Download my vCard</a>
选项
这可以是字符串 johnny@apple.com 或数组(甚至是混合!)
email: {
address: "johnny@apple.com",
type: "WORK"
}
// For multiple email addresses
email: [{
address: "johnny@apple.com",
type: "WORK"
},
{
address: "johnny@gmail.com",
type: "PREF;HOME"
}]
// Mix and match example
email: ["johnny@apple.com", {
address: "johnny@gmail.com",
type: "PREF;HOME"
}]
url
这可以是字符串 http://apple.com 或数组(甚至是混合!)
url: {
address: "http://apple.com",
type: "WORK"
}
// For multiple urls
url: [{
address: "http://apple.com",
type: "WORK"
},
{
address: "http://google.com",
type: "HOME"
}]
// Mix and match example
url: ["http://apple.com", {
address: "http://google.com",
type: "HOME"
}]
phoneNumber
这可以是字符串 +1 234 567 89 或数组(甚至是混合!)
phoneNumber: {
number: "+1 234 567 89",
type: "PREF;WORK;VOICE"
}
// For multiple phoneNumbers
phoneNumber: [{
number: "+1 234 567 89",
type: "WORK"
},
{
number: "+9 876 543 21",
type: "PREF;HOME"
}]
// Mix and match example
phoneNumber: ["+1 234 567 89", {
number: "+9 876 543 21",
type: "HOME"
}]
address
这可以是单个或多个数组
address: {
name: "Apple",
extended: "Suite 1",
street: "1 Infinte Loop",
city: "Cupertino",
region: "CA",
zip: "95014",
country: "USA",
type: "WORK;PARCEL;POSTAL"
}
// For multiple addresses
address: [{
name: "Apple",
extended: "Suite 1",
street: "1 Infinte Loop",
city: "Cupertino",
region: "CA",
zip: "95014",
country: "USA",
type: "WORK;PARCEL;POSTAL"
},
{
street: "1 Yemen Road",
zip: "1234",
country: "Yemen",
type: "HOME;POSTAL"
}]
待办事项
- 清理/重构代码以整理快速完成的工作
由 Nathaniel Hammond (nfourtythree) 提供
感谢
- Jeroen Desloovere - https://github.com/jeroendesloovere/vcard
- nystudio107 - https://github.com/nystudio107/generator-craftplugin(让生活更简单/更快)
- Chris Rowe - http://chrisrowe.net 提出了创建此插件的想法