Revision: 22316
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 8, 2010 19:08 by aristoworks
Initial Code
function paraPag($data) {
$chars = "<p> </p>"; // CHARACTERS TO REMOVE FROM LEFT AND RIGHT OF ORIGINAL TEXT
$text = trim($data, $chars);
$delimiter = "<br /><br />"; // COULD BE <BR><BR>, \n\r,
OR ANYTHING THAT APPEARS BETWEEN YOUR PARAGRAPHS
$paragraphs = explode($delimiter, $text);
$count = count($paragraphs); // GET THE COUNT OF PARAGRAPHS
$num_page = 10; // THE NUMBER OF PARAGRAPHS YOU WANT DISPLAYED ON EACH PAGE
$pages = ceil($count / $num_page); // GET THE NUMBER OF PAGES TOTAL
$output = ''; // INITIATE THE VARIABLE
// SET THE PAGE NUMBER
if(isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
$start = ($page * $num_page) - $num_page;
$end = ($page * $num_page) - 1;
// PRINT THE PAGE CONTENTS
for($i=$start; $i<=$end; $i++) {
if($i< $count) {
$output .= "<p>".$paragraphs[$i]."</p>\n";
}
}
// PRINT OUT THE PAGE NUMBERS
for($i=1; $i<=$pages; $i++) {
if($i == $page) {
$class = "class=\"activePage\"";
} else {
$class = 'class="page"';
}
$output .= "<a $class href=\"?page=$i\">$i</a> ";
}
return $output;
}
Initial URL
http://www.aristoworks.com
Initial Description
I wrote this really quick and dirty script to paginate a very large chunk of text. A client site was setup with the understanding their about page would consist of 5-6 paragraphs but their biography ended up being 60 paragraphs. At the end of the day instead of breaking segments out into separate pages as stored in the database I kept it intact (including the way they edit it in the CMS) but this simple function paginates it only showing a certain number of paragraphs at a time. Please email code -at- aristoworks.com if you need some clarification on how to use this.
Initial Title
Paginate Paragraphs - Show Certain Number Of Paragraphs Per Page
Initial Tags
mysql, php, text
Initial Language
PHP