search.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. use Lychee\Modules\Album;
  3. use Lychee\Modules\Database;
  4. use Lychee\Modules\Photo;
  5. function search($term) {
  6. // Initialize return var
  7. $return = array(
  8. 'photos' => null,
  9. 'albums' => null,
  10. 'hash' => ''
  11. );
  12. /**
  13. * Photos
  14. */
  15. $query = Database::prepare(Database::get(), "SELECT id, title, tags, public, star, album, thumbUrl, takestamp, url FROM ? WHERE title LIKE '%?%' OR description LIKE '%?%' OR tags LIKE '%?%'", array(LYCHEE_TABLE_PHOTOS, $term, $term, $term));
  16. $result = Database::get()->query($query);
  17. while($photo = $result->fetch_assoc()) {
  18. $photo = Photo::prepareData($photo);
  19. $return['photos'][$photo['id']] = $photo;
  20. }
  21. /**
  22. * Albums
  23. */
  24. $query = Database::prepare(Database::get(), "SELECT id, title, public, sysstamp, password FROM ? WHERE title LIKE '%?%' OR description LIKE '%?%'", array(LYCHEE_TABLE_ALBUMS, $term, $term));
  25. $result = Database::get()->query($query);
  26. while($album = $result->fetch_assoc()) {
  27. // Turn data from the database into a front-end friendly format
  28. $album = Album::prepareData($album);
  29. // Thumbs
  30. $query = Database::prepare(Database::get(), "SELECT thumbUrl FROM ? WHERE album = '?' " . Settings::get()['sortingPhotos'] . " LIMIT 0, 3", array(LYCHEE_TABLE_PHOTOS, $album['id']));
  31. $thumbs = Database::get()->query($query);
  32. // For each thumb
  33. $k = 0;
  34. while ($thumb = $thumbs->fetch_object()) {
  35. $album['thumbs'][$k] = LYCHEE_URL_UPLOADS_THUMB . $thumb->thumbUrl;
  36. $k++;
  37. }
  38. // Add to return
  39. $return['albums'][$album['id']] = $album;
  40. }
  41. // Hash
  42. $return['hash'] = md5(json_encode($return));
  43. return $return;
  44. }
  45. ?>