Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Постоянная ссылка на комментарий, пост

#1 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91
0

Отправлено 05 Июнь 2013 - 16:22

Такой вопрос интересный возник.
Каждый пост или коммент в теме имеет свою уникальную постоянную ссылку.
На странице поста сформировать эту ссылку не сложно, берем урл, добавляем # и айди поста, к примеру.
Но если изменить количество отображаемых постов на странице, например с 50 до 25, то постоянная ссылка на пост изменится.
Например 53 пост в теме был на второй странице и имел урл типа site/list/theme_id/p-2/#123456
Если изменили количество отображаемых постов до 25, то коммент будет находиться на 4 странице и постоянный урл будет недействителен и уже выглядит так site/list/theme_id/p-4/#123456

Есть ли вариант обойти эту проблему? Или надо с самого начала устанавливать количество постов на странице и никогда их не менять?

 

 

  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#2 Sosnovskij

Sosnovskij
  • Администратор
  • 3 883 сообщений
  • Репутация: 565

Отправлено 05 Июнь 2013 - 16:50

Или надо с самого начала устанавливать количество постов на странице и никогда их не менять?

Либо не делать зависимость урла от страницы, на которой он находится. В качестве уникализатора theme_id :)
  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#3 fedornabilkin

fedornabilkin
    Topic Starter
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 06 Июнь 2013 - 09:42

Не совсем понял как это? Например на этом форуме по постоянной ссылке переходит сразу к посту, хотя урл немного отличается.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#4 Sosnovskij

Sosnovskij
  • Администратор
  • 3 883 сообщений
  • Репутация: 565

Отправлено 06 Июнь 2013 - 17:10

Я про то, чтобы урл изначально не был зависим от /p-2/ - site/list/theme_id/#123456
  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#5 fedornabilkin

fedornabilkin
    Topic Starter
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 06 Июнь 2013 - 17:19

Это понятно, а как же постраничный вывод?
Что-то яя никак не могу понять этого.
Если в теме более 50 сообщений, как тогда узнать сколько сообщений выводить до искомого и сколько после, что бы учесть постраничность.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#6 Sosnovskij

Sosnovskij
  • Администратор
  • 3 883 сообщений
  • Репутация: 565

Отправлено 06 Июнь 2013 - 17:34

fedornabilkin, обычно на популярных движках постоянная ссылка не зависит от количества выводимых записей на странице.
  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#7 fedornabilkin

fedornabilkin
    Topic Starter
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 06 Июнь 2013 - 19:24

Да я то понял, что не зависит, а как этот механизм реализован до меня не доходит чета.
Хотелось бы разобраться. Может кто умеет на пальцах объяснять?
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#8 html-ka

html-ka
  • Пользователь
  • 455 сообщений
  • Репутация: 82

Отправлено 06 Июнь 2013 - 20:55

ну а в чем сложность, посмотри как реализована постраничная навигация, на одной странице он выводит с n-ой страницы по m-ную, от этого и пляши.
  • 0

#9 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 06 Июнь 2013 - 20:59

Да я то понял, что не зависит, а как этот механизм реализован до меня не доходит чета. Хотелось бы разобраться. Может кто умеет на пальцах объяснять?

Пусть N — количество постов на странице

1 вариант, если у постов сквозная нумерация вне зависимости от того, в какой они теме
(как, например, в этом форуме, см номера постов в этой теме: 95059, 95065, 95083, 95117, 95118, 95120, 5127, 95133, 95134)
Тогда, наверно, так:
* перебираем id сообщений в нужной теме
  * отсчитываем по N постов, если искомый id не встретился, увеличиваем номер страницы на 1 и повторяем этот пункт
  * если искомый id встретился, выводим эту страницу на экран

2 вариант, когда у постов не сквозная нумерация, а двойная: номер темы + номер поста в теме, тогда проблемы с постраничной навигацией решаются совсем просто: чтобы вычислить номер выводимой страницы, делим номер поста на N: floor(id/N)+1, номера выводимых постов — floor(id/N)*N...(floor(id/N)+1)*N
  • 0

#10 fedornabilkin

fedornabilkin
    Topic Starter
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 06 Июнь 2013 - 21:14

html-ka, ты что-то вообще странное написал :)
yury, N - это уже зависит от количества постов на странице. Ай, что-то мой мозг сегодня перегружен.
Вернемся позже к этому, задача довольно интересная.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru