Пример #1
0
function paginate_stories()
{
    global $connection;
    $table = "stories";
    $rows = "title, id";
    $sql = "SELECT COUNT(*) FROM " . $table;
    $result = mysql_query($sql, $connection) or trigger_error("SQL", E_USER_ERROR);
    $r = mysql_fetch_row($result);
    $numrows = $r[0];
    // number of rows to show per page
    $rowsperpage = 5;
    // find out total pages
    $totalpages = ceil($numrows / $rowsperpage);
    // get the current page or set a default
    if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
        // cast var as int
        $currentpage = (int) $_GET['currentpage'];
    } else {
        // default page num
        $currentpage = 1;
    }
    // end if
    // if current page is greater than total pages...
    if ($currentpage > $totalpages) {
        // set current page to last page
        $currentpage = $totalpages;
    }
    // end if
    // if current page is less than first page...
    if ($currentpage < 1) {
        // set current page to first page
        $currentpage = 1;
    }
    // end if
    // the offset of the list, based on current page
    $offset = ($currentpage - 1) * $rowsperpage;
    // get the info from the db
    $sql = "SELECT " . $rows . " FROM " . $table . " LIMIT {$offset}, {$rowsperpage}";
    $result = mysql_query($sql, $connection) or trigger_error("SQL", E_USER_ERROR);
    // create the nice html to render
    $output = "<ul class=\"story-list\">";
    // while there are rows to be fetched...
    while ($story = mysql_fetch_assoc($result)) {
        $total = get_story_children_n($story['id']);
        // echo data
        $output .= "<li><a href=\"start_new_story.php?story={$story['id']}\">{$story['title']}</a> \n\t\t\t\t\t<span class='secondary'>{$total} chapters</span></li>";
    }
    // end while
    $output .= "</ul>";
    // close the list
    echo $output;
    echo '<a href="new_story.php" class="button new-story">Create a story</a>';
    /******  build the pagination links ******/
    // range of num links to show
    $range = 3;
    // if not on page 1, don't show back links
    if ($currentpage > 1) {
        // show << link to go back to page 1
        echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
        // get previous page num
        $prevpage = $currentpage - 1;
        // show < link to go back to 1 page
        echo " <a href='{$_SERVER['PHP_SELF']}?currentpage={$prevpage}'><</a> ";
    }
    // end if
    // loop to show links to range of pages around current page
    for ($x = $currentpage - $range; $x < $currentpage + $range + 1; $x++) {
        // if it's a valid page number...
        if ($x > 0 && $x <= $totalpages && $totalpages > 1) {
            // if we're on current page...
            if ($x == $currentpage) {
                // 'highlight' it but don't make a link
                echo " [<b>{$x}</b>] ";
                // if not current page...
            } else {
                // make it a link
                echo " <a href='{$_SERVER['PHP_SELF']}?currentpage={$x}'>{$x}</a> ";
            }
            // end else
        }
        // end if
    }
    // end for
    // if not on last page, show forward and last page links
    if ($currentpage != $totalpages) {
        // get next page
        $nextpage = $currentpage + 1;
        // echo forward link for next page
        echo " <a href='{$_SERVER['PHP_SELF']}?currentpage={$nextpage}'>></a> ";
        // echo forward link for lastpage
        echo " <a href='{$_SERVER['PHP_SELF']}?currentpage={$totalpages}'>>></a> ";
    }
    // end if
    /****** end build pagination links ******/
}
Пример #2
0
		<h2 class='page-title'>Your Stories</h2>
		<?php 
$message = "";
global $connection;
$pager = new Pager($connection, "user-stories");
$result = $pager->getResult();
?>

				<ul class="story-list">	
				<?php 
//	Loop through stories to create a list
while ($story = mysql_fetch_array($result)) {
    $chapter_id = get_first_chapter($story['id']);
    // Get the specific chapter
    // Find how many chapters are in a story. This is just for fun -- to show how long or full a given story is.
    $total = get_story_children_n($story['id']);
    ?>
					<li class="my-story">
					  <a href="start_new_story.php?story=<?php 
    echo $story['id'];
    ?>
&chapter=<?php 
    echo $chapter_id;
    ?>
" 
										class="title"><?php 
    print $story['title'];
    ?>
</a> <span class='secondary'><?php 
    print $total;
    ?>