Навигация по сайту

А1
На сайте с 29.03.2020
Offline
2
280

День добрый, начал делать навигацию по сайту и вроде бы всё хорошо только вот проблема как сделать так что бы страница на которой ты находишься подсвечивалась ?


<?php
$num = 6; // количество выводимое на страницу
$page = (int)$_GET['page'];

$count = mysqli_query($link,"SELECT COUNT(*) FROM table_products WHERE visable = '1'");
$temp = mysqli_fetch_array($count);

If ($temp[0] > 0)
{
$tempcount = $temp[0];

// Находим общее число страниц
$total = $tempcount / $num;
$total = intval($total);

$page = intval($page);

if(empty($page) or $page < 0)
{
$page = 1;
}

if($page > $total)
{
$page = $total;
}

// Вычисляем начиная с какого номера
// следует выводить товары
$start = $page * $num - $num;

$qury_start_num = " LIMIT $start, $num";
}
if ($page != 1){ $pstr_prev = '<li><a class="pstr-prev" href="index.php?page='.($page - 1).'">&lt;</a></li>';}
if ($page != $total) $pstr_next = '<li><a class="pstr-next" href="index.php?page='.($page + 1).'">&gt;</a></li>';


// Формируем ссылки со страницами
if($page - 5 > 0) $page5left = '<li><a href="index.php?page='.($page - 5).'">'.($page - 5).'</a></li>';
if($page - 4 > 0) $page4left = '<li><a href="index.php?page='.($page - 4).'">'.($page - 4).'</a></li>';
if($page - 3 > 0) $page3left = '<li><a href="index.php?page='.($page - 3).'">'.($page - 3).'</a></li>';
if($page - 2 > 0) $page2left = '<li><a href="index.php?page='.($page - 2).'">'.($page - 2).'</a></li>';
if($page - 1 > 0) $page1left = '<li><a href="index.php?page='.($page - 1).'">'.($page - 1).'</a></li>';

if($page + 5 <= $total) $page5right = '<li><a href="index.php?page='.($page + 5).'">'.($page + 5).'</a></li>';
if($page + 4 <= $total) $page4right = '<li><a href="index.php?page='.($page + 4).'">'.($page + 4).'</a></li>';
if($page + 3 <= $total) $page3right = '<li><a href="index.php?page='.($page + 3).'">'.($page + 3).'</a></li>';
if($page + 2 <= $total) $page2right = '<li><a href="index.php?page='.($page + 2).'">'.($page + 2).'</a></li>';
if($page + 1 <= $total) $page1right = '<li><a href="index.php?page='.($page + 1).'">'.($page + 1).'</a></li>';



if ($page+5 < $total)
{
$strtotal = '<li><p class="nav-point">...</p></li><li><a href="index.php?page='.$total.'">'.$total.'</a></li>';
}else
{
$strtotal = "";
}

if ($total > 1)
{
echo '
<div class="pstrnav">
<ul>
';
echo $pstr_prev.$page5left.$page4left.$page3left.$page2left.$page1left."<li><a class='pstr-active' href='index.php?page=".$page."'>".$page."</a></li>".$page1right.$page2right.$page3right.$page4right.$page5right.$strtotal.$pstr_next;
echo '
</ul>
</div>
';
}

css

/*-----Navigator------*/
.pstrnav{

height: 30px;
border: 1px solid white;
clear: left;
}

.pstrnav li{
margin: 0 auto;
width: 26px;
height: 26px;
margin-left: 7px;
margin-top: 1px;
float: left;
}
.nav-point{
margin-left:7px;
}

.pstrnav a{
display: block;

font: bold 14px sans-serif;
text-align: center;
color: black;
background: url(/img/nav-block-norm.png);
padding-top: 5px ;
padding-bottom: 5px;
}

.pstrnav a:hover{

background: url(/img/nav-block-hover.png);

}
.pstrnav a:active{

background: url(/img/nav-block-active.png);

}



---------- Добавлено 02.04.2020 в 16:25 ----------

Алексей11996:
День добрый, начал делать навигацию по сайту и вроде бы всё хорошо только вот проблема как сделать так что бы страница на которой ты находишься подсвечивалась ?

<?php
$num = 6; // количество выводимое на страницу
$page = (int)$_GET['page'];

$count = mysqli_query($link,"SELECT COUNT(*) FROM table_products WHERE visable = '1'");
$temp = mysqli_fetch_array($count);

If ($temp[0] > 0)
{
$tempcount = $temp[0];

// Находим общее число страниц
$total = $tempcount / $num;
$total = intval($total);

$page = intval($page);

if(empty($page) or $page < 0)
{
$page = 1;
}

if($page > $total)
{
$page = $total;
}

// Вычисляем начиная с какого номера
// следует выводить товары
$start = $page * $num - $num;

$qury_start_num = " LIMIT $start, $num";
}
if ($page != 1){ $pstr_prev = '<li><a class="pstr-prev" href="index.php?page='.($page - 1).'">&lt;</a></li>';}
if ($page != $total) $pstr_next = '<li><a class="pstr-next" href="index.php?page='.($page + 1).'">&gt;</a></li>';


// Формируем ссылки со страницами
if($page - 5 > 0) $page5left = '<li><a href="index.php?page='.($page - 5).'">'.($page - 5).'</a></li>';
if($page - 4 > 0) $page4left = '<li><a href="index.php?page='.($page - 4).'">'.($page - 4).'</a></li>';
if($page - 3 > 0) $page3left = '<li><a href="index.php?page='.($page - 3).'">'.($page - 3).'</a></li>';
if($page - 2 > 0) $page2left = '<li><a href="index.php?page='.($page - 2).'">'.($page - 2).'</a></li>';
if($page - 1 > 0) $page1left = '<li><a href="index.php?page='.($page - 1).'">'.($page - 1).'</a></li>';

if($page + 5 <= $total) $page5right = '<li><a href="index.php?page='.($page + 5).'">'.($page + 5).'</a></li>';
if($page + 4 <= $total) $page4right = '<li><a href="index.php?page='.($page + 4).'">'.($page + 4).'</a></li>';
if($page + 3 <= $total) $page3right = '<li><a href="index.php?page='.($page + 3).'">'.($page + 3).'</a></li>';
if($page + 2 <= $total) $page2right = '<li><a href="index.php?page='.($page + 2).'">'.($page + 2).'</a></li>';
if($page + 1 <= $total) $page1right = '<li><a href="index.php?page='.($page + 1).'">'.($page + 1).'</a></li>';



if ($page+5 < $total)
{
$strtotal = '<li><p class="nav-point">...</p></li><li><a href="index.php?page='.$total.'">'.$total.'</a></li>';
}else
{
$strtotal = "";
}

if ($total > 1)
{
echo '
<div class="pstrnav">
<ul>
';
echo $pstr_prev.$page5left.$page4left.$page3left.$page2left.$page1left."<li><a class='pstr-active' href='index.php?page=".$page."'>".$page."</a></li>".$page1right.$page2right.$page3right.$page4right.$page5right.$strtotal.$pstr_next;
echo '
</ul>
</div>
';
}

css

/*-----Navigator------*/
.pstrnav{

height: 30px;
border: 1px solid white;
clear: left;
}

.pstrnav li{
margin: 0 auto;
width: 26px;
height: 26px;
margin-left: 7px;
margin-top: 1px;
float: left;
}
.nav-point{
margin-left:7px;
}

.pstrnav a{
display: block;

font: bold 14px sans-serif;
text-align: center;
color: black;
background: url(/img/nav-block-norm.png);
padding-top: 5px ;
padding-bottom: 5px;
}

.pstrnav a:hover{

background: url(/img/nav-block-hover.png);

}
.pstrnav a:active{

background: url(/img/nav-block-active.png);

}

например: когда я нахожусь на 4й странице она будет выделена на фоне остальных страниц 1 2 3 4 5

S
На сайте с 30.09.2016
Offline
459
#1

class="active"
и
.active{color: #f00;}
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
А1
На сайте с 29.03.2020
Offline
2
#2

к чему его применить ?

---------- Добавлено 03.04.2020 в 09:29 ----------

Всё понял спасибо

M
На сайте с 04.12.2013
Offline
181
#3

// Формируем ссылки со страницами
...
Это какой-то поповский вариант.

См. шаблон строки навигации в конце этой статьи.

P.S. Тернарный оператор можно заменить на if/endif.

---------- Добавлено 03.04.2020 в 16:08 ----------

Или вот коммент там же:

https://gency.ru/comment/33

Хостинг FOZZY (http://fozzy.com.ru) / Выслушаю предложения на домены (http://u75.ru/domains-for-sale) / Домены и скрипт для коротких ссылок (http://u75.ru/domains-for-shortcuts)
IL
На сайте с 20.04.2007
Offline
412
#4
miketomlin:
Это какой-то поповский вариант.

miketomlin, циклы для слабаков.. 😂

Подглядеть сможет каждый.. а вот самому написать!..

p.s. У каждого свой путь к истине.))

M
На сайте с 04.12.2013
Offline
181
#5

ivan-lev, так ТС это не сам писал.

Я этот ужас сто раз видел у любителей копипастить код поповских уроков.

IL
На сайте с 20.04.2007
Offline
412
#6

Прошу прощенья.. я не в тренде просто.

Это код из уроков?.. 😮 😂

Возможно, автор хотел что-то этим показать.. 🤪

M
На сайте с 04.12.2013
Offline
181
#7

ivan-lev, угу, этой фигней весь инет (был) заспамлен. Правда, код старый, постепенно происходит очищение. Но мне до сих его периодически постят в комментах и т.п. Поэтому не смог пройти мимо этой темы :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий