Craft CMS 5 的 vCard 生成插件

安装次数: 9,112

依赖: 0

建议者: 0

安全: 0

星级: 4

关注者: 3

分支: 4

开放问题: 3

类型:craft-plugin

3.1.0 2024-06-07 14:10 UTC

This package is auto-updated.

Last update: 2024-09-25 18:25:45 UTC


README

Plugin Icon

Craft CMS 5.x 的 vCard 插件

Craft CMS 5 的 vCard 生成插件

需求

此插件需要 Craft CMS 5.0.0 或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并进入您的 Craft 项目

     cd /path/to/project
    
  2. 然后让 Composer 加载插件

     composer require nfourtythree/vcard
    
  3. 在控制面板中,转到设置 → 插件,并点击 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>

选项

email

这可以是字符串 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) 提供

感谢