2012-06-08, 08:04
رقم المشاركة : 1
معلومات
العضو
إحصائية
العضو
دالة pagination و كيفية إستخدامها
بسم الله الرحمان الرحيم
إن برمجة أي سكريبت طبعا لا تكون بدون دالة
الباجينيشن
ماهي الباجينيشن ؟
الباجينيشن مجموعة من الدوال التي تسمح بعمل تعدد في الصفحات حسب إرادتك
وهي مهمة لتقسيم محتويات الأقسام و التعليقات
الكود:
كود PHP:
function pagination ( $tablename , $querywhere , $perpage , $page , $urlpage , $adjacent , $prevtext = "«" , $nexttext = "»" , $endcomd = "" ) { global $str ; if( $str == 1 ){ $pagestr = 'pages' ; }else{ $pagestr = 'page' ; } $lastpage = @ ceil ( mysql_num_rows ( mysql_query ( "SELECT * FROM " . $tablename . " " . $querywhere . "" )) / $perpage ); $prev = $page - 1 ; //previous page is page - 1 $next = $page + 1 ; //next page is page + 1 $lpm1 = $lastpage - 1 ; //last page minus 1 $adjacents = $adjacent ; // How many adjacent pages should be shown on each side? if( $lastpage > 1 ) { $pagination = '<div class="pagination">' ; if ( $page > 1 ){ $pagination .= '<a title="Prev" href="' . $urlpage . '' . $pagestr . '=' . $prev . '' . $endcomd . '">' . $prevtext . '</a>' ; }else{ $pagination .= '<span class="disabled">' . $prevtext . '</span>' ; } if ( $lastpage < 7 + ( $adjacents * 2 )){ /* Start Loop 1 */ for ( $counter = 1 ; $counter <= $lastpage ; $counter ++) { if ( $counter == $page ){ $pagination .= '<span class="current">' . $counter . '</span>' ; }else{ $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $counter . '' . $endcomd . '">' . $counter . '</a>' ; } } /* End Loop 1 */ }elseif( $lastpage > 5 + ( $adjacents * 2 )){ if( $page < 1 + ( $adjacents * 2 )){ /* Start Loop 2 */ for ( $counter = 1 ; $counter < 4 + ( $adjacents * 2 ); $counter ++) { if ( $counter == $page ){ $pagination .= '<span class="current">' . $counter . '</span>' ; }else{ $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $counter . '' . $endcomd . '">' . $counter . '</a>' ; } } /* End Loop 2 */ $pagination .= '...' ; $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $lpm1 . '' . $endcomd . '">' . $lpm1 . '</a>' ; $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $lastpage . '' . $endcomd . '">' . $lastpage . '</a>' ; }elseif( $lastpage - ( $adjacents * 2 ) > $page && $page > ( $adjacents * 2 )){ $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=1' . $endcomd . '">1</a>' ; $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=2' . $endcomd . '">2</a>' ; $pagination .= '...' ; /* Start Loop 3 */ for ( $counter = $page - $adjacents ; $counter <= $page + $adjacents ; $counter ++){ if ( $counter == $page ){ $pagination .= '<span class="current">' . $counter . '</span>' ; }else{ $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $counter . '' . $endcomd . '">' . $counter . '</a>' ; } } /* End Loop 3 */ $pagination .= '...' ; $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $lpm1 . '' . $endcomd . '">' . $lpm1 . '</a>' ; $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $lastpage . '' . $endcomd . '">' . $lastpage . '</a>' ; }else{ $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=1' . $endcomd . '">1</a>' ; $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=2' . $endcomd . '">2</a>' ; $pagination .= '...' ; /* End Loop 4 */ for ( $counter = $lastpage - ( 2 + ( $adjacents * 2 )); $counter <= $lastpage ; $counter ++){ if ( $counter == $page ){ $pagination .= '<span class="current">' . $counter . '</span>' ; }else{ $pagination .= '<a href="' . $urlpage . '' . $pagestr . '=' . $counter . '' . $endcomd . '">' . $counter . '</a>' ; } } /* End Loop 4 */ } } //next button if ( $page < $counter - 1 ){ $pagination .= '<a title="Next" href="' . $urlpage . '' . $pagestr . '=' . $next . '' . $endcomd . '">' . $nexttext . '</a>' ; }else{ $pagination .= '<span class="disabled">' . $nexttext . '</span>' ; } $pagination .= '</div>' ; } return $pagination ; }
كيفية الإستغلال
أولا أعلى الصفحة التي تود ظهور صفحات فيها
كود PHP:
$page = (int) (!isset( $_GET [ "page" ]) ? 1 : $_GET [ "page" ]); $page = ( $page == 0 ? 1 : $page ); $perpage = 10 ; $startpoint = ( $page * $perpage ) - $perpage ;
الشرح:
$perpage هو الخاص بعدد المواضيع المراد عرضها في الصفحة الواحدة.
كيفية الإستدعاء
كود PHP:
pagination ( "الجدول في قاعدة " , "الشرط الذي تريده مثلا الإيدي " , $perpage , $page , "الملف الذي فيه التعدد" , 5 );
مثال:
كود PHP:
pagination ( "file" , "where cat=' $id ' and active='1'" , $perpage , $page , "index.php?s=cat&id=" . $id . "&" , 5 );
ملاحظة الدالة هي function
و السلام عليكم