| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | <?phpnamespace Lychee\Modules;final class Albums {	/**	 * @return boolean Returns true when successful.	 */	public function __construct() {		return true;	}	/**	 * @return array|false Returns an array of albums or false on failure.	 */	public function get($public = true) {		// Call plugins		Plugins::get()->activate(__METHOD__, 0, func_get_args());		// Initialize return var		$return = array(			'smartalbums' => null,			'albums'      => null,			'num'         => 0		);		// Get SmartAlbums		if ($public===false) $return['smartalbums'] = $this->getSmartAlbums();		// Albums query		if ($public===false) $query = Database::prepare(Database::get(), 'SELECT id, title, public, sysstamp, password FROM ? ' . Settings::get()['sortingAlbums'], array(LYCHEE_TABLE_ALBUMS));		else                 $query = Database::prepare(Database::get(), 'SELECT id, title, public, sysstamp, password FROM ? WHERE public = 1 AND visible <> 0 ' . Settings::get()['sortingAlbums'], array(LYCHEE_TABLE_ALBUMS));		// Execute query		$albums = Database::execute(Database::get(), $query, __METHOD__, __LINE__);		if ($albums===false) return false;		// For each album		while ($album = $albums->fetch_assoc()) {			// Turn data from the database into a front-end friendly format			$album = Album::prepareData($album);			// Thumbs			if (($public===true&&$album['password']==='0')||				($public===false)) {					// Execute query					$query  = Database::prepare(Database::get(), "SELECT thumbUrl FROM ? WHERE album = '?' ORDER BY star DESC, " . substr(Settings::get()['sortingPhotos'], 9) . " LIMIT 3", array(LYCHEE_TABLE_PHOTOS, $album['id']));					$thumbs = Database::execute(Database::get(), $query, __METHOD__, __LINE__);					if ($thumbs===false) return false;					// For each thumb					$k = 0;					while ($thumb = $thumbs->fetch_object()) {						$album['thumbs'][$k] = LYCHEE_URL_UPLOADS_THUMB . $thumb->thumbUrl;						$k++;					}			}			// Add to return			$return['albums'][] = $album;		}		// Num of albums		$return['num'] = $albums->num_rows;		// Call plugins		Plugins::get()->activate(__METHOD__, 1, func_get_args());		return $return;	}	/**	 * @return array|false Returns an array of smart albums or false on failure.	 */	private function getSmartAlbums() {		// Initialize return var		$return = array(			'unsorted' => null,			'public'   => null,			'starred'  => null,			'recent'   => null		);		/**		 * Unsorted		 */		$query    = Database::prepare(Database::get(), 'SELECT thumbUrl FROM ? WHERE album = 0 ' . Settings::get()['sortingPhotos'], array(LYCHEE_TABLE_PHOTOS));		$unsorted = Database::execute(Database::get(), $query, __METHOD__, __LINE__);		$i        = 0;		if ($unsorted===false) return false;		$return['unsorted'] = array(			'thumbs' => array(),			'num'    => $unsorted->num_rows		);		while($row = $unsorted->fetch_object()) {			if ($i<3) {				$return['unsorted']['thumbs'][$i] = LYCHEE_URL_UPLOADS_THUMB . $row->thumbUrl;				$i++;			} else break;		}		/**		 * Starred		 */		$query   = Database::prepare(Database::get(), 'SELECT thumbUrl FROM ? WHERE star = 1 ' . Settings::get()['sortingPhotos'], array(LYCHEE_TABLE_PHOTOS));		$starred = Database::execute(Database::get(), $query, __METHOD__, __LINE__);		$i       = 0;		if ($starred===false) return false;		$return['starred'] = array(			'thumbs' => array(),			'num'    => $starred->num_rows		);		while($row3 = $starred->fetch_object()) {			if ($i<3) {				$return['starred']['thumbs'][$i] = LYCHEE_URL_UPLOADS_THUMB . $row3->thumbUrl;				$i++;			} else break;		}		/**		 * Public		 */		$query  = Database::prepare(Database::get(), 'SELECT thumbUrl FROM ? WHERE public = 1 ' . Settings::get()['sortingPhotos'], array(LYCHEE_TABLE_PHOTOS));		$public = Database::execute(Database::get(), $query, __METHOD__, __LINE__);		$i      = 0;		if ($public===false) return false;		$return['public'] = array(			'thumbs' => array(),			'num'    => $public->num_rows		);		while($row2 = $public->fetch_object()) {			if ($i<3) {				$return['public']['thumbs'][$i] = LYCHEE_URL_UPLOADS_THUMB . $row2->thumbUrl;				$i++;			} else break;		}		/**		 * Recent		 */		$query  = Database::prepare(Database::get(), 'SELECT thumbUrl FROM ? WHERE LEFT(id, 10) >= unix_timestamp(DATE_SUB(NOW(), INTERVAL 1 DAY)) ' . Settings::get()['sortingPhotos'], array(LYCHEE_TABLE_PHOTOS));		$recent = Database::execute(Database::get(), $query, __METHOD__, __LINE__);		$i      = 0;		if ($recent===false) return false;		$return['recent'] = array(			'thumbs' => array(),			'num'    => $recent->num_rows		);		while($row3 = $recent->fetch_object()) {			if ($i<3) {				$return['recent']['thumbs'][$i] = LYCHEE_URL_UPLOADS_THUMB . $row3->thumbUrl;				$i++;			} else break;		}		// Return SmartAlbums		return $return;	}}?>
 |