Intellect Board Pro
Расширяемый движок форума с разделами разных типов
Объявление
Вышла версия 3.05 с фотогалереей и поддержкой PostgreSQL и SQLite.
Перейти к скачиванию
Привет, гость!

Система адресации постов и вложений

Есть серьёзные недостатки...

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Страницы:
  • 1
  • 2
Распечатать
_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
. Редактировалось 12 раз, последний — #1
Перекрёстные ссылкиУ данного пользователя нет прав размещать ссылки!



  

Пару раз уже поднимал этот вопрос. Вопрос серьёзный. Если его не решить, это скомпрометирует форум. Но, кажется,  решения лежат в области модернизации основ форума: его структуры данных. Вот и думаю: может быть, и не начинать этот разговор? Интересно, что админ скажет? Не может быть, чтобы разработчик не знал об этих проблемах...

--

В любом случае, вот, одно из моих предложений: каждому посту присваивать три url:


Вместо одной сегодняшней (в правом верхнем углу) для каждого поста нужны три типа ссылок (или три текстовых поля, содержащих эти url):

1)      По идентификатору поста. При этом в броузере пост должен открыться отдельной страницей или фреймом. То есть, должно открываться только это отдельное сообщение. Эта же ссылка будет использоваться в наборах, создающих виртуальные темы: каждый пользователь сможет надёргать сообщения из разных форумов, и, с помощью форумского движка — разместить их на веб-странице. Древовидная навигация покажет не только краткое описание каждого поста, но и пиктограммку соответствующего сайта (откуда пост был взят). При этом допускается использовать даже локальные ссылки (например, на пост с локального жёсткого диска, или из кэша).

2)      Ссыль на страницу, где в данный момент расположен соответствующий пост. При этом, адрес этой ссылки не должен идентифицировать эту тему (в общем, не должен специфицировать родительский раздел). Движок сам определит эту родительскую тему.

3)      Ссылка на тему, где пост был опубликован или какое-то время присутствовал. Вот в этой ссылке идентификатор темы присутствовать обязан! Если движок, получив такой адрес, не обнаружит указанного в нём поста, он  выдаст страницу с индикацией в ней пустого места (даже если обычно соответствующая страница этот след поста не отображает). По этой индикации можно понять: куда перемещён пост, когда удалён, и в чём была причина этой движухи.

--

4)      И ещё один особый тип гиперссылок можно выделить отдельным пунктом: это множественная ссылка на фрагменты сообщений. Переход по каждой такой ссылке осуществляется в два этапа: сначала 'прыгаем' к навигационному дереву ссылок. Вторым шагом, выбирая какой-либо узел этого дерева, переходим к соответствующему фрагменту html-страницы.


О возможности выбрать на 'чужой' странице произвольный фрагмент: (#1)   — Как сгенерировать ссылку на произвольный фрагмент веб-страницы?

4X_Pro
Основатель проекта
Всего сообщений: 401
Зарегистрирован: 22 сент. 2014 г., 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 15
#2
_1_ написал(а):
При этом в броузере пост должен открыться отдельной страницей или фреймом. То есть, должно открываться только это отдельное сообщение.

Уже не раз писал, что в форуме этого не будет. В подавляющем большинстве случаев это не нужно рядовым пользователям (а в ряде случаев и вводит их в ступор, вызывая непонимание, как перейти к полной теме, сам не раз ругался, сталкиваясь с подобным на форумах, работающих на двух популярных коммерческих движках). Кроме того, если кто-то вздумает скачать сайт wgetом или Teleportом или еще чем-то подобным большой форум, это запросто может положить сервер (или сильно замедлить, не говоря уж о траффике), а с точки зрения SEO это откровенно вредно.
_1_ написал(а):
Эта же ссылка будет использоваться в наборах, создающих виртуальные темы: каждый пользователь сможет надёргать сообщения из разных форумов, и, с помощью форумского движка — последовательно разместить их на веб-странице.

Идея виртуальных тем — в принципе хорошая. Но только в пределах отдельно взятого форума. А за его пределы информацию можно просто скопировать, если уж так хочется.
И в принципе, виртуальные темы можно реализовать иначе, создав, например, тег вида [post=идентификатор], позволяющий импортировать содержимое одного поста в другой (правда, это сразу же появятся дополнительные запросы к базе).
_1_ написал(а):
При этом, адрес этой ссылки не должен идентифицировать эту тему (в общем, не должен специфицировать родительский раздел). Движок сам определит эту родительскую тему.

В принципе, даже сейчас ссылки вида /раздел/тема/post-номер.htm можно заменить что-то вроде /posts/номер.htm, причем с технической точки зрения сделать это сравнительно легко. Но реально при заходе на них будет делаться 301-ый редирект на тему, в которой данное сообщение находится в данный момент с промоткой к нужному сообщению, а не отдельное сообщение. Пожалуй, включу это в список возможных доработок.
_1_ написал(а):
Ссылка на тему, где пост был опубликован или какое-то время присутствовал. Вот в этой ссылке идентификатор темы присутствовать обязан! Если движок, получив такой адрес, не обнаружит указанного в нём поста, он  выдаст страницу с индикацией в ней пустого места (даже если обычно соответствующая страница этот след поста не отображает). По этой индикации можно понять: куда перемещён пост, когда удалён, и в чём была причина этой движухи.

Идея хорошая, но слишком сложно реализуемая. Точнее основная сложность в том, чтобы не учитывать эти сообщения в нумерации страниц. Иначе, скажем, при разрезании 20-страничной темы, скатившейся в последних 5 страницах преимущественно в ругань будет получаться 5 страниц сообщений вида "Это сообщение было перенесено туда-то" или "сообщение удалено". Вряд ли пользователям форума понравится листать по несколько страниц подряд подобного.

Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
#3
4X_Pro написал(а):
Идея хорошая, но слишком сложно реализуемая. Точнее основная сложность в том, чтобы не учитывать эти сообщения в нумерации страниц. Иначе, скажем, при разрезании 20-страничной темы, скатившейся в последних 5 страницах преимущественно в ругань будет получаться 5 страниц сообщений вида "Это сообщение было перенесено туда-то" или "сообщение удалено". Вряд ли пользователям форума понравится листать по несколько страниц подряд подобного.
Сложности можно обойти сразу с двух сторон:
1) Невзрачными спойлерами (даже без текста). Они наглядно покажут следы былой активности, но без акцента.
2) Указывать только те спойлеры отсутствующих постов, чьи идентификаторы явно присутствуют в url (например, в качестве параметров).

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
. Редактировалось 14 раз, последний — #4
<-- от 4X_Pro:
 

                         















     _1_ написал:  
   
                                                                 





При этом в броузере пост должен открыться отдельной страницей или фреймом. То есть, должно открываться только это отдельное сообщение.



Уже не раз писал, что в форуме этого не будет. В подавляющем большинстве случаев это не нужно рядовым пользователям (а в ряде случаев и вводит их в ступор, вызывая непонимание, как перейти к полной теме, сам не раз ругался, сталкиваясь с подобным на форумах).


Ну, непонятность оформления — это вопрос дизайна и привычки.

                 




Виртуальные темы обязательно появятся. Тогда и будет выработано интуитивно-понятное соглашение об отображении отдельных постов.
Возможно, для понятности пригодится плавающая навигация (подобно сегодняшним социальным кнопкам): иерархически-сворачиваемое дерево наглядно отобразит, где в структуре обсуждений расположен текущий пост.


-

4X_Pro написал(а):
Кроме того, если кто-то вздумает скачать сайт wgetом или Teleportом или еще чем-то подобным большой форум, это запросто может положить сервер (или сильно замедлить, не говоря уж о траффике)

Тут есть несколько красивых решений:

1) Приоритетность обслуживания запросов определять по репутации пользователей. Чем человек был полезней, тем шустрее будет для него шевелиться перегруженный форум.

2) Текстовый режим сообщений. Часто читаю форумы говорилкой (с телефона). Сегодня для этого приходится делать много лишних телодвижений:   постранично скачивать тему,   соединять её,    переводить в текстовый формат,     через поиск и замену удалять текст системной информации форума.
А как должно быть? - скачал txt-архив конкретной темы — и не мучай ни ни себя, ни движок форума. Архивы отдавать с низким приоритетом обслуживания, только если движок не перегружен запросами обычного броузинга.

3) В этом пункте пофантазирую...   Специальный режим кэширования: скачал архив с конкретной темой, подключил его к броузеру — и все не_изменённые посты будут появляться с локального диска. Нагрузка на форум снизится, и пользователю удобно: скорость просмотра страниц возрастёт. Именно для обновления конкретного поста должна работать основная гиперссылка в правом верхнем углу каждого сообщения. Какие посты обновлялись — цветовой маркировкой покажет плавающая навигация: схематичное иерархически-сворачиваемое отображение структуры обсуждений.

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
#5

_1_ написал(а):
каждому посту присваивать три url  

Не только для сообщений но и для вложенных файлов могут потребоваться разные типы ссылок:
 
1. Сейчас уже действует ссылка, отслеживающая версию файла. Даже если в одном посте аттачем разместить этот файл ещё несколько раз, — каждой новой копии будет присвоена новая гиперссылка.

2. Нужна возможность подмены файла: чтобы по старой ссылке открывался новый файл. Такие ссылки будут задействованы наиболее часто потому что с их помощью можно обеспечивать целостность данных: с разных сайтов и форумов ссылаться на один и тот же аттач. Если аттач заменить новым, старые ссылки будут вызывать новый файл.

 
4. Иногда нужно указывать не на сам файл, а на место его расположения: переходом по такой ссылке сфокусироваться на аттаче, и как-то выделить его в сообщении.
 
==
            Пусть каждый аттач автоматически будет доступен по любой из этих ссылок.

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
. Редактировалось 5 раз, последний — #6
Может возникнуть вопрос об обратных ссылках: откуда ссылаются на конкретный пост, тему или вложение?







Как решить эту задачу?
Наверное, можно через расширенный синтаксис поисковика?

Но движок форума должен предоставлять такую информацию при помощи собственных инструментальных средств.
Аналогично, он должен быть в состоянии ответить: где (в каких постах) фигурирует файл или рисунок, прикреплённый к конкретному сообщению.


Пять лет назад я решил эту задачу локально…, при помощи такого вот "кубика-рубика"  (см. вложения)

каждая кнопочка уже в своей надписи информирует, сколько раз тот или иной информационный объект используется
  1. как главный,
  2. как подчинённый,
  3. и как связь между главным и подчинённым.
Подробности можно просматривать, нажав соответствующую кнопку.
Прикрепленные файлы:

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
. Редактировалось 6 раз, последний — #7
Как по ссылке предпросмотра картинки определить пост, где она опубликована?

Например, картинка имеет ссылку http://www.intbpro.ru/f/up/1/pr/240x180/286-82fe5a6a9e64.PNG
Как найти полную версию этой картинки?

Самый простой способ: задать огромные размеры предпросмотра.
Например: http://www.intbpro.ru/f/up/1/pr/ style="color: #cc6666">24000x1/286-82fe5a6a9e64.PNG
-- при этом картинка будет показана "в полный рост" (но не увеличена сверх своего реального размера).


-

Способ №2

алгоритм:
1)      скопировать адрес превьюшки ( http://intbpro.ru/f/up/1/pr/240x180/286-82fe5a6a9e64.png )http://www.intbpro.ru/f/up/1/286-82fe5a6a9e64/zng52EDD.png
2)      в этой строке удалить блок ( /pr/240x180, и вместо .png поставить «слэш»), в результате, получен адрес каталога (папки)
3)      попытаться загрузить этот адрес; при этом, рисунок будет загружен на локальный диск
4)      скопировать имя этого рисунка (в данном случае, zng52EDD.png), и добавить его к имени каталога (адрес каталога получен в п.2 ); это и есть адрес полноформатной картинки (но не её исходное имя):
http://www.intbpro.ru/f/up/1/286-82fe5a6a9e64/zng52EDD.png    — обратите внимание: результирующее имя не равно исходному. Но полученный графический адрес можно использовать внутри тегов ( [img] ... [/img] )

Исходное имя (если оно не латиницей) бывает намноого длиннеее: http://www.intbpro.ru/f/up/1/286-82fe5a6a9e64/X1%20+%20X2%20+%20X3%20(%D0%B4%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%20%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8).PNG
 
-
 

Остался вопрос:           как найти (пост), где опубликован файл?

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
#8
4X_Pro написал(а):
Идея виртуальных тем — в принципе хорошая. Но только в пределах отдельно взятого форума. А за его пределы информацию можно просто скопировать, если уж так хочется.
Если автор изменит свой пост на 'чужом форуме', то в 'копиях' эти изменения не отобразятся.

Вообще, в технологиях сегодняшних форумов нет трёх важных компонентов:
1) Взаимная интеграция (единое информационное пространство).
2) Платёжно-оценочные сервисы.
3) Плавающая навигация (сетевым деревом) и виртуальные темы

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
. Редактировалось 2 раза, последний — #9
<  от 4X_Pro:
Идея виртуальных тем — в принципе хорошая. Но только в пределах отдельно взятого форума.

Вообще не согласен! Уже не раз говорил: для многих задач нужен форум-посредник, позволяющий не только модернизировать разномастные форумы без их замены, но и объединяющий их в единое информационное пространство.

Зачастую, форумские обсуждения требуют внешнего структурирования, и это вовсе не обязательно достигать с помощью разделения огромных тем. Для  структурированиий достаточно ссылочных сетевых деревьев.

Конкретный пример: на древнем форуме обсуждается разработка нового редактора блок-схехм
У данного пользователя нет прав размещать ссылки!

Его будут обсуждать в течение нескольких лет. Вопросов – море! Автор программы ревностно следит за оффтопами, так как боится (и правильно делает!)), что его тема станет неподъёмной. Графическая структура ссылок, собирающая в себя виртуальные темы (в рамках многостраничной ветки), помогла бы мягко решить вопрос оффтопов.

Да и здесь, на intbpro.ru, такой список-план не помешал бы: надо оформить направления совершенствования форумского движка. Сделать план не списком, а иерархически-сворачиваемой картой ссылок. Если такая карта "плавает" или находится в главном окне фрейма, то работать с ней удобнеее, чем с обычным текстовым списком.

Я уже тут запутался даже в собственных предложениях. Скоро повторяться буду, как маразматик. Или хоть у себя на компьютере такую структуру сделаю.

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1
. Редактировалось 2 раза, последний — #10
<  от 4X_Pro:


nikola2278 написал(а):



Вставка ссылки на пост из которого берется цитата.


Рассматривал такой вариант еще когда делал BBCodes, но пока отказался. Основная сложность — в определении номера страницы, на которой находится цитируемое сообщение (который, к тому же, у разных пользователей может быть разным в зависимости от выставленного в настройках числа сообщений на страницу). Для этого нужно либо дополнительный запрос делать к базе (что является очень плохим решением, так как если на странице двадцать цитат, число запросов на эти 20 и вырастет), либо рушить структуру URLов, т.е. вместо /раздел/тема/post-номер.htm делать что-то вроде /posts/post-номер.htm с последующим редиректом в тему.

Номер сообщения в базе — так и планировалось. Но, как я уже писал не раз, вывода одного сообщения на страницу не будет в прицнипе.

AJAX-запрос для предпросмотра редактируемых сообщений уже есть! Аналогичным способом можно сделать запрос для 'индивидуального' просмотра существующего поста.

У каждого поста должно быть выпадающее меню с тремя типами ссылок (). Если пользователь применяет эти ссылки неправильно, то его за это наказывать (как сейчас Вы наказываете каждого новичка, отключая ему саму возможность применять гиперсылки)). Но остальным-то зачем мешать, лишая их разнообразия ссылочных воможностей?

--

Вот, конкретный пример ненужных наказаний:

       






ПнБ в моей заглавной теме ошалел от банов, и совсем не к месту разместил в ней свой пост (У данного пользователя нет прав размещать ссылки!)

Совсем удалять его сообщение я бы не хотел... Но и отвечать на него в той теме - значит, испортить её.
Выходом было бы переместить ненужное сообщение (++ ответы на него), или частично скрыть его в невидимой под-ветке (чтоб в той теме остался лишь малозаметный 'след' со ссылкой). Это будет ссылка третьего типа (п.3), но, к сожалению, такие ссылки в этом форуме пока не возможны.

Следующие сообщения >>>
Страницы:
  • 1
  • 2
Распечатать

У вас нет прав для отправки сообщений в эту тему.