/** * Returns a vcard for a profile * @param $profile * @param $includePhoto * @return VCard */ public function getVCard($profile, $includePhoto) { $vcard = new VCard(); $vcard->addName($profile['lastName'], $profile['firstName'])->addCompany($profile['company'])->addAddress('', '', $profile['address']['street'], $profile['address']['city'], $profile['address']['region'], $profile['address']['zip'], $profile['address']['country'])->addEmail($profile['email'])->addURL($profile['url'])->addPhoneNumber($profile['phone']['work'], 'WORK')->addPhoneNumber($profile['phone']['mobile'], 'CELL')->addJobtitle($profile['jobTitle']); // Add photo if ($profile['photo'] != null) { $photoUri = null; if ($includePhoto) { // Generate filesystem URI $webDir = $this->kernelRootDir . '/../web/'; $photoUri = $webDir . $profile['photo']; } else { // Generate absolute public URI $photoUri = $this->request->getUriForPath('/' . $profile['photo']); } $vcard->addPhoto($photoUri, $includePhoto); } return $vcard; }
// define vcard $vcard = new VCard(); // define variables $firstname = 'Jeroen'; $lastname = 'Desloovere'; $additional = ''; $prefix = ''; $suffix = ''; // add personal data $vcard->addName($lastname, $firstname, $additional, $prefix, $suffix); // add work data $vcard->addCompany('Siesqo'); $vcard->addJobtitle('Web Developer'); $vcard->addEmail('*****@*****.**'); $vcard->addPhoneNumber(1234121212, 'PREF;WORK'); $vcard->addPhoneNumber(123456789, 'WORK'); $vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium'); $vcard->addURL('http://www.jeroendesloovere.be'); $vcard->addPhoto(__DIR__ . '/assets/landscape.jpeg'); //$vcard->addPhoto('https://raw.githubusercontent.com/jeroendesloovere/vcard/master/tests/image.jpg'); // return vcard as a string //return $vcard->getOutput(); // return vcard as a download return $vcard->download(); // echo message echo 'A personal vCard is saved in this folder: ' . __DIR__; // or // save the card in file in the current folder // return $vcard->save(); // echo message // echo 'A personal vCard is saved in this folder: ' . __DIR__;
private function _createVcardData(VCardModel $vcardModel) { $vcard = new VCard(); $vcard->addName($vcardModel->lastName, $vcardModel->firstName, $vcardModel->additional, $vcardModel->prefix, $vcardModel->suffix); if ($vcardModel->company) { $vcard->addCompany($vcardModel->company); } if ($vcardModel->jobTitle) { $vcard->addJobtitle($vcardModel->jobTitle); } if ($vcardModel->url and is_array($vcardModel->url)) { foreach ($vcardModel->url as $url) { if ($url instanceof VCard_UrlModel) { if ($url->validate()) { $vcard->addUrl($url->address, $url->type); } } } } if ($vcardModel->address and is_array($vcardModel->address)) { foreach ($vcardModel->address as $address) { if ($address instanceof VCard_AddressModel) { if ($address->validate()) { $vcard->addAddress($address->name, $address->extended, $address->street, $address->city, $address->region, $address->zip, $address->country, $address->type); } } } } if ($vcardModel->phoneNumber and is_array($vcardModel->phoneNumber)) { foreach ($vcardModel->phoneNumber as $phoneNumber) { if ($phoneNumber instanceof VCard_PhoneNumberModel) { if ($phoneNumber->validate()) { $vcard->addPhoneNumber($phoneNumber->number, $phoneNumber->type); } } } } if ($vcardModel->email and is_array($vcardModel->email)) { foreach ($vcardModel->email as $email) { if ($email instanceof VCard_EmailModel) { if ($email->validate()) { $vcard->addEmail($email->address, $email->type); } } } } if ($vcardModel->photo) { $vcard->addPhoto($vcardModel->photo); } if ($vcardModel->note) { $vcard->addNote($vcardModel->note); } return $vcard; }
/** * Test adding photo with no photo * * @expectedException JeroenDesloovere\VCard\VCardMediaException * @expectedExceptionMessage Returned data aren't an image. */ public function testAddPhotoWithNoPhoto() { $this->vcard->addPhoto(__DIR__ . '/wrongfile', true); }
public function testPhoto() { $image = __DIR__ . '/image.jpg'; $imageUrl = 'https://raw.githubusercontent.com/jeroendesloovere/vcard/master/tests/image.jpg'; $vcard = new VCard(); $vcard->addPhoto($image, true); $parser = new VCardParser($vcard->buildVCard()); $this->assertEquals($parser->getCardAtIndex(0)->rawPhoto, file_get_contents($image)); $vcard = new VCard(); $vcard->addPhoto($image, false); $parser = new VCardParser($vcard->buildVCard()); $this->assertEquals($parser->getCardAtIndex(0)->photo, __DIR__ . '/image.jpg'); $vcard = new VCard(); $vcard->addPhoto($imageUrl, false); $parser = new VCardParser($vcard->buildVCard()); $this->assertEquals($parser->getCardAtIndex(0)->photo, $imageUrl); }