Select your language
In order to add custom pagination in Joomla.
Here is pagination code snippet:
<?php /* CUSTOM pagination by abdulwaheed.pk *****************************************/ $itemid=JRequest::getVar('Itemid',0,'INT'); $start=JRequest::getUInt('start', 0); $limit=JRequest::getUInt('limit', 0); $view=JRequest::getVar('view','properties','STRING'); $task='filter'; $searchword=JRequest::getVar('searchword','','STRING'); $prstatus=JRequest::getVar('prstatus','','STRING'); $category_select=JRequest::getVar('category_select','','STRING'); $location_lv1=JRequest::getVar('jform[location_lv1]','','STRING'); $location_lv2=JRequest::getVar('location_lv2','','STRING'); $location_lv3=JRequest::getVar('location_lv3','','STRING'); $location_lv4=JRequest::getVar('location_lv4','','STRING'); $extraid=JRequest::getVar('extraid',array(''),'ARRAY'); $extraselect=JRequest::getVar('extraselect',array(''),'ARRAY'); $option="com_bt_property"; $view="properties"; $link_= "index.php?".urlencode("task=$task&option=$option&view=$view&searchword=$searchword&prstatus=$prstatus&category_select=$category_select&jform[location_lv1]=$location_lv1&jform[location_lv2]=$location_lv2&jform[location_lv3]=$location_lv3&location_lv4=$location_lv4&extraid[47]=$extraid[47]&extraselect[47]=$extraselect[47]&extraid[20]=$extraid[20]&extraselect[20]=$extraselect[20]&extraid[31]=$extraid[31]&extraselect[31]=$extraselect[31]&extraid[24]=$extraid[24]&extraselect[24]=$extraselect[24]&extraid[42]=$extraid[42]&extraselect[42]=$extraselect[42]&extraid[43]=$extraid[43]&extraselect[43]=$extraselect[43]&method=AND"); $link_=$_SERVER['REQUEST_URI']; $total=$this->pagination->total-1; $pagesTotal=$this->pagination->pagesTotal; $pagesCurrent=$this->pagination->pagesCurrent; $startpage=0; $prevpage=$this->pagination->limitstart-$this->pagination->limit; $nextpage=$this->pagination->limit+$this->pagination->limitstart; $endpage_= round($total / $this->pagination->limit); $endpage=$endpage_*$this->pagination->limit; $disabled_1=($this->pagination->limitstart==0)? ' class="disabled" ': ""; $disabled_4=($pagesCurrent==$pagesTotal)? ' class="disabled" ': ""; echo ' <div class="pagination pagination-toolbar clearfix"> <nav class="custom_nav_abdul" role="navigation" aria-label="Pagination"> <ul class="pagination-list"> <li '.$disabled_1.'> <a aria-label="Go to start page" class="hasTooltip" title="" href="'.$link_.'&start='.$startpage.'&Itemid='.$itemid.'" data-original-title="Start (Page 1 of '.$startpage.')"><i class="fa fa-backward"></i> </a> </li> <li '.$disabled_1.'> <a aria-label="Go to previous page" class="hasTooltip" title="" href="'.$link_.'&start='.$prevpage.'&Itemid='.$itemid.'" data-original-title="Previous"> <span style="font-weight:bold;"> < </span> </a> </li>'; if(isset($this->pagination->getPaginationPages()['pages'])&&count($this->pagination->getPaginationPages()['pages'])>0) { foreach($this->pagination->getPaginationPages()['pages'] as $arr) { $disabled_2=($arr['data']->active==1&&$arr['data']->text==1)? ' class="disabled" ': ""; if($arr['data']->active) { $link="javascript:void(0);"; $disabled_3=' class="disabled" '; } else { $link=$link_."&start=".$arr['data']->base.'&Itemid='.$itemid; $disabled_3=""; } echo '<li '.$disabled_2.'> <a href="'.$link.'" '.$disabled_3.'>'. $arr['data']->text .'</a></li>'; } } echo '<li '.$disabled_4.'> <a aria-label="Go to next page" class="hasTooltip" title="" href="'.$link_.'&start='.$nextpage.'&Itemid='.$itemid.'" data-original-title="Next"> <span style="font-weight:bold;"> > </span> </a> </li> <li '.$disabled_4.'> <a aria-label="Go to end page" class="hasTooltip" title="" href="'.$link_.'&start='.$endpage.'" data-original-title="End (Page '.$endpage.' of '.$endpage.')"> <i class="fa fa-forward"></i> </a> </li> </ul> </nav> </div>'; ?> <style> .pagination a { text-decoration:none !important; } .pagination li { display: inline; padding: 7px 5px; } .pagination li a, .pagination li span { border: 1px solid #eee; margin: 0 !important; background: rgb(236, 240, 158); } /* DISABLED ***********/ li.disabled, li.disabled a, a.disabled { opacity:1 !important; } li.disabled a, li.disabled span, a.disabled { background: #eee !important; color: grey !important; border: 1px solid #eee !important; } /* TABLET */ @media(max-width: 768px){ } /* MOBILE */ @media (max-width:569px) { .custom_nav_abdul { overflow: scroll; width: 350px; height: 44px; } } </style>
Note: beware of 'start' variable , it can be named limitstart or start. So don't forget to check into module/controller code of your component where pagination is applied.
Hope this helped.
Still need help! no problem, feel free to contact us Today
Abdul Waheed : (Hire Joomla & PHP Pakistani Freelancer)