- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хочу сделать фиксированную нумерацию новостей.
То есть в конце (первая по времени появления) страница 1, в начале (последняя по времени) ххх. На каждой странице контент не изменяется.
Не соображу возможно ли такое.
Вроде на баше так, но как это сделать?
Единственное что приходит на ум - на индексной страницы не фиксированное количество, а накапливается критическая масса и происходит создание новой страницы. Но все-таки хотелось бы на индексной странице фиксированное количество новостей.
Возможно ли такое? И как на баше это устроено?
Возможно. Реализация зависит от движка. Стукните в аську по возможности помогу 274-037-572.
Да мне без конкретики, общими словами как такое реализовать.
Не понятно если все фиксировано, то куда "излишек" элементов попадает.
Ася пока что-то не коннектится.
На сколько я понимаю вам нужен обычный постраничный вывод. Общая схема работы
1. Считаем количество элементов для вывода (для краткости давайте назовем их записи)
2. Делим количество записей на количество элементов на странице получаем количество страниц
3. При выборке из базы выбираем через лимит с позиции количество элементов на страницу*на текущий номер страницы, количество элементов на странице.
4. Выводим полученные записи, выводим постраничную навигацию.
Все.
очень просто, принцип тот что и при обычной навигации, только лимит не прибавляется, а убывает.
$onpage=5; //новостей на странице
$amount=152; //количество новостей
$pages=ceil($amount/$onpage); //количество страниц
$limit_start=$amount-($page*$onpage); // где $page - номер страницы, если номер < 0 сделать 0
$limit_end=$onpage;
таким образом:
Страница 1 LIMIT 147, 5
Страница 2 LIMIT 142, 5
Страница 3 LIMIT 137, 5
Страница 4 LIMIT 132, 5
Страница 5 LIMIT 127, 5
и т.д.
мой вопрос - куда девается "нефиксированный" излишек?
При вашем методе (если я правильно понял) он вылезает на первой странице, что нежелательно.
Я и спрашиваю как сделать так, чтобы на первой странице было определенное количество элементов.
Как на баше устроено?
Т.е. если всего 10 элементов по три на страницу, то куда один лишний девается?
Ну как вы себе это представляете? И на баше по мере поступления новых данных старые просто тонут. Или добавлять объемами на страницу. или выводить страницу только после того, как для нее будет достаточно элементов. А из 10 элементов 12 вы никак не получите.
допустим у нас 18 записей, тогда лимиты будут такие:
Страница 1 LIMIT 13, 5
Страница 2 LIMIT 8, 5
Страница 3 LIMIT 3, 5
Страница 4 LIMIT 0, 3
немного в предыдущем посте ошибся, второй лимит для последней страницы берем такой же как у первый у передпоследней
Alsp добавил 24.02.2010 в 16:16
function get_navi_limit($amount,$page,$onpage){
$limit_start=$amount-($page*$onpage);
if($limit_start<0){
$limit_start=0;
$limit_end=$amount-(($page-1)*$onpage);
} else {
$limit_end=$onpage;
}
return $limit_start.','.$limit_end;
}
Alsp добавил 24.02.2010 в 16:18
никакого остатка на первой странице не будет, это функция для генерации лимита, параметры я думаю понятные.
Alsp добавил 24.02.2010 в 16:22
блин, немного вас не понял))
та функция, которую я написал работает как на ithappens
Alsp добавил 24.02.2010 в 16:28
попробуйте вот так: вроди то что вам нужно
function get_fix_navi_limit($amount,$page,$onpage){
$pages=ceil($amount/$onpage);
$page_real=$pages-$page;
$limit_start=$page_real*$onpage;
$limit_end=$onpage;
return $limit_start.','.$limit_end;
}
Ну как вы себе это представляете? И на баше по мере поступления новых данных старые просто тонут. Или добавлять объемами на страницу. или выводить страницу только после того, как для нее будет достаточно элементов. А из 10 элементов 12 вы никак не получите.
Значит ответ на мой вопрос - остаток вылазеет на последней страницы, а на всех остальных контент ходит по кругу (полный круг, когда последняя заполняется). Когда смотрел последнюю страницу баша, она была полной.
Добавлять объемами выход, но обычно неприемлемо.
Alsp, тогда получается, что на титульной странице может быть от 1 до 5 элементов, что плохо.
Решение нашел - делать "плавающей" с двойным объемом предпоследнюю страницу. Все остальные фиксированы. Это даже может быть плюсом для юзабилити.
Т.е. если 10 элементов по три на страницу, то будет
1 - 123
2 - 4567
3 - 8910
Qinghua, в первом варианте так называемый остаток (от 1 до 4 новостей) таки будут на последней странице, во втором - на первой.
Тогда уж лучше, чтобы был не остаток, а излишек.