Všetky balíky
Contacts for Laravel
Export do vCard
use RoundlyConsulting\Contacts\Facades\Contacts;
$user = User::create(['name' => 'Jane Doe']);
$user->addEmail('[email protected]', label: 'Work');
$user->addPhone('+421 900 000 000', label: 'Mobile');
$user->addUrl('example.com', label: 'Office, main');
Contacts::for($user)->vCard(); // a vCard 3.0 string for the owner's contacts
$contact->toVCard(); // a single contactVlastník vyššie sa exportuje takto:
BEGIN:VCARD
VERSION:3.0
N:Jane Doe;;;;
FN:Jane Doe
EMAIL;TYPE=work:[email protected]
TEL;TYPE=cell:+421900000000
item1.URL:https://example.com
item1.X-ABLabel:Office\, main
END:VCARDVizitka je platná vCard 3.0 (RFC 2426) s koncami riadkov CRLF:
- N a FN sú vždy prítomné. N sa zostaví zo štruktúrovaných atribútov mena vlastníka, ak ich má — last_name/family_name/surname, first_name/given_name, middle_name/additional_name, name_prefix/honorific_prefix, name_suffix/honorific_suffix. Inak zobrazované meno vyplní pozíciu priezviska v N (N:Jane Doe;;;;).
- FN je name vlastníka, inak spojené štruktúrované časti, inak Contact. Čítajú sa len atribúty, ktoré model naozaj má, takže Model::shouldBeStrict() je bezpečný.
- Kontakty email, phone, url a address sa mapujú na EMAIL, TEL, URL a ADR; druhy social a custom sa exportujú ako NOTE.
- Popisy: popis, ktorý zodpovedá registrovanému typu vlastnosti (work, home, cell, fax, pager…; mobile sa zmení na cell), sa zapíše ako TYPE=work. Každý iný popis sa zachová ako itemN.X-ABLabel na zoskupenej vlastnosti — vo forme vlastného popisu, ktorú čítajú kontakty Apple aj Google.
- Text je escapovaný (spätná lomka, čiarka, bodkočiarka a každý zlom riadka ako \n), URL zostávajú bez escapovania a dlhé riadky sa zalamujú po 75 oktetoch bez rozdelenia UTF-8 znaku.
Exportér a sťahovanie
VCardExporter zostaví vizitku z ľubovoľnej množiny kontaktov; toVCard() jedného kontaktu použije ako meno Contact. Reťazec ponúknite na stiahnutie z controllera:
use RoundlyConsulting\Contacts\Support\VCardExporter;
VCardExporter::forOwner($user); // same as Contacts::for($user)->vCard()
VCardExporter::forContacts($user->contactsOfType('email'), 'Jane Doe'); // any set, with a name
return response(Contacts::for($user)->vCard(), 200, [
'Content-Type' => 'text/vcard',
'Content-Disposition' => 'attachment; filename="jane-doe.vcf"',
]);Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.