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

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

Автор: ironwit
Дата сообщения: 10.02.2004 17:44
Smog

Цитата:
еще не смотрел, вечерком или ночью гляну, опять поспрашиваю


ну как там дела?
Автор: Smog
Дата сообщения: 11.02.2004 13:46
ironwit

Цитата:
ну как там дела?

клиент уже мона писать, имхо
Автор: ironwit
Дата сообщения: 13.02.2004 07:53
Smog

Цитата:
клиент уже мона писать, имхо


примеры выдачи инфы могешь мне в мыло?


Цитата:
Замучился я...


Автор: Smog
Дата сообщения: 13.02.2004 15:13
ironwit

Цитата:
примеры выдачи инфы могешь мне в мыло?

то есть то, что поступает после запроса к скрипту?
Автор: ironwit
Дата сообщения: 13.02.2004 15:26
Smog

Цитата:
то есть то, что поступает после запроса к скрипту?


угу, посмотрю что оно там...
Автор: Svarga
Дата сообщения: 14.02.2004 00:18
Думаю на выходных поправить выдачу данных (сначала о пользователях, потом посты) и сделать всё это отдельными скриптами.

Smog
ironwit
вот человек чем-то весьма далёким к этой теме занялся, но в перспективе может его вещь для клиента полезной оказаться:
http://forum.ru-board.com/topic.cgi?forum=5&topic=10992
Автор: Svarga
Дата сообщения: 15.02.2004 04:20
Короче, малость подчистил скрипты, выводящие темы раздела и посты темы, а также библиотеку ikon.lib (они все в конце концов ещё раза в два уменьшатся, когда всё ненужное для клиента дочищу).

http://forall.ru-board.com/Svarga/ib/cl_scripts.rar

В архиве:
cl_ikon.lib
cl_topic.cgi
cl_forums.cgi

Стало быть, забрасываем всё это чудо в директорию Ib, обычные ikon.lib, topic.cgi и forums.cgi оставляем в первозданном виде и клиентом не пинаем

Обращаемся к cl_topic.cgi и cl_forums.cgi как к обычным topic.cgi и forums.cgi (если параметр client=1 отсутствует, то они выдадут всё как обычно). При наличии параметра client=1 в запросе данные выдаются:

cl_forums.cgi — так же как и для замучaнного выше forums.cgi

cl_topic.cgi — малость не так, как раньше... Пример выдаваемых данных:

Цитата:
[no]Guest||Не зарегистрирован!| ||Never|
Ya|BruceWayne.gif|Administrator|microsoft.com incoming@yourdomain.com aolname 12345|3|1075602194|а тут типа подпись
трёх-
строчная
user|Ares.gif|Пользователь| q@q.ru |2|1075603316|user
ya1|arbok.gif|Moderator| 1@w.com |4|1075602764|

1|Типа тема №1|ля-ля-ля|1|8|Ya|1075602452|Guest|1075916182

1075916204

Ya|а это текст первого поста с ib-кодами и примером на HTML:<p><br>ппп<p>ввв<br>|1075602452|1|1
ya1|пост№2|1075602795|1|1
Ya|post#3|1075602818|1|1
ya1|и ещё пост|1075602855|1|1
user|w|1075603330|1|1
Guest|f<br>f<br>f<br><p><br>(Добавление от 4:57 - 1 Фев., 2004.)<p><br>
Код: &lt;html&gt;<br>hello blya world<br>&lt;/html&gt;
|1075604104|1|1
Ya|?|1075916098|1|1
Guest|д<p><br>(Добавление от 19:36 - 4 Фев., 2004.)<p><br>&amp;auml;|1075916182|1|1
[/no]
Автор: Svarga
Дата сообщения: 15.02.2004 19:10
Smog, когда начнёшь писать, не забывай, что клиент должен уметь передавать и принимать HTTP-заголовки, а также обрабатывать (отправлять/принимать)
cookie.


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

По поводу шаблонов надо решить, в каком виде их выдавать.
Предлагаю для шаблона такой формат:
все секции разделены по типу ini-файлов или специальными комментариями, так скажем:
Секции:
1. описываем, в каком формате выдаются данные разнами скриптами, чтоб клиент знал, куда их в локальную базу засовывать и где их потом в шаблоне выводить
1.1. описываем, формат данных, выдаваемых cl_board.cgi
и т.д. напр.,

Цитата:
[DATA]
....
[cl_topic.cgi]
<users>
user|avatar|user_status|page email aim icq|posts|reg|signature

<topic>
topic_num|topic_name|desc|topic_status|topic_posts_num|author|topic_date|last_author|topic_last_date

topic_edit_date
<posts>
user|post|post_date|show_sign|show_smiley
....


2. дальше описываем непосредственно шаблоны для разных скриптов и общие куски для всех (шапка, нижняя часть страницы) в виде HTML + переменные, оговоренные в (1), а также некоторые специальные обозначения. Напр.,

Цитата:
[CODE]

[header]
<html><head>
<title><#board_name#> :: <#forum_name#> :: <#topic_name#></title>
<style><!--
.post{....}
--></style>
<script>
/* все скрипты форума */
</script>
<body>

[footer]
<p><center>
Copyright © <a href="http://www.ikonboard.com/">IkonBoard 2</a>, <a href="http://forum.ru-board.com">Ru.Board Team</a><br>
2000-2004
</center></p>

[cl_topic.cgi]
<#[header]#>
<#for show_posts start_post#>
<table>
<tr>
<td><b><a href="javascript:pasteN('<#user#>')"><#user#></a></b><br>
<#user#><br>
<img src="<#avatar#>">
</td>
<td>
<#post#>
<#if show_sign#>
<hr>---------------------<br>
<#sign#>
<#end if#>
</td>
</tr>
</table>
<#end for#>
...
<#[footer]#>

Здесь оговоренные выше данные выводятся в виде переменных <#var_name#>, оговоренные секции (header, footer) выводятся так: <#[name]#>, также контролирующие структуры структуры есть —
<#if переменная=1#>выводим нечто<#end if#>
и
<#for сколько_показать с_какого_номера_начать#>выводим однотипные куски информации, посты, к примеру<#end for#>

По-моему, такого вполне достаточно, чтоб организовать работу клиента с данными: при приёме данных — лезем в шаблон, смотрим, что за данные, куда их в локальную базу засунуть, потом выдираем из локальной базы данные, соответствующие запросу, смотрим шаблон, соответствующий запросу и выводим данные согласно оговоренным в шаблоне правилам.

Мысли, пожелания, замечания по формату какие будут?
Или начинать добавлять поддержку выдачи такого кошмара

PS. что-то у меня начинают мысли появляться по поводу написания клиентских скриптов для локального сервера , а потом поставить их на какой-нибудь локальный виртуальный хост типа forum.ru-board.com.client, парсить все ссылки в постах и шаблонах и добавлять после .com — .client, чтоб все браузерные запросы к форуму проходили через локальные скрипты , а выдавать нормальные страницы форума с подправленными ссылками
Автор: mozers
Дата сообщения: 26.02.2004 12:14
"Версия для печати" формируется страшно долго. Еще дольше грузится, подтягивая смайлы и прочую графику.
ИМХО было бы рационально формировать страницу без графики, заменяя смайлы текстовыми экивалентами, а графику - ссылками.
Автор: Svarga
Дата сообщения: 26.02.2004 16:26
mozers

Цитата:
ИМХО было бы рационально формировать страницу без графики, заменяя смайлы текстовыми экивалентами, а графику - ссылками.

В этой теме речь ни о том.
В "Помощи по форуму" тема по фичам: http://forum.ru-board.com/topic.cgi?forum=13&topic=0063&start=400#lt

Smog
как там дела?
Автор: Smog
Дата сообщения: 29.06.2004 12:43
дела в принципе идут...но оооочень тихо. Сегодня переставил систему, надо заново ставить форум/апач/мускл/пхп/перл, не могу все допетрить как лучше разбить [no]ya1|пост№2|1075602795|1|1
Ya|post#3|1075602818|1|1
ya1|и ещё пост|1075602855|1|1
user|w|1075603330|1|1
Guest|f<br>f<br>f<br><p><br>(Добавление от 4:57 - 1 Фев., 2004.)<p><br>
Код: &lt;html&gt;<br>hello blya world<br>&lt;/html&gt;
Автор: ironwit
Дата сообщения: 29.06.2004 14:24
Smog

Цитата:
Кстати, с написанием сообщений все просто, можно без авторизации....


от анонимуса что ли?

Добавлено
Svarga


Цитата:
личные сообщения с уведомлением о прочтении — удалятся до прочтения.

Замучали ?
Автор: Smog
Дата сообщения: 29.06.2004 16:54
ironwit

Цитата:
от анонимуса что ли?

в форме ответа явно указывать пароль и логин
Автор: Svarga
Дата сообщения: 29.06.2004 17:33
ironwit

Цитата:
личные сообщения с уведомлением о прочтении — удалятся до прочтения.
Замучали ?

Скорее раздражают... а если я через неделю ответить надумаю, а уведомление уже ушло? Короче, фича не имеющая к переписке отношения... Как Линкс как-то высказалась "нарушающая свободу"

Smog

Цитата:
в форме ответа явно указывать пароль и логин

с возвращением в эту тему
И что, каждый раз логин с паролем заново вводить?

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


Цитата:
как лучше разбить на подстроки

А на чём пишешь?
Автор: Smog
Дата сообщения: 29.06.2004 17:42
Svarga

Цитата:
И что, каждый раз логин с паролем заново вводить?

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

Цитата:
А на чём пишешь?

делфи

Добавлено
скачал regexpr
дело в том, что он символ | использует в своих целях
пробую разобряться

по нормальному - нам чего с этим:
[no]
ya1|пост№2|1075602795|1|1
Ya|post#3|1075602818|1|1
ya1|и ещё пост|1075602855|1|1
user|w|1075603330|1|1
Guest|f<br>f<br>f<br><p><br>(Добавление от 4:57 - 1 Фев., 2004.)<p><br>
Код: &lt;html&gt;<br>hello blya world<br>&lt;/html&gt;
Автор: Smog
Дата сообщения: 30.06.2004 04:10
а может лучше покопаться в скриптах и переписать их на делфи? которые форум-то формируют...и формировать ту же страничку, но локально?
Автор: ironwit
Дата сообщения: 30.06.2004 11:09
Smog

Цитата:
кстати, о базе, что лучше использовать для хранения локальных сообщений? просто текстовые файлы?

оххх, попробуй или mysql embedded или firebird тот же. Имеется в виду чтобы людей не напрягать установкой сервера. Хотя можно опционально, у меня например в подсети этих mysql серверов целых три стоит Разных версий и напрапвленности. А текстовые не используй, замучаешься поддерживать поиск, редактирование....

P.S. можно еще и использовать ado+access. Но это ИМХО не путь для джедаев

Добавлено
Smog

Цитата:
может лучше покопаться в скриптах и переписать их на делфи? которые форум-то формируют...и формировать ту же страничку, но локально?


а где ты возьмешь саму БД с данными?
Автор: Smog
Дата сообщения: 30.06.2004 12:15


Цитата:
а где ты возьмешь саму БД с данными?

дык я ее с локалхоста буду получать, с установленного форума

Добавлено
ado+access
mysql embedded
firebird

что нужно для каждой из них? всмысле че-нить качать и проч?
Автор: ironwit
Дата сообщения: 30.06.2004 12:44
Smog

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

оххх. И каждый из пользователей ОФФЛАЙН клиента будет себе ее ставить? Или качать?


Цитата:
ado+access

нужен dac от микрософта

Цитата:
mysql embedded

оффсайт

Цитата:
firebird

оффсайт

Последних две БД могут работать как сервером так и встроенно в программу (embedded).
Автор: Smog
Дата сообщения: 30.06.2004 13:07
дык потом руборд будет эту базу выдавать

Добавлено
ironwit
дык мне с локальной бд надо работать....
Автор: ironwit
Дата сообщения: 01.07.2004 20:08
Smog

Цитата:
дык мне с локальной бд надо работать....

ты имеешь в виду в процессе наладки?
Автор: Smog
Дата сообщения: 02.07.2004 06:25
ironwit

Цитата:
ты имеешь в виду в процессе наладки?

БД я буду создавать локально, так же ее изменять и проч. Сетевушность здесь не при чем
Автор: ironwit
Дата сообщения: 02.07.2004 07:47
Аааа, все, теперь дошло. Ты имеешь в виду бд для хранения тех данных которые будут скачиватся твоим клиентом с форума?
Автор: Smog
Дата сообщения: 02.07.2004 09:46
ironwit

Цитата:
Аааа, все, теперь дошло. Ты имеешь в виду бд для хранения тех данных которые будут скачиватся твоим клиентом с форума?

именно так
Автор: Svarga
Дата сообщения: 04.07.2004 23:09
Smog

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

А пустая строка в качестве разделителя не подходит (она разделяет все блоки: юзеры, данные о теме, дата редактирования файла, посты)?

Smog

Цитата:
а может лучше покопаться в скриптах и переписать их на делфи? которые форум-то формируют...и формировать ту же страничку, но локально?

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


Ты, кстати, не планируешь возможность работы клиента в качестве локального сервера, перехватывающие запросы браузера на какой-то порт?
Автор: Smog
Дата сообщения: 05.07.2004 16:54
Svarga

Цитата:
А пустая строка в качестве разделителя не подходит (она разделяет все блоки: юзеры, данные о теме, дата редактирования файла, посты)?

подходит, это я уже подглючиваю

Цитата:
Проще с готовыми шаблонами повозиться, которые также скриптом передаваться будут...

вот об этом поподробнее

Цитата:
Ты, кстати, не планируешь возможность работы клиента в качестве локального сервера, перехватывающие запросы браузера на какой-то порт?

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

Где взять документацию по состыковке Firebird и Delphi?
Автор: Svarga
Дата сообщения: 05.07.2004 20:52

Цитата:
Где взять документацию по состыковке Firebird и Delphi?

Посмотри это: www.ibobjects.com , www.upscene.com и http://delphi.about.com/od/interbase/
...



Цитата:
Проще с готовыми шаблонами повозиться, которые также скриптом передаваться будут...

вот об этом поподробнее

Я думаю выдавать код шаблонов при запросе board.cgi...
неплохо бы отправлять дату последнего обновления шаблонов клиентом, т. е. если скрипт видит в запросе дату — и если с того времени файлы шаблонов не редактировались — не выдаёт шаблонов, если шаблоны менялись — то выдаёт кроме прочего и обновлённые шаблоны...
Формат шаблонов — HTML + особые тэги, которые будут заменяться данными при выдаче... (напр., <#topic_title#> или <?topic_title?>, короче, по типу PHP или ASP)...


Добавлено
по поводу шаблонов я тут предлагал:
http://forum.ru-board.com/topic.cgi?forum=21&topic=2144&start=20#18
Автор: Smog
Дата сообщения: 06.07.2004 14:14

Цитата:
www.upscene.com

Version 1.2.1 (06-14-2004), limited to 20 command cursors or 30 transactions - whichever comes first (limitation removed in licensed version), archive with installation instructions and development history.

Автор: 3BEP
Дата сообщения: 07.07.2004 12:59
Прошу прощеня, что влезаю в ваше обсуждение.

Хотел бы высказать свои сомнения, возникшие при просмотре топика:

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

2. Данные на стороне сервера хранятся в "полупереваренном" виде - это не база данных и не готовый к употреблению браузером HTML, что - то среднее. Тут не был решен вопрос - что важнее: уменьшение траффика или же уменьшение нагрузки на сервер? (Для уменьшения траффика надо наиболее точно ответить на запрос клиента - это приводит к усложнению серверной части. Для уменьшения нагрузки - выдать клиенту ответ который точно включает запрошенное, без отсечения незапрошенных данных. Как пример: Клиент хочет пост измененный с определенной даты в определенном топике. Варианты ответа: Выбрать измененный пост и отдать только его или отдать все содержимое топика, а клиент пусть разбирает, что ему надо)

Надеюсь, заданные мной вопросы помогут более точно определится с формулировкой.
Автор: ironwit
Дата сообщения: 07.07.2004 14:33
3BEP
ИМХО, конечно xml это хорошо. Весь вопрос к сварге, как он на это посмотрит? Да и Смогу переделывать механизм разбора... Хотя лучше сейчас чем потом. Но, если будет xml, это значит rss - то зачем тогда оффлайн клиент? Можно к миранде просто плагинчик прикрутить

Страницы: 1234

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


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