1.11M Members

Paging

 
0
 

page-news.php

<?PHP
/*--------------------------------------------------------------------------------------
@Desc       :   Simple and Cool Paging with PHP
@author     :   SachinKRaj - http://blog.sachinkraj.com
@updates    :   http://blog.sachinkraj.com/how-to-create-simple-paging-with-php-cs/
@Comments   :   If you like my work, please drop me a comment on the above post link. 
                Thanks!
---------------------------------------------------------------------------------------*/
    function check_integer($which) {
        if(isset($_REQUEST[$which])){
            if (intval($_REQUEST[$which])>0) {
                //check the paging variable was set or not, 
                //if yes then return its number:
                //for example: ?page=5, then it will return 5 (integer)
                return intval($_REQUEST[$which]);
            } else {
                return false;
            }
        }
        return false;
    }//end of check_integer()

    function get_current_page() {
        if(($var=check_integer('page'))) {
            //return value of 'page', in support to above method
            return $var;
        } else {
            //return 1, if it wasnt set before, page=1
            return 1;
        }
    }//end of method get_current_page()

    function doPages($page_size, $thepage, $query_string, $total=0) {
        
        //per page count
        $index_limit = 10;

        //set the query string to blank, then later attach it with $query_string
        $query='';
        
        if(strlen($query_string)>0){
            $query = "&amp;".$query_string;
        }
        
        //get the current page number example: 3, 4 etc: see above method description
        $current = get_current_page();
        
        $total_pages=ceil($total/$page_size);
        $start=max($current-intval($index_limit/2), 1);
        $end=$start+$index_limit-1;

        echo '<br /><br /><div class="paging">';

		// Previous <<
        if($current==1) {
            echo '<span class="prn">&lt; < </span>&nbsp;';
        } else {
            $i = $current-1;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" class="prn" rel="nofollow" title="go to page '.$i.'">&lt; < </a>&nbsp;';
            echo '<span class="prn">...</span>&nbsp;';
        }

        if($start > 1) {
            $i = 1;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
        }

        for ($i = $start; $i <= $end && $i <= $total_pages; $i++){
            if($i==$current) {
                echo '<span>'.$i.'</span>&nbsp;';
            } else {
                echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
            }
        }

        if($total_pages > $end){
            $i = $total_pages;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
        }

		// Next >>
        if($current < $total_pages) {
            $i = $current+1;
            echo '<span class="prn">...</span>&nbsp;';
            echo '<a href="'.$thepage.'?page='.$i.$query.'" class="prn" rel="nofollow" title="go to page '.$i.'"> > &gt;</a>&nbsp;';
		// Next	>>	
        } else {
            echo '<span class="prn"> > &gt;</span>&nbsp;';
        }
        
        //if nothing passed to method or zero, then dont print result, else print the total count below:
        if ($total != 0){
            //prints the total result count just below the paging
            echo '<p id="total_count">(total '.$total.' results)</p></div>';
        }
        
    }//end of method doPages()
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>How to create simple cool paging with PHP and CSS</title>
</head>
<style type="text/css">
/*---Lets style paging to make it look more cool--*/
     
     /*--example specific styling: you dont need it really in your script, it is just to make this example look good---*/
        body { font-family: Helvetica, arial, sans-serif; font-size:13px; font-weight: normal;}
        
     /*---Paging specific styling----*/     
        .paging { padding:10px 0px 0px 0px; text-align:center; font-size:13px;}
        .paging.display{text-align:right;}
        .paging a, .paging span {padding:2px 8px 2px 8px; font-weight :normal}
        .paging span {font-weight:bold; color:#000; font-size:13px; }
        .paging a, .paging a:visited {color:#000; text-decoration:none; border:1px solid #dddddd;}
        .paging a:hover { text-decoration:none; background-color:#6C6C6C; color:#fff; border-color:#000;}
        .paging span.prn { font-size:13px; font-weight:normal; color:#aaa; }
        .paging a.prn, .paging a.prn:visited { border:2px solid #dddddd;}
        .paging a.prn:hover { border-color:#000;}
        .paging p#total_count{color:#aaa; font-size:12px; font-weight: normal; padding-top:8px; padding-left:18px;}
        .paging p#total_display{color:#aaa; font-size:12px; padding-top:10px;}
</style>


<?php get_header(); ?>


<div id="body">
<div id="content">
	<div id="main">
	<h4>LOREM IPSUM - <font color="red"><?php the_time('d'); ?>&nbsp<?php the_time('M'); ?>&nbsp<?php the_time('Y'); ?></font></h4>
 		<div class="post">

        
	<?php if (have_posts()) : ?>
		<?php while (have_posts()) : the_post(); ?>
        
        <p style="border-bottom: 2px dotted #FF0000; width: 900px;"></p><br />			
                      
            <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/pic1.png" ALT="picture1" ALIGN=LEFT><div id="ptitle"><?php the_title(); ?><font color="black"> - <?php the_time('d'); ?>&nbsp<?php the_time('M'); ?>&nbsp<?php the_time('Y'); ?></font></div>
            
            <p><?php the_content(''); ?>
         
         
        <?PHP
        //This is the actual usage of function, It prints the paging links 
		// deleted: category=sports
		
        doPages(15, 'page-news.php', '', 85); 
        ?>
      	
     <?php endwhile; ?>
        
<?php endif; ?>
       
  
    </div>
   </div>



<?php get_sidebar(); ?>
 
 </div>
</div>

<?php get_footer(); ?>

Hi, I am using a freeware paging and customizing according to my needs. Can anyone help me in setting the next page ?

http://ocklaw.com/new/news/

If you press [2], the next page, it will carries you to

http://ocklaw.com/new/news/page-news.php?page=2

How am I suppose to set the next page ? How ?

At this point, I am confuse where is the next page come from ?

 
0
 

It looks like you're using WordPress. If so, can you not just use the built in pagination functionality?

<?php global $wp_query; ?>
<?php if($wp_query->max_num_pages > 1): ?>
    <footer>
        <p class="pagination">
            Pages:
	    <?php
	        $big = 999999999; // need an unlikely integer
		$pagination = paginate_links(array(
		    'base' => str_replace($big, '%#%', get_pagenum_link($big)),
                    'format' => '?paged=%#%',
		    'current' => max(1, get_query_var('paged')),
		    'total' => $wp_query->max_num_pages,
		    'end_size' => 3,
		    'mid_size' => 5,
		    'type' => 'array',
		));
			
		echo implode('|', $pagination);
    	    ?>
	</p>
    </footer>
<?php endif; ?>
 
0
 

I copy paste the and thought that the pagination would come automatically. It doesn't now, the page turn into chaoz after entering the codes. Why is it? What else should I set up ?

 
0
 

Well, if anyone can help me answering my first post or replying the second alternative solution ?

 
0
 

Well it largely depends how you're finding the content you want to paginate. Are you using WP_Query?

And it's probably turned the page into chaoz because the content isn't styled.

Can you post the where you're retrieving the items you want to paginate and provide more information?

 
0
 

http://ocklaw.com/new/news/

Well, the part that's turn into chaos is still in localhost. Yet, that's the link before I add the wordpress pagination.

I add the wordpress pagination just next to my original pagination.

I think you can browse my codes and suggest me where should I place the wordpress pagination or what else should I add to the style css.

 
0
 

I cannot see server side code in a web browser.

 
0
 

page-news.php

<?PHP
/*--------------------------------------------------------------------------------------
@Desc       :   Simple and Cool Paging with PHP
@author     :   SachinKRaj - http://blog.sachinkraj.com
@updates    :   http://blog.sachinkraj.com/how-to-create-simple-paging-with-php-cs/
@Comments   :   If you like my work, please drop me a comment on the above post link. 
                Thanks!
---------------------------------------------------------------------------------------*/
    function check_integer($which) {
        if(isset($_REQUEST[$which])){
            if (intval($_REQUEST[$which])>0) {
                //check the paging variable was set or not, 
                //if yes then return its number:
                //for example: ?page=5, then it will return 5 (integer)
                return intval($_REQUEST[$which]);
            } else {
                return false;
            }
        }
        return false;
    }//end of check_integer()

    function get_current_page() {
        if(($var=check_integer('page'))) {
            //return value of 'page', in support to above method
            return $var;
        } else {
            //return 1, if it wasnt set before, page=1
            return 1;
        }
    }//end of method get_current_page()

    function doPages($page_size, $thepage, $query_string, $total=0) {
        
        //per page count
        $index_limit = 10;

        //set the query string to blank, then later attach it with $query_string
        $query='';
        
        if(strlen($query_string)>0){
            $query = "&amp;".$query_string;
        }
        
        //get the current page number example: 3, 4 etc: see above method description
        $current = get_current_page();
        
        $total_pages=ceil($total/$page_size);
        $start=max($current-intval($index_limit/2), 1);
        $end=$start+$index_limit-1;

        echo '<br /><br /><div class="paging">';

		// Previous <<
        if($current==1) {
            echo '<span class="prn">&lt; < </span>&nbsp;';
        } else {
            $i = $current-1;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" class="prn" rel="nofollow" title="go to page '.$i.'">&lt; < </a>&nbsp;';
            echo '<span class="prn">...</span>&nbsp;';
        }

        if($start > 1) {
            $i = 1;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
        }

        for ($i = $start; $i <= $end && $i <= $total_pages; $i++){
            if($i==$current) {
                echo '<span>'.$i.'</span>&nbsp;';
            } else {
                echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
            }
        }

        if($total_pages > $end){
            $i = $total_pages;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
        }

		// Next >>
        if($current < $total_pages) {
            $i = $current+1;
            echo '<span class="prn">...</span>&nbsp;';
            echo '<a href="'.$thepage.'?page='.$i.$query.'" class="prn" rel="nofollow" title="go to page '.$i.'"> > &gt;</a>&nbsp;';
		// Next	>>	
        } else {
            echo '<span class="prn"> > &gt;</span>&nbsp;';
        }
        
        //if nothing passed to method or zero, then dont print result, else print the total count below:
        if ($total != 0){
            //prints the total result count just below the paging
            echo '<p id="total_count">(total '.$total.' results)</p></div>';
        }
        
    }//end of method doPages()
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>How to create simple cool paging with PHP and CSS</title>
</head>
<style type="text/css">
/*---Lets style paging to make it look more cool--*/
     
     /*--example specific styling: you dont need it really in your script, it is just to make this example look good---*/
        body { font-family: Helvetica, arial, sans-serif; font-size:13px; font-weight: normal;}
        
     /*---Paging specific styling----*/     
        .paging { padding:10px 0px 0px 0px; text-align:center; font-size:13px;}
        .paging.display{text-align:right;}
        .paging a, .paging span {padding:2px 8px 2px 8px; font-weight :normal}
        .paging span {font-weight:bold; color:#000; font-size:13px; }
        .paging a, .paging a:visited {color:#000; text-decoration:none; border:1px solid #dddddd;}
        .paging a:hover { text-decoration:none; background-color:#6C6C6C; color:#fff; border-color:#000;}
        .paging span.prn { font-size:13px; font-weight:normal; color:#aaa; }
        .paging a.prn, .paging a.prn:visited { border:2px solid #dddddd;}
        .paging a.prn:hover { border-color:#000;}
        .paging p#total_count{color:#aaa; font-size:12px; font-weight: normal; padding-top:8px; padding-left:18px;}
        .paging p#total_display{color:#aaa; font-size:12px; padding-top:10px;}
</style>


<?php get_header(); ?>


<div id="body">
<div id="content">
	<div id="main">
	<h4>LOREM IPSUM - <font color="red"><?php the_time('d'); ?>&nbsp<?php the_time('M'); ?>&nbsp<?php the_time('Y'); ?></font></h4>
 		<div class="post">

    <?php query_posts('posts_per_page=5'); ?>
        
	<?php if (have_posts()) : ?>
		<?php while (have_posts()) : the_post(); ?>
        
        <p style="border-bottom: 2px dotted #FF0000; width: 900px;"></p><br />			
                      
            <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/pic1.png" ALT="picture1" ALIGN=LEFT><div id="ptitle"><?php the_title(); ?><font color="black"> - <?php the_time('d'); ?>&nbsp<?php the_time('M'); ?>&nbsp<?php the_time('Y'); ?></font></div>
            
            <p><?php the_content(''); ?>
         
                    	
     <?php endwhile; ?>
        
      <?PHP
       //This is the actual usage of function, It prints the paging links 
	   //deleted: category=sports
		
       doPages(15, 'page-news.php', '', 85); 
      ?>  
        
        
 
	</p>
    </footer>
    
    
<?php endif; ?>  
        
<?php // endif; ?>
       
  
    </div>
   </div>


<?php
/*
global $wp_query;

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
	'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
	'format' => '?paged=%#%',
	'current' => max( 1, get_query_var('paged') ),
	'total' => $wp_query->max_num_pages
) );
*/
?>

<?php get_sidebar(); ?>
 
 </div>
 
0
 

Try replacing line 136 with:

$page = max(1, get_query_var('page'));
query_posts("posts_per_page=5&paged={$page}");
 
0
 

sorry, *help

 
0
 

Try replacing line 136 with:

$page = max(1, get_query_var('page'));
query_posts("posts_per_page=5&paged={$page}");

Thanks. It works. but could you explain what each code means ?

 
0
 

I'm glad it solved your problem. Please mark the thread as solved.

And here's a very simple explanation:

// Select maximum value - 1 or the current page
$page = max(1, get_query_var('page'));
// Create a new WP_Query and pass the current page value as an argument
query_posts("posts_per_page=5&paged={$page}");
You
This article has been dead for over six months: Start a new discussion instead
Post:
Start New Discussion
View similar articles that have also been tagged: