$tag){ $tags[$key] = str_replace('-', ' ', $tag); } // Are we looking at a collection? if($collection !== null){ $ebooks = Library::GetEbooksByCollection($collection); // Get the *actual* name of the collection, in case there are accent marks (like "Arsène Lupin") if(sizeof($ebooks) > 0){ foreach($ebooks[0]->Collections as $c){ if($collection == Formatter::MakeUrlSafe($c->Name)){ $collectionObject = $c; } } } if($collectionObject !== null){ $collectionName = preg_replace('/^The /ius', '', $collectionObject->Name) ?? ''; $collectionType = $collectionObject->Type ?? 'collection'; # This is a kind of .endswith() test if(substr_compare(mb_strtolower($collectionObject->Name), mb_strtolower($collectionObject->Type), -strlen(mb_strtolower($collectionObject->Type))) !== 0){ $collectionType = ' ' . $collectionType; } else{ $collectionType = ''; } $pageTitle = 'Browse free ebooks in the ' . Formatter::ToPlainText($collectionName) . $collectionType; $pageDescription = 'A list of free ebooks in the ' . Formatter::ToPlainText($collectionName) . ' ' . $collectionType; $pageHeader = 'Free ebooks in the ' . Formatter::ToPlainText($collectionName) . ' ' . $collectionType; } else{ throw new InvalidCollectionException(); } } else{ $ebooks = Library::FilterEbooks($query, $tags, $sort); $pageTitle = 'Browse Standard Ebooks'; $pageHeader = 'Browse Ebooks'; $pages = ceil(sizeof($ebooks) / $perPage); $totalEbooks = sizeof($ebooks); $ebooks = array_slice($ebooks, ($page - 1) * $perPage, $perPage); } if($page > 1){ $pageTitle .= ', page ' . $page; } $pageDescription = 'Page ' . $page . ' of the Standard Ebooks free ebook library'; $queryString = ''; if($collection === null){ if($query != ''){ $queryString .= '&query=' . urlencode($query); } foreach($tags as $tag){ $queryString .= '&tags[]=' . urlencode($tag); } if($view !== null){ $queryString .= '&view=' . urlencode($view); } if($sort !== null){ $queryString .= '&sort=' . urlencode($sort); } if($perPage !== EBOOKS_PER_PAGE){ $queryString .= '&per-page=' . urlencode((string)$perPage); } } $queryString = preg_replace('/^&/ius', '', $queryString); } catch(\Exception $ex){ http_response_code(404); include(WEB_ROOT . '/404.php'); exit(); } ?> $pageTitle, 'highlight' => 'ebooks', 'description' => $pageDescription]) ?>

true]) ?> $query, 'tags' => $tags, 'sort' => $sort, 'view' => $view, 'perPage' => $perPage]) ?>

No ebooks matched your filters. You can try different filters, or browse all of our ebooks.

$ebooks, 'view' => $view, 'collection' => $collectionObject]) ?> 0 && $collection === null){ ?> 0 && $query === null && sizeof($tags) == 0 && $collection === null && $page == 1){ ?>