Забыли пароль?
Запросите новый здесь.

Автор темы: Biven
ID темы: 1626
Информация:
Тема содержит 12 сообщения, была просмотрена 6731 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Вопросы новичков
 Распечатать тему
Вопрос по Download System mSF For PHP-Fusion
Biven
Вопрос к знатокам кода. После модифицирования обычного загрузчика Download System mSF For PHP-Fusion 7.xx v.3.6 есть одна очень неудобная вещь, которая портит нервы (лично мне). Когда файлов загружается очень много, а в установках стоит, ну например 20 фойлов на страницу, то система начинает формировать страницы. И если страниц этих больше 5, то внизу формируется ряд активных ссылок на первые четыре и последнюю (после надписи страницы с 1 по ну например 10). Вот очень бы хотелось, чтоб система также формировала эти активные ссылки, но на все страницы, т.е. если страниц 10 то и активных ссылок с номерами страниц чтоб было 10. Это мне нужно, чтоб много страниц не уходило на более глубокий уровень вложенности.
Не хочется увеличивать файлов на страницу.
Подскажите, где искать эту функцию, или какая часть страницы downloads за это отвечает?
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
http://www.php-fu...akepagenav
вот тут range увеличишь на сколько нада в коде.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
x1 x1 x1 x1
 
Web
Biven
PolarFox написал:

http://www.php-fu...akepagenav
вот тут range увеличишь на сколько нада в коде.


Просьба, подскажите что именно и как надо поменять в этой части:

Оффтопик // Making Page Navigation
function makepagenav($start, $count, $total, $range = 0, $link = "") {
global $locale;

if ($link == "") { $link = FUSION_SELF."?"; }

$pg_cnt = ceil($total / $count);
if ($pg_cnt <= 1) { return ""; }

$idx_back = $start - $count;
$idx_next = $start + $count;
$cur_page = ceil(($start + 1) / $count);

$res = $locale['global_092']." ".$cur_page.$locale['global_093'].$pg_cnt.": ";
if ($idx_back >= 0) {
if ($cur_page > ($range + 1)) {
$res .= "<a href='".$link."rowstart=0'>1</a>";
if ($cur_page != ($range + 2)) {
$res .= "...";
}
}
}
$idx_fst = max($cur_page - $range, 1);
$idx_lst = min($cur_page + $range, $pg_cnt);
if ($range == 0) {
$idx_fst = 1;
$idx_lst = $pg_cnt;
}
for ($i = $idx_fst; $i <= $idx_lst; $i++) {
$offset_page = ($i - 1) * $count;
if ($i == $cur_page) {
$res .= "<span><strong>".$i."</strong></span>";
} else {
$res .= "<a href='".$link."rowstart=".$offset_page."'>".$i."</a>";
}
}
if ($idx_next < $total) {
if ($cur_page < ($pg_cnt - $range)) {
if ($cur_page != ($pg_cnt - $range - 1)) {
$res .= "...";
}
$res .= "<a href='".$link."rowstart=".($pg_cnt - 1) * $count."'>".$pg_cnt."</a>\n";
}
}

return "<div class='pagenav'>\n".$res."</div>\n";
}

Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
Ты для всех скриптов хочешь навигацию сменить?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Biven
Ну я так понимаю, что этот участок майнкора как раз отвечает за навигацию нижних кнопок страниц всех скриптов и структура псотроения берется имено отсюда.
Впринципе, можно и во всем фьюжене сменить, хуже от этого не будет (блин, даже для сео, если забацать 4,5.. уровни вложенности в 3 это будет нормально. Форум у меня не раздут, как и файловый архив, поэтому место с низу для кнопок есть).
Мне не понятно, где формируется переменная $count (может константа), походу это отвечает за количество отображаемых кнопочек с номерами страниц. Вообще, я не то, что не знаю хорошо PHP, знаю основы и то очень очень поверхностно. Понятно, если помочь не сможете возьму учебник в руки и разберусь (но как хочется время с экономить).
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Serge Renard
IMHO $count заполняется из настроек в админке, где указывается, по сколько новостей/статей/прочего выводить на страницу.

Судя по строке $pg_cnt = ceil($total / $count), $count это именно число на страницу, а $pg_cnt - число получающихся страниц.
В Интернете кто-то неправ!
x1
 
Web
Polarfox
Нельзя менять count это не визуальная часть а логика.

Вставь прямо в самом начале $range = скоконада; чтобы перекрывало заданый параметр.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Biven
PolarFox написал:

Вставь прямо в самом начале $range = скоконада; чтобы перекрывало заданый параметр.


Попробовал, результата ноль. Не ошибок, не изменений. Как было : показывается первая страница, страница нахождения, три до и три после страницы от страницы нахождения и последняя страница.
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
Сколько ставил?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Biven
Ставил 5, 7, 10, 20 - думаю, если бы был результат, чтонибудь бы обязательно произошло, ошибка например. Ан - нет, все ровно пос тарому.
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Biven
Вопрос решил. Все таки это не переменная count. Так и не нашел, где задать значение range, чтобы скрипт дальше с ним работал (не хватает знаний фьюжена), но просто заменил ее на число :

$idx_fst = max($cur_page - $range, 1);
$idx_lst = min($cur_page + $range, $pg_cnt);

Заменил на:

$idx_fst = max($cur_page - 20, 1);
$idx_lst = min($cur_page + 20, $pg_cnt);

Теперь с каждой стороны от страницы нахождения по 20 страниц высвечивается (мне хватит). Единственный недостаток, скрипт работает немножко криво и не делает проверку на дубль первой и последней страницы. Иными словами, допустим у меня 12 страниц, нахожусь допустим посередине на 6. С начало получается два раза первая страница показана и в конце дважды показана последняя страница, что-то типо этого:

Страница 6 из 12: 1...1 2 3 4 5 6 7 8 9 10 11 12...12


Но это впринципе не сильно напрягает, поэтому все ровно для меня. Всем, кто принимал участие, СПАСИБО, спасибки проставлю тоже.
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
Ну я ж предупреждал...

Ладно устраивает и хорошо, а перфекционизм можно успокоить.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: