Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. CodeIgniter
Code

Ang Pagination sa CodeIgniter: Ang Kumpletong Gabay

by
Difficulty:BeginnerLength:LongLanguages:

Tagalog (Wikang Tagalog) translation by Anna Nelson (you can also view the original English article)

Ang benepisyo ng paggamit ng kahit na anong full-stack na web application framework ay hindi mo na iisipin pa ang mga karaniwang mga gawain tulad ng input handling, form validation at ang mga tulad nito. Dahil ang framework ay nagbibigay na ng mga wrapper para sa mga feature na ito. At dahil dito, binibigyan ka ng panahon para mas bigyang-pansin ang business logic ng application sa halip na muling baguhin ang wheel ng paulit-ulit.

Ngayon, sisiyasatin natin ang mahalagang library sa CodeIgniter framework—ang pagination library.

Hayaan niyo akong bigyang-diin ang mga paksa na ating tatalakayin sa loob ng artikulo na ito: 

  • Ang pagpapakilala sa basic paging
  • Alamin ang mga opsyon para sa customization
  • Ang pagination configuration

Pagpapakita ng Pangunahing Paging

Sa bahaging ito, titingnan natin ang isang halimbawa na nagpapakita ng paggamit ng pagination sa CodeIgniter. Ito ang pinakamainam na paraan upang maunawaan kung paano gumagana ang lahat ng ito.

Sa ating halimbawa, tayo ay gumawa ng isang simpleng user listing na kung saan tayo ay kukuha ng mga rekord mula sa mga users MySQL table. Upang magamit nang maayos ang halimbawang ito, tiyakin na mayroon ka ng uid at uname fields sa iyong users table.

Sa ganitong anyo, maaari na tayong magsimula.

Halina’t lumikha ng controller file controllers/Paging.php na may mga sumusunod na nilalaman.

Sunod, kinakailangan natin ang isang model file models/Users.php na kumukuha ng mga rekord mula sa users table.

At ang panghuli, gumawa tayo ng view file sa views/user_listing.php that na nagpapakita ng user listing.

Ngayon, halina’t puntahan ang ating custom page sa http://your-code-igniter-site/paging/index at dapat makita mo ang user listing kasama ng pagination. Hayan, nagawa na natin! Huwag mag-alala, hindi ko kayo iiwan agad-agad dahil sisimulan na natin ang pagsusuri sa bawat bahagi ng code ngayon.

Simulan natin sa model file models/Users.php dahil ito ay makukuha natin mula sa ating mga controller method. May dalawang mahahalagang method, get_current_page_records at get_total, na ginagamit ng ating modelo upang lumikha ng mga pagination link.

Puntahan natin ang get_total method. Ito ay ginagamit upang mabilang ang mga rekord sa users table.

Sunod, may tinatawag na get_current_page_records method.

May dalawang mahahalagang argumento na dapat mong malaman sa the get_current_page_records method. Ang unang argumento, $limit, na ginagamit upang tukuyin ang bilang ng mga rekord na ibabalik sa panahon ng query run. At ang ikalawang argumento, $start, ang tumatayong starting index ng rekord.

Tulad ng iyong nakikita, makakakuha ka ng mga rekord sa pamamagitan ng page kung may value ang $start at $limit. Iyan ang kagandahan ng paging, samantala ginamit din namin ang pinakamahalagang method sa artikulong ito.

Iyan ang aming modelo—simple at elegante!

Sa pagpapatuloy, bigyan naman natin ng atensiyon ang controller file. Halina’t gamitin ang code ng constructor method.

Upang magamit ang pagination sa CodeIgniter, kailangan mo munang gawin ang pagload ng pagination library. At ito ay magagawa natin sa pamamagitan ng paggamit ng $this->load->library('pagination').

Inilagay din natin ang URL helper upang magamit natin ang mga global helper function na inilaan ng helper.

Ngayon, handa na tayong tumungo sa puso ng ating controller—ang index method.

Upang masimulan ito, kailangan nating tiyakin na ang database ay nakaload nang maayos. Pagkatapos nito, ilalagay natin ang Users model para magamit natin ang mga model method.

Pagkatapos, sisimulan natin ang ilang mga mahahalagang variable.

Ang variable $limit_per_page ang nagtatakda ng limitasyon sa bawat page. Siyempre, maaari mo din itong itakda. Para sa halimbawa natin ngayon, ito ay itinakda sa 1.

Ang $start_index variable ang naglalaman ng starting index ng MySQL record. Kapag ang CodeIgniter ay gumagawa ng mga pagination link, isinasama nito ang starting index ng page bilang ikatlong segment sa URL bilang default. Maaari mong baguhin ang default na behavior na ito, subalit ito ay nilaan namin para sa huling bahagi ng artikulong ito na kung saan ating tatalakayin ang mga opsyon sa customization.

At ang panghuli, gagamitin natin ang get_total method ng Users model upang kuhanin ang kabuuang mga rekord ng users table, at ito ay nakatalaga sa $total_records variable.

Sunod, kukunin natin ang mga rekord ng kasalukuyang page sa pamamagitan ng ang get_current_page_records method.

Bago tayo makagawa ng mga pagination link, kailangan natin simulan ang minimal paging configuration gamit ang initialize method ng paging library.

At iyan ang set ng mga minimum na parameter para makagawa ng mga pagination link.

  • base_url: Ang URL na gagamitin habang ginagawa ang mga pagination link
  • total_rows: Ang kabuuang bilang ng mga rekord
  • per_page: Ang Rekord count sa bawat page

At ang panghuli, gagamitin natin ang create_links method sa paggawa ng mga pagination link.

Ang natitira ay isang pormalidad sa pagtawag ng ating view user_listing at ang pagbibigay ng output! I-run ang URL http://your-code-igniter-site/paging/index upang makita ang user listing kasama ng mga pagination link.

Iyon ang pinakasimple ngunit kapaki-pakinabang na halimbawa ng pagination na maaaring mong gamitin upang ito ay maging angkop sa nais mo.

Sa susunod na bahagi, tatalakayin natin kung paano i-customize ang default pagination sa paggamit ng appearance at functionality.

Alamin ang mga opsyon para sa customization

Sa bahaging ito, malalaman mo ang mga opsyon na maaari mong gamitin kung nais mong i-customize ang mga default pagination link.

Ang URI Segment

Kahit na ang CodeIgniter paging library ay awtomatikong nalalaman ang mga paging-related parameter mula sa URL, maaari mo din namang tukuyin ang custom value kung mayroon kang iba’t-ibang URL pattern.

Ang bilang ng mga digit links

Ang num_links na opsyon ay nagbibigay ng pahintulot sa iyo na tukuyin ang bilang ng digit links na makikita bago at pagkatapos ng active page number sa mga pagination link.

Ang Page Number bilang URI Segment

Kapag pumunta ka sa paging URI segment, iyon ang starting index bilang default nito. Halimbawa, kung may sampu kang rekord sa bawat page, ang paging URI segment ay 20 para sa ikatlong page. Sa halip, kung nais mong ipakita ang aktwal na mga page number sa mga paging link, maaari mong gawing set use_page_numbers sa TRUE.

Siyempre, dapat tiyaking nakalkula nang maayos ang starting index base sa page number na nakuha mula sa URL.

Ang Preserve Query String

Kadalasan, ikaw ay napupunta sa sitwasyon na nais mong panatilihin ang mga query string parameter na walang kaugnayan sa pagination. Maaari mong gamitin ang reuse_query_string na opsyon para magamit ito.

Ito ang ilan sa mga opsyon na maaari mong gamitin upang mabago ang default pagination functionality. Pagkatapos, titingnan natin ang iba pang mga opsyon na magpapahintulot sa iyong baguhin ang paraan kung paano ipinapakita ang mga pagination link.

Ang Wrapper Tag

Kung nais mong i-wrap ang pagination code gamit ang iba pang HTML tag, maaari mo itong gawin sa pamamagitan ng paggamit ng full_tag_open at full_tag_close na mga opsyon.

Ito ay magiging kapaki-pakinabang kung nais mong gumamit ng custom styling sa mga pagination link.

Ang First, Last, Next, at Previous

Kung nais mong baguhin ang text na ipapakita para sa first, last, next at mga previous link, maaari mo din itong gawin.

At kung nais mo din na i-wrap ang mga indibidwal na link gamit ang kahit na anong HTML tag, maaari mo din itong gawin tulad kung paano mo nilagyan ng wrap ang buong paging code.

Ang Active Link at Number Link

Minsan, nanaisin mong bigyan ng ibang estilo ang aktibong link. Maaari mong gawin ito sa pamamagitan ng paglagay ng mga wrapper tag tulad ng makikita sa ibaba.

At sa parehas na paraan, maaari mo din i-wrap ang  mga digit link na tulad ng:

At dito nagtatapos ang kwento ng customization. Sa katunayan, maaari mong tingnan ang mga halimbawa ng customization sa http://your-code-igniter-site/paging/custom na kasama na din sa ating controller file!

Ang pagination configuration

Ngayon alam mo na ang configuration na kinakailangan upang maset-up ang isang disenteng pagination gamit ang kahit na anong model listing. At kadalasan, mas nanaisin mo na panatilihin ang ganitong ayos sa buong site. Ano ang dapat mong gawin para magawa ito? Ikaw ay maaaring matuksong gayahin ang configuration code at i-paste ito sa bawat action na nangangailangan ng pagination configuration.

Sa katunayan, may mas mainam na paraan kung paano harapin ang ganitong sitwasyon. Maaari kang gumawa ng paging configuration file atapplication/config/pagination.php at gamitin ang $config variable para tukuyin ang iyong mga setting.

Batay sa nabanggit, ganito dapat makikita ang index action method:

Siyempre, ang total_rows at base_url na mga variable ay nagbabago sa bawat aksyon na iyong gagawin, kaya nararapat lamang na i-set ito nang maayos.

Para magawa ito, sa una pa lang kailangan mo ng i-load ang pagination configuration.

Pagkatapos, i-override ang mga action specific setting.

At ikaw ay natapos din!

At iyan ang kwento ng pagination configuration, at dito din nagtatapos ang artikulong ito!

Ang Konklusyon

Ngayon, tinalakay natin ang pagination library sa CodeIgniter.

Sa unang bahagi ng arikulong ito, ipinakita ko sa inyo kung paano gamitin ang pagination library sa pamamagitan ng paggamit ng simple ngunit kapaki-pakinabang na halimbawa.

Sumunod dito, tinalakay din natin ang mga opsyon para sa customization na maaari mong gamitin habang inaayos ang pagination.

At sa huling bahagi, pinag-usapan natin ang pagination configuration.

Ang CodeIgniter ay isang makapangyarihang PHP platform. Kung ikaw man ay nagsisimula pa lamang o nagsisimula ng bagong bersiyon, huwag kalimutang i-tsek kung ano pa ang maaari mong gamitin.

Nais kong malaman ang inyong mga katugunan sa pamamagitan ng mga tanong at mga komento gamit ang feed sa ibaba!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.