HcardHelper.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. App::uses('AppHelper', 'View/Helper');
  3. /**
  4. * Helper for hcard, vcard and other microformats!
  5. *
  6. * TODO: import http://codeigniter.com/wiki/microformats/
  7. */
  8. class HcardHelper extends AppHelper {
  9. public $data = array(
  10. 'given_name' => 'Firstname',
  11. 'middle_name' => 'Middlename',
  12. 'family_name' => 'Lastname',
  13. 'organization' => 'OrganizationName',
  14. 'street' => '123 Street',
  15. 'city' => 'City',
  16. 'province' => 'Province/State',
  17. 'postal_code' => 'Postal/Zip',
  18. 'country' => 'Country',
  19. 'phone' => 'phonenumber',
  20. 'email' => 'email@yoursite.com',
  21. 'url' => 'http://yoursite.com',
  22. 'aim_screenname' => 'aimname',
  23. 'yim_screenname' => 'yimname',
  24. 'avatar' => '/images/your_photo.png',
  25. 'title' => 'title',
  26. );
  27. /**
  28. * TODO
  29. */
  30. public function addressFormatHtml($data, $prefix = false, $format = 'General') {
  31. $data = $this->filter($data, $prefix);
  32. $text = $this->style($data, $format);
  33. $text = '';
  34. $text .= '<div id="hcard-' . $data['firstname'] . '-' . $data['lastname'] . '" class="vcard">';
  35. $text .= '<span class="fn">' . $data['firstname'] . ' ' . $data['lastname'] . '</span>';
  36. $text .= $this->address($data, $format);
  37. $text .= '</div>';
  38. return $text;
  39. }
  40. /**
  41. * TODO
  42. */
  43. public function addressFormatRaw($data, $prefix = false, $format = 'General') {
  44. $data = $this->filter($data, $prefix);
  45. $text = $data['firstname'] . ' ' . $data['lastname'] . "\n";
  46. $text .= $data['address'] . "\n";
  47. if (Configure::read('Localization.address_format') === 'US') {
  48. $text .= $data['city'] . ', ' . $data['state'] . ' ' . $data['postcode'] . "\n";
  49. } else {
  50. $text .= $data['postcode'] . ' ' . $data['city'] . "\n";
  51. }
  52. $text .= $data['country'];
  53. return $text;
  54. }
  55. /**
  56. * TODO
  57. */
  58. public function style($data) {
  59. }
  60. /**
  61. * TODO
  62. */
  63. public function address($data) {
  64. $text = '<div class="adr">';
  65. $text .= '<div class="street-address">' . $data['address'] . '</div> ';
  66. $text .= '<span class="locality">' . $data['city'] . '</span>, ';
  67. if (!empty($data['state'])) {
  68. $text .= '<span class="region">' . $data['state'] . '</span> ';
  69. }
  70. $text .= '<span class="postal-code">' . $data['postcode'] . '</span> ';
  71. $text .= '<span class="country-name">' . $data['country'] . '</span> ';
  72. $text .= '</div>';
  73. return $text;
  74. }
  75. /**
  76. * TODO
  77. */
  78. public function filter($data, $prefix = '') {
  79. if ($prefix) {
  80. foreach ($data as $key => $row) {
  81. $data[$prefix . $key] = $data[$key];
  82. }
  83. }
  84. return $data;
  85. }
  86. }