Пример #1
0
?>
				<h3><?php echo stripslashes($suf_nr_lib_unread_title); ?> (<?php echo total_books('unread', 0) ?>)</h3>
<?php
				echo stripslashes($suf_nr_lib_unread_text);
?>
				<div class="booklisting">
				<?php
				$nr_book_query = "status=unread&orderby=random&num=-1";
				get_template_part('now-reading/nr-shelf');
				?>
				</div>
<?php
			}
			else if ($entity == 'completed' && $suf_nr_lib_completed_show == 'show') {
?>
				<h3><?php echo stripslashes($suf_nr_lib_completed_title); ?> (<?php echo total_books('read', 0) ?>)</h3>
<?php
				echo stripslashes($suf_nr_lib_completed_text);
?>
				<div class="booklisting">
				<?php
				$nr_book_query = "status=read&orderby=finished&order=desc&num=-1";
				get_template_part('now-reading/nr-shelf');
				?>
				</div>
<?php
			}
		}
?>
			</div>
		</div>
Пример #2
0
    die(__('Cheatin&#8217; uh?'));
}
$action = $_POST['action'];
nr_reset_vars(array('action'));
switch ($action) {
    case 'delete':
        $id = intval($_GET['id']);
        check_admin_referer('now-reading-delete-book_' . $id);
        $wpdb->query("\r\r\n\t\tDELETE FROM {$wpdb->prefix}now_reading\r\r\n\t\tWHERE b_id = {$id}\r\r\n            ");
        wp_redirect($nr_url->urls['manage'] . '&deleted=1');
        die;
        break;
    case 'update':
        check_admin_referer('now-reading-edit');
        $count = intval($_POST['count']);
        if ($count > total_books(0, 0)) {
            die;
        }
        $updated = 0;
        for ($i = 0; $i < $count; $i++) {
            $id = intval($_POST['id'][$i]);
            if ($id == 0) {
                continue;
            }
            $author = $wpdb->escape($_POST['author'][$i]);
            $title = $wpdb->escape($_POST['title'][$i]);
            $asin = $wpdb->escape($_POST['asin'][$i]);
            $nice_author = $wpdb->escape(sanitize_title($_POST['author'][$i]));
            $nice_title = $wpdb->escape(sanitize_title($_POST['title'][$i]));
            $status = $wpdb->escape($_POST['status'][$i]);
            $added = nr_empty_date($_POST['added'][$i]) ? '' : $wpdb->escape(date('Y-m-d H:i:s', strtotime($_POST['added'][$i])));
Пример #3
0
    ?>
			
			</ul>
			
		<?php 
} else {
    ?>
			
			<p>None</p>
			
		<?php 
}
?>
		
		<h2>Recent books (<?php 
echo total_books('read', 0);
?>
):</h2>
		
		<?php 
if (have_books('status=read&orderby=finished&order=desc&num=-1')) {
    ?>
			
			<ul>
			
			<?php 
    while (have_books('status=read&orderby=finished&order=desc&num=-1')) {
        the_book();
        ?>
				
				<li><a href="<?php 
Пример #4
0
/**
 * Creates the manage admin page, and deals with the creation and editing of reviews.
 */
function dk_book_manage()
{
    global $wpdb, $nr_statuses, $nr_post_options, $userdata;
    get_currentuserinfo();
    $_POST = stripslashes_deep($_POST);
    $options = get_option(NOW_READING_OPTIONS);
    if (!$nr_url) {
        $nr_url = new nr_url();
        $nr_url->load_scheme($options['menuLayout']);
    }
    if (!empty($_GET['updated'])) {
        $updated = intval($_GET['updated']);
        if ($updated == 1) {
            $updated .= ' book';
        } else {
            $updated .= ' books';
        }
        echo '
		<div id="message" class="updated fade">
			<p><strong>' . $updated . ' updated.</strong></p>
		</div>
		';
    }
    if (!empty($_GET['deleted'])) {
        $deleted = intval($_GET['deleted']);
        if ($deleted == 1) {
            $deleted .= ' book';
        } else {
            $deleted .= ' books';
        }
        echo '
		<div id="message" class="updated fade">
			<p><strong>' . $deleted . ' deleted.</strong></p>
		</div>
		';
    }
    $action = $_GET['action'];
    nr_reset_vars(array('action'));
    $options = get_option(NOW_READING_OPTIONS);
    $dateTimeFormat = 'Y-m-d H:i:s';
    if ($options['ignoreTime']) {
        $dateTimeFormat = 'Y-m-d';
    }
    switch ($action) {
        // Edit Book.
        case 'editsingle':
            $id = intval($_GET['id']);
            $existing = get_book($id);
            $meta = get_book_meta($existing->id);
            $tags = join(get_book_tags($existing->id), ',');
            echo '
			<div class="wrap">
				<h2>' . __("Edit Book", NRTD) . '</h2>
				<a href = "' . get_page_link(intval($_GET['page_id'])) . '" >Manage Books</a>

				<form method="post" action="' . get_option('siteurl') . '/wp-content/plugins/dk_books/functions/edit.php">
			';
            if (function_exists('wp_nonce_field')) {
                wp_nonce_field('now-reading-edit');
            }
            if (function_exists('wp_referer_field')) {
                wp_referer_field();
            }
            echo '
				<div class="book-image">
					<img style="float:left; margin-right: 10px;" id="book-image-0" alt="Book Cover" src="' . $existing->image . '" />
				</div>

				<h3><cite>' . $existing->title . '</cite><br /> by ' . $existing->author . '</h3>

				<table class="form-table" cellspacing="2" cellpadding="5">

				<input type="hidden" name="action" value="update" />
				<input type="hidden" name="count" value="1" />
				<input type="hidden" name="id[]" value="' . $existing->id . '" />

				<tbody>
				';
            // Title.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="title-0">' . __("Title", NRTD) . '</label>
					</th>
					<td>
						<input type="text" class="main" id="title-0" name="title[]" value="' . $existing->title . '" />
					</td>
				</tr>
				';
            // Author.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="author-0">' . __("Author", NRTD) . '</label>
					</th>
					<td>
						<input type="text" class="main" id="author-0" name="author[]" value="' . $existing->author . '" />
					</td>
				</tr>
				';
            // ASIN.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
					<label for="asin-0">' . __("ASIN", NRTD) . '</label>
					</th>
					<td>
					<input type="text" class="main" id="asin-0" name="asin[]" value="' . $existing->asin . '" />
					</td>
				</tr>
				';
            // Status.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="status-0">' . __("Status", NRTD) . '</label>
					</th>
					<td>
						<select name="status[]" id="status-0">
							';
            foreach ((array) $nr_statuses as $status => $name) {
                $selected = '';
                if ($existing->status == $status) {
                    $selected = ' selected="selected"';
                }
                echo '
									<option value="' . $status . '"' . $selected . '>' . $name . '</option>
								';
            }
            echo '
						</select>
					</td>
				</tr>';
            // Visibility.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="visibility-0">' . __("Visibility", NRTD) . '</label>
					</th>
					<td>
						<select name="visibility[]" id="visibility-0">
							';
            if ($existing->visibility) {
                // Public.
                echo '
									<option value="0">Private</option>
									<option value="1" selected="selected">Public</option>
								';
            } else {
                // Private.
                echo '
									<option value="0" selected="selected">Private</option>
									<option value="1">Public</option>
								';
            }
            echo '
						</select>
					</td>
				</tr>';
            // Added Date.
            if (!$options['hideAddedDate']) {
                $added = nr_empty_date($existing->added) ? '' : date($dateTimeFormat, strtotime($existing->added));
                echo '
					<tr class="form-field">
						<th valign="top" scope="row">
							<label for="added[]">' . __("Added", NRTD) . '</label>
						</th>
						<td>
							<input type="text" id="added-0" name="added[]" value="' . htmlentities($added, ENT_QUOTES, "UTF-8") . '" />
						</td>
					</tr>
					';
            }
            // Started Reading Date.
            $started = nr_empty_date($existing->started) ? '' : date($dateTimeFormat, strtotime($existing->started));
            // Finished Reading Date.
            $finished = nr_empty_date($existing->finished) ? '' : date($dateTimeFormat, strtotime($existing->finished));
            // Image URL.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="image-0">' . __("Image", NRTD) . '</label>
					</th>
					<td>
						<input type="text" class="main" id="image-0" name="image[]" value="' . htmlentities($existing->image) . '" />
					</td>
				</tr>

				';
            // Tags.
            // Link to Post.
            // Rating.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="rating[]"><label for="rating">' . __("Rating", NRTD) . '</label></label>
					</th>
					<td>
						<select name="rating[]" id="rating-' . $i . '" style="width:100px;">
							<option value="unrated">&nbsp;</option>
							';
            for ($i = 10; $i >= 1; $i--) {
                $selected = $i == $existing->rating ? ' selected="selected"' : '';
                echo "\r\r\n\t\t\t\t\t\t\t\t\t\t<option value='{$i}'{$selected}>{$i}</option>";
            }
            echo '
						</select>
					</td>
				</tr>
				';
            // Review.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="review-0">' . __("Review", NRTD) . '</label>
					</th>
					<td>
						<textarea name="review[]" id="review-' . $i . '" cols="50" rows="10" style="width:97%;height:200px;">' . htmlentities($existing->review, ENT_QUOTES, "UTF-8") . '</textarea>
						<small>
								<a accesskey="i" href="#" onclick="reviewBigger(\'' . $i . '\'); return false;">' . __("Increase size", NRTD) . ' (Alt + I)</a>
								&middot;
								<a accesskey="d" href="#" onclick="reviewSmaller(\'' . $i . '\'); return false;">' . __("Decrease size", NRTD) . ' (Alt + D)</a>
							</small>
					</td>
				</tr>

				</tbody>
				</table>

				<p class="submit">
					<input class="button" type="submit" value="' . __("Save", NRTD) . '" />
				</p>

				</form>

			</div>


			';
            break;
            // Book Manager.
        // Book Manager.
        default:
            //depends on multiusermode (B. Spyckerelle)
            if ($options['multiuserMode']) {
                $count = total_books(0, 0, $userdata->ID);
                //counting only current users books
            } else {
                $count = total_books(0, 0, $userdata->ID);
                //counting all books
            }
            if ($count) {
                if (!empty($_GET['q'])) {
                    $search = '&search=' . urlencode($_GET['q']);
                } else {
                    $search = '';
                }
                if (empty($_GET['p'])) {
                    $page = 1;
                } else {
                    $page = intval($_GET['p']);
                }
                if (empty($_GET['o'])) {
                    $order = 'desc';
                } else {
                    $order = urlencode($_GET['o']);
                }
                if (empty($_GET['s'])) {
                    $orderby = 'started';
                } else {
                    $orderby = urlencode($_GET['s']);
                }
                // Filter by Author.
                if (empty($_GET['author'])) {
                    $author = '';
                } else {
                    $author = "&author=" . urlencode($_GET['author']);
                }
                // Filter by Status.
                if (empty($_GET['status'])) {
                    $status = '';
                } else {
                    $status = "&status=" . urlencode($_GET['status']);
                }
                $perpage = $options['booksPerPage'];
                $offset = $page * $perpage - $perpage;
                $num = $perpage;
                $pageq = "&num={$num}&offset={$offset}";
                // Depends on multiuser mode.
                if ($options['multiuserMode']) {
                    $reader = "&reader=" . $userdata->ID;
                } else {
                    $reader = '';
                }
                $books = get_books("num=-1&status=all&orderby={$orderby}&order={$order}{$search}{$pageq}{$reader}{$author}{$status}");
                $count = count($books);
                $numpages = ceil(total_books(0, 0, $userdata->ID) / $perpage);
                $pages = '<span class="displaying-num">' . __("Pages", NRTD) . '</span>';
                if ($page > 1) {
                    $previous = $page - 1;
                    $pages .= " <a class='page-numbers prev' href='{$nr_url->urls['manage']}&p={$previous}&s={$orderby}&o={$order}'>&laquo;</a>";
                }
                for ($i = 1; $i <= $numpages; $i++) {
                    if ($page == $i) {
                        $pages .= "<span class='page-numbers current'>{$i}</span>";
                    } else {
                        $pages .= " <a class='page-numbers' href='{$nr_url->urls['manage']}&p={$i}&s={$orderby}&o={$order}'>{$i}</a>";
                    }
                }
                if ($numpages > $page) {
                    $next = $page + 1;
                    $pages .= " <a class='page-numbers next' href='{$nr_url->urls['manage']}&p={$next}&s={$orderby}&o={$order}'>&raquo;</a>";
                }
                echo '
				<div class="wrap">
						<ul>
				';
                if (!empty($_GET['q']) || !empty($_GET['author']) || !empty($_GET['status'])) {
                    echo '
								<li><a href="' . $nr_url->urls['manage'] . '">' . __('Show all books', NRTD) . '</a></li>
					';
                }
                echo '
								<li><a href="' . library_url(0) . '">' . __('View library', NRTD) . '</a></li>
								<li><a href="' . get_page_link(intval($_GET['page_id'])) . '?dkaction=add">' . __('Add New Book', NRTD) . '</a></li>
							</ul>

						<div class="tablenav">
							<div class="tablenav-pages">
								' . $pages . '
							</div>
						</div>


					<br style="clear:both;" />

					<form method="post" action="' . get_option('siteurl') . '/wp-content/plugins/now-reading-redux/admin/edit.php">
				';
                if (function_exists('wp_nonce_field')) {
                    wp_nonce_field('now-reading-edit');
                }
                if (function_exists('wp_referer_field')) {
                    wp_referer_field();
                }
                echo '
					<input type="hidden" name="action" value="update" />
					<input type="hidden" name="count" value="' . $count . '" />
				';
                $i = 0;
                if ($order == 'desc') {
                    $new_order = 'asc';
                } else {
                    $new_order = 'desc';
                }
                $title_sort_link = "{$nr_url->urls['manage']}&p={$page}&s=book&o={$new_order}{$author}";
                $author_sort_link = "{$nr_url->urls['manage']}&p={$page}&s=author&o={$new_order}{$author}";
                $added_sort_link = "{$nr_url->urls['manage']}&p={$page}&s=added&o={$new_order}{$author}";
                $started_sort_link = "{$nr_url->urls['manage']}&p={$page}&s=started&o={$new_order}{$author}";
                $finished_sort_link = "{$nr_url->urls['manage']}&p={$page}&s=finished&o={$new_order}{$author}";
                $status_sort_link = "{$nr_url->urls['manage']}&p={$page}&s=status&o={$new_order}{$author}";
                echo '
					<table class="widefat post fixed" cellspacing="0">
						
						<tbody>
				';
                foreach ((array) $books as $book) {
                    $meta = get_book_meta($book->id);
                    $tags = join(get_book_tags($book->id), ',');
                    $alt = $i % 2 == 0 ? ' alternate' : '';
                    $delete = get_option('siteurl') . '/wp-content/plugins/dk_books/functions/edit.php?action=delete&id=' . $book->id;
                    $delete = wp_nonce_url($delete, 'now-reading-delete-book_' . $book->id);
                    echo '
						<tr class="manage-book' . $alt . '">

							<input type="hidden" name="id[]" value="' . $book->id . '" />
							<input type="hidden" name="title[]" value="' . $book->title . '" />
							<input type="hidden" name="author[]" value="' . $book->author . '" />

							<td>
								<img style="max-width:100px;" id="book-image-' . $i . '" class="small" alt="' . __('Book Cover', NRTD) . '" src="' . $book->image . '" />
							</td>

							<td class="post-title column-title">
								<strong>' . stripslashes($book->title) . '</strong>
								<div class="row-actions">
									<a href="' . book_permalink(0, $book->id) . '">' . __('View', NRTD) . '</a> |
										<a href="' . get_page_link(intval($_GET['page_id'])) . '?dkaction=manage&amp;action=editsingle&amp;id=' . $book->id . '">' . __('Edit', NRTD) . '</a> | <a href="' . $delete . '" onclick="return confirm(\'' . __("Are you sure you wish to delete this book permanently?", NRTD) . '\')">' . __("Delete", NRTD) . '</a>
								</div>
							</td>

							<td>
								<a href="' . $nr_url->urls['manage'] . '&amp;author=' . $book->author . '">' . $book->author . '</a>
							</td>

							<td>
								<a href="' . $nr_url->urls['manage'] . '&amp;status=' . $book->status . '">' . $book->status . '</a>
							</td>

							<td>
							' . (nr_empty_date($book->started) ? '' : date($dateTimeFormat, strtotime($book->started))) . '
							</td>

							<td>
							' . (nr_empty_date($book->finished) ? '' : date($dateTimeFormat, strtotime($book->finished))) . '
							</td>';
                    echo '
						</tr>
					';
                    $i++;
                }
                echo '
					</tbody>
					</table>

					</form>
				';
            } else {
                echo '
				<div class="wrap">
					<h2>' . __("Manage Books", NRTD) . '</h2>
					<p>' . sprintf(__("No books to display. To add some books, head over <a href='%s'>here</a>.", NRTD), $nr_url->urls['add']) . '</p>
				</div>
				';
            }
            echo '
			</div>
			';
            break;
    }
}
Пример #5
0
/**
 * Creates the manage admin page, and deals with the creation and editing of reviews.
 */
function nr_manage() {

    global $wpdb, $nr_statuses, $nr_post_options, $userdata;

    get_currentuserinfo();

    $_POST = stripslashes_deep($_POST);

    $options = get_option('nowReadingOptions');

    if (!$nr_url)
	{
        $nr_url = new nr_url();
        $nr_url->load_scheme($options['menuLayout']);
    }

    if (!empty($_GET['updated']))
	{
        $updated = intval($_GET['updated']);

        if ( $updated == 1 )
            $updated .= ' book';
        else
            $updated .= ' books';

        echo '
		<div id="message" class="updated fade">
			<p><strong>' . $updated . ' updated.</strong></p>
		</div>
		';
    }

    if (!empty($_GET['deleted']))
	{
        $deleted = intval($_GET['deleted']);

        if ($deleted == 1)
            $deleted .= ' book';
        else
            $deleted .= ' books';

        echo '
		<div id="message" class="updated fade">
			<p><strong>' . $deleted . ' deleted.</strong></p>
		</div>
		';
    }

    $action = $_GET['action'];
    nr_reset_vars(array('action'));

	$options = get_option('nowReadingOptions');
	$dateTimeFormat = 'Y-m-d H:i:s';
	if ($options['ignoreTime'])
	{
		$dateTimeFormat = 'Y-m-d';
	}

    switch ($action)
	{
		// Edit Book.
        case 'editsingle':
        {
			$id = intval($_GET['id']);
            $existing = get_book($id);
            $meta = get_book_meta($existing->id);
            $tags = join(get_book_tags($existing->id), ',');

            echo '
			<div class="wrap">
				<h2>' . __("Edit Book", NRTD) . '</h2>

				<form method="post" action="' . get_option('siteurl') . '/wp-content/plugins/now-reading-redux/admin/edit.php">
			';

            if ( function_exists('wp_nonce_field') )
                wp_nonce_field('now-reading-edit');
            if ( function_exists('wp_referer_field') )
                wp_referer_field();

            echo '
				<div class="book-image">
					<img style="float:left; margin-right: 10px;" id="book-image-0" alt="Book Cover" src="' . $existing->image . '" />
				</div>

				<h3>' . __("Book", NRTD) . ' ' . $existing->id . ':<br /> <cite>' . $existing->title . '</cite><br /> by ' . $existing->author . '</h3>

				<table class="form-table" cellspacing="2" cellpadding="5">

				<input type="hidden" name="action" value="update" />
				<input type="hidden" name="count" value="1" />
				<input type="hidden" name="id[]" value="' . $existing->id . '" />

				<tbody>
				';

			// Title.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="title-0">' . __("Title", NRTD) . '</label>
					</th>
					<td>
						<input type="text" class="main" id="title-0" name="title[]" value="' . $existing->title . '" />
					</td>
				</tr>
				';

			// Author.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="author-0">' . __("Author", NRTD) . '</label>
					</th>
					<td>
						<input type="text" class="main" id="author-0" name="author[]" value="' . $existing->author . '" />
					</td>
				</tr>
				';

			// ASIN.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
					<label for="asin-0">' . __("ASIN", NRTD) . '</label>
					</th>
					<td>
					<input type="text" class="main" id="asin-0" name="asin[]" value="' . $existing->asin . '" />
					</td>
				</tr>
				';

			// Status.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="status-0">' . __("Status", NRTD) . '</label>
					</th>
					<td>
						<select name="status[]" id="status-0">
							';
				foreach ( (array) $nr_statuses as $status => $name ) {
					$selected = '';
					if ( $existing->status == $status )
						$selected = ' selected="selected"';

					echo '
									<option value="' . $status . '"' . $selected . '>' . $name . '</option>
								';
				}

				echo '
						</select>
					</td>
				</tr>';

			// Visibility.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="visibility-0">' . __("Visibility", NRTD) . '</label>
					</th>
					<td>
						<select name="visibility[]" id="visibility-0">
							';

					if ($existing->visibility)
					{
						// Public.
						echo '
									<option value="0">Private</option>
									<option value="1" selected="selected">Public</option>
								';
					}
					else
					{
						// Private.
						echo '
									<option value="0" selected="selected">Private</option>
									<option value="1">Public</option>
								';
					}

				echo '
						</select>
					</td>
				</tr>';

			// Added Date.
			if (!$options['hideAddedDate'])
			{
				$added = ( nr_empty_date($existing->added) ) ? '' : date($dateTimeFormat, strtotime($existing->added));
				echo '
					<tr class="form-field">
						<th valign="top" scope="row">
							<label for="added[]">' . __("Added", NRTD) . '</label>
						</th>
						<td>
							<input type="text" id="added-0" name="added[]" value="' . htmlentities($added, ENT_QUOTES, "UTF-8") . '" />
						</td>
					</tr>
					';
			}

			// Started Reading Date.
			$started = ( nr_empty_date($existing->started) ) ? '' : date($dateTimeFormat, strtotime($existing->started));
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="started[]">' . __("Started", NRTD) . '</label>
					</th>
					<td>
						<input type="text" id="started-0" name="started[]" value="' . htmlentities($started, ENT_QUOTES, "UTF-8") . '" />
					</td>
				</tr>

				';

			// Finished Reading Date.
			$finished = ( nr_empty_date($existing->finished) ) ? '' : date($dateTimeFormat, strtotime($existing->finished));
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="finished[]">' . __("Finished", NRTD) . '</label>
					</th>
					<td>
						<input type="text" id="finished-0" name="finished[]" value="' . htmlentities($finished, ENT_QUOTES, "UTF-8") . '" />
					</td>
				</tr>

				';

			// Image URL.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="image-0">' . __("Image", NRTD) . '</label>
					</th>
					<td>
						<input type="text" class="main" id="image-0" name="image[]" value="' . htmlentities($existing->image) . '" />
					</td>
				</tr>

				';

			// Tags.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="tags[]">' . __("Tags", NRTD) . '</label>
					</th>
					<td>
						<input type="text" name="tags[]" value="' . htmlspecialchars($tags, ENT_QUOTES, "UTF-8") . '" /><br />
						<small>' . __("A comma-separated list of keywords that describe the book.", NRTD) . '</small>
					</td>
				</tr>

				';

			// Link to Post.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="posts[]">' . __("Link to post", NRTD) . '</label>
					</th>
					<td>
						<input type="text" name="posts[]" value="' . intval($existing->post) . '" /><br />
						<small>' . __("If you wish, you can link this book to a blog entry by entering that entry's ID here. The entry will be linked to from the book's library page.", NRTD) . '</small>
					</td>
				</tr>';

				// Post Option.
				echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="post_op">' . __("Post Option", NRTD) . '</label>
					</th>
					<td>
						<select name="post_op[]" id="post_op">
							';
				$post_op_idx = 0;
				foreach ( (array) $nr_post_options as $post_op => $name ) {
					$selected = '';
					if ($existing->post_op == $post_op_idx)
					{
						$selected = ' selected="selected"';
					}

					echo '
									<option value="' . $post_op_idx . '"' . $selected . '>' . $name . '</option>
								';
					$post_op_idx++;
				}
				echo '
						</select>
					</td>
				</tr>';

				// Meta Data.
				echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						Meta Data
					</th>
					<td>
						<p><a href="#" onclick="addMeta(\'0\'); return false;">' . __("Add another field", NRTD) . ' +</a></p>
								<table>
									<thead>
										<tr>
											<th scope="col">' . __("Key", NRTD) . ':</th>
											<th scope="col">' . __("Value", NRTD) . ':</th>
											<th scope="col"></th>
										</tr>
									</thead>
									<tbody id="book-meta-table-0" class="book-meta-table">
										';
					foreach ( (array) $meta as $key => $val ) {
						$url = get_option('siteurl') . "/wp-content/plugins/now-reading-redux/admin/edit.php?action=deletemeta&id={$existing->id}&key=" . urlencode($key);
						if ( function_exists('wp_nonce_url') )
							$url = wp_nonce_url($url, 'now-reading-delete-meta_' . $existing->id . $key);

						echo '
												<tr>
													<td><textarea name="keys-0[]" class="key">' . htmlspecialchars($key, ENT_QUOTES, "UTF-8") . '</textarea></td>
													<td><textarea name="values-0[]" class="value">' . htmlspecialchars($val, ENT_QUOTES, "UTF-8") . '</textarea></td>
													<td><a href="' . $url . '">' . __("Delete", NRTD) . '</a></td>
												</tr>
											';
					}
					echo '
										<tr>
											<td><textarea name="keys-0[]" class="key"></textarea></td>
											<td><textarea name="values-0[]" class="value"></textarea></td>
										</tr>
									</tbody>
								</table>

					</td>
				</tr>
				';

			// Rating.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="rating[]"><label for="rating">' . __("Rating", NRTD) . '</label></label>
					</th>
					<td>
						<select name="rating[]" id="rating-' . $i . '" style="width:100px;">
							<option value="unrated">&nbsp;</option>
							';
            for ($i = 10; $i >=1; $i--) {
                $selected = ($i == $existing->rating) ? ' selected="selected"' : '';
                echo "
										<option value='$i'$selected>$i</option>";
            }
            echo '
						</select>
					</td>
				</tr>
				';

			// Review.
            echo '
				<tr class="form-field">
					<th valign="top" scope="row">
						<label for="review-0">' . __("Review", NRTD) . '</label>
					</th>
					<td>
						<textarea name="review[]" id="review-' . $i . '" cols="50" rows="10" style="width:97%;height:200px;">' . htmlentities($existing->review, ENT_QUOTES, "UTF-8") . '</textarea>
						<small>
								<a accesskey="i" href="#" onclick="reviewBigger(\'' . $i . '\'); return false;">' . __("Increase size", NRTD) . ' (Alt + I)</a>
								&middot;
								<a accesskey="d" href="#" onclick="reviewSmaller(\'' . $i . '\'); return false;">' . __("Decrease size", NRTD) . ' (Alt + D)</a>
							</small>
					</td>
				</tr>

				</tbody>
				</table>

				<p class="submit">
					<input class="button" type="submit" value="' . __("Save", NRTD) . '" />
				</p>

				</form>

			</div>


			';
		}
		break;

		// Book Manager.
		default:
		{
			//depends on multiusermode (B. Spyckerelle)
			if ($options['multiuserMode']) {
				$count = total_books(0, 0, $userdata->ID); //counting only current users books
			} else {
				$count = total_books(0, 0); //counting all books
			}


			if ( $count ) {
				if ( !empty($_GET['q']) )
					$search = '&search=' . urlencode($_GET['q']);
				else
					$search = '';

				if ( empty($_GET['p']) )
					$page = 1;
				else
					$page = intval($_GET['p']);

				if ( empty($_GET['o']) )
					$order = 'desc';
				else
					$order = urlencode($_GET['o']);

				if ( empty($_GET['s']) )
					$orderby = 'started';
				else
					$orderby = urlencode($_GET['s']);

				// Filter by Author.
				if (empty($_GET['author']))
					$author = '';
				else
					$author = "&author=" . urlencode($_GET['author']);

				// Filter by Status.
				if (empty($_GET['status']))
					$status = '';
				else
					$status = "&status=" . urlencode($_GET['status']);

				$perpage = $options['booksPerPage'];
				$offset = ($page * $perpage) - $perpage;
				$num = $perpage;
				$pageq = "&num=$num&offset=$offset";

				// Depends on multiuser mode.
				if ($options['multiuserMode']) {
					$reader = "&reader=".$userdata->ID;
				} else {
					$reader = '';
				}

				$books = get_books("num=-1&status=all&orderby={$orderby}&order={$order}{$search}{$pageq}{$reader}{$author}{$status}");
				$count = count($books);

				$numpages = ceil(total_books(0, 0, $userdata->ID) / $perpage);

				$pages = '<span class="displaying-num">' . __("Pages", NRTD) . '</span>';

				if ( $page > 1 ) {
					$previous = $page - 1;
					$pages .= " <a class='page-numbers prev' href='{$nr_url->urls['manage']}&p=$previous&s=$orderby&o=$order'>&laquo;</a>";
				}

				for ( $i = 1; $i <= $numpages; $i++) {
					if ( $page == $i )
						$pages .= "<span class='page-numbers current'>$i</span>";
					else
						$pages .= " <a class='page-numbers' href='{$nr_url->urls['manage']}&p=$i&s=$orderby&o=$order'>$i</a>";
				}

				if ( $numpages > $page ) {
					$next = $page + 1;
					$pages .= " <a class='page-numbers next' href='{$nr_url->urls['manage']}&p=$next&s=$orderby&o=$order'>&raquo;</a>";
				}

				echo '
				<div class="wrap">

					<h2>Now Reading Redux</h2>

						<form method="get" action="" onsubmit="location.href += \'&q=\' + document.getElementById(\'q\').value; return false;">
							<p class="search-box"><label class="hidden" for="q">' . __("Search Books", NRTD) . ':</label> <input type="text" name="q" id="q" value="' . htmlentities($_GET['q']) . '" /> <input class="button" type="submit" value="' . __('Search Books', NRTD) . '" /></p>
						</form>

							<ul>
				';
				if (!empty($_GET['q']) || !empty($_GET['author']) || !empty($_GET['status']))
				{
					echo '
								<li><a href="' . $nr_url->urls['manage'] . '">' . __('Show all books', NRTD) . '</a></li>
					';
				}

				echo '
								<li><a href="' . library_url(0) . '">' . __('View library', NRTD) . '</a></li>
							</ul>

						<div class="tablenav">
							<div class="tablenav-pages">
								' . $pages . '
							</div>
						</div>


					<br style="clear:both;" />

					<form method="post" action="' . get_option('siteurl') . '/wp-content/plugins/now-reading-redux/admin/edit.php">
				';

				if ( function_exists('wp_nonce_field') )
					wp_nonce_field('now-reading-edit');
				if ( function_exists('wp_referer_field') )
					wp_referer_field();

				echo '
					<input type="hidden" name="action" value="update" />
					<input type="hidden" name="count" value="' . $count . '" />
				';

				$i = 0;

				if ( $order == 'desc' )
					$new_order = 'asc';
				else
					$new_order = 'desc';

				$title_sort_link = "{$nr_url->urls['manage']}&p=$page&s=book&o=$new_order$author";
				$author_sort_link = "{$nr_url->urls['manage']}&p=$page&s=author&o=$new_order$author";
				$added_sort_link = "{$nr_url->urls['manage']}&p=$page&s=added&o=$new_order$author";
				$started_sort_link = "{$nr_url->urls['manage']}&p=$page&s=started&o=$new_order$author";
				$finished_sort_link = "{$nr_url->urls['manage']}&p=$page&s=finished&o=$new_order$author";
				$status_sort_link = "{$nr_url->urls['manage']}&p=$page&s=status&o=$new_order$author";

				echo '
					<table class="widefat post fixed" cellspacing="0">
						<thead>
							<tr>
								<th></th>
								<th class="manage-column column-title"><a class="manage_books" href="'. $title_sort_link .'">Book</a></th>
								<th class="manage-column column-author"><a class="manage_books" href="'. $author_sort_link .'">Author</a></th>
								<th><a class="manage_books" href="'. $status_sort_link .'">Status</a></th>
								<th><a class="manage_books" href="'. $started_sort_link .'">Started</a></th>
								<th><a class="manage_books" href="'. $finished_sort_link .'">Finished</a></th>';

				if (!$options['hideAddedDate'])
				{
					echo '
								<th><a class="manage_books" href="'. $added_sort_link .'">Added</a></th>';
				}

				echo '
							</tr>
						</thead>
						<tbody>
				';

				foreach ((array)$books as $book)
				{

					$meta = get_book_meta($book->id);
					$tags = join(get_book_tags($book->id), ',');

					$alt = ( $i % 2 == 0 ) ? ' alternate' : '';

					$delete = get_option('siteurl') . '/wp-content/plugins/now-reading-redux/admin/edit.php?action=delete&id=' . $book->id;
					$delete = wp_nonce_url($delete, 'now-reading-delete-book_' .$book->id);


					echo '
						<tr class="manage-book' . $alt . '">

							<input type="hidden" name="id[]" value="' . $book->id . '" />
							<input type="hidden" name="title[]" value="' . $book->title . '" />
							<input type="hidden" name="author[]" value="' . $book->author . '" />

							<td>
								<img style="max-width:100px;" id="book-image-' . $i . '" class="small" alt="' . __('Book Cover', NRTD) . '" src="' . $book->image . '" />
							</td>

							<td class="post-title column-title">
								<strong>' . stripslashes($book->title) . '</strong>
								<div class="row-actions">
									<a href="' . book_permalink(0, $book->id) . '">' . __('View', NRTD) . '</a> |
										<a href="' . $nr_url->urls['manage'] . '&amp;action=editsingle&amp;id=' . $book->id . '">' . __('Edit', NRTD) . '</a> | <a href="' . $delete . '" onclick="return confirm(\'' . __("Are you sure you wish to delete this book permanently?", NRTD) . '\')">' . __("Delete", NRTD) . '</a>
								</div>
							</td>

							<td>
								<a href="' . $nr_url->urls['manage'] . '&amp;author=' . $book->author . '">' . $book->author . '</a>
							</td>

							<td>
								<a href="' . $nr_url->urls['manage'] . '&amp;status=' . $book->status . '">' . $book->status . '</a>
							</td>

							<td>
							' . ( ( nr_empty_date($book->started) ) ? '' : date($dateTimeFormat, strtotime($book->started)) ) . '
							</td>

							<td>
							' .( ( nr_empty_date($book->finished) ) ? '' : date($dateTimeFormat, strtotime($book->finished)) ) . '
							</td>';

						if (!$options['hideAddedDate'])
						{
							echo '
							<td>
							' . ( ( nr_empty_date($book->added) ) ? '' : date($dateTimeFormat, strtotime($book->added)) ) . '
							</td>';
						}

					echo '
						</tr>
					';

					$i++;

				}

				echo '
					</tbody>
					</table>

					</form>
				';

			} else {
				echo '
				<div class="wrap">
					<h2>' . __("Manage Books", NRTD) . '</h2>
					<p>' . sprintf(__("No books to display. To add some books, head over <a href='%s'>here</a>.", NRTD), $nr_url->urls['add']) . '</p>
				</div>
				';
			}

			echo '
			</div>
			';
		}
		break;
    }
}
/**
 * Prints book reading statistics.
 * @param string $time_period The period to measure average over, eg "year", "month".
 */
function print_book_average($time_period = 'year')
{
	echo "There are ";
	total_books(0);
	echo " listed, of which ";
	books_read_since('1 year');
	echo " have been read in the last year, ";
	books_read_since('1 month');
	echo " read in the last month. That's ";
	average_books($time_period, true, false);
	echo ".";
}
Пример #7
0
    function nr_manage()
    {
        global $books;
        $options = get_option('nowReadingOptions');
        $page = intval($_GET['paged']);
        $page = $page > 0 ? $page : 1;
        $perpage = $options['booksPerPage'];
        $offset = ($page - 1) * $perpage;
        $query = "offset={$offset}";
        if (!empty($_GET['tag'])) {
            $query .= "&tag=" . $_GET['tag'];
        }
        $books = get_books($query);
        $total = total_books(0);
        $pages = ceil($total / $perpage);
        $pagination = '';
        if ($page > 1) {
            $prev = $page - 1;
            $pagination .= '<a class="previous page-numbers" href="' . get_bloginfo('wpurl') . '/wp-admin/admin.php?page=manage_books&paged=' . $prev . '">&laquo;</a>';
        }
        for ($i = 1; $i <= $pages; $i++) {
            $pagination .= "<a class='page-numbers' href='" . get_bloginfo('wpurl') . "/wp-admin/admin.php?page=manage_books&paged={$i}'>{$i}</a>";
        }
        if ($page < $pages) {
            $next = $page + 1;
            $pagination .= '<a class="next page-numbers" href="' . get_bloginfo('wpurl') . '/wp-admin/admin.php?page=manage_books&paged=' . $next . '">&raquo;</a>';
        }
        ?>
		
		<div class="wrap nr_manage">
			
			<?php 
        switch ($_GET['message']) {
            case '1':
                echo '<div class="updated fade"><p><strong>Book deleted.</strong></p></div>';
                break;
        }
        ?>
			
			<h2>Manage Books</h2>
			
			<?php 
        if (count($books)) {
            ?>
			
			<div class="tablenav">

				<div class="alignleft actions">
					<input type="text" name="search" id="search" value="Search:" class="greyed" />
				</div>
				
					<div class="tablenav-pages">
					<span class="displaying-num">Displaying <?php 
            echo $offset + 1;
            ?>
&#8211;<?php 
            echo $offset + count($books);
            ?>
 of <?php 
            echo $total;
            ?>
</span>
					
						<?php 
            echo $pagination;
            ?>
					</div>
					
				<div class="clear"></div>
			
			</div>
				
				<table class="widefat post" cellspacing="0">
					<thead>
						<tr>
							<th scope="col"></th>
							<th scope="col">Title</th>
							<th scope="col">Author</th>
							<th scope="col">Status</th>
							<th scope="col">Tags</th>
							<th scope="col"></th>
						</tr>
					</thead>
					<tbody>

				<?php 
            foreach ((array) $books as $book) {
                ?>
					
					<tr>
						<td><img src="<?php 
                echo $book->image;
                ?>
"></td>
						<td><a href="?page=edit_book&id=<?php 
                echo $book->ID;
                ?>
"><?php 
                echo $book->title;
                ?>
</a></td>
						<td><?php 
                echo $book->author;
                ?>
</td>
						<td><?php 
                echo ucwords(current_book_status($book->ID));
                ?>
</td>
						<td>
							<?php 
                foreach (get_book_tags($book->ID) as $tag) {
                    ?>
								<a href="?page=manage_books&tag=<?php 
                    echo htmlentities($tag->name);
                    ?>
">
									<?php 
                    echo $tag->name;
                    ?>
								</a>
							<?php 
                }
                ?>
						</td>
						<td>
							<form method="post" action="admin.php?page=edit_book">
								<?php 
                wp_nonce_field('nr_delete_' . $book->ID);
                ?>
								<input type="hidden" name="action" value="delete" />
								<input type="hidden" name="id" value="<?php 
                echo $book->ID;
                ?>
" />
								<input type="submit" value="Delete" class="button-secondary delete" />
							</form>
						</td>
					</tr>
					
				<?php 
            }
            ?>
				
				</table>
				
				<div class="tablenav">

					<div class="alignleft actions">
						<input type="text" name="search" id="search" value="Search:" class="greyed" />
					</div>
					
						<div class="tablenav-pages">
						<span class="displaying-num">Displaying <?php 
            echo $offset + 1;
            ?>
&#8211;<?php 
            echo $offset + count($books);
            ?>
 of <?php 
            echo $total;
            ?>
</span>
						
							<?php 
            echo $pagination;
            ?>
						</div>
						
					<div class="clear"></div>

				</div>
				
			<?php 
        } else {
            ?>
				<p>You don't have any books in your library! Head over <a href="?page=add_book">here</a> to add some.</p>
			<?php 
        }
        ?>
			
		</div>
		
		
		<?php 
    }
Пример #8
0
		<?php 
} else {
    ?>
			<p><?php 
    _e('None', HERISSONTD);
    ?>
</p>
		<?php 
}
?>

		<h3><b><u><?php 
_e('Books on Hold ', HERISSONTD);
?>
(<?php 
echo total_books('onhold', 0);
?>
):</u></b></h3>
		<?php 
if (have_books('status=onhold&orderby=desc&num=-1')) {
    ?>
			<ol>
			<?php 
    while (have_books('status=onhold&orderby=desc&num=-1')) {
        the_book();
        ?>
			<li><a href="<?php 
        book_permalink();
        ?>
"><?php 
        book_title();
Пример #9
0
			<?php while( have_books('status=unread&orderby=random&num=-1') ) : the_book(); ?>

				<li><a href="<?php book_permalink() ?>"><?php book_title() ?></a> by <a href="<?php book_author_permalink() ?>"><?php book_author() ?></a></li>

			<?php endwhile; ?>

			</ul>

		<?php else : ?>

			<p>None</p>

		<?php endif; ?>

		<h2>Finished Reading (<?php echo total_books('read', 0) ?>):</h2>

		<?php if( have_books('status=read&orderby=finished&order=desc&num=-1') ) : ?>

			<ul>

			<?php while( have_books('status=read&orderby=finished&order=desc&num=-1') ) : the_book(); ?>

				<li><a href="<?php book_permalink() ?>"><?php book_title() ?></a> by <a href="<?php book_author_permalink() ?>"><?php book_author() ?></a></li>

			<?php endwhile; ?>

			</ul>

		<?php else : ?>