Автор Тема: ИМХО Нужно создать отдельную рассылку по simply...  (Прочитано 3401 раз)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
ИМХО.
1.Нужно создать отдельную рассылку по simply.
2.Нужно создать на форуме один подраздел про simply, не важно в каком из разделов.
3.Нужно уметь скриптом из форума, транслировать в рассылку  сообщения пользователей  форума.
4.Нужно уметь скриптом периодически читать рассылку и транслировать на форум ответы в соответствующие темы и создавать новые темы, если новая тема была создана в  рассылке.
5. Возможно (во избежание замусоривания и превращения подраздела в свалку) стоит тот подраздел сначала сделать премодерируемым для пользователей-новичков.
6. Чтобы не разгребать всю исторически сложившуюся свалку, можно "старый" раздел сделать readonly.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
6. Чтобы не разгребать всю исторически сложившуюся свалку, можно "старый" раздел сделать readonly.
Старого раздела нет и уже не будет, потому как лучше не делать свалок из разделов (это хуже для всех). Для "свалок" вопросов в одной теме есть отдельный раздел (для тех, кто хочет всё знать и сразу).
Основная задача: собрать темы по смыслам в соответствующих разделах, составить расписание и отлавливать исключения вроде "не читаю расписания принципиально, пишу куда хочу - модераторы есть, чтобы переносить" или "мне тут несподручно и очень надо быстро вопрос порешать, поэтому пишу в первый попавшийся на глаза по смыслу раздел". И это не упрек кому-либо, это просто констатация. Так было, так есть и так, скорее всего, будет.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Вот нашёл ещё сообщение на поднятую тему правда из другого раздела https://forum.altlinux.org/index.php?topic=37038.msg290568#msg290568. Оставлю тут эту ссылку на всякий.

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
Тут главный вопрос который выпал из контекста после выделения темы - а есть ли вообще смысл и желание связывать/объединять  таким (или подобным) способом рассылку и форум.  Все что написано мной после ИМХО из первого поста,  относится только к техническим аспектам реализации задачи.
« Последнее редактирование: 11.11.2017 20:27:34 от ASte »

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Тут главный вопрос который выпал из контекста после выделения темы - а есть ли вообще смысл и желание связывать/объединять  таким (или подобным) способом рассылку и форум.
Ну, раздел в том числе и для обсуждения подобных вопросов - планирования, если угодно перспективы в плане того, что возможно сделать и если делать, то каким способом. А реализация это уже дело наживное, был бы заинтересованный участник, желательно из team, чтобы можно было это и проверять и как-то поддерживать.

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
sb, а у движка форума существует штатный документированный API получения событий о создании новых тем/сообщений с возможностью вызова внешнего кода для их обработки и для программного создания сообщений из внешнего по отношению к форуму кода?

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
sb, а у движка форума существует штатный документированный API получения событий о создании новых тем/сообщений с возможностью вызова внешнего кода для их обработки и для программного создания сообщений из внешнего по отношению к форуму кода?
Вопрос, конечно, интересный. Но я не могу ответить, так как в такие дебри не закапывался (по объективным причинам - о них далее). Но код движка открыт - можно загрузить и посмотреть. Наверняка там внутри есть и комментарии по ходу дела (и на них натыкался, когда шапку форуму поправлял для старых браузеров). Вообще тема сопряжения весьма перспективна в плане объединения в единую структуру разношерстных сервисов. Не думаю, что форум не позволяет что-то подобное сделать (хоть непосредственно на основе базовой части, хоть через написание дополнительных функциональных модулей, что является неотъемлемой частью этого движка, впрочем, как и других движков). Просто нужен человек, который подобные вещи смог бы делать без таких больших трудозатрат по времени (мне, например, придется потратить очень много времени на разборки с движком, т.к. я ни разу не программист и php не изучал - только как хобби или вроде того), иначе просто всё это будет иметь мало смысла (много затраченного времени и малый выхлоп = низкий кпд, если хотите).

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
sb, это я вопрос про API как раз и задал к тому что с PHP я не знаком и лезть в код форума мне тоже не интересно. Но, мог-бы в свободное время что-то написать "для сообщества" на java или python..

Кстати, а что там за база данных используется форумом? что-то MySQL-подобное?
Теоретически можно наверное на уровне БД триггером генерировать "событие" при создании новых тем/постов и таким-же образом напрямую через вставку в  БД/вызов хранимой процедуры создавать посты

CREATE TABLE {$db_prefix}messages (
  id_msg integer primary key,
  id_topic int NOT NULL default '0',
  id_board smallint NOT NULL default '0',
  poster_time int NOT NULL default '0',
  id_member int NOT NULL default '0',
  id_msg_modified int NOT NULL default '0',
  subject varchar(255) NOT NULL,
  poster_name varchar(255) NOT NULL,
  poster_email varchar(255) NOT NULL,
  poster_ip varchar(255) NOT NULL,
  smileys_enabled smallint NOT NULL default '1',
  modified_time int NOT NULL default '0',
  modified_name varchar(255) NOT NULL,
  body text NOT NULL,
  icon varchar(16) NOT NULL default 'xx',
  approved smallint NOT NULL default '1'
);
« Последнее редактирование: 12.11.2017 11:15:51 от ASte »

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
Темы:
CREATE TABLE {$db_prefix}topics (
  id_topic integer primary key,
  is_sticky smallint NOT NULL default '0',
  id_board smallint NOT NULL default '0',
  id_first_msg int NOT NULL default '0',
  id_last_msg int NOT NULL default '0',
  id_member_started int NOT NULL default '0',
  id_member_updated int NOT NULL default '0',
  id_poll int NOT NULL default '0',
  id_previous_board smallint NOT NULL default '0',
  id_previous_topic int NOT NULL default '0',
  num_replies int NOT NULL default '0',
  num_views int NOT NULL default '0',
  locked smallint NOT NULL default '0',
  unapproved_posts smallint NOT NULL default '0',
  approved smallint NOT NULL default '1'
);

Реализация может быть примерно такой:
1. вешаем триггер на сообщения и темы на insert и отбрасываем по триггеру записи-"события" на файловую систему. таким образом форум мы не затормозим.
(при этом пропускаем те записи, которые созданы тех. пользователем. см п.3)
2. по крону вешаем процесс например раз в минуту отбирает с файловой системы события и (новые темы и сообщения) и по SMTP, от имени технического пользователя подписанного на рассылку отправляет их в рассылку. При этом топик постится в рассылку как новое сообщение, сообщения форума - как ответы на первое сообщение (топик).
3.После чего тот-же процесс по IMAP считывает все непрочитанные сообщения из рассылки. По subject письма  определяем topic. Если тему удалось найти - дописываем сообщение к теме. Если нет - создаем новую тему.
Все сообщения на форум постятся от имени технического пользователя, оригинального sender-а добавляем в текст сообщения.   Из всего что приходит из рассылки, вырезаем весь html, оставляем только простой текст.
4. для простоты, видимо нужно будет отключить в этой теме редактирование/удаление сообщений на этом форуме/разделе, поскольку мы не сможем аналогичным образом отредактировать сообщения ушедшие в рассылку.

UPD. Структура таблиц взята из инсталяционного скрипта актуальной версии форума с сайта Simple Machines и от нашей версии теоретически может отличаться.
« Последнее редактирование: 12.11.2017 12:30:05 от ASte »

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
Просто нужен человек, который подобные вещи смог бы делать без таких больших трудозатрат по времени (мне, например, придется потратить очень много времени на разборки с движком, т.к. я ни разу не программист и php не изучал - только как хобби или вроде того)
Такого человека нет, и не похоже, что  в ближайшем обозримом будущем он появится. Видимо нужно исходить из этой данности и либо отказаться от каких-либо модификаций форума кроме обновлений по безопасности, либо использовать "костыли" не связанные с разработкой на PHP.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Кстати, а что там за база данных используется форумом? что-то MySQL-подобное?
Похоже на то.