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


Алексей11996
289

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


<?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="https://searchengines.guru/ru/forum/index.php?page=".($page - 1)."">&lt;</a></li>';}
if ($page != $total) $pstr_next="<li><a class="pstr-next" href="https://searchengines.guru/ru/forum/index.php?page=".($page + 1).'">&gt;</a></li>';


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

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



if ($page+5 < $total)
{
$strtotal="<li><p class="nav-point">...</p></li><li><a href="https://searchengines.guru/ru/forum/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="https://searchengines.guru/ru/forum/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="https://searchengines.guru/ru/forum/index.php?page=".($page - 1)."">&lt;</a></li>';}
if ($page != $total) $pstr_next="<li><a class="pstr-next" href="https://searchengines.guru/ru/forum/index.php?page=".($page + 1).'">&gt;</a></li>';


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

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



if ($page+5 < $total)
{
$strtotal="<li><p class="nav-point">...</p></li><li><a href="https://searchengines.guru/ru/forum/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="https://searchengines.guru/ru/forum/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


Sitealert
class="active"

и

.active{color: #f00;}


Алексей11996

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

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

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


miketomlin
// Формируем ссылки со страницами
...

Это какой-то поповский вариант.

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

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

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

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

https://gency.ru/comment/33


ivan-lev
miketomlin:
Это какой-то поповский вариант.

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

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

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


miketomlin

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

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


ivan-lev

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

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

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


miketomlin

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *