Ru-Board.club
← Вернуться в раздел «Ikonboard v.2»

» Скрипт + клиент для Ib2 для офлайновой работы с форумом

Автор: Svarga
Дата сообщения: 07.07.2004 14:35
3BEP

Цитата:
1. Вы очень легко отказались от XML в качестве транспорта. Система построенная на жестком форматировании трудно модифицируется и расширяется. К тому же имея, например, скрипт выдающий список активных тем в XML его легко можно модифицировать для создания RSS или ленты новостей которую можно предоставить другому сайту(типа вместо баннера). И т.д.

XML — он хорош по-своему, но в данном случае, прежде всего критичен объём трафика и нагрузка на сервер. Т. е. XML здесь == увеличение объёма отправляемых данных в несколько раз.
Расширять и модифицировать — для этого есть шаблоны, где оговаривается порядок следования данных и что с ними делать при выводе...
А RSS проще сделать отдельным скриптом, т. к. чем меньше действий скрипт делает при выполнении запроса, тем меньше нагрузка на сервер (это, всё-таки, критично)...
Автор: ironwit
Дата сообщения: 07.07.2004 16:13
Svarga
а если решить как на rsdn.ru - подключить gzip сжатие?
Автор: 3BEP
Дата сообщения: 07.07.2004 17:36
ironwit

Так окончательную версию клиента можно писать когда есть стандарт по которому этот клиент работать будет. Smog'у отдельное уважение, как человеку решившемуся работать без стандарта.
А вообще - будут четко сформулированы требования к клиенту - так можно ж кинуть клич в Прикладное программирование

Svarga

Так это ж идет увеличение объема по сравнению с простым текстом с символьными разделителями. По сравнению с нынешним состоянием дел - это все равно будет уменьшение. К тому же будет запрашиваться данные поста будут только один раз одним клиентом. (Для примера - я на третью страницу этого топика заглядывал не меньше 15 раз, при каждой возможности при этом первый пост страницы качался заново 15 раз, плюс время необходимое для генерации этого поста). А XML симпатичен мне как раз по тому, что клиент может не следовать строгим стандартам и вполне пригоден для частого изменения. Т.е. объявили тег, ввели его поддержку в клиенте; расширили тег, клиент, пока не поддерживающий это расширение обрабатывает тег по старым правилам(но в базе сохраняет расширенную версию), после обновления клиента - вуаля! данные уже есть! можно обрабатывать по новым правилам. В случае с простым текстом - жуть. Ввели одно поле в середину строки, пока клиент не обновится - никто не может работать с сервером через клиента, старые базы требуют переработки или перезакачки...

Что-то я разухарился...
Автор: Svarga
Дата сообщения: 07.07.2004 18:02
ironwit

Цитата:
а если решить как на rsdn.ru - подключить gzip сжатие?

лишний расход ресурсов сервера, по-моему... хотя если написать что-то готовое, можно эксперементально добавить-потестить... С добавлением сложностей нет...


3BEP

Цитата:
Так это ж идет увеличение объема по сравнению с простым текстом с символьными разделителями. По сравнению с нынешним состоянием дел - это все равно будет уменьшение.

тогда может проще сделать облегчённую, скажем в пару раз, версию выдачи всех страниц и не мучаться с клиентами всякими?


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

Первый запрос клиента на сайт во врем каждой сессии — запрос индексной страницы, в ней передаются шаблоны страниц и данных... Можно это также прикрутить к остальным страницам, т. е. обновились шаблоны на сайте — всем их ненавязчиво впихивают наряду с запрошенными данными...
И никаких тэгов, их поддержки-неподдержки и необходимостей каких-то обновлений клиента...


XML это хорошо, но к чему он в данном случае? Смысл?
Автор: 3BEP
Дата сообщения: 07.07.2004 19:39
Речь, как я понимаю, идет о оффлайновом клиенте, который должен хранить все просмотренные посты. Обновлять только измененные. Закчивать новые.Давать возможность тем, кто сидит на диалапе спокойно обдумать ответ на заданный вопрос. Это для посетителей.

Для владельца форума - это уменьшение трафика(У клиента уже есть часть постов топика) и уменьшение нагрузки на сервер(оформление производится на машине клиента)

Значит, чтобы получить максимум, надо обеспечить сохранность базы постов у клиента, независимо от изменений на сервере. При этом надо обеспечить совместимость хранящихся у клиента данных с данными полученными с сервера. Оформление производится на машине клиента, по шаблонам полученным с сервера. (это была попытка сформулировать общие требования к системе клиент-сервер)

А если не нравится XML - вношу предложение обозвать язык IBML (Icon Board Markup Language)
Автор: Bozo
Дата сообщения: 10.07.2004 12:16
Все-таки rsdn@home пока лучший вариант из виденных мной. Почему бы не сделать аналог или договориться с rsdn и взять их исходники? Хотя их клиент с ikonboard работать не буит.
Да, приходится тащить .NET Framework, но потом удобно: подключился, скачал полмега и читай все ответы во всех выбранных форумах. Я бы тогда и от подписки по почте отказался - не видно, в каком письме ответ на какой постинг.Svarga
Автор: ironwit
Дата сообщения: 10.07.2004 13:25
Bozo

Цитата:
Все-таки rsdn@home пока лучший вариант из виденных мной. Почему бы не сделать аналог или договориться с rsdn и взять их исходники?


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

А насчет того что он лучший, с этим я согласен. Сам в нем сижу уже чаще чем на руборде, что во многом определилось именно удобством.
Автор: Bozo
Дата сообщения: 25.07.2004 15:01
А этот list.cgi на ru-board не включен? Хочется глянуть что он выдает
Автор: Smog
Дата сообщения: 25.07.2004 15:44
Svarga
я тут чего подумал-то

а дата_редактирования_файла_с_постами у тебя передается в topic.cgi а по идее она нам там не нужна, она нужна в list.cgi имхо, ведь мы ее будем использовать для того, чтоб сравнивать с датой на локальном компе (в базе) и если разные - то загружать сообщения с сервера, а это значит - обращаться к topic.cgi

надеюсь ты меня понял

Добавлено
Bozo

Цитата:
А этот list.cgi на ru-board не включен? Хочется глянуть что он выдает

нет не включен, пример его выдавания есть на предыдущей странице

Svarga
да, вот еще, поставил себе mySQL, скачал ZeosLib и не парюсь


Добавлено
вернее парюсь...
над таблицами, которые в базе будут и их структурой
1) если список форумов и/или список тем форума будет обновляться с сервера при каждом запросе, то нет смысла помещать их в бд
То есть я имею ввиду, что нужна иначе такая функция - вот лист.сги выдает список всех сообщений данного подфорума. А надо, чтобы он выдавал список сообщений с определенной даты, которая передается ему как параметр в запросе. Это реально осуществить?
2) список сообщений данной темы
на каждую тему у меня отдельная таблица, это нормально, что таблиц в одной базе может быть 225086 (число тем на данный момент на форуме)? - ничего там не откажет? кто мускл знает?. Так вот структура таблицы следующая:
поле name - тип varchar длина 20 - имя юзера
поле mes - тип blob - само сообщение
поле dat - тиП int - дата в формате, передаваемом скриптом
и поле numb - тип int - это типа счетчик
что добавить/исправить надо?
Автор: ironwit
Дата сообщения: 26.07.2004 07:49
Smog

Цитата:
на каждую тему у меня отдельная таблица, это нормально

это не нормально. В идеале конечно все посты в одну таблицу, но тяжко будет выбирать. Поэтому можно сделать все посты одного раздела хранить в одной таблице. Итого будет примерно сколько там таблиц?
Плюс в промежутке все таки хранить все названия топиков... Иначе как же их оффлайново смотреть? А это еще одна таблица.
ну и еще что наберется. Вообще можешь для примера просмотреть структуру таблиц ikonborda - может там чего еще увидишь?
Автор: Smog
Дата сообщения: 26.07.2004 09:20
ironwit

Цитата:
Итого будет примерно сколько там таблиц?

штук 30


Цитата:
ну и еще что наберется. Вообще можешь для примера просмотреть структуру таблиц ikonborda - может там чего еще увидишь?

гиде?
на установленном на локалхосте форуме?

Автор: ironwit
Дата сообщения: 26.07.2004 10:07
Smog

Цитата:
на установленном на локалхосте форуме?

угу
Автор: Smog
Дата сообщения: 26.07.2004 10:47
ironwit

Цитата:
угу

поставлю - посмотрю
вечером
Автор: Svarga
Дата сообщения: 26.07.2004 15:29
Smog

Цитата:
ну и еще что наберется. Вообще можешь для примера просмотреть структуру таблиц ikonborda - может там чего еще увидишь?

гиде?
на установленном на локалхосте форуме?

Ikonboard2 БД не использует...

Структура текстовых файлов с данными там такая:

/data/
allforums.cgi # данные о форумах (названия, описания, количество постов, модераторы и т. п.)
boardinfo.cgi #общая информация о конференции (адрес, название, различные настройки)
boardstats.cgi # последний зарегённый мембер, количество мемберов, тем, постов
membertitles.cgi # статусы мемберов и количество постов для достижения статусов
progs.cgi # названия скриптов
styles.cgi # CSS-стили
template.dat # шаблон конференции
register.dat # правила
onlinedata.dat # данные для "кто в онлайн?"
privacy.dat # слёзная история о том, как небезопасно пользоваться форумом

/forum1/
1.pl #инфа о первой теме в первом форуме (автор, дата и т. д.)
1.thd #текст постов первой темы первого форума
.... и т. д. по всем темам форума №1
lastpost.cgi # данные о последнем посте форума 1
list.cgi # данные о темах форума

/forum2/ #информация о втором форуме (структура=/forum1/)

.... # и т. д. по остальным форумам

/members/
имя_юзера.cgi #файлы с данными о юзерах

/messages/
юзерские ПМы



Добавлено

Цитата:
1) если список форумов и/или список тем форума будет обновляться с сервера при каждом запросе, то нет смысла помещать их в бд

Есть смысл


Цитата:
2) список сообщений данной темы
на каждую тему у меня отдельная таблица, это нормально, что таблиц в одной базе может быть 225086 (число тем на данный момент на форуме)? - ничего там не откажет?

Не нужно так всё разносить... Посты можно все хранить в одной таблице, в отдельной информацию о них и т. д.

Короче, не есть хорошо, когда структура базы меняется в процессе её эксплуатации (это я об отдельных таблицах для тем).

Для примера, список таблиц phpBB:

Цитата:
auth_access
banlist
categories
config
confirm
disallow
forum_prune
forums
groups
posts
posttext
privmsgs
privmsgtext
ranks
search_results
search_wordlist
search_wordmatch
sessions
smilies
themes
themename
topics
topicwatch
user_group
users
vote_desc
vote_results
vote_voters
words

Подробно расписывать не буду, думаю идея понятна...


Цитата:
То есть я имею ввиду, что нужна иначе такая функция - вот лист.сги выдает список всех сообщений данного подфорума. А надо, чтобы он выдавал список сообщений с определенной даты, которая передается ему как параметр в запросе. Это реально осуществить?

Сделаю.
Цитата:
а дата_редактирования_файла_с_постами у тебя передается в topic.cgi а по идее она нам там не нужна, она нужна в list.cgi имхо,

нужна: с помощью неё мы узнаём в случае, если в теме не было новых постов, производились ли редактирования постов...

Добавлено

Цитата:
topic.cgi а по идее она нам там не нужна, она нужна в list.cgi имхо,

не дочитал, сорри
исправлю.
Автор: Smog
Дата сообщения: 27.07.2004 03:59
Svarga
ну тогда, по предложению ironwitа, делаю по таблице на каждый подфорум
Со структуой таблицы надо подумать, вообще алгоритм на данный момент попробую описать с процесса первого запуска (учитывая, что MySql установлен и настроен):

1) соединяемся с MySql сервером
2) создаем бд forum
3) создаем первую таблицу - forumsall
в ней (все названия условные):
поле имя подфорума, поле название подфорума, поле модератор подфорума1 вопрос - тут нужна дата/автор последнего сообщения в подфоруме? если нужна - то эту таблицу тоже нужно синхронизировать, поэому надо будет добавить дату синхронзации, число тем и количество сообщений в каждом подфоруме.
4) При соединении с рубордом всегда синхронизируем таблицу forums
5) генерим хтмл наподобие ht_p://forum.ru-board.com/board.cgi (то есть список форумов). Ждем пока пользователь выберет подфорум. Он выбирает, делаем запрос к крипту forums.cgi (естественно с параметром client=1) . Создаем таблицу, которая называется forums_{номер_подфорума}.
В ней:
поле номер темы, поле статус темы поле имя темы, поле описание темы, поле автор темы, поле число ответов, поле последний ответ, поле дата и время последнего ответа, поле число просмотров темы (а почему бы и нет?),поле дата редактирования файла с постамих, поле дата синхронизации таблицы
заполняем ее полученными данными из скрипта
также создаем таблицу topic_{номер_подфорума}
в ней:
поле номер темы, поле номер поста, поле имя юзера, поле текст поста, поле дата поста, поле показывать подпись, поле показывать смайлики

в которую вносим сообщения из выбранной пользователем темы, полученные от topic.cgi предварительно удалив из базы все строки, где поле номер темы совпадает с синхронизируемым
6) генерим хтмл


Естественно перед созданием таблиц проверяем их на существование, а перед тем как делать запрос к скрипту проверяем два условия - 1) есть ли соединение с интернетом(или стоит ли галочка в настройках "работать автономно" ) 2) сверяем дату последнего сообщения, полученную из board.cgi для требуемого подфорума с датой последнего сообщения подфорума из таблицы forums локальной базы. Если они не совпадают и мы работаем не автономно - делаем синхронизацию этого подфорума.


*Под синхронизацией подфорума с таблицей forums_{номер_подфорума} локальной базы понимается запрос к скрипту forums.cgi, прием от него данных, удаление всех данных из таблицы forums_{номер_подфорума} локальной базы и запись полученных от скрипта данных в таблицу.

**Под синхронизацией подфорума с таблицей topic_{номер_подфорума} локальной базы понимается запрос к скрипту topic.cgi, прием от него данных, удаление всех данных из таблицы topic_{номер_подфорума}, где поле номер темы совпадает с синхронизируемым, локальной базы и запись полученных от скрипта данных в таблицу.



Вроде как мог описал, итого, что нам не хватает:
1) состояние_темы и дату_редактирования_файла_с_постами надо выдавать в forums.cgi
2) из topic.cgi:
Цитата:
имя_юзера|аватар|статус|дом_страница мыло aim icq#|кол-во_постов|дата_регистрации|подпись
имя_юзера|... /* и т. д. со всеми остальными постившими */

№темы|название_темы|описание|состояние_темы|количество_постов|автор|дата_первого_поста|автор_последнего_поста|дата_последнего_поста

дата_редактирования_файла_с_постами

имя_юзера|текст_поста|дата_поста|показывать_подпись|показывать_смайлики
имя_юзера|.... /* и т. д. со всеми остальными постами */

имхо не надо тут строки

Цитата:
№темы|название_темы|описание|состояние_темы|количество_постов|автор|дата_первого_поста|автор_последнего_поста|дата_последнего_поста

дата_редактирования_файла_с_постами

вообще выдавать
3) ну и аську можно твоя на всякий случай в приват мне скинуть
4) думаю над таблицей users и smilies


Вроде кое-что начинает проясняться


Цитата:
Ikonboard2 БД не использует...


поэтому у нас нет поиска?
Автор: ironwit
Дата сообщения: 27.07.2004 07:58
Насчет генерирования хтмл, мне к примеру больше нравится fido подобній интерфейс. То есть кратко говоря - почта

Опять же для примера rsdn.ru клиент
Автор: Smog
Дата сообщения: 27.07.2004 15:05
ironwit

Цитата:
Насчет генерирования хтмл, мне к примеру больше нравится fido подобній интерфейс. То есть кратко говоря - почта

Опять же для примера rsdn.ru клиент

это уже детали
в остальном как?
Автор: Svarga
Дата сообщения: 27.07.2004 15:28
Smog

Цитата:
это уже детали
в остальном как?

А зачем под каждый раздел отдельную таблицу? Это не есть хорошо, т. к. при добавлении нового форума программе придётся добавлять новую таблицу, т. е. менять структуру базы...

Добавлено

Цитата:
3) создаем первую таблицу - forumsall
в ней (все названия условные):

Сразу все таблицы создавать желательно...
А потом только вносить/считывать/удалять данные...
Автор: Smog
Дата сообщения: 27.07.2004 15:50
Svarga

Цитата:
т. к. при добавлении нового форума программе придётся добавлять новую таблицу, т. е. менять структуру базы...

а это проблема?

Цитата:
Сразу все таблицы создавать желательно...
А потом только вносить/считывать/удалять данные...

ну так сделаем
Автор: ironwit
Дата сообщения: 09.08.2004 15:51
Svarga

ты не мог бы выложить ссылку на последнюю версию твоих скриптов? А еще лучше текстовый файлик с примером вывода этих самых скриптов... Чтобы мне иконбоард не ставить...
Посмотрю что там с регэкспами...

Спасибо
Автор: Smog
Дата сообщения: 28.08.2004 13:18
Svarga
как там дело с переписыванием скриптов? я вернулся и готов продолжить работу
Автор: ironwit
Дата сообщения: 28.08.2004 13:22
Smog
там мое сообщение на предыдущей странице читал? Есть у тебя пример вывода?
Автор: Smog
Дата сообщения: 28.08.2004 14:40
ironwit
дык в том-то и дело, что после переписывания скриптов теперь уже вроде бы по окончательно установленному стандарту - весь вывод почти меняется
Автор: ironwit
Дата сообщения: 30.08.2004 08:16
Smog

Цитата:
дык в том-то и дело, что после переписывания скриптов теперь уже вроде бы по окончательно установленному стандарту - весь вывод почти меняется

тяжело тебе придется
А когда скрипты перепишутся более менее окончательно?
Автор: Smog
Дата сообщения: 30.08.2004 12:44
ironwit

Цитата:
тяжело тебе придется

судьба такая у жирафов

Цитата:
А когда скрипты перепишутся более менее окончательно?

а я об этом и спросил в предпредпоследнем посте
Автор: Smog
Дата сообщения: 01.09.2004 17:19
ironwit
может он в отпуске?
Последняя запись Объединимся против Америки - 10-08-2004 11:28
Автор: ironwit
Дата сообщения: 02.09.2004 07:17
Smog

Цитата:
может он в отпуске?

ХЗ, будем ждать. А что делать то?
Автор: Timon_Crazy
Дата сообщения: 29.12.2004 17:41
к сожелению тема углохла.
здря.

Smog ironwit

не могли бы дать своих исходников? если они живы еще.
есть мысль таки дописать клента, если он еще акутален.

и почеум бы не писать как плагин к миранде?

Автор: ironwit
Дата сообщения: 30.12.2004 17:43
Timon_Crazy
у меня уже точно нет, попробуя потянуть по старым ссылкам, если нет, выйди еще на veprus.

Добавлено
Timon_Crazy
упс. не глянул внимательно в тему, вспомнил тут одну разраюотку мафия... А так от этого есть исходники у смога, но пропал полностью наш специалист на той стороне (сварга)
Автор: Timon_Crazy
Дата сообщения: 31.12.2004 13:45
ironwit

мысли идут.
пытаюсь "скрестить" с врайтером. будет хорошая связка.

Страницы: 1234

Предыдущая тема: Расскажите о своем форуме на базе IkonBoard V.2


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.