ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilvCard Class Reference
+ Collaboration diagram for ilvCard:

Public Member Functions

 __construct ($version="3.0")
 ilvCard Constructor More...
 
 encode ($string)
 Encode data with "b" type encoding according to RFC 2045. More...
 
 fold ($string="", $length=75)
 Fold a string according to RFC 2425. More...
 
 escape ($string)
 Escapes a string according to RFC 2426. More...
 
explodeVar ($variable, $separator=",")
 Splits a variable into an array using a separator and escapes every value. More...
 
 buildVCard ()
 Builds a vCard string out of the attributes of this object. More...
 
 quoted_printable_encode ($input, $line_max=76)
 Creates a quoted printable encoded string according to RFC 2045. More...
 
 setFormattedName ($formatted_name)
 Sets the value for the vCard FN type. More...
 
 setName ($family_name, $given_name="", $additional_names="", $honorific_prefixes="", $honorific_suffixes="")
 Sets the value for the vCard N type. More...
 
 setNickname ($nickname)
 Sets the value for the vCard NICKNAME type. More...
 
 setPhoto ($photo, $type="")
 Sets the value for the vCard PHOTO type. More...
 
 setBirthday ($year, $month, $day)
 Sets the value for the vCard BDAY type. More...
 
 setAddress ( $po_box="", $extended_address="", $street_address="", $locality="", $region="", $postal_code="", $country="", $type=ADR_TYPE_NONE)
 Sets the value for the vCard ADR type. More...
 
 setLabel ($label="", $type=ADR_TYPE_NONE)
 Sets the value for the vCard LABEL type. More...
 
 setPhone ($number="", $type=TEL_TYPE_VOICE)
 Sets the value for the vCard TEL type. More...
 
 setEmail ($address="", $type=EMAIL_TYPE_INTERNET)
 Sets the value for the vCard EMAIL type. More...
 
 setMailer ($name="")
 Sets the value for the vCard MAILER type. More...
 
 setTimezone ($zone="")
 Sets the value for the vCard TZ type. More...
 
 setPosition ($latitude="", $longitude="")
 Sets the value for the vCard GEO type. More...
 
 setTitle ($title="")
 Sets the value for the vCard TITLE type. More...
 
 setRole ($role="")
 Sets the value for the vCard ROLE type. More...
 
 setLogo ($logo, $type="")
 Sets the value for the vCard LOGO type. More...
 
 setAgent ($agent="")
 Sets the value for the vCard AGENT type. More...
 
 setOrganization ($organization="")
 Sets the value for the vCard ORG type. More...
 
 setCategories ($categories)
 Sets the value for the vCard CATEGORIES type. More...
 
 setNote ($note="")
 Sets the value for the vCard NOTE type. More...
 
 setProductId ($product_id="")
 Sets the value for the vCard PRODID type. More...
 
 setRevision ($revision_date="")
 Sets the value for the vCard REV type. More...
 
 setSortString ($string="")
 Sets the value for the vCard SORT-STRING type. More...
 
 setSound ($sound="", $type="")
 Sets the value for the vCard SOUND type. More...
 
 setUID ($uid="", $type="")
 Sets the value for the vCard UID type. More...
 
 setURL ($uri="")
 Sets the value for the vCard URL type. More...
 
 setVersion ($version="3.0")
 Sets the value for the vCard VERSION type. More...
 
 setClassification ($classification="")
 Sets the value for the vCard CLASS type. More...
 
 setKey ($key="", $type="")
 Sets the value for the vCard KEY type. More...
 
 getFilename ()
 
 getMimetype ()
 

Data Fields

 $types
 An array containing the vCard types. More...
 
 $filename
 The filename of the vCard used when saving the vCard. More...
 

Detailed Description

Definition at line 77 of file class.ilvCard.php.

Constructor & Destructor Documentation

◆ __construct()

ilvCard::__construct (   $version = "3.0")

ilvCard Constructor

public

Definition at line 98 of file class.ilvCard.php.

References $version, and array.

99  {
100  $this->types = array(
101  "FN" => "",
102  "N" => "",
103  "NICKNAME" => "",
104  "PHOTO" => array(),
105  "BDAY" => "",
106  "ADR" => array(),
107  "LABEL" => array(),
108  "TEL" => array(),
109  "EMAIL" => array(),
110  "MAILER" => "",
111  "TZ" => "",
112  "GEO" => "",
113  "TITLE" => "",
114  "ROLE" => "",
115  "LOGO" => array(),
116  "AGENT" => "",
117  "ORG" => "",
118  "CATEGORIES" => "",
119  "NOTE" => "",
120  "PRODID" => "",
121  "REV" => "",
122  "SORT-STRING" => "",
123  "SOUND" => array(),
124  "UID" => "",
125  "URL" => "",
126  "VERSION" => "3.0",
127  "CLASS" => "",
128  "KEY" => array()
129  );
130  $this->types["VERSION"] = $version;
131  }
Create styles array
The data for the language used.

Member Function Documentation

◆ buildVCard()

ilvCard::buildVCard ( )

Builds a vCard string out of the attributes of this object.

Builds a vCard string out of the attributes of this object

Returns
string vCard string public

Definition at line 222 of file class.ilvCard.php.

References $n, $test, $title, $tz, $url, ADR_TYPE_DOM, ADR_TYPE_HOME, ADR_TYPE_INTL, ADR_TYPE_PARCEL, ADR_TYPE_POSTAL, ADR_TYPE_PREF, ADR_TYPE_WORK, array, EMAIL_TYPE_INTERNET, EMAIL_TYPE_PREF, EMAIL_TYPE_x400, fold(), ilLoggerFactory\getLogger(), TEL_TYPE_BBS, TEL_TYPE_CAR, TEL_TYPE_CELL, TEL_TYPE_FAX, TEL_TYPE_HOME, TEL_TYPE_ISDN, TEL_TYPE_MODEM, TEL_TYPE_MSG, TEL_TYPE_PAGER, TEL_TYPE_PCS, TEL_TYPE_PREF, TEL_TYPE_VIDEO, TEL_TYPE_VOICE, and TEL_TYPE_WORK.

223  {
224  $vcard = "BEGIN:VCARD\n";
225  $vcard .= "VERSION:" . $this->types["VERSION"] . "\n";
226  foreach ($this->types as $type => $var)
227  {
228 
229  ilLoggerFactory::getLogger('user')->debug(print_r($this->types,TRUE));
230 
231  switch ($type)
232  {
233  case "FN":
234  if (strcmp($this->types["FN"], "") != 0)
235  {
236  $fn = $this->fold("FN:" . $this->types["FN"]) . "\n";
237  }
238  else
239  {
240  $fn = "";
241  }
242  break;
243  case "N":
244  if (strcmp($this->types["N"], "") != 0)
245  {
246  $n = $this->fold("N:" . $this->types["N"]) . "\n";
247  }
248  else
249  {
250  $n = "";
251  }
252  break;
253  case "NICKNAME":
254  if (strcmp($this->types["NICKNAME"], "") != 0)
255  {
256  $nickname = $this->fold("NICKNAME:" . $this->types["NICKNAME"]) . "\n";
257  }
258  else
259  {
260  $nickname = "";
261  }
262  break;
263  case "PHOTO":
264  $photo = "";
265  if (is_array($this->types["PHOTO"]))
266  {
267  if (strcmp($this->types["PHOTO"]["VALUE"], "") != 0)
268  {
269  $photo = $this->fold("PHOTO;VALUE=uri:" . $this->types["PHOTO"]["VALUE"]) . "\n";
270  }
271  elseif (strcmp($this->types["PHOTO"]["ENCODING"], "") != 0)
272  {
273  $photo = "PHOTO;ENCODING=" . $this->types["PHOTO"]["ENCODING"];
274  if (strcmp($this->types["PHOTO"]["TYPE"], "") != 0)
275  {
276  $photo .= ";TYPE=" . $this->types["PHOTO"]["TYPE"];
277  }
278  $photo .= ":" . $this->types["PHOTO"]["PHOTO"];
279  $photo = $this->fold($photo) . "\n";
280  }
281  }
282  break;
283  case "BDAY":
284  if (strcmp($this->types["BDAY"], "") != 0)
285  {
286  $bday = $this->fold("BDAY:" . $this->types["BDAY"]) . "\n";
287  }
288  else
289  {
290  $bday = "";
291  }
292  break;
293  case "ADR":
294  if (count($this->types["ADR"]))
295  {
296  $addresses = "";
297  foreach ($this->types["ADR"] as $key => $address)
298  {
299  $test = "";
300  foreach ($address as $str)
301  {
302  $test .= $str;
303  }
304  if (strcmp($test, "") != 0)
305  {
306  $adr = "ADR";
307  $adr_types = array();
308  if ($address["TYPE"] > 0)
309  {
310  if (($address["TYPE"] & ADR_TYPE_DOM) > 0)
311  {
312  array_push($adr_types, "dom");
313  }
314  if (($address["TYPE"] & ADR_TYPE_INTL) > 0)
315  {
316  array_push($adr_types, "intl");
317  }
318  if (($address["TYPE"] & ADR_TYPE_POSTAL) > 0)
319  {
320  array_push($adr_types, "postal");
321  }
322  if (($address["TYPE"] & ADR_TYPE_PARCEL) > 0)
323  {
324  array_push($adr_types, "parcel");
325  }
326  if (($address["TYPE"] & ADR_TYPE_HOME) > 0)
327  {
328  array_push($adr_types, "home");
329  }
330  if (($address["TYPE"] & ADR_TYPE_WORK) > 0)
331  {
332  array_push($adr_types, "work");
333  }
334  if (($address["TYPE"] & ADR_TYPE_PREF) > 0)
335  {
336  array_push($adr_types, "pref");
337  }
338  $adr .= ";TYPE=" . join(",", $adr_types);
339  }
340  $adr .= ":" . $address["POBOX"] . ";" . $address["EXTENDED_ADDRESS"] .
341  ";" . $address["STREET_ADDRESS"] . ";" . $address["LOCALITY"] .
342  ";" . $address["REGION"] . ";" . $address["POSTAL_CODE"] .
343  ";" . $address["COUNTRY"];
344  $adr = $this->fold($adr) . "\n";
345  $addresses .= $adr;
346  }
347  }
348  $adr = $addresses;
349  }
350  else
351  {
352  $adr = "";
353  }
354  break;
355  case "LABEL":
356  $label = "";
357  if (is_array($this->types["LABEL"]))
358  {
359  if (strcmp($this->types["LABEL"]["LABEL"], "") != 0)
360  {
361  $label = "LABEL";
362  $adr_types = array();
363  if ($this->types["LABEL"]["TYPE"] > 0)
364  {
365  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_DOM) > 0)
366  {
367  array_push($adr_types, "dom");
368  }
369  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_INTL) > 0)
370  {
371  array_push($adr_types, "intl");
372  }
373  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_POSTAL) > 0)
374  {
375  array_push($adr_types, "postal");
376  }
377  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_PARCEL) > 0)
378  {
379  array_push($adr_types, "parcel");
380  }
381  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_HOME) > 0)
382  {
383  array_push($adr_types, "home");
384  }
385  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_WORK) > 0)
386  {
387  array_push($adr_types, "work");
388  }
389  if (($this->types["LABEL"]["TYPE"] & ADR_TYPE_PREF) > 0)
390  {
391  array_push($adr_types, "pref");
392  }
393  $label .= ";TYPE=" . join(",", $adr_types);
394  }
395  $label .= ":" . $this->types["LABEL"]["LABEL"];
396  $label = $this->fold($label) . "\n";
397  }
398  }
399  break;
400  case "TEL":
401  if (count($this->types["TEL"]))
402  {
403  $phonenumbers = "";
404  foreach ($this->types["TEL"] as $key => $phone)
405  {
406  if (strcmp($phone["TEL"], "") != 0)
407  {
408  $tel = "TEL";
409  $tel_types = array();
410  if ($phone["TYPE"] > 0)
411  {
412  if (($phone["TYPE"] & TEL_TYPE_HOME) > 0)
413  {
414  array_push($tel_types, "home");
415  }
416  if (($phone["TYPE"] & TEL_TYPE_MSG) > 0)
417  {
418  array_push($tel_types, "msg");
419  }
420  if (($phone["TYPE"] & TEL_TYPE_WORK) > 0)
421  {
422  array_push($tel_types, "work");
423  }
424  if (($phone["TYPE"] & TEL_TYPE_PREF) > 0)
425  {
426  array_push($tel_types, "pref");
427  }
428  if (($phone["TYPE"] & TEL_TYPE_VOICE) > 0)
429  {
430  array_push($tel_types, "voice");
431  }
432  if (($phone["TYPE"] & TEL_TYPE_FAX) > 0)
433  {
434  array_push($tel_types, "fax");
435  }
436  if (($phone["TYPE"] & TEL_TYPE_CELL) > 0)
437  {
438  array_push($tel_types, "cell");
439  }
440  if (($phone["TYPE"] & TEL_TYPE_VIDEO) > 0)
441  {
442  array_push($tel_types, "video");
443  }
444  if (($phone["TYPE"] & TEL_TYPE_PAGER) > 0)
445  {
446  array_push($tel_types, "pager");
447  }
448  if (($phone["TYPE"] & TEL_TYPE_BBS) > 0)
449  {
450  array_push($tel_types, "bbs");
451  }
452  if (($phone["TYPE"] & TEL_TYPE_MODEM) > 0)
453  {
454  array_push($tel_types, "modem");
455  }
456  if (($phone["TYPE"] & TEL_TYPE_CAR) > 0)
457  {
458  array_push($tel_types, "car");
459  }
460  if (($phone["TYPE"] & TEL_TYPE_ISDN) > 0)
461  {
462  array_push($tel_types, "isdn");
463  }
464  if (($phone["TYPE"] & TEL_TYPE_PCS) > 0)
465  {
466  array_push($tel_types, "pcs");
467  }
468  $tel .= ";TYPE=" . join(",", $tel_types);
469  }
470  $tel .= ":" . $phone["TEL"];
471  $tel = $this->fold($tel) . "\n";
472  $phonenumbers .= $tel;
473  }
474  }
475  $tel = $phonenumbers;
476  }
477  else
478  {
479  $tel = "";
480  }
481  break;
482  case "EMAIL":
483  if (count($this->types["EMAIL"]))
484  {
485  $emails = "";
486  foreach ($this->types["EMAIL"] as $key => $mail)
487  {
488  if (strcmp($mail["EMAIL"], "") != 0)
489  {
490  $email = "EMAIL";
491  $adr_types = array();
492  if ($mail["TYPE"] > 0)
493  {
494  if (($mail["TYPE"] & EMAIL_TYPE_INTERNET) > 0)
495  {
496  array_push($adr_types, "internet");
497  }
498  if (($mail["TYPE"] & EMAIL_TYPE_x400) > 0)
499  {
500  array_push($adr_types, "x400");
501  }
502  if (($mail["TYPE"] & EMAIL_TYPE_PREF) > 0)
503  {
504  array_push($adr_types, "pref");
505  }
506  $email .= ";TYPE=" . join(",", $adr_types);
507  }
508  $email .= ":" . $mail["EMAIL"];
509  $email = $this->fold($email) . "\n";
510  $emails .= $email;
511  }
512  }
513  $email = $emails;
514  }
515  else
516  {
517  $email = "";
518  }
519  break;
520  case "MAILER":
521  if (strcmp($this->types["MAILER"], "") != 0)
522  {
523  $mailer = $this->fold("MAILER:" . $this->types["MAILER"]) . "\n";
524  }
525  else
526  {
527  $mailer = "";
528  }
529  break;
530  case "TZ":
531  if (strcmp($this->types["TZ"], "") != 0)
532  {
533  $tz = $this->fold("TZ:" . $this->types["TZ"]) . "\n";
534  }
535  else
536  {
537  $tz = "";
538  }
539  break;
540  case "GEO":
541  if (is_array($this->types["GEO"]) and
542  (strcmp($this->types["GEO"]["LAT"], "") != 0) and
543  (strcmp($this->types["GEO"]["LON"], "") != 0))
544  {
545  $geo = $this->fold("GEO:" . $this->types["GEO"]["LAT"] . ";" . $this->types["GEO"]["LON"]) . "\n";
546  }
547  else
548  {
549  $geo = "";
550  }
551  break;
552  case "TITLE":
553  if (strcmp($this->types["TITLE"], "") != 0)
554  {
555  $title = $this->fold("TITLE:" . $this->types["TITLE"]) . "\n";
556  }
557  else
558  {
559  $title = "";
560  }
561  break;
562  case "ROLE":
563  if (strcmp($this->types["ROLE"], "") != 0)
564  {
565  $role = $this->fold("ROLE:" . $this->types["ROLE"]) . "\n";
566  }
567  else
568  {
569  $role = "";
570  }
571  break;
572  case "LOGO":
573  $logo = "";
574  if (is_array($this->types["LOGO"]))
575  {
576  if (strcmp($this->types["LOGO"]["VALUE"], "") != 0)
577  {
578  $logo = $this->fold("LOGO;VALUE=uri:" . $this->types["LOGO"]["VALUE"]) . "\n";
579  }
580  elseif (strcmp($this->types["LOGO"]["ENCODING"], "") != 0)
581  {
582  $logo = "LOGO;ENCODING=" . $this->types["LOGO"]["ENCODING"];
583  if (strcmp($this->types["LOGO"]["TYPE"], "") != 0)
584  {
585  $logo .= ";TYPE=" . $this->types["LOGO"]["TYPE"];
586  }
587  $logo .= ":" . $this->types["LOGO"]["LOGO"];
588  $logo = $this->fold($logo) . "\n";
589  }
590  }
591  break;
592  case "AGENT":
593  if (strcmp($this->types["AGENT"], "") != 0)
594  {
595  $agent = $this->fold("AGENT:" . $this->types["AGENT"]) . "\n";
596  }
597  else
598  {
599  $agent = "";
600  }
601  break;
602  case "ORG":
603  if (strcmp($this->types["ORG"], "") != 0)
604  {
605  $org = $this->fold("ORG:" . $this->types["ORG"]) . "\n";
606  }
607  else
608  {
609  $org = "";
610  }
611  break;
612  case "CATEGORIES":
613  if (strcmp($this->types["CATEGORIES"], "") != 0)
614  {
615  $categories = $this->fold("CATEGORIES:" . $this->types["CATEGORIES"]) . "\n";
616  }
617  else
618  {
619  $categories = "";
620  }
621  break;
622  case "NOTE":
623  if (strcmp($this->types["NOTE"], "") != 0)
624  {
625  $note = $this->fold("NOTE:" . $this->types["NOTE"]) . "\n";
626  }
627  else
628  {
629  $note = "";
630  }
631  break;
632  case "PRODID":
633  if (strcmp($this->types["PRODID"], "") != 0)
634  {
635  $prodid = $this->fold("PRODID:" . $this->types["PRODID"]) . "\n";
636  }
637  else
638  {
639  $prodid = "";
640  }
641  break;
642  case "REV":
643  if (strcmp($this->types["REV"], "") != 0)
644  {
645  $rev = $this->fold("REV:" . $this->types["REV"]) . "\n";
646  }
647  else
648  {
649  $rev = "";
650  }
651  break;
652  case "SORT-STRING":
653  if (strcmp($this->types["SORT-STRING"], "") != 0)
654  {
655  $sortstring = $this->fold("SORT-STRING:" . $this->types["SORT-STRING"]) . "\n";
656  }
657  else
658  {
659  $sortstring = "";
660  }
661  break;
662  case "SOUND":
663  $sound = "";
664  if (is_array($this->types["SOUND"]))
665  {
666  if (strcmp($this->types["SOUND"]["VALUE"], "") != 0)
667  {
668  $sound = $this->fold("SOUND;VALUE=uri:" . $this->types["SOUND"]["VALUE"]) . "\n";
669  }
670  elseif (strcmp($this->types["SOUND"]["ENCODING"], "") != 0)
671  {
672  $sound = "SOUND;ENCODING=" . $this->types["SOUND"]["ENCODING"];
673  if (strcmp($this->types["SOUND"]["TYPE"], "") != 0)
674  {
675  $sound .= ";TYPE=" . $this->types["SOUND"]["TYPE"];
676  }
677  $sound .= ":" . $this->types["SOUND"]["SOUND"];
678  $sound = $this->fold($sound) . "\n";
679  }
680  }
681  break;
682  case "UID":
683  $uid = "";
684  if (is_array($this->types["UID"]))
685  {
686  if (strcmp($this->types["UID"]["UID"], "") != 0)
687  {
688  $uid = "UID";
689  if (strcmp($this->types["UID"]["TYPE"], "") != 0)
690  {
691  $uid .= ";TYPE=" . $this->types["UID"]["TYPE"];
692  }
693  $uid .= ":" . $this->types["UID"]["UID"];
694  $uid = $this->fold($uid) . "\n";
695  }
696  }
697  break;
698  case "URL":
699  if (strcmp($this->types["URL"], "") != 0)
700  {
701  $url = $this->fold("URL:" . $this->types["URL"]) . "\n";
702  }
703  else
704  {
705  $url = "";
706  }
707  break;
708  case "KEY":
709  $key = "";
710  if (is_array($this->types["KEY"]))
711  {
712  if (strcmp($this->types["KEY"]["KEY"], "") != 0)
713  {
714  $key = "KEY";
715  if (strcmp($this->types["KEY"]["TYPE"], "") != 0)
716  {
717  $key .= ";TYPE=" . $this->types["KEY"]["TYPE"];
718  }
719  if (strcmp($this->types["KEY"]["ENCODING"], "") != 0)
720  {
721  $key .= ";ENCODING=" . $this->types["KEY"]["ENCODING"];
722  }
723  $key .= ":" . $this->types["KEY"]["KEY"];
724  $key = $this->fold($key) . "\n";
725  }
726  }
727  break;
728  case "CLASS":
729  if (strcmp($this->types["CLASS"], "") != 0)
730  {
731  $class = $this->fold("CLASS:" . $this->types["CLASS"]) . "\n";
732  }
733  else
734  {
735  $class = "";
736  }
737  break;
738  }
739  }
740  $vcard .= $fn.$n.$nickname.$photo.$bday.$adr.$label.$tel.$email.$mailer.
741  $tz.$geo.$title.$role.$logo.$agent.$org.$categories.$note.$prodid.
742  $rev.$sortstring.$sound.$uid.$url.$class.$key;
743  $vcard .= "END:vCard\n";
744  return $vcard;
745  }
const TEL_TYPE_CAR
const EMAIL_TYPE_INTERNET
const ADR_TYPE_PARCEL
const TEL_TYPE_PREF
const EMAIL_TYPE_x400
$url
Definition: shib_logout.php:72
const TEL_TYPE_FAX
const ADR_TYPE_DOM
const TEL_TYPE_MODEM
const ADR_TYPE_WORK
const TEL_TYPE_VIDEO
const TEL_TYPE_HOME
const TEL_TYPE_WORK
const ADR_TYPE_POSTAL
const TEL_TYPE_BBS
fold($string="", $length=75)
Fold a string according to RFC 2425.
const TEL_TYPE_CELL
$n
Definition: RandomTest.php:80
Create styles array
The data for the language used.
const TEL_TYPE_VOICE
const TEL_TYPE_MSG
const ADR_TYPE_INTL
const ADR_TYPE_HOME
const TEL_TYPE_PAGER
static getLogger($a_component_id)
Get component logger.
const TEL_TYPE_ISDN
const ADR_TYPE_PREF
const EMAIL_TYPE_PREF
const TEL_TYPE_PCS
$test
Definition: Utf8Test.php:84
+ Here is the call graph for this function:

◆ encode()

ilvCard::encode (   $string)

Encode data with "b" type encoding according to RFC 2045.

Encode data with "b" type encoding according to RFC 2045

Parameters
string$stringBinary string to be encoded
Returns
Encoded binary string public

Definition at line 142 of file class.ilvCard.php.

References escape(), and quoted_printable_encode().

Referenced by setLogo(), setPhoto(), and setSound().

143  {
144  return escape(quoted_printable_encode($string));
145  }
escape($string)
Escapes a string according to RFC 2426.
quoted_printable_encode($input, $line_max=76)
Creates a quoted printable encoded string according to RFC 2045.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ escape()

ilvCard::escape (   $string)

Escapes a string according to RFC 2426.

Escapes a string according to RFC 2426

Parameters
string$stringString to be escaped
Returns
Escaped string public

Definition at line 185 of file class.ilvCard.php.

Referenced by encode(), explodeVar(), setAgent(), setClassification(), setEmail(), setFormattedName(), setLabel(), setMailer(), setNote(), setPhone(), setProductId(), setRevision(), setRole(), setSortString(), setTimezone(), setTitle(), setUID(), and setURL().

186  {
187  $string = preg_replace("/(?<!\\\\)(\\\\)([^;,n\\\\])/", "\${1}\${1}\${2}", $string);
188  $string = preg_replace("/(?<!\\\\);/", "\\;", $string);
189  $string = preg_replace("/(?<!\\\\),/", "\\,", $string);
190  $string = preg_replace("/\n/","\\n", $string);
191  return $string;
192  }
+ Here is the caller graph for this function:

◆ explodeVar()

& ilvCard::explodeVar (   $variable,
  $separator = "," 
)

Splits a variable into an array using a separator and escapes every value.

Splits a variable into an array using a separator and escapes every value

Parameters
string$variableString to be splitted
string$separatorSeparator string
Returns
Escaped string public

Definition at line 204 of file class.ilvCard.php.

References escape().

Referenced by setAddress(), setCategories(), setName(), setNickname(), and setOrganization().

205  {
206  $exploded = explode($separator, $variable);
207  foreach ($exploded as $index => $var)
208  {
209  $exploded[$index] = $this->escape($var);
210  }
211  return $exploded;
212  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fold()

ilvCard::fold (   $string = "",
  $length = 75 
)

Fold a string according to RFC 2425.

Fold a string according to RFC 2425

Parameters
string$stringString to be folded
integer$lengthMaximum length of a line
Returns
string Folded string public

Definition at line 157 of file class.ilvCard.php.

Referenced by buildVCard().

158  {
159  $folded_string = "";
160  preg_match_all("/(.{1,74})/", $string, $matches);
161  for ($i = 0; $i < count($matches[1]); $i++)
162  {
163  if ($i < (count($matches[1])-1))
164  {
165  $matches[1][$i] .= "\n";
166  }
167  if ($i > 0)
168  {
169  $matches[1][$i] = " " . $matches[1][$i];
170  }
171  $folded_string .= $matches[1][$i];
172  }
173  return $folded_string;
174  }
+ Here is the caller graph for this function:

◆ getFilename()

ilvCard::getFilename ( )

Definition at line 1847 of file class.ilvCard.php.

References $filename.

1848  {
1849  if (strcmp($this->filename, "") == 0)
1850  {
1851  return "vcard.vcf";
1852  }
1853  else
1854  {
1855  return $this->filename;
1856  }
1857  }
$filename
The filename of the vCard used when saving the vCard.

◆ getMimetype()

ilvCard::getMimetype ( )

Definition at line 1859 of file class.ilvCard.php.

1860  {
1861  return "text/x-vcard";
1862  }

◆ quoted_printable_encode()

ilvCard::quoted_printable_encode (   $input,
  $line_max = 76 
)

Creates a quoted printable encoded string according to RFC 2045.

Creates a quoted printable encoded string according to RFC 2045. The method was taken from the php documentation discussion forum

Parameters
string$inputA binary string to encode
integer$line_maxThe maximum number of characters per line for the result string
Returns
Quoted printable encoded string public

Definition at line 758 of file class.ilvCard.php.

References $output, and array.

Referenced by encode().

758  {
759  $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
760  $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
761  $eol = "\r\n";
762  $linebreak = "=0D=0A";
763  $escape = "=";
764  $output = "";
765 
766  for ($j=0;$j<count($lines);$j++) {
767  $line = $lines[$j];
768  $linlen = strlen($line);
769  $newline = "";
770  for($i = 0; $i < $linlen; $i++) {
771  $c = substr($line, $i, 1);
772  $dec = ord($c);
773  if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only
774  $c = "=20";
775  } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required
776  $h2 = floor($dec/16); $h1 = floor($dec%16);
777  $c = $escape.$hex["$h2"].$hex["$h1"];
778  }
779  if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted
780  $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay
781  $newline = " ";
782  }
783  $newline .= $c;
784  } // end of for
785  $output .= $newline;
786  if ($j<count($lines)-1) $output .= $linebreak;
787  }
788  return trim($output);
789  }
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\+" &#(? foreach( $entity_files as $file) $output
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ setAddress()

ilvCard::setAddress (   $po_box = "",
  $extended_address = "",
  $street_address = "",
  $locality = "",
  $region = "",
  $postal_code = "",
  $country = "",
  $type = ADR_TYPE_NONE 
)

Sets the value for the vCard ADR type.

Sets the value for the vCard ADR type to specify the components of the delivery address for the vCard object.

Type example:

ADR;TYPE=dom,home,postal,parcel:;;123 Main Street;Any Town;CA;91921-1234

Type special notes: The structured type value consists of a sequence of address components. The component values MUST be specified in their corresponding position. The structured type value corresponds, in sequence, to the post office box; the extended address; the street address; the locality (e.g., city); the region (e.g., state or province); the postal code; the country name. When a component value is missing, the associated component separator MUST still be specified.

The text components are separated by the SEMI-COLON character (ASCII decimal 59). Where it makes semantic sense, individual text components can include multiple text values (e.g., a "street" component with multiple lines) separated by the COMMA character (ASCII decimal 44).

The type can include the type parameter "TYPE" to specify the delivery address type. The TYPE parameter values can include "dom" to indicate a domestic delivery address; "intl" to indicate an international delivery address; "postal" to indicate a postal delivery address; "parcel" to indicate a parcel delivery address; "home" to indicate a delivery address for a residence; "work" to indicate delivery address for a place of work; and "pref" to indicate the preferred delivery address when more than one address is specified. These type parameter values can be specified as a parameter list (i.e., "TYPE=dom;TYPE=postal") or as a value list (i.e., "TYPE=dom,postal"). This type is based on semantics of the X.520 geographical and postal addressing attributes. The default is "TYPE=intl,postal,parcel,work". The default can be overridden to some other set of values by specifying one or more alternate values. For example, the default can be reset to "TYPE=dom,postal,work,home" to specify a domestic delivery address for postal delivery to a residence that is also used for work.

Parameters
string$po_boxPost office box
string$extended_addressExtended address
string$street_addressStreet address
string$localityLocality (e.g. city)
string$regionRegion (e.g. state or province)
string$postal_codePostal code
string$countryCountry
integer$typeThe address type (can be combined with the + operator) public

Definition at line 1046 of file class.ilvCard.php.

References ADR_TYPE_INTL, ADR_TYPE_NONE, ADR_TYPE_PARCEL, ADR_TYPE_POSTAL, ADR_TYPE_WORK, array, and explodeVar().

1056  {
1057  if ($type == ADR_TYPE_NONE)
1058  {
1060  }
1061  $po_box = join(",", $this->explodeVar($po_box));
1062  $extended_address = join(",", $this->explodeVar($extended_address));
1063  $street_address = join(",", $this->explodeVar($street_address));
1064  $locality = join(",", $this->explodeVar($locality));
1065  $region = join(",", $this->explodeVar($region));
1066  $postal_code = join(",", $this->explodeVar($postal_code));
1067  $country = join(",", $this->explodeVar($country));
1068  array_push($this->types["ADR"], array(
1069  "POBOX" => $po_box,
1070  "EXTENDED_ADDRESS" => $extended_address,
1071  "STREET_ADDRESS" => $street_address,
1072  "LOCALITY" => $locality,
1073  "REGION" => $region,
1074  "POSTAL_CODE" => $postal_code,
1075  "COUNTRY" => $country,
1076  "TYPE" => $type
1077  ));
1078  }
const ADR_TYPE_PARCEL
& explodeVar($variable, $separator=",")
Splits a variable into an array using a separator and escapes every value.
const ADR_TYPE_WORK
const ADR_TYPE_POSTAL
Create styles array
The data for the language used.
const ADR_TYPE_NONE
RFC 2426 vCard MIME Directory Profile 3.0 class.
const ADR_TYPE_INTL
+ Here is the call graph for this function:

◆ setAgent()

ilvCard::setAgent (   $agent = "")

Sets the value for the vCard AGENT type.

Sets the value for the vCard AGENT type to specify information about another person who will act on behalf of the individual or resource associated with the vCard.

Type example:

AGENT;VALUE=uri: CID:JQPUB.nosp@m.LIC..nosp@m.part3.nosp@m..960.nosp@m.129T0.nosp@m.8302.nosp@m.0.xyz.nosp@m.Mail.nosp@m.@host.nosp@m.3.co.nosp@m.m AGENT:BEGIN:VCARD:Susan Thomas:+1-919-555- 1234\;INTERNET:sthom.nosp@m.as@h.nosp@m.ost.c.nosp@m.om:VCARD
Type value: The default is a single vcard value. It can also be reset to either a single text or uri value. The text value can be used to specify textual information. The uri value can be used to specify information outside of this MIME entity.

Type special notes: This type typically is used to specify an area administrator, assistant, or secretary for the individual associated with the vCard. A key characteristic of the Agent type is that it represents somebody or something that is separately addressable.

Parameters
string$agentAgent type public

Definition at line 1445 of file class.ilvCard.php.

References escape().

1446  {
1447  $this->types["AGENT"] = $this->escape($agent);
1448  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setBirthday()

ilvCard::setBirthday (   $year,
  $month,
  $day 
)

Sets the value for the vCard BDAY type.

Sets the value for the vCard BDAY type to specify the birth date of the object the vCard represents.

Type example:

BDAY:1996-04-15 BDAY:1953-10-15T23:10:00Z BDAY:1987-09-27T08:30:00-06:00

Type value: The default is a single date value. It can also be reset to a single date-time value.

Parameters
integer$yearThe year of the birthday
integer$monthThe month of the birthday
integer$dayThe day of the birthday public

Definition at line 975 of file class.ilvCard.php.

976  {
977  if (($year < 1) or ($day < 1) or ($month < 1))
978  {
979  $this->types["BDAY"] = "";
980  }
981  else
982  {
983  $this->types["BDAY"] = sprintf("%04d-%02d-%02d", $year, $month, $day);
984  }
985  }

◆ setCategories()

ilvCard::setCategories (   $categories)

Sets the value for the vCard CATEGORIES type.

Sets the value for the vCard CATEGORIES type to specify application category information about the vCard.

Type example:

CATEGORIES:TRAVEL AGENT CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY

Type value: One or more text values separated by a COMMA character (ASCII decimal 44).

Parameters
array$categoriesCategory information public

Definition at line 1499 of file class.ilvCard.php.

References explodeVar().

1500  {
1501  $categories = join(",", $this->explodeVar($categories));
1502  $this->types["CATEGORIES"] = $categories;
1503  }
& explodeVar($variable, $separator=",")
Splits a variable into an array using a separator and escapes every value.
+ Here is the call graph for this function:

◆ setClassification()

ilvCard::setClassification (   $classification = "")

Sets the value for the vCard CLASS type.

Sets the value for the vCard CLASS type to specify the access classification for a vCard object.

Type example:

CLASS:PUBLIC CLASS:PRIVATE CLASS:CONFIDENTIAL

Type value: A single text value.

Type special notes: An access classification is only one component of the general security model for a directory service. The classification attribute provides a method of capturing the intent of the owner for general access to information described by the vCard object.

Parameters
string$classificationClassification string public

Definition at line 1787 of file class.ilvCard.php.

References escape().

1788  {
1789  $this->types["CLASS"] = $this->escape($classification);
1790  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setEmail()

ilvCard::setEmail (   $address = "",
  $type = EMAIL_TYPE_INTERNET 
)

Sets the value for the vCard EMAIL type.

Sets the value for the vCard EMAIL type to specify the electronic mail address for communication with the object the vCard represents.

Type example:

EMAIL;TYPE=internet:jqpub.nosp@m.lic@.nosp@m.xyz.d.nosp@m.om1..nosp@m.com EMAIL;TYPE=internet:jdoe@.nosp@m.isp..nosp@m.net EMAIL;TYPE=internet,pref:jane_.nosp@m.doe@.nosp@m.abc.c.nosp@m.om

Type special notes: The type can include the type parameter "TYPE" to specify the format or preference of the electronic mail address. The TYPE parameter values can include: "internet" to indicate an Internet addressing type, "x400" to indicate a X.400 addressing type or "pref" to indicate a preferred-use email address when more than one is specified. Another IANA registered address type can also be specified. The default email type is "internet". A non-standard value can also be specified.

Parameters
string$addressThe email address
integer$typeThe address type (can be combined with the + operator) public

Definition at line 1209 of file class.ilvCard.php.

References array, and escape().

1210  {
1211  array_push($this->types["EMAIL"], array(
1212  "EMAIL" => $this->escape($address),
1213  "TYPE" => $type
1214  ));
1215  }
Create styles array
The data for the language used.
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setFormattedName()

ilvCard::setFormattedName (   $formatted_name)

Sets the value for the vCard FN type.

Sets the value for the vCard FN type to specify the formatted text corresponding to the name of the object the vCard represents.

Type example:

FN:Mr. John Q. Public\, Esq.

Parameters
string$formatted_nameThe formatted text public

Definition at line 811 of file class.ilvCard.php.

References escape().

Referenced by setName().

812  {
813  $this->types["FN"] = $this->escape($formatted_name);
814  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setKey()

ilvCard::setKey (   $key = "",
  $type = "" 
)

Sets the value for the vCard KEY type.

Sets the value for the vCard KEY type to specify a public key or authentication certificate associated with the object that the vCard represents.

Type example:

KEY;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQA wdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENbW11bmljYX Rpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 ZW1zMRwwGgYDVQQDExNyb290Y2EubmV0c2NhcGUuY29tMB4XDTk3MDYwNj E5NDc1OVoXDTk3MTIwMzE5NDc1OVowgYkxCzAJBgNVBAYTAlVTMSYwJAYD VQQKEx1OZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3JwLjEYMBYGA1UEAx MPVGltb3RoeSBBIEhvd2VzMSEwHwYJKoZIhvcNAQkBFhJob3dlc0BuZXRz Y2FwZS5jb20xFTATBgoJkiaJk/IsZAEBEwVob3dlczBcMA0GCSqGSIb3DQ EBAQUAA0sAMEgCQQC0JZf6wkg8pLMXHHCUvMfL5H6zjSk4vTTXZpYyrdN2 dXcoX49LKiOmgeJSzoiFKHtLOIboyludF90CgqcxtwKnAgMBAAGjNjA0MB EGCWCGSAGG+EIBAQQEAwIAoDAfBgNVHSMEGDAWgBT84FToB/GV3jr3mcau +hUMbsQukjANBgkqhkiG9w0BAQQFAAOBgQBexv7o7mi3PLXadkmNP9LcIP mx93HGp0Kgyx1jIVMyNgsemeAwBM+MSlhMfcpbTrONwNjZYW8vJDSoi//y rZlVt9bJbs7MNYZVsyF1unsqaln4/vy6Uawfg8VUMk1U7jt8LYpo4YULU7 UZHPYVUaSgVttImOHZIKi4hlPXBOhcUQ==

Type encoding: The encoding MUST be reset to "b" using the ENCODING parameter in order to specify inline, encoded binary data. If the value is a text value, then the default encoding of 8bit is used and no explicit ENCODING parameter is needed.

Type value: A single value. The default is binary. It can also be reset to text value. The text value can be used to specify a text key.

Type special notes: The type can also include the type parameter TYPE to specify the public key or authentication certificate format. The parameter type should specify an IANA registered public key or authentication certificate format. The parameter type can also specify a non-standard format.

Parameters
string$keyPublic key
string$typeIANA registered public key or authentication certificate format public

Definition at line 1836 of file class.ilvCard.php.

References array.

1837  {
1838  $encoding = "b";
1839  $key = base64_encode($key);
1840  $this->types["KEY"] = array(
1841  "KEY" => $key,
1842  "TYPE" => $type,
1843  "ENCODING" => $encoding
1844  );
1845  }
Create styles array
The data for the language used.

◆ setLabel()

ilvCard::setLabel (   $label = "",
  $type = ADR_TYPE_NONE 
)

Sets the value for the vCard LABEL type.

Sets the value for the vCard LABEL type to specify the formatted text corresponding to delivery address of the object the vCard represents

Type example: A multi-line address label.

LABEL;TYPE=dom,home,postal,parcel:Mr.John Q. Public\, Esq.
Mail Drop: TNE QB Main Street Town\, CA 91921-1234 .S.A.

Type special notes: The type value is formatted text that can be used to present a delivery address label for the vCard object. The type can include the type parameter "TYPE" to specify delivery label type. The TYPE parameter values can include "dom" to indicate a domestic delivery label; "intl" to indicate an international delivery label; "postal" to indicate a postal delivery label; "parcel" to indicate a parcel delivery label; "home" to indicate a delivery label for a residence; "work" to indicate delivery label for a place of work; and "pref" to indicate the preferred delivery label when more than one label is specified. These type parameter values can be specified as a parameter list (i.e., "TYPE=dom;TYPE=postal") or as a value list (i.e., "TYPE=dom,postal"). This type is based on semantics of the X.520 geographical and postal addressing attributes. The default is "TYPE=intl,postal,parcel,work". The default can be overridden to some other set of values by specifying one or more alternate values. For example, the default can be reset to "TYPE=intl,post,parcel,home" to specify an international delivery label for both postal and parcel delivery to a residential location.

Parameters
string$labelThe address label
integer$typeThe address type (can be combined with the + operator) public

Definition at line 1116 of file class.ilvCard.php.

References ADR_TYPE_INTL, ADR_TYPE_NONE, ADR_TYPE_PARCEL, ADR_TYPE_POSTAL, ADR_TYPE_WORK, array, and escape().

1117  {
1118  if ($type == ADR_TYPE_NONE)
1119  {
1121  }
1122  $this->types["LABEL"] = array(
1123  "LABEL" => $this->escape($label),
1124  "TYPE" => $type
1125  );
1126  }
const ADR_TYPE_PARCEL
const ADR_TYPE_WORK
const ADR_TYPE_POSTAL
Create styles array
The data for the language used.
const ADR_TYPE_NONE
RFC 2426 vCard MIME Directory Profile 3.0 class.
const ADR_TYPE_INTL
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setLogo()

ilvCard::setLogo (   $logo,
  $type = "" 
)

Sets the value for the vCard LOGO type.

Sets the value for the vCard LOGO type to specify a graphic image of a logo associated with the object the vCard represents.

Type example:

LOGO;VALUE=uri:http://www.abc.com/pub/logos/abccorp.jpg LOGO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 <...the remainder of "B" encoded binary data...>

Type encoding: The encoding MUST be reset to "b" using the ENCODING parameter in order to specify inline, encoded binary data. If the value is referenced by a URI value, then the default encoding of 8bit is used and no explicit ENCODING parameter is needed.

Type value: A single value. The default is binary value. It can also be reset to uri value. The uri value can be used to specify a value outside of this MIME entity.

Type special notes: The type can include the type parameter "TYPE" to specify the graphic image format type. The TYPE parameter values MUST be one of the IANA registered image formats or a non-standard image format.

Parameters
string$logoA binary string containing the logo or an uri
string$typeThe IANA type of the image format public

Definition at line 1397 of file class.ilvCard.php.

References array, and encode().

1398  {
1399  $value = "";
1400  $encoding = "";
1401  if (preg_match("/^http/", $logo))
1402  {
1403  $value = $this->encode($logo);
1404  }
1405  else
1406  {
1407  $encoding = "b";
1408  $logo = base64_encode($logo);
1409  }
1410  $this->types["LOGO"] = array(
1411  "VALUE" => $value,
1412  "TYPE" => $type,
1413  "ENCODING" => $encoding,
1414  "LOGO" => $logo
1415  );
1416  }
Create styles array
The data for the language used.
encode($string)
Encode data with "b" type encoding according to RFC 2045.
+ Here is the call graph for this function:

◆ setMailer()

ilvCard::setMailer (   $name = "")

Sets the value for the vCard MAILER type.

Sets the value for the vCard MAILER type to specify the type of electronic mail software that is used by the individual associated with the vCard.

Type example:

MAILER:PigeonMail 2.1

Type special notes: This information can provide assistance to a correspondent regarding the type of data representation which can be used, and how they can be packaged. This property is based on the private MIME type X-Mailer that is generally implemented by MIME user agent products.

Parameters
string$nameThe mailer name public

Definition at line 1237 of file class.ilvCard.php.

References escape().

1238  {
1239  $this->types["MAILER"] = $this->escape($name);
1240  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setName()

ilvCard::setName (   $family_name,
  $given_name = "",
  $additional_names = "",
  $honorific_prefixes = "",
  $honorific_suffixes = "" 
)

Sets the value for the vCard N type.

Sets the value for the vCard N type to specify the components of the name of the object the vCard represents. The N type MUST be present in the vCard object.

Type example:

N:Public;John;Quinlan;Mr.;Esq. N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.

Type special note: The structured type value corresponds, in sequence, to the Family Name, Given Name, Additional Names, Honorific Prefixes, and Honorific Suffixes. The text components are separated by the SEMI-COLON character (ASCII decimal 59). Individual text components can include multiple text values (e.g., multiple Additional Names) separated by the COMMA character (ASCII decimal 44). This type is based on the semantics of the X.520 individual name attributes. The property MUST be present in the vCard object.

Parameters
string$family_nameThe family name
string$given_nameThe given name
string$additional_namesAdditional names
string$honorific_prefixesHonorific prefixes
string$honorific_suffixesHonorific suffixes public

Definition at line 845 of file class.ilvCard.php.

References explodeVar(), and setFormattedName().

846  {
847  $familynames =& $this->explodeVar($family_name);
848  $givennames =& $this->explodeVar($given_name);
849  $addnames =& $this->explodeVar($additional_names);
850  $prefixes =& $this->explodeVar($honorific_prefixes);
851  $suffixes =& $this->explodeVar($honorific_suffixes);
852 
853  $this->types["N"] =
854  join(",", $familynames) .
855  ";" .
856  join(",", $givennames) .
857  ";" .
858  join(",", $addnames) .
859  ";" .
860  join(",", $prefixes) .
861  ";" .
862  join(",", $suffixes);
863 
864  $this->filename = "$given_name" . "_" . "$family_name" . ".vcf";
865  if (strcmp($this->types["FN"], "") == 0)
866  {
867  $fn = trim("$honorific_prefixes $given_name $additional_names $family_name $honorific_suffixes");
868  $fn = preg_replace("/\s{2,10}/", " ", $fn);
869  $this->setFormattedName($fn);
870  }
871  }
setFormattedName($formatted_name)
Sets the value for the vCard FN type.
& explodeVar($variable, $separator=",")
Splits a variable into an array using a separator and escapes every value.
+ Here is the call graph for this function:

◆ setNickname()

ilvCard::setNickname (   $nickname)

Sets the value for the vCard NICKNAME type.

Sets the value for the vCard NICKNAME type to specify the text corresponding to the nickname of the object the vCard represents.

Type example:

NICKNAME:Robbie NICKNAME:Jim,Jimmie

Type special note: The nickname is the descriptive name given instead of or in addition to the one belonging to a person, place, or thing. It can also be used to specify a familiar form of a proper name specified by the FN or N types.

Parameters
string$formatted_nameThe formatted text public

Definition at line 893 of file class.ilvCard.php.

References explodeVar().

894  {
895  $nicknames =& $this->explodeVar($nickname);
896  $this->types["NICKNAME"] = join(",", $nicknames);
897  }
& explodeVar($variable, $separator=",")
Splits a variable into an array using a separator and escapes every value.
+ Here is the call graph for this function:

◆ setNote()

ilvCard::setNote (   $note = "")

Sets the value for the vCard NOTE type.

Sets the value for the vCard NOTE type to specify supplemental information or a comment that is associated with the vCard.

Type example:

NOTE:This fax number is operational 0800 to 1715 EST\, Mon-Fri.

Type value: A single text value.

Type special notes: The type is based on the X.520 Description attribute.

Parameters
string$noteA note or comment public

Definition at line 1524 of file class.ilvCard.php.

References escape().

1525  {
1526  $this->types["NOTE"] = $this->escape($note);
1527  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setOrganization()

ilvCard::setOrganization (   $organization = "")

Sets the value for the vCard ORG type.

Sets the value for the vCard ORG type to specify the organizational name and units associated with the vCard.

Type example:

ORG:ABC\, Inc.;North American Division;Marketing

Type value: A single structured text value consisting of components separated the SEMI-COLON character (ASCII decimal 59).

Type special notes: The type is based on the X.520 Organization Name and Organization Unit attributes. The type value is a structured type consisting of the organization name, followed by one or more levels of organizational unit names.

Parameters
string$organizationOrganization description public

Definition at line 1471 of file class.ilvCard.php.

References explodeVar().

1472  {
1473  $organization = join(";", $this->explodeVar($organization, ";"));
1474  $this->types["ORG"] = $organization;
1475  }
& explodeVar($variable, $separator=",")
Splits a variable into an array using a separator and escapes every value.
+ Here is the call graph for this function:

◆ setPhone()

ilvCard::setPhone (   $number = "",
  $type = TEL_TYPE_VOICE 
)

Sets the value for the vCard TEL type.

Sets the value for the vCard TEL type to specify the telephone number for telephony communication with the object the vCard represents.

Type example:

TEL;TYPE=work,voice,pref,msg:+1-213-555-1234

Type special notes: The value of this type is specified in a canonical form in order to specify an unambiguous representation of the globally unique telephone endpoint. This type is based on the X.500 Telephone Number attribute.

The type can include the type parameter "TYPE" to specify intended use for the telephone number. The TYPE parameter values can include: "home" to indicate a telephone number associated with a residence, "msg" to indicate the telephone number has voice messaging support, "work" to indicate a telephone number associated with a place of vwork, "pref" to indicate a preferred-use telephone number, "voice" to indicate a voice telephone number, "fax" to indicate a facsimile telephone number, "cell" to indicate a cellular telephone number, "video" to indicate a video conferencing telephone number, "pager" to indicate a paging device telephone number, "bbs" to indicate a bulletin board system telephone number, "modem" to indicate a MODEM connected telephone number, "car" to indicate a car-phone telephone number, "isdn" to indicate an ISDN service telephone number, "pcs" to indicate a personal communication services telephone number. The default type is "voice". These type parameter values can be specified as a parameter list (i.e., "TYPE=work;TYPE=voice") or as a value list (i.e., "TYPE=work,voice"). The default can be overridden to another set of values by specifying one or more alternate values. For example, the default TYPE of "voice" can be reset to a WORK and HOME, VOICE and FAX telephone number by the value list "TYPE=work,home,voice,fax".

Parameters
string$numberThe phone number
integer$typeThe address type (can be combined with the + operator) public

Definition at line 1175 of file class.ilvCard.php.

References array, and escape().

1176  {
1177  array_push($this->types["TEL"], array(
1178  "TEL" => $this->escape($number),
1179  "TYPE" => $type
1180  ));
1181  }
Create styles array
The data for the language used.
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setPhoto()

ilvCard::setPhoto (   $photo,
  $type = "" 
)

Sets the value for the vCard PHOTO type.

Sets the value for the vCard PHOTO type to specify an image or photograph information that annotates some aspect of the object the vCard represents.

Type example:

PHOTO;VALUE=uri:http://www.abc.com/pub/photos /jqpublic.gif

PHOTO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 <...remainder of "B" encoded binary data...>

Type encoding: The encoding MUST be reset to "b" using the ENCODING parameter in order to specify inline, encoded binary data. If the value is referenced by a URI value, then the default encoding of 8bit is used and no explicit ENCODING parameter is needed.

Type value: A single value. The default is binary value. It can also be reset to uri value. The uri value can be used to specify a value outside of this MIME entity.

Type special notes: The type can include the type parameter "TYPE" to specify the graphic image format type. The TYPE parameter values MUST be one of the IANA registered image formats or a non-standard image format.

Parameters
string$photoA binary string containing the photo or an uri
string$typeThe IANA type of the image format public

Definition at line 934 of file class.ilvCard.php.

References array, and encode().

935  {
936  $value = "";
937  $encoding = "";
938  if (preg_match("/^http/", $photo))
939  {
940  $value = $this->encode($photo);
941  }
942  else
943  {
944  $encoding = "b";
945  $photo = base64_encode($photo);
946  }
947  $this->types["PHOTO"] = array(
948  "VALUE" => $value,
949  "TYPE" => $type,
950  "ENCODING" => $encoding,
951  "PHOTO" => $photo
952  );
953  }
Create styles array
The data for the language used.
encode($string)
Encode data with "b" type encoding according to RFC 2045.
+ Here is the call graph for this function:

◆ setPosition()

ilvCard::setPosition (   $latitude = "",
  $longitude = "" 
)

Sets the value for the vCard GEO type.

Sets the value for the vCard GEO type to specify information related to the global positioning of the object the vCard represents.

Type example:

GEO:37.386013;-122.082932

Type value: A single structured value consisting of two float values separated by the SEMI-COLON character (ASCII decimal 59).

Type special notes: This type specifies information related to the global position of the object associated with the vCard. The value specifies latitude and longitude, in that order (i.e., "LAT LON" ordering). The longitude represents the location east and west of the prime meridian as a positive or negative real number, respectively. The latitude represents the location north and south of the equator as a positive or negative real number, respectively. The longitude and latitude values MUST be specified as decimal degrees and should be specified to six decimal places. This will allow for granularity within a meter of the geographical position. The text components are separated by the SEMI-COLON character (ASCII decimal 59). The simple formula for converting degrees-minutes-seconds into decimal degrees is:

            decimal = degrees + minutes/60 + seconds/3600.
Parameters
double$latitudeThe latitude of the position
double$longitudeThe longitude of the position public

Definition at line 1304 of file class.ilvCard.php.

References array.

1305  {
1306  $this->types["GEO"] = array(
1307  "LAT" => $latitude,
1308  "LON" => $longitude
1309  );
1310  }
Create styles array
The data for the language used.

◆ setProductId()

ilvCard::setProductId (   $product_id = "")

Sets the value for the vCard PRODID type.

Sets the value for the vCard PRODID type to specify the identifier for the product that created the vCard object.

Type example:

PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN

Type value: A single text value.

Type special notes: Implementations SHOULD use a method such as that specified for Formal Public Identifiers in ISO 9070 to assure that the text value is unique.

Parameters
string$product_idProduct identifier public

Definition at line 1548 of file class.ilvCard.php.

References escape().

1549  {
1550  $this->types["PRODID"] = $this->escape($product_id);
1551  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setRevision()

ilvCard::setRevision (   $revision_date = "")

Sets the value for the vCard REV type.

Sets the value for the vCard REV type to specify revision information about the current vCard.

Type example:

REV:1995-10-31T22:27:10Z REV:1997-11-15

Type value: The default is a single date-time value. Can also be reset to a single date value.

Type special notes: The value distinguishes the current revision of the information in this vCard for other renditions of the information.

Parameters
string$revision_dateRevision date public

Definition at line 1574 of file class.ilvCard.php.

References escape().

1575  {
1576  $this->types["REV"] = $this->escape($revision_date);
1577  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setRole()

ilvCard::setRole (   $role = "")

Sets the value for the vCard ROLE type.

Sets the value for the vCard ROLE type to specify information concerning the role, occupation, or business category of the object the vCard represents.

Type example:

ROLE:Programmer

Type special notes: This type is based on the X.520 Business Category explanatory attribute. This property is included as an organizational type to avoid confusion with the semantics of the TITLE type and incorrect usage of that type when the semantics of this type is intended.

Parameters
string$roleRole title public

Definition at line 1359 of file class.ilvCard.php.

References escape().

1360  {
1361  $this->types["ROLE"] = $this->escape($role);
1362  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setSortString()

ilvCard::setSortString (   $string = "")

Sets the value for the vCard SORT-STRING type.

Sets the value for the vCard SORT-STRING type to specify the family name or given name text to be used for national-language-specific sorting of the FN and N types.

Type examples: For the case of family name sorting, the following examples define common sort string usage with the FN and N types.

FN:Rene van der Harten N:van der Harten;Rene;J.;Sir;R.D.O.N. SORT-STRING:Harten

FN:Robert Pau Shou Chang N:Pau;Shou Chang;Robert SORT-STRING:Pau

FN:Osamu Koura N:Koura;Osamu SORT-STRING:Koura

FN:Oscar del Pozo N:del Pozo Triscon;Oscar SORT-STRING:Pozo

FN:Chistine d'Aboville N:d'Aboville;Christine SORT-STRING:Aboville

Type value: A single text value.

Type special notes: The sort string is used to provide family name or given name text that is to be used in locale- or national-language- specific sorting of the formatted name and structured name types. Without this information, sorting algorithms could incorrectly sort this vCard within a sequence of sorted vCards. When this type is present in a vCard, then this family name or given name value is used for sorting the vCard.

Parameters
string$stringSort string public

Definition at line 1622 of file class.ilvCard.php.

References escape().

1623  {
1624  $this->types["SORT-STRING"] = $this->escape($string);
1625  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setSound()

ilvCard::setSound (   $sound = "",
  $type = "" 
)

Sets the value for the vCard SOUND type.

Sets the value for the vCard SOUND type to specify a digital sound content information that annotates some aspect of the vCard. By default this type is used to specify the proper pronunciation of the name type value of the vCard.

Type example:

SOUND;TYPE=BASIC;VALUE=uri:CID:JOHNQPUBLIC.part8. 19960.nosp@m.229T.nosp@m.08000.nosp@m.0.xy.nosp@m.zMail.nosp@m.@hos.nosp@m.t1.co.nosp@m.m

SOUND;TYPE=BASIC;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 <...the remainder of "B" encoded binary data...>

Type encoding: The encoding MUST be reset to "b" using the ENCODING parameter in order to specify inline, encoded binary data. If the value is referenced by a URI value, then the default encoding of 8bit is used and no explicit ENCODING parameter is needed.

Type value: A single value. The default is binary value. It can also be reset to uri value. The uri value can be used to specify a value outside of this MIME entity.

Type special notes: The type can include the type parameter "TYPE" to specify the audio format type. The TYPE parameter values MUST be one of the IANA registered audio formats or a non-standard audio format.

Parameters
string$soundBinary string containing the sound
string$typeThe IANA registered sound type public

Definition at line 1662 of file class.ilvCard.php.

References array, and encode().

1663  {
1664  $value = "";
1665  $encoding = "";
1666  if (preg_match("/^http/", $sound))
1667  {
1668  $value = $this->encode($sound);
1669  }
1670  else
1671  {
1672  $encoding = "b";
1673  $sound = base64_encode($sound);
1674  }
1675  $this->types["SOUND"] = array(
1676  "VALUE" => $value,
1677  "TYPE" => $type,
1678  "ENCODING" => $encoding,
1679  "SOUND" => $sound
1680  );
1681  }
Create styles array
The data for the language used.
encode($string)
Encode data with "b" type encoding according to RFC 2045.
+ Here is the call graph for this function:

◆ setTimezone()

ilvCard::setTimezone (   $zone = "")

Sets the value for the vCard TZ type.

Sets the value for the vCard TZ type to specify information related to the time zone of the object the vCard represents.

Type example:

TZ:-05:00 TZ;VALUE=text:-05:00; EST; Raleigh/North America

Type special notes: The type value consists of a single value.

Parameters
string$zoneThe timezone as utc-offset value public

Definition at line 1265 of file class.ilvCard.php.

References escape().

1266  {
1267  $this->types["TZ"] = $this->escape($zone);
1268  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setTitle()

ilvCard::setTitle (   $title = "")

Sets the value for the vCard TITLE type.

Sets the value for the vCard TITLE type to specify the job title, functional position or function of the object the vCard represents.

Type example:

TITLE:Director\, Research and Development

Type special notes: This type is based on the X.520 Title attribute.

Parameters
string$titleJob title public

Definition at line 1334 of file class.ilvCard.php.

References $title, and escape().

1335  {
1336  $this->types["TITLE"] = $this->escape($title);
1337  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setUID()

ilvCard::setUID (   $uid = "",
  $type = "" 
)

Sets the value for the vCard UID type.

Sets the value for the vCard UID type to specify a value that represents a globally unique identifier corresponding to the individual or resource associated with the vCard.

Type example:

UID:19950401-080045-40000F192713-0052

Type value: A single text value.

Type special notes: The type is used to uniquely identify the object that the vCard represents.

The type can include the type parameter "TYPE" to specify the format of the identifier. The TYPE parameter value should be an IANA registered identifier format. The value can also be a non-standard format.

Parameters
string$uidGlobally unique identifier
string$typeIANA registered identifier format public

Definition at line 1709 of file class.ilvCard.php.

References array, and escape().

1710  {
1711  $this->types["UID"] = array(
1712  "UID" => $this->escape($uid),
1713  "TYPE" => $type
1714  );
1715  }
Create styles array
The data for the language used.
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setURL()

ilvCard::setURL (   $uri = "")

Sets the value for the vCard URL type.

Sets the value for the vCard URL type to specify a uniform resource locator associated with the object that the vCard refers to.

Type example:

URL:http://www.ilias.de/index.html

Type value: A single text value.

Parameters
string$uriURL public

Definition at line 1733 of file class.ilvCard.php.

References escape().

1734  {
1735  $this->types["URL"] = $this->escape($uri);
1736  }
escape($string)
Escapes a string according to RFC 2426.
+ Here is the call graph for this function:

◆ setVersion()

ilvCard::setVersion (   $version = "3.0")

Sets the value for the vCard VERSION type.

Sets the value for the vCard VERSION type to specify the version of the vCard specification used

Type example:

VERSION:3.0

Type special notes: The property MUST be present in the vCard object. The value MUST be "3.0" if the vCard corresponds to the vCard 3.0 specification.

Parameters
string$versionVersion string public

Definition at line 1754 of file class.ilvCard.php.

References $version.

1755  {
1756  $this->types["VERSION"] = $version;
1757  }

Field Documentation

◆ $filename

ilvCard::$filename

The filename of the vCard used when saving the vCard.

string

Definition at line 91 of file class.ilvCard.php.

Referenced by getFilename().

◆ $types

ilvCard::$types

An array containing the vCard types.

array

Definition at line 84 of file class.ilvCard.php.


The documentation for this class was generated from the following file: