Автор
|
Тема: Форум v4
|
sergejh
|
написано:29-03-2005 16:06:45
|
61
|
малюк А почему градация рейтингов маленькая? Только 1 и 2 чтоли? А от 1 до 10? Или я что-то не понял... Вот ставит один модератор +1. Второй читает сообщение - и тоже ставит +1 и т.д. Количество баллов увеличивается же.
ц и т а т а
|
Илюхин
|
написано:29-03-2005 21:49:56
|
62
|
Новый форум, несомненно, нужен. Это ведь форум про транформацию. Вот и намерение у него такое - вечная трансформация, стремление вдаль и ввысь.. Из одной сборки в другую. :))
малюк
Есть интересная задумка - написать клиент для форума. Локально - программа-клиент, а на сервере - скрипт, к которому обращается клиент за обновлениями. Т.е. вся база сообщений находится на машине пользователя, клиент лишь получает с сервера новые сообщения, различные изменения (удалено, тема закрыта и т.д.), новые анкеты, личные сообщения (если такое реализовать), даже может быть новости на сайте и т.п.
Плюсы: значительная экономия трафика и времени, возможность читать форум в офлайн и другие удобства (любой интерфейс, любой поиск, киллист и многое другое). Особенно удобно тем, у кого диал-ап: подключился - загрузил новое - отключился...
Проблема в том, что в ближайший месяц-полтора у меня не будет свободно времени. Но если идея понравилась, можно пока обсудить протокол обмена данными.
ц и т а т а
|
малюк
|
написано:29-03-2005 22:54:59
|
63
|
Илюхин Если есть желающие писать клиент (я точно не буду :)), то могу запросто устроить доступ к данным через xml-rpc. Если это не катит, то можно soap ну или даже с wsdl.
Еще можно сделать доступ по NNTP и тогда проблема клиента решается сама собой.
ц и т а т а
|
dt
|
написано:30-03-2005 00:55:22
|
64
|
малюк С одной стороны, лучшее - враг хорошего. Но с другой - надо же знать, что мы теряем? Нужно бы провести публичное тестирование и там уже решить - нужно оно, или как обычно. Закрытое тестирование, в котором принимает участие горстка людей, по сути, ничего не решает. Многим просто лень прикладывать усилия большие нажатия на ссылку для участия в нем, поэтому в тестировании принимают участие далеко не все, кому это на самом деле интересно (я - один из примеров :)) и кто мог бы высказать свое мнение и дать действительно дельные советы и рекомендации. Ну и, в конце концов, можно было бы выяснить мнение "нужно - не нужно" действительно значимого для принятия решения процента посетителей этого форума, а не горстки "избранных" :)
ЗЫ: хотелось бы видеть функцию "новые сообщения в теме одной страницей" в полном виде и в облегченном ("версия для печати"), или хотя бы в одном из них.
ЗЗЫ: система рейтингов пользователей, автоматически вычисляемая по рейтингам модерирования их сообщений, определенно имеет смысл. Я тут немного покумекал :) В принципе, вот такой кусок кода (на перле) вполне может подсчитывать рейтинг пользователя при каждом назначении рейтинга его сообщению модератором:
if ($total>500) {$div=1/500;} # учитываем не более 500 сообщений elsif ($total<50) {$div=1/50;} # и считаем, что их не менее 50, чтобы у новичков рейтинг сильно не скакал else {$div=1/$total;} $rating=$rating*(1-$div)+$this*$div*50;
где: $total - общее количество сообщений пользователя, $rating - его рейтинг (в формате с плавающей запятой, короче не целое число), $this - рейтинг, выставленный сообщению. Рейтинг при показе (в профиле или еще где) округляется до целого, при этом он может принимать значения от -100 до 100 (при рейтингах сообщений от -2 до 2). Если это покажется слишком много, можно заменить "...$this*$div*50;" на "...$this*$div*5;", например, или подставить туда любое другое удобное число вместо "50". Такой рейтинг, имхо, будет отображать если не реальное "качество" пользователя, то, по крайней мере, отношение к нему модераторов :) Что тоже, как ни крути, показатель :) Кроме того, его нереально "накручивать", что тоже дорогого стоит.
Илюхин Что-то подобное обсуждалось в форуме iXBT. Чем там закончилось дело я не в курсе, последний раз туда очень давно заглядывал. В том виде, в каком я это застал, со стороны сервера был просто текстовый файл, отдаваемый по http, в котором был список последних сообщений, а также кривой (написанный на коленке за полчаса) клиент, который его читал и выдавал в более-менее приличном виде. Если не выдумывать ничего нового, а отталкиваться от этого метода, мне видится скрипт, который по запросу от клиента выдает нужную ему информацию. Все взаимодействия производятся через http. По сути скрипт ничем не отличается от того, что работает с броузером, только не отвлекается на всякую мишуру - интерфейс с пользователем (формы, кнопочки...), оформление и т.п.
ц и т а т а
|
wayfarer
|
написано:30-03-2005 07:30:23
|
65
|
малюк Еще можно сделать доступ по NNTP и тогда проблема клиента решается сама собой. Разумно! Лучший вариат по-моему мнению! (дерево ветвей желательно видеть!)
ц и т а т а
|
AesirLoki
|
написано:30-03-2005 10:54:51
|
66
|
dt система рейтингов пользователей, автоматически вычисляемая по рейтингам модерирования их сообщений, определенно имеет смысл "Они там на западе из кожи вон лезут, что бы такое придумать - о нас. Только придумают - а это у нас уже в газетах. Потому что мы это воплотили еще до того, как они придумали" (С) Петросян
Блин, воистину, с некоторыми людьми шутить нельзя :( Им в ответ на их бредовую идею отвечаешь иронически, доведя умеренно абсурдную идею до вообще полного абсурда - а им она в таком виде нравится даже больше. Пипец! :(
Я тут уже пытался эту тему развить, повторяю еще раз: прежде чем скрипты кодить, надо сначала подумать.
Малюку, согласно правилам, отвечу в "Обсуждении модераторов", но суть от этого не меняется. Здесь
ц и т а т а
|
малюк
|
написано:30-03-2005 13:20:12
|
67
|
Те, кто пользуется транслитом ОТМЕТЬТЕСЬ В ЭТОЙ ТЕМЕ. Он вообще нужен?
ц и т а т а
|
малюк
|
написано:30-03-2005 13:25:22
|
68
|
dt Этот тест закрытый потому что это альфа. И так вопросов "а почему того еще нету?" достаточно, а было бы больше народу вообще проблема была бы. Будет форум в стадии бэты - будет и тестирование публичное. Это недели через полторы.
Подсчет некоего усредненного рейтинга имеет смысл в информативных целях, тот рейтинг пользователя о котором говорил я - административная мера.
ц и т а т а
|
pantera120
|
написано:30-03-2005 14:09:16
|
69
|
на щет транслита...я пользуюсь. Во всяком случае п`таюсь. ВОт к вам просьба: сделайте транслит на форуме таким-же как в чате. А то проблема с мягким знаком. Там получается, тут нет
ц и т а т а
|
малюк
|
написано:30-03-2005 16:34:07
|
70
|
Уже реализовал всю сетевую типографику за вычетом английских кавычек и написания имен-отчеств, так как на этом форуме это редко встречается.
Автоматически выставляются пробелы после знаков препинания, после точки ставится длинный пробел.
Оформление текста - *жирный текст*, /курсив/, _подчеркнутый_, +цитирование+.
Переносы строк преобразуются в <br/> двойные переносы означают <p></p>
Ссылки преобразуются автоматически.
Более 2х точек подряд преобразуется в троеточие.
Что еще этого порядка надо сделать?
ц и т а т а
|
малюк
|
написано:30-03-2005 16:35:42
|
71
|
pantera120 Я вот думаю, что наверное транслитчики пусть где-нить в вебе преобразовывают в нормальный вид свои тексты и тогда постят.
ц и т а т а
|
pantera120
|
написано:30-03-2005 17:08:31
|
72
|
т` так больше не думай. Не хорошо так думать. Т` так думаешь, только потому что сам в етом не нуждаешся и в компмах разбераешься...
ну да как хотите...
ц и т а т а
|
sergejh
|
написано:30-03-2005 18:11:30
|
73
|
малюк А я думаю, что для универсальности надо бы транслит. Даже я сделал его на этом форуме, не поленился! :)
ц и т а т а
|
Илюхин
|
написано:30-03-2005 18:39:08
|
74
|
Кому нужен транслит - http://www.translit.ru/
малюк
Желающий писать клиент есть (в моем лице :)). Что касается доступа к данным.. Я согласен с dt - лучше использовать простой http запрос-ответ. Конечно, принципиальных препятствий использовать xml-rpc или soap нет (Delphi, на которой работаю, всё это поддерживает), но я с ними не работал, поэтому мне гораздо проще будет организовать получение данных в текстовом виде через http.
Примерный синтаксис могу предложить такой:
Сразу оговорюсь, под событием я подразумеваю такие вещи, как - новое сообщение (тема); - изменение существующего сообщения (темы): удалено модератором (восстановлено), перенесено туда-то, тема закрыта (открыта), тема переименована etc; - регистраци новой анкеты либо изменения в существующей (изменения статуса юзера); - новость на сайте (если прикрутить такую фичу к скрипту форума).
1. Клиент отправляет запрос: "http://www.nagualism.ru/ef4/forum/client.php?getnew=date1"
где date1 - дата-время последнего обновления в базе клиента (допустим, в unix формате по Гринвичу)
Ответ сервера: "lastdate=date2&count=n"
где date2 - дата-время последнего обновления на сервере; n - общее число обновлений с date1 по date2.
Вместо дат можно использовать id, если его присваивать каждому событию (типы я перечислил).
2. Клиент парсит ответ и, если n > 0, отправляет на сервер следующий запрос: "http://www.nagualism.ru/ef4/forum/client.php?getfrom=date1&to=date2"
В ответ получает все события с date1 по date2, каждое из которых следующего формата: "$id=xxx&date=xxx&type=b&len=xxx&content=<sss>$"
"$" - разделитель между отдельными событиями; id - ид. номер события (если id будет только у сообщений в форуме, то его здесь не будет); date - дата-время; type - тип события; len - размер в байтах содержания события; content - содержание события, длина "sss" задается в len.
Далее можно продумать содержание "sss" для каждого типа события.
ц и т а т а
|
малюк
|
написано:30-03-2005 19:12:16
|
75
|
Илюхин Всё это хорошо в теории, на практике же нужно еще договорить о escape-sequences итп, потом еще отлаживать чтобы обе стороны верно это обрабатывали, а с xml-rpc всё проще. В псевдокоде, (а на пайтоне почти так и выглядит):
serv=XMLRPCServer('xmlrpc.nagualism.org.ru/forum') events=serv.getEvents(since=last_checked) for event in events: if event['type']=='new message': #обработка нового сообщения message=serv.retrieveMessage(event['uid']) #дальше код твоего UI ui.addMessage( topic_id=message['topic'], text=message['text'], author=message['author'], time=message['time']) elif event['type']=='new topic': if event['author'] in ui.get_kill_list(): continue messages = serv.retrieveMessages(topic=event['uid']) #..... #в общем ясно
ц и т а т а
|
|
|