Сортируем страницы по посещаемости/просмотров с примеров
"сортировка страниц по посещаемости/просмотров". Как сортировать страницы по количеству просмотров от более просматриваемой к менее просматриваемой и обратно! Сортировка по количеству просмотров.
Подробно о сортировке страниц в списке по посещаемости/просмотров...
- Пример сортировки страниц по возрастанию/убыванию
- Html код сортировки страниц по возрастанию/убыванию
- Начало php кода сортировки страниц по посещаемости/просмотров.
- Вывод ссылок с количеством просмотров.
- Собираем новый массив для сортировки страниц!
- Сортируем страницы по возрастанию.
- Пример сортировки страниц по убыванию/возрастанию:
- Что делать с архивом?.
- Скачиваем здесь. Живой пример.
Первым и самым главным для страницы с сортировкой страниц по посещаемости/просмотров вам потребуется счетчик.
Пример сортировки страниц по возрастанию/убыванию
Чтобы начать нашу страницу давайте приведу примеры... сортировки страниц апо возрастанию и убыванию...
Несколько примеров сортировки страниц по возрастанию/убыванию
У нас есть несколько страниц, которые приведу для того, чтобы вы понимали, что мы будем делать...:
Страница список(без сортировки):
Сортируем оп возрастанию посещаемости/просмотров, т.е. сортировка идет от низа страницы к верху страницы по возрастанию(sort - сортировать, up - вверх):
Здесь тоже самое, но в обратную сторону, т.е. сортировка идет от низа страницы к верху страницы по убыванию(sort - сортировать, down - вниз ):
Html код сортировки страниц по возрастанию/убыванию.
Теперь разберемся с начальным кодом...
Используем svg для значка просмотром:
Начальный код верху таблицы:
+ css - не буду на всем этом останавливаться подробно - здесь всё просто, только код:
Php:
<? $svg_glaz = '<svg class="svg_glaz" viewBox="0 0 500 500"> <g id="view" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <path d="M250,125 C335.11369,125 412.62459,162.094698 482.532702,236.284094 C489.791515,243.987449 489.791515,256.012551 482.532702,263.715906 C412.62459,337.905302 335.11369,375 250,375 C164.88631,375 87.3754097,337.905302 17.4672981,263.715906 C10.2084845,256.012551 10.2084845,243.987449 17.4672981,236.284094 C87.3754097,162.094698 164.88631,125 250,125 Z M289.397758,158.061016 L290.354428,158.476552 C325.483113,173.988083 350,209.130929 350,250 C350,291.239064 325.037195,326.647752 289.397758,341.939893 C347.628105,332.741536 401.933917,302.755011 452.933332,251.187936 L454.1,249.999 L452.933332,248.812064 C401.934486,197.245564 347.629316,167.259133 289.397758,158.061016 Z M210.603244,158.059677 L208.847963,158.344351 C151.280571,167.863435 97.553486,197.763291 47.0666679,248.812064 L45.899,249.999 L47.0666679,251.187936 C98.0658056,302.754731 152.371306,332.74121 210.603244,341.939142 C174.961869,326.646425 150,291.238291 150,250 C150,208.76055 174.963272,173.351585 210.603244,158.059677 Z M275,250 C261.192881,250 250,261.192881 250,275 C250,288.807119 261.192881,300 275,300 C288.807119,300 300,288.807119 300,275 C300,261.192881 288.807119,250 275,250 Z" fill="#000000" fill-rule="nonzero"></path></g></svg>';
$begin_table = '<div class="new_array">
<span class="p1">\n</span>
<span class="p2"> Название страницы </span>
<count title="Количество просмотров страницы">'. $svg_glaz.'</count>
</span>
</div>';
?>
css:
<style>
.new_array {
height: 30px;
border-bottom: 1px solid gainsboro;
margin: 15px 0;
padding: 0 0 10px;
font-size: 15px;
color: #797979;
font-family: system-ui;
}span.p1 {
border-right: 2px solid #acacac;
margin: 0 7px 0 0;
padding: 0 20px 0 0;
color: red;
width: 20px;
display: inline-block;
}count {
float: right;
}svg.svg_glaz {
width: 19px;
height: 19px;
margin: -4px 0;
}
</style>
Начало php кода сортировки страниц по посещаемости/просмотров.
Для того, чтобы сделать сортировку по возрастанию вам потребуется:
Основа страницы будет - blog.html - делаем две страницы с измененным адресом используя get:
https://jsphp.ru/blog.html?sort=up
https://jsphp.ru/blog.html?sort=down
чтобы каждый раз не писать адрес страницы, и чтобы вы могли по одной строчке заменить данный адрес на свой(любой другой) - поместим его в переменную :
Далее .... напишем когда какие ссылки на страницы показывать(в смысле сортировки) в зависимости от того, на какой странице вы находитесь:
if($_GET[sort])
{
$begin_page = '<div><a href="'.$parse_url.'">Начальная.</a></div>';
if($_GET[sort]=='up') $up='<div><a href="'.$parse_url.'?sort=down">Сортировать по убыванию.</a></div>';
elseif($_GET[sort]=='down') $down='<div><a href="'.$parse_url.'?sort=up">Сортировать по возрастанию.</a></div>';
}
else
{
$begin_page = '';
$up='<div><a href="'.$parse_url.'?sort=down">Сортировать по убыванию.</a></div>';
$down='<div><a href="'.$parse_url.'?sort=up">Сортировать по возрастанию.</a></div>';
}
Также это все поместим в переменную - тупо для удобства...
$begin_url = '
<div style="font-size: 11px;text-align: right;line-height: 15px;">
'.$begin_page.'
'.$up.'
'.$down.'
</div>
';
Вывод ссылок с количеством просмотров.
Далее... мы с вами переходим на территорию "неопределенности".
Я не знаю, как у вас выводится списки страниц, поэтому... этот код вам придется создавать самостоятельно.
Если это база данных, то я где-то здесь показывал как выводить оттуда списком. т.е. это цикл foreachУ вас должно быть что-то типа такого:
$cc - счетчик внутри foreach.
$url_page - адрес вашей страницы.
$name_page - текст вашей страницы.
$rotate_count_looks - счетчик просмотров вашей страницы.
foreach($main_array as $first_line => $massiv)
{
//--- счетчик просмотров
$rotate_count_looks - получаем количество просмотров, для каждой страницы списка.
//--- счетчик просмотров
$cc++;
$result .= '
<div class="new_array">
<span class="p1">'. $cc .'.</span>
<span class="p2"><a href='.$url_page.' target=_blank>'. $name_page .'</a></span>
<count title="Количество просмотров страницы">'.$rotate_count_looks .'</count>
</span>
</div>
';
}
echo $result;
Собираем новый массив для сортировки страниц!
Для сортировки - нам нужен специально выведенный новый массив - делаем его внутри foreach:
Собираем новый массив для сортировки:
Выше "foreach" - создаем новый массив:
$array_sort = array();
foreach($main_array as $first_line => $massiv)
Далее ... тот же код, что вы видели выше в "foreach", только в начало помещаем количество просмотров... через какой-то делитель - например - "::"
$array_sort[] = $rotate_count_looks.'::<div class="new_array">
<span class="p1">'.$cc.'.</span>
<span class="p2"><a href='.$url_page.' target=_blank>'. $name_page .'</a></span>
<count title="Количество просмотров страницы">'.$rotate_count_looks.'</count>
</span>
</div>';
Сортируем страницы по возрастанию.
Ну и далее процесс... собственно сортировки...
Опять в зависимости от адреса в адресной строке... выводим сторнированное либо по возрастанию(Сортироваться будет по первой цифре, а как вы видели, первая цифра - это классов просмотров см выше пункт.):
Либо по убыванию:
if($_GET['sort'] =='up')
{
$result='';
rsort ($array_sort , SORT_NUMERIC);
}
elseif ($_GET['sort'] =='down') {
$result='';
sort ($array_sort , SORT_NUMERIC);
}
Ну и выводим результат...
С помощью explode - оставляем последнюю ячейку(end)
if($_GET['sort'] =='up' or $_GET['sort'] =='down')
{
$count_array = count($array_sort);
for ($i=0; $i < $count_array; $i++)
{
$result .= end(explode('::', $array_sort[$i]));
}
}
Что делать с архивом?
Изменить данные в скрипте на свои, они обозначены двумя слешами вправо и словом var():
$rotate_count - количество просмотров страницы, которые перебираются в цикле, вместо слов "'получаем количество просмотров из счетчика.'" - помещаем переменную, которая и есть ваш счетчик... посещений перебираемых страниц... если нет счетчика посещаемости/просмотров смотри счетчик.
В переменную "$url_page" - передаем адрес страницы, счетчик которой только, что выше получили...
В переменную "$name_page " - передаем название страницы, счетчик которой только, что выше получили...
Пример сортировки страниц по убыванию/возрастанию:
Пример всего описанного на отдельной странице:
Это усеченная версия вот этой страницы.
