• 3.1.9
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

Pagination Class لینک‌های صفحه‌بندی نتایج را تولید می‌کند. این کلاس برای فهرست محصول، مقاله یا سفارش کاربرد دارد و امکان تعیین تعداد کل رکوردها، تعداد رکورد هر صفحه، بخش URL، قالب لینک‌ها و Query String را فراهم می‌کند.

ساختار و API اصلی

پس از تعیین base_url، total_rows و per_page، تنظیمات را با initialize() اعمال کنید و خروجی create_links() را در View نمایش دهید. مقدار Offset یا Segment باید با Route برنامه هماهنگ باشد. برای تعداد زیاد داده، Query دیتابیس باید LIMIT و OFFSET یا روش صفحه‌بندی مناسب را اعمال کند.

نمونه استفاده

 $config['base_url'] = site_url('products/index');
 $config['total_rows'] = $this->Product_model->count_all();
 $config['per_page'] = 20;
 $config['uri_segment'] = 3;
 $this->load->library('pagination');
 $this->pagination->initialize($config);
 $links = $this->pagination->create_links();

نکته مهم

در صفحات عمیق و دیتابیس‌های بزرگ، OFFSETهای بسیار بالا ممکن است کند شوند. برای فهرست‌های پرترافیک، Keyset Pagination را نیز ارزیابی کنید.

مطالعه مرتبط

برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.

تنظیمات Pagination

متد یا مفهومکاربرد
base_urlURL پایه صفحه‌بندی.
total_rowsتعداد کل رکوردها.
per_pageتعداد ردیف در هر صفحه.
uri_segmentشماره Segment حاوی شماره صفحه.
use_page_numbersاستفاده از شماره صفحه به‌جای Offset.
full_tag_open و full_tag_closeقالب کلی لینک‌ها.
create_links()تولید HTML لینک‌های صفحه‌بندی.

نحوه استفاده و عیب‌یابی

در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.

در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایل‌های موقت را پس از پایان عملیات آزاد کنید.

در بازبینی کد، ترتیب و نتیجه متدهای base_url، total_rows، per_page، uri_segment را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

سایر پست های داکیومنت