vCard plugin for Craft CMS
vCard generator plugin for Craft
Installation
To install vCard, follow these steps:
- Download & unzip the file and place the
vcard
directory into yourcraft/plugins
directory - -OR- do a
git clone https://github.com/nfourtythree/craft-vcard.git
directly into yourcraft/plugins
folder. You can then update it withgit pull
- Install plugin in the Craft Control Panel under Settings > Plugins
- The plugin folder should be named
vcard
for Craft to see it. GitHub recently started appending-master
(the branch name) to the name of the folder for zip file downloads.
vCard works on Craft 2.4.x and Craft 2.5.x.
vCard Overview
This plugin generates a link to download a vCard from data you specify
Configuring vCard
There is only one setting for this plugin which is salt
this is a string
used for salting the encoded data when generating the vCard link.
This is set randomly when the plugin is installed but can be changed to whatever you like.
Using vCard
The only thing that is really required
is first name. Everything else is optional
Usage
There is a link variable available for usage in templates 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",
} %}
<a href="{{ craft.vCard.link(options) }}">Download my vCard</a>
Options
Name | Type | Example |
---|---|---|
firstName | String | Johnny |
lastName | String | Appleseed |
additional | String | Jim (commonly a middle name) |
prefix | String | Mr |
suffix | String | Esq |
company | String | Apple Inc |
jobTitle | String | Demo Data Guru |
String | Array | See email docs | |
url | String | Array | See url docs |
address | String | Array | See address docs |
phoneNumber | String | Array | See phoneNumber docs |
birthday | String | 1985-10-26 (YYYY-MM-DD format) |
note | String | Johnny is amazing |
photo | String | http://example.com/images/avatar.jpg (Url to image) |
This can be specified as either a string johnny@apple.com
or an array (or even a mix!)
Name | Type | Example |
---|---|---|
address | String | johnny@apple.com |
type | String | type may be PREF |
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
This can be specified as either a string http://apple.com
or an array (or even a mix!)
Name | Type | Example |
---|---|---|
address | String | http://apple.com |
type | String | type may be WORK |
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
This can be specified as either a string +1 234 567 89
or an array (or even a mix!)
Name | Type | Example |
---|---|---|
number | String | +1 234 567 89 |
type | String | Type may be PREF |
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
This can be either a single or multi array
Name | Type | Example |
---|---|---|
name | String | Apple |
extended | String | Suite 1 |
street | String | 1 Infinte Loop |
city | String | Cupertino |
region | String | CA |
zip | String | 95014 |
country | String | USA |
type | String | type may be DOM |
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"
}]
ToDo
- Clean up / refactor code to tidy code that was done quickly
vCard Changelog
1.0.1 -- 2016.02.23
- Fixed: Issue with vcard controller links creating 404s
1.0.0 -- 2016.02.16
- Initial release
Brought to you by nfourtythree (n43.me)
Thanks to
- Jeroen Desloovere - https://github.com/jeroendesloovere/vcard
- nystudio107 - https://github.com/nystudio107/generator-craftplugin (for just making life easier / quicker)
- Chris Rowe - http://chrisrowe.net for the idea to make this plugin