Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Скрипт + клиент для Ib2 для офлайновой работы с форумом

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6

Открыть новую тему     Написать ответ в эту тему

Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
3BEP

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

XML — он хорош по-своему, но в данном случае, прежде всего критичен объём трафика и нагрузка на сервер. Т. е. XML здесь == увеличение объёма отправляемых данных в несколько раз.
Расширять и модифицировать — для этого есть шаблоны, где оговаривается порядок следования данных и что с ними делать при выводе...
А RSS проще сделать отдельным скриптом, т. к. чем меньше действий скрипт делает при выполнении запроса, тем меньше нагрузка на сервер (это, всё-таки, критично)...

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 15:35 07-07-2004
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Svarga
а если решить как на rsdn.ru - подключить gzip сжатие?

----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 17:13 07-07-2004
3BEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit
 
Так окончательную версию клиента можно писать когда есть стандарт по которому этот клиент работать будет.  Smog'у отдельное уважение, как человеку решившемуся работать без стандарта.
А вообще - будут четко сформулированы требования к клиенту - так можно ж кинуть клич в Прикладное программирование
 
Svarga
 
Так это ж идет увеличение объема по сравнению с простым текстом с символьными разделителями. По сравнению с нынешним состоянием дел - это все равно будет уменьшение. К тому же будет запрашиваться данные поста будут только один раз одним клиентом. (Для примера - я на третью страницу этого топика заглядывал не меньше 15 раз, при каждой возможности  при этом первый пост страницы качался заново 15 раз, плюс время необходимое для генерации этого поста). А XML симпатичен мне как раз по тому, что клиент может не следовать строгим стандартам и вполне пригоден для частого изменения. Т.е. объявили тег, ввели его поддержку в клиенте; расширили тег, клиент, пока не поддерживающий это расширение обрабатывает тег по старым правилам(но в базе сохраняет расширенную версию), после обновления клиента - вуаля! данные уже есть! можно обрабатывать по новым правилам. В случае с простым текстом - жуть. Ввели одно поле в середину строки, пока клиент не обновится - никто не может работать с сервером через клиента, старые базы требуют переработки или перезакачки...
 
Что-то я разухарился...

Всего записей: 81 | Зарегистр. 21-06-2004 | Отправлено: 18:36 07-07-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit

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

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

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

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

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

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

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 19:02 07-07-2004
3BEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Речь, как я понимаю, идет о оффлайновом клиенте, который должен хранить все просмотренные посты. Обновлять только измененные. Закчивать новые.Давать возможность тем, кто сидит на диалапе спокойно обдумать ответ на заданный вопрос. Это для посетителей.
 
Для владельца форума - это уменьшение трафика(У клиента уже есть часть постов топика)  и уменьшение нагрузки на сервер(оформление производится на машине клиента)
 
Значит, чтобы получить максимум, надо обеспечить сохранность базы постов у клиента, независимо от изменений на сервере. При этом надо обеспечить совместимость хранящихся у клиента данных с данными полученными с сервера. Оформление производится на машине клиента, по шаблонам полученным с сервера. (это была попытка сформулировать общие требования к системе клиент-сервер)
 
А если не нравится XML - вношу предложение обозвать язык IBML (Icon Board Markup Language)

Всего записей: 81 | Зарегистр. 21-06-2004 | Отправлено: 20:39 07-07-2004
Bozo



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все-таки rsdn@home пока лучший вариант из виденных мной. Почему бы не сделать аналог или договориться с rsdn и взять их исходники? Хотя их клиент с ikonboard работать не буит.
Да, приходится тащить .NET Framework, но потом удобно: подключился, скачал полмега и читай все ответы во всех выбранных форумах. Я бы тогда и от подписки по почте отказался - не видно, в каком письме ответ на какой постинг.Svarga

Всего записей: 2707 | Зарегистр. 27-06-2001 | Отправлено: 13:16 10-07-2004
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bozo

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

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

----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 14:25 10-07-2004
Bozo



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А этот list.cgi на ru-board не включен? Хочется глянуть что он выдает

Всего записей: 2707 | Зарегистр. 27-06-2001 | Отправлено: 16:01 25-07-2004
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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 - это типа счетчик
что добавить/исправить надо?

----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 16:44 25-07-2004
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Smog

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

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

----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 08:49 26-07-2004
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit

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

штук 30
 

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

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


----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 10:20 26-07-2004
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Smog

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

угу

----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 11:07 26-07-2004
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit

Цитата:
угу

поставлю - посмотрю
вечером


----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 11:47 26-07-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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 имхо,

не дочитал, сорри
исправлю.

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 16:29 26-07-2004
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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 БД не использует...  

 
поэтому у нас нет поиска?


----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 04:59 27-07-2004
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Насчет генерирования хтмл, мне к примеру больше нравится fido подобній интерфейс. То есть кратко говоря - почта
 
Опять же для примера rsdn.ru клиент

----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 08:58 27-07-2004
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit

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

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

----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 16:05 27-07-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smog

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

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

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

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

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 16:28 27-07-2004
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga

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

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

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

ну так сделаем


----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 16:50 27-07-2004
ironwit

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

----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 16:51 09-08-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Скрипт + клиент для Ib2 для офлайновой работы с форумом


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru