- پنجشنبه 30 مهر 1405 ساعت 07:00
- 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_url | URL پایه صفحهبندی. |
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 را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.