ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Форумы для чатов

 

20090
Dimitry @Dimitry
Сегодня посидел над дизайном и другими доработками форума.

Чтобы посмотреть форум нужно зарег. и авторизоваться на главной странице.
**********

А потом зайти
**********

1138
pingWIN @pingWIN
Классно сделал, молодчик вешь очень хорошая, но я не знаю врятли сменю меня мой IPB устраивает_)))
Хотя в этом нет багов ну ладно буду думать!

3910
Дмитрий @Q-Tec
Непонял,как установить его в чат...

а так прикольно.. а то всё равно чел решил закрыть свой сайт... и мой форум вместе с ним..

Отредактировано Q-Tec - 05.08.2006
556
_IC_ @_IC_
Клёвый форум...что самое радует так это скорость 😀

20090
Dimitry @Dimitry
**********
**********
**********

Внедрил менюшку, очень удобно! Изменил дизайн на главной и в гостевой, похоже на портал )

menu.js
Можете скачивать и себе ставить, только для неё нужны стили, также можно скачать с главного чата )

637
zorro @zorro
Дим, а когда форум будет доступен всем?

P.S. Мне этот форум очень нравится 😀

20090
Dimitry @Dimitry
Ну ещё нет функций модерирования и так далее!

20090
Dimitry @Dimitry
Форум почти готов, нужны бетта тестеры, есть желающие .. ну и конечно умеющие?

11667
Латвиец @Латвиец
На главной стрнице форумов надпись "undefindet". А если нет ни одного форума, то "undefindetundefindet"...
Бан нужен обязательно (имхо) 😀

20090
Dimitry @Dimitry
wr(forums[1]); - надо добавлять или удалять в шаблоне для вывода форумов !

11667
Латвиец @Латвиец
Да, ступил... Форум один, а в .inc два.. 🙄

P.S. Кстати, закрытие тем не предвидится?

187
chat-for-all @chat-for-all
А у нас что-то не обрабатывается wr(forums[1]); в forum.inc
И выводится чистым текстом название функции заместо вывода кода форума после вызова /index.php?inc=forum или /?inc=forum, ну вобщем это одно и тоже. Во всех вариантах не обрабатавывается. Наверное баг бета-версии видимо из-за каких-то условий не происходит обработка, или может эти условия я не прописал где-либо.

p.s. форум с id 1 имеется в списке форумов.

Отредактировано chat-for-all - 28.08.2006
20090
Dimitry @Dimitry
Латвиец, закрытие тем можно будет сделать..

chat-for-all , помоему ты вообще шаблон незагрузил стандартный!

187
chat-for-all @chat-for-all
Точно.
Я думал функция будет выводить код форума и ничего настроить пока нельзя 😀
А оказывается уже всё динамично расписано и wr(forums[ID]); нужна только для того чтобы вывести ссылки на форум/форумы, который отображается по умолчанию после вызова index.php?inc=forum
Теперь всё ок, отлично работает, спасибо за помощь.

Отредактировано chat-for-all - 29.08.2006
187
chat-for-all @chat-for-all
Недочеты в уже реализованных функциях (по мере нахождения буду дописывать сюда):

1. Функция переименования темы доступна, в отличие от редактирования сообщения, при редактировании первого сообщения темы там появляется возможность изменить и название темы.
Название темы меняется и даже отображается если смотреть тему из её самой.
Но если выйти в список тем, то там по прежнему отображается старое название.

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

Отредактировано chat-for-all - 30.08.2006
20090
Dimitry @Dimitry
Проверил и вправду...
А раньше работало и там и там! Буду смотреть и сделаю закрытие открытие тем!

Тут другая проблема! Фильтрация кушает много ПРОЦА и чем больше строк в фильтрации тем медленнее форум при просмотре.
Особенно это я заметил в твоём форуме, потому что ты добавил в фильтрацию смайлы!

Есть решение проблемы, это сохранение отформатированного сообщения, но тогда размер форума станет в 2 раза больше. (так как будет сохраняться отформ. и неотформ. версия сообщения)

20090
Dimitry @Dimitry
**********


Вот тест огромной темы, в каждом сообщении по 2000 символов, всего 100 сообщений.
вес файла 250кб
сейчас теги выключенны!
Если фильтрировать 10 таких сообщений и выводить на страницу, тратится 0.5сек, если выводить уже отфильтрированные сообщения 0.02сек.

При первом варианте сервак невыдержит просмотра таких тем 😀 Остаётся только выводить уже отфильтрированные сообщения. Т.е. сохранять их 2 раза, что увеличит размер такой темы до 0.5мб.

Неотформатированный вариант нужен для редактирования.

20090
Dimitry @Dimitry
Сделал двойное сохранение, исправил редактирование названия темы и добавил закрытие открытие тем!
А также выделение.(закрепление) тем!

Чтобы установить закрытие открытие тем, востановите из шаблона форума "ЧАСТь ВТОРАЯ" и добавьте в стили:
.closedicon{ border:gray ridge 10px; line-height:0; width:0; height:0;}
.pinnedicon{ border:#339966 ridge 10px; line-height:0; width:0; height:0;}

187
chat-for-all @chat-for-all
А замена смайликов, что выводятся через функцию чата ms() реализована через похожий алгоритм? На сколько я помню, замена идёт в двух местах - в ссылке <a href=# onclick... title *номер_смайлика.... и потом сразу ещё раз в img src. Алгоритмом фильтрации такое не реализовать.


Способов реализации фильтрации форумов - вы перечислили два варианта.
Конечно фильтрация форума не фильтрация чата, если в чате замена происходит, насколько я понимаю один раз, после чего всё суётся в msg.dat, то на форуме в первом варианте (который сейчас реализован) - замена происходит каждый раз, т.е. средняя нагрузка равна "среднее кол-во замен в 1 сообщении" помножить на "кол-во сообщений на странице" помножить на "среднестатистическое количество тем открываемых пользователем" помножить "на число пользователей находящихся на форуме в данный момент" (последнее наиболее главное).

А вот касательно второго - записывать уже обработанные фильтром замены - размер форума (файлов тем) не обязан сильно увеличится, вот например замена [b] на <b> по размеру идентична, также следует вспомнить, что любые (и более длинные) замены чаще всего составляют меньшую часть среднестатистического сообщения типичного пользователя.
А учитвая что всё хранится в файлах, размер которых учитывается для каждого чата отдельно - пользователь сам может выбирать баланс - сколько тем сохранять, как и когда что удалять и какие фильтры использовать, чтобы уложится в лимит доступного свободного пространства.
Что касается записи отформатированного текста + неотформ. - мне кажется просто можно поправить цитаты и прочие теги, использующие чьё-либо сообщение. Иначе зачем хранить неотформатированный текст? Чтобы пользователь при редактировании получал текст в первоначальном виде и мог его менять? Пусть лучше теги что ему выдадутся при повторной отправке не съедятся и ему придётся их переписать - мне кажется это лучше. Хотя, решать вам.

Ещё есть третий вариант - реализация джаваскриптом - т.е. пользователю будет выводится вначале список замен, после чего при определенной комбинации символов она будет срабатывать.
Например, это как с графическими никами, когда идет совпадение - вместо ника выписывается то, что указано в кавычках после gna и обрабатывается потом функцией gn(), а после кажется записывается в set_nick, итд, ну или что-то вроде этого.
Вы это всё намного лучше знаете, так сами делали 😀 . И ведь в данном случае нагрузка будет только на клиентском браузере - а клиенту и не нужно сразу сотни тем просматривать.

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

Кстати вот интересный простой скриптик замены, может пригодится кому-нибудь для чего-нибудь:
<html>
<head>
<title>Untitled</title>
</head>

<body>
<div id='content'>
try test try
</div>

<script>
findWord = 'test';
txt = document.body.innerHTML; // document.getElementById('content').innerHTML;
while (txt.indexOf(findWord)>=0) txt = txt.replace(findWord, 'REPLACED');
document.body.innerHTML = txt;
//document.getElementById('content').innerHTML = txt;
</script>
</body>
</html>

ps Когда будете редактировать, не ошибитесь, или тестируйте например на мозилле, потому что пустой цикл вешает IE намертво, 😀


--------------------------------
Вот кстати ещё странная вещь:
Редактировал чужое сообщение в теме, (причём от данного человека 2 сообщения идут друг за другом), и заменилось не одно, а сразу оба его сообщения. Тема эта состоит только из моих сообщений и двух сообщений от этого человека.
---
Попробывал нагрузить форум - от 20 до 120 килобайт чистых замен форум-фильтром - скорость загрузки таже 0.004-0.005 сек.
Это действительно так и всё хорошо - или время тоже, но там значительно подскакивает нагрузка процессора?
ps Тему на всякий случай удалил, чтобы сервер не нагружать просто так.

Отредактировано chat-for-all - 31.08.2006
20090
Dimitry @Dimitry
Да нет, просто уже реализован второй вариант -> двойное сохранение, сохранение отформатированной и неотформатированной версии.
Поэтому производится только вывод, а при отправлении сообщения производится редирект и время посмотреть нельзя (да и всегото одно сообщение форматируется)

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

Там есть ещё и вариант возвращения отформатированного текста в начальное состояние, но опятьже смайлы и спец. замены не смогут быть переведенны в начальное состояние.

Тяжело решить что и как лучше!