/    Sign up×
Community /Pin to ProfileBookmark

MyBB AJAX Pagination

Hi,

I need to write an AJAX Pagination for MyBB (forum software)

Here is the pagination function

[code=php]/**
* Generate a listing of page – pagination
*
* @param int The number of items
* @param int The number of items to be shown per page
* @param int The current page number
* @param string The URL to have page numbers tacked on to (If {page} is specified, the value will be replaced with the page #)
* @return string The generated pagination
*/
function multipage($count, $perpage, $page, $url, $breadcrumb=false)
{
global $theme, $templates, $lang, $mybb;

if($count <= $perpage)
{
return;
}

$url = str_replace(“&amp;”, “&”, $url);
$url = htmlspecialchars_uni($url);

$pages = ceil($count / $perpage);

$prevpage = ”;
if($page > 1)
{
$prev = $page-1;
$page_url = fetch_page_url($url, $prev);
eval(“$prevpage = “”.$templates->get(“multipage_prevpage”).””;”);
}

// Maximum number of “page bits” to show
if(!$mybb->settings[‘maxmultipagelinks’])
{
$mybb->settings[‘maxmultipagelinks’] = 5;
}

$from = $page-floor($mybb->settings[‘maxmultipagelinks’]/2);
$to = $page+floor($mybb->settings[‘maxmultipagelinks’]/2);

if($from <= 0)
{
$from = 1;
$to = $from+$mybb->settings[‘maxmultipagelinks’]-1;
}

if($to > $pages)
{
$to = $pages;
$from = $pages-$mybb->settings[‘maxmultipagelinks’]+1;
if($from <= 0)
{
$from = 1;
}
}

if($to == 0)
{
$to = $pages;
}

$start = ”;
if($from > 1)
{
if($from-1 == 1)
{
$lang->multipage_link_start = ”;
}

$page_url = fetch_page_url($url, 1);
eval(“$start = “”.$templates->get(“multipage_start”).””;”);
}

$mppage = ”;
for($i = $from; $i <= $to; ++$i)
{
$page_url = fetch_page_url($url, $i);
if($page == $i)
{
if($breadcrumb == true)
{
eval(“$mppage .= “”.$templates->get(“multipage_page_link_current”).””;”);
}
else
{
eval(“$mppage .= “”.$templates->get(“multipage_page_current”).””;”);
}
}
else
{
eval(“$mppage .= “”.$templates->get(“multipage_page”).””;”);
}
}

$end = ”;
if($to < $pages)
{
if($to+1 == $pages)
{
$lang->multipage_link_end = ”;
}

$page_url = fetch_page_url($url, $pages);
eval(“$end = “”.$templates->get(“multipage_end”).””;”);
}

$nextpage = ”;
if($page < $pages)
{
$next = $page+1;
$page_url = fetch_page_url($url, $next);
eval(“$nextpage = “”.$templates->get(“multipage_nextpage”).””;”);
}

$lang->multipage_pages = $lang->sprintf($lang->multipage_pages, $pages);

if($breadcrumb == true)
{
eval(“$multipage = “”.$templates->get(“multipage_breadcrumb”).””;”);
}
else
{
eval(“$multipage = “”.$templates->get(“multipage”).””;”);
}

return $multipage;
}

/**
* Generate a page URL for use by the multipage function
*
* @param string The URL being passed
* @param int The page number
*/
function fetch_page_url($url, $page)
{
if($page <= 1)
{
$find = array(
“-page-{page}”,
“&amp;page={page}”,
“{page}”
);

// Remove “Page 1” to the defacto URL
$url = str_replace($find, array(“”, “”, $page), $url);
return $url;
}
else if(strpos($url, “{page}”) === false)
{
// If no page identifier is specified we tack it on to the end of the URL
if(strpos($url, “?”) === false)
{
$url .= “?”;
}
else
{
$url .= “&amp;”;
}

$url .= “page=$page”;
}
else
{
$url = str_replace(“{page}”, $page, $url);
}

return $url;
}[/code]

Anyone can suggest me about the AJAX ?

Thanks a lots!

to post a comment
JavaScript

3 Comments(s)

Copy linkTweet thisAlerts:
@PadonakMay 19.2013 — what is "AJAX Pagination"?
Copy linkTweet thisAlerts:
@DestroauthorMay 19.2013 — For example, when you click to page navigation (next, previous, page number ...) AJAX will handle it instead of reload page.
Copy linkTweet thisAlerts:
@ranitnathMay 15.2020 — Hey, did you find a solution to this issue?
×

Success!

Help @Destro spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 4.25,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,

tipper: @Samric24,
tipped: article
amount: 1000 SATS,
)...