<?php

if (php_sapi_name() != 'cli') {
    die("You're not using CLI PHP");
}
require_once 'inc/config.inc.php';
require_once 'lib/book_catalog.lib.php';
$catalog = new BookCatalog();
$books = $catalog->enumerate_book_ids();
foreach ($books as $book_id => $book_title) {
    echo "Indexing '{$book_title}'...";
    $start_time = time();
    $book = $catalog->get_book_by_id($book_id);
    $book->index_fulltext();
    $finish_time = time();
    $ellapsed_time = $finish_time - $start_time;
    echo " ({$ellapsed_time} sec)\n";
}
<?php

require_once 'inc/config.inc.php';
require_once 'lib/book_catalog.lib.php';
require 'inc/admin_auth.inc.php';
require 'inc/header.inc.php';
$catalog = new BookCatalog();
$action = $_POST['action'];
if (isset($action)) {
    echo '<div class="content result">';
    switch ($action) {
        case 'add':
            $tags = $_POST['tags'];
            $tags = explode(' ', $tags);
            $result = $catalog->add_tags($tags);
            echo "{$result} tags added";
            break;
        case 'delete':
            $tags = $_POST['tags'];
            $result = $catalog->delete_tags($tags);
            echo "{$result} tags deleted";
            break;
        case 'tag':
            $aliases = $_POST['aliases'];
            $tags = $_POST['tags'];
            $result = $catalog->tag_books($aliases, $tags);
            echo "{$result} tags applied";
            break;
        case 'untag':
            $aliases = $_POST['aliases'];
            $tags = $_POST['tags'];
<?php

require_once 'inc/config.inc.php';
require_once 'lib/book_catalog.lib.php';
require 'inc/admin_auth.inc.php';
require 'inc/header.inc.php';
$catalog = new BookCatalog();
$action = $_POST['action'];
if (isset($action)) {
    echo '<div class="content result">';
    // disable memory and time limits, necessary for some administration tasks
    ini_set('memory_limit', '-1');
    if (!intval(ini_get('safe_mode'))) {
        set_time_limit(0);
    }
    echo "<pre>\n";
    $start_time = time();
    switch ($action) {
        case 'import':
            $files = $_POST['files'];
            if (isset($files)) {
                foreach ($files as $file) {
                    echo "Importing " . htmlspecialchars($file, ENT_NOQUOTES) . "\n";
                    ob_flush();
                    flush();
                    $catalog->import_book($admin_directory . "/" . $file);
                }
            }
            break;
        case 'upload':
            $file = $_FILES['file']['tmp_name'];
<?php

require_once 'inc/config.inc.php';
require_once 'lib/book_catalog.lib.php';
require_once 'lib/book_builder.lib.php';
require 'inc/admin_auth.inc.php';
require 'inc/header.inc.php';
$catalog = new BookCatalog();
$book_id = $_POST['book'];
$action = $_POST['action'];
if (isset($book_id) && isset($action)) {
    $book =& new BookBuilder(intval($book_id));
    switch ($action) {
        case 'set_title':
            $title = $_POST['title'];
            $book->set_title($title);
            break;
        case 'delete':
            $book->delete();
            $book_id = NULL;
            break;
        case 'set_metadata':
            $name = $_POST['name'];
            $value = $_POST['value'];
            $book->set_metadata($name, $value);
            break;
    }
}
?>
	<div class="content">
<?php

if (php_sapi_name() != 'cli') {
    die("You're not using CLI PHP");
}
require_once 'inc/config.inc.php';
require_once 'lib/book_catalog.lib.php';
$catalog = new BookCatalog();
for ($i = 1; $i < $argc; ++$i) {
    $filename = $argv[$i];
    echo "Importing '{$filename}'...";
    $start_time = time();
    $catalog->import_book($filename);
    $finish_time = time();
    $ellapsed_time = $finish_time - $start_time;
    echo " ({$ellapsed_time} sec)\n";
}
<?php

require_once 'lib/book_catalog.lib.php';
$catalog = new BookCatalog();
$book = $catalog->get_book_from_alias($alias);
if (!isset($book)) {
    header("Status: 404 Not Found");
    echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">';
    echo '<html><head>';
    echo '<title>404 Not Found</title>';
    echo '</head><body>';
    echo '<h1>Not Found</h1>';
    echo '<p>The requested book was not found.</p>';
    echo '</body></html>';
    exit;
}
"/>
	<title>HTML Help Books</title>
	<link href="css/default.css" type="text/css" rel="stylesheet"/>
</head>
<body>
	<div class="header">HTML Help Books</div>
	
	<div id="tags" class="sidebox">
		<span class="title">Tags</span>
		<table>
			<tr>
				<th class="count">#</th>
				<th class="tag">Tag</th>
			</tr>
<?php 
$catalog = new BookCatalog();
$tags = $catalog->count_tags();
foreach ($tags as $tag => $tag_count) {
    ?>
			<tr >
				<td class="count"><?php 
    echo $tag_count;
    ?>
</td>
				<td class="tag"><a href="books.php?tag=<?php 
    echo htmlspecialchars($tag, ENT_QUOTES);
    ?>
"><?php 
    echo htmlspecialchars($tag, ENT_NOQUOTES);
    ?>
</a></td>