- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
есть код:
function writePagesLinks($prefix='') {
$txt = '';
$displayed_pages = 10;
$total_pages = $this->limit ? ceil( $this->total / $this->limit ) : 0;
$this_page = $this->limit ? ceil( ($this->limitstart+1) / $this->limit ) : 1;
$start_loop = (floor(($this_page-1)/$displayed_pages))*$displayed_pages+1;
if ($start_loop + $displayed_pages - 1 < $total_pages) {
$stop_loop = $start_loop + $displayed_pages - 2;
} else {
$stop_loop = $total_pages-1;
}
if (!defined( '_PN_LT' ) || !defined( '_PN_RT' ) ) {
DEFINE('_PN_LT','<');
DEFINE('_PN_RT','>');
}
DEFINE('_PN_START','Первая');
DEFINE('_PN_PREVIOUS','Предыдущая');
DEFINE('_PN_NEXT','Следующая');
DEFINE('_PN_END','Последняя');
$pnSpace = '';
if (_PN_LT || _PN_RT) $pnSpace = " ";
$txt .= '<span class="pagenav">';
if ($this_page > 1) {
$page = ($this_page - 2) * $this->limit;
$txt .= '<a href="#bot" onclick="'.$prefix.'loadProduct('.$page.')" title="'. _PN_PREVIOUS .'">'. _PN_LT . $pnSpace . _PN_PREVIOUS .'</a> ';
} else {
$txt .= '<span>'. _PN_LT . $pnSpace . _PN_PREVIOUS .'</span> ';
}
for ($i=$start_loop; $i <= $stop_loop; $i++) {
$page = ($i - 1) * $this->limit;
if ($i == $this_page) {
$txt .= '<span>'. $i .'</span> ';
} else {
$txt .= '<a href="#bot" onclick="'.$prefix.'loadProduct('.$page.')" ><strong>'. $i .'</strong></a> ';
}
}
if ($this_page < $total_pages) {
$page = $this_page * $this->limit;
$end_page = ($total_pages-1) * $this->limit;
$txt .= '<a href="#bot" onclick="'.$prefix.'loadProduct('.$page.')" title="'. _PN_NEXT .'">'. _PN_NEXT . $pnSpace . _PN_RT .'</a> ';
} else {
$txt .= '<span>'. _PN_NEXT . $pnSpace . _PN_RT .'</span> ';
}
$txt .= '</span>';
return $txt;
}
}
он делает пагинацию при поиске, но почему то последняя иногда и две страницы получаются пустыми, подскажите в чем причина, спасибо
итак, опишу более подробно свою проблему :).
Есть компонент поиска для VirtueMart 1.1.4 называется com_vm_ext_search_free можно взять на сайте http://joomlaforum.ru/index.php/topic,115793.new.html#new. Я установил его добавил поля по наименованию и количеству на складе. Но выявилась проблема когда формируется результат, то показывает что в поиске 9 страниц. но на самом деле их 8. а последняя показывает что в результате нет записей для показа. В компоненте нашел код который отвечает за пагинацию (он выше), но если честно в коде php слабо разбираюсь, поэтому прошу вашей помощи. Если что нужно еще скинуть. то скажите и я скину. Спасибо всем за ответы :)
Вообще логика у подсчетов видимо хромает. Если задать limit 10 и total 20, то $total_pages получит значение 2(как и нужно), $start_loop 1(опять правильно), а $stop_loop тоже 1, что неверно. В результате цикл for выведет только одну страницу, вместо двух. При каких значениях limit и total у вас лишние страницы?
Вообще логика у подсчетов видимо хромает. Если задать limit 10 и total 20, то $total_pages получит значение 2(как и нужно), $start_loop 1(опять правильно), а $stop_loop тоже 1, что неверно. В результате цикл for выведет только одну страницу, вместо двух. При каких значениях limit и total у вас лишние страницы?
Не совсем понятно когда именно код выдаст две страницы вместо одной, иногда значение тотал может быть 3, а может и 7, я уже начинаю грешить в сторону БД, потому что на первой странице показывает что нашел 94 результата, а на последней 72, хз почему