getGraphHeader.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. function getGraphHeader($photoID) {
  3. $photo = new Photo($photoID);
  4. if ($photo->getPublic('')===false) return false;
  5. $query = Database::prepare(Database::get(), "SELECT title, description, url, medium FROM ? WHERE id = '?'", array(LYCHEE_TABLE_PHOTOS, $photoID));
  6. $result = Database::get()->query($query);
  7. $row = $result->fetch_object();
  8. if (!$result||!$row) return false;
  9. if ($row->medium==='1') $dir = 'medium';
  10. else $dir = 'big';
  11. $parseUrl = parse_url('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
  12. $url = $parseUrl['scheme'] . '://' . $parseUrl['host'] . $parseUrl['path'] . '?' . $parseUrl['query'];
  13. $picture = $parseUrl['scheme'] . '://' . $parseUrl['host'] . $parseUrl['path'] . '/../uploads/' . $dir . '/' . $row->url;
  14. $url = htmlentities($url);
  15. $picture = htmlentities($picture);
  16. $row->title = htmlentities($row->title);
  17. $row->description = htmlentities($row->description);
  18. $return = '<!-- General Meta Data -->';
  19. $return .= '<meta name="title" content="' . $row->title . '">';
  20. $return .= '<meta name="description" content="' . $row->description . ' - via Lychee">';
  21. $return .= '<link rel="image_src" type="image/jpeg" href="' . $picture . '">';
  22. $return .= '<!-- Twitter Meta Data -->';
  23. $return .= '<meta name="twitter:card" content="photo">';
  24. $return .= '<meta name="twitter:title" content="' . $row->title . '">';
  25. $return .= '<meta name="twitter:image:src" content="' . $picture . '">';
  26. $return .= '<!-- Facebook Meta Data -->';
  27. $return .= '<meta property="og:title" content="' . $row->title . '">';
  28. $return .= '<meta property="og:description" content="' . $row->description . ' - via Lychee">';
  29. $return .= '<meta property="og:image" content="' . $picture . '">';
  30. $return .= '<meta property="og:url" content="' . $url . '">';
  31. return $return;
  32. }
  33. ?>