вопрос
Всем привет!
Прошу помощи у гуру.
Пишу свой модуль, и столкнулся с проблемой постраничной навигации. А именно не знаю как её реализовать.
Многие рекомендуют использовать длешную навигацию, но я php учу на практике, методом проб и ошибок (просьба тапками не кидаться)
Кому не сложно подскажите пожалуйста.
Прошу помощи у гуру.
Пишу свой модуль, и столкнулся с проблемой постраничной навигации. А именно не знаю как её реализовать.
Многие рекомендуют использовать длешную навигацию, но я php учу на практике, методом проб и ошибок (просьба тапками не кидаться)
Кому не сложно подскажите пожалуйста.
//Пагинация
$tpl->load_template( 'navigation.tpl' );
//----------------------------------
// Previous link
//----------------------------------
$no_prev = false;
$no_next = false;
if(isset($cstart) and $cstart != "" and $cstart > 0)
{
$prev = $cstart / $limit;
if ($config['allow_alt_url'] == "yes")
{
$prev_page = $config['http_home_url']."actall/page/".$prev."/"
;;
$tpl->set_block("'\\[prev-link\\](.*?)\\[/prev-link
\\]'si", "<a href=\"".$prev_page."\">\\1</a>");
}
else
{
$prev_page = $config['http_home_url']."index.php?do=actall&cstart
=".$prev."";
$tpl->set_block("'\\[prev-link\\](.*?)\\[/prev-link
\\]'si", "<a href=\"".$prev_page."\">\\1</a>");
}
}
else
{
$tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]
;'si", "<span>\\1</span>");
$no_prev = TRUE;
}
//----------------------------------
// Pages
//----------------------------------
if($limit)
{
$row = $db->super_query($sql_count);
$count_all = $row['count'];
$enpages_count = @ceil($count_all/$limit);
$pages = "";
$cstart = ($cstart / $limit) + 1;
if ($enpages_count <= 10 )
{
for($j=1; $j<=$enpages_count; $j++)
{
if($j != $cstart)
{
if ($config['allow_alt_url'] == "yes")
$pages .= "<a href=\"".$config['http_home_url']."actall/page/"
;.$j."/\">$j</a> ";
else
$pages .= "<a href=\"".$config['http_home_url']."index.php?do=act
all&cstart=$j\">$j</a> ";
} else {
$pages .= "<span>$j</span> ";
}
}
} else {
$start =1;
$end = 10;
$nav_prefix = "... ";
if ($cstart > 0) {
if ($cstart > 5) {
$start = $cstart - 4;
$end = $start + 8;
if ($end >= $enpages_count) {
$start = $enpages_count - 9;
$end = $enpages_count - 1;
$nav_prefix = "";
} else $nav_prefix = "... ";
}
}
if ($start >= 2)
{
if ($config['allow_alt_url'] == "yes")
$pages .= "<a href=\"".$config['http_home_url']."actall/page/1/\
">1</a> ... ";
else
$pages .= "<a href=\"".$config['http_home_url']."index.php?do=act
all&cstart=1\">1</a> ... ";
}
for($j=$start; $j<=$end; $j++)
{
if($j != $cstart)
{
if ($config['allow_alt_url'] == "yes")
$pages .= "<a href=\"".$config['http_home_url']."actall/page/"
;.$j."/\">$j</a> ";
else
$pages .= "<a href=\"".$config['http_home_url']."index.php?do=act
all&cstart=".$j."\">$j</a> ";
} else {
$pages .= "<span>$j</span> ";
}
}
if ($cstart != $enpages_count)
{
if ($config['allow_alt_url'] == "yes")
$pages .= $nav_prefix."<a href=\"".$config['http_home_url']."actall/page/{$en
pages_count}/\">{$enpages_count}</a>";
else
$pages .= $nav_prefix."<a href=\"".$config['http_home_url']."index.php?do=act
all&cstart={$enpages_count}\">{$enpages_count}</a>";
}
else $pages .= "<span>{$enpages_count}</span> ";
}
$tpl->set('{pages}', $pages);
}
//----------------------------------
// Next link
//----------------------------------
if($limit < $count_all AND $i < $count_all)
{
if ($config['allow_alt_url'] == "yes")
{
$next_page = $cstart + 1;
$next = $config['http_home_url'].'actall/page/'.$next_page.'
/';
$tpl->set_block("'\[next-link\](.*?)\[/next-link\]
;'si", "<a href=\"".$next."\">\\1</a>");
}
else
{
$next = $config['http_home_url'].'index.php?do=actall&cstart
='.$next_page;
$tpl->set_block("'\[next-link\](.*?)\[/next-link\]
;'si", "<a href=\"".$next."\">\\1</a>");
}
}
else
{
$tpl->set_block("'\[next-link\](.*?)\[/next-link\]
;'si", "<span>\\1</span>");
$no_next = TRUE;
}
if (!$no_prev OR !$no_next)
$tpl->compile('navpages');
$tpl->clear();
$tpl->result['content'] = $tpl->result['content'] . $tpl->result['navpages'];