Кричалка 2.0

Автор: HolyGun
Опубликовано: 409 дней назад (10 апреля 2011)
Рубрика: Модули
+57
Голосов: 57
Добрый вечер.
Вот и готова новая версия кричалки. Добавлено и переделано многое. Учтены многие пожелания. Об этом подробнее ниже...

Возможности новой версии:

0. Модуль почти на 100% написан "по-феншую". Т.е. имеет адиминскую часть, языковой пакет, шаблон Smarty.
1. При установке определяется движок БД, и если поддерживается InnoDB, то таблица создается на этом движке.
2. Оптимизирован запрос на чтение сообщений из базы.
3. В админку вынесены основные настройки. Подробнее можно посмотреть на скриншотах.
4. Добавлены смайлы. По умолчанию используются встроенные в InstantCMS.
5. Добавлена возможность отправлять сообщения в кричалку с таймаутом. Так называемый Антифлуд для гостей. Например одно сообщение в 30 секунд.
6. Можно запретить гостям пользоваться кричалкой. Настраивается в админке.
7. Клик по нику добавляет ник в начало сообщения. Типа как обращение к кому либо.
8. Иконки, позволяющие отличить пользователя от гостя.


Скриншоты:

1. Внешний вид модуля.


2. Смайлы.


3. Админка.


4. Кричалка для гостей.


5. Таймаут для гостя.


6. Когда гостям запрещено пользоваться кричалкой

Описание содержимого модуля:

Здесь вкратце расскажу, что и для чего в архиве.
1. /admin/modules/mod_shoutbox
Тут находится бэкэнд для админки. См. 3 скриншот.

2. /languages/ru/modules/mod_shoutbox.php
Языковой пакет.

3. /modules/mod_shoutbox
Сам модуль.

4. /templates/_default_
Шаблон и стили.

Установка

1. Новая установка. Если Вы ранее не устанавливали Кричалку.
1.1. Качаем архив с модулем. http://o-bike.ru/files/mod_shoutbox_2.0.zip
1.2. Распаковываем содержимое архива в корень сайта.
1.3. Если Ваш шаблон отличается от дефолтного, то переносим содержимое директории /templates/_default_ в директорию с вашим шаблоном.
1.4. Настраиваем стили. Тут можно пойти двумя путями. Первый. Содержимое файла /templates/_default_/css/shoutbox.css добавить в Ваш файл со стилями. Второй. Подключить этот файл в основном шаблоне в файле /templates/_default_/template.php, добавив строчку:
Код PHP:
<link href="/templates/_default_/css/shoutbox.css" rel="stylesheet" type="text/css" />
Обратите внимание на то, что если у Вас другой шаблон, отличный от стандартного по названию, то проводите все манипуляции с ним.
1.5. В Админке откройте список всех модулей. И нажмите на серую шестерню с зеленым плюсиком.

и выберите новый модуль Кричалка 2.0.
1.6. Зайдите в настройки модуля и настройте Позицию и доступ.
1.7. В админке кричалки измените настройки "под себя". Об этом подробнее ниже.
Все. Модуль готов к работе.
2. Обновление. Если Вы устанавливали первую версию.
Обновить модуль просто так не получится. Предыдущую версию надо полностью удалить. То есть:
2.1. Удалить модуль из списка модулей.
2.2. Удалить с фтп все файлы, относящиеся к нему. Это:
/modules/mod_shoutbox - сам модуль,
/templates/_default_/modules/mod_shoutbox.tpl - шаблон модуля,
А также стили, которые нужны для модуля.
2.3. Таблицу в базе данных можно не трогать, она создастся заново.
После того как Вы удалили старый модуль, можете приступать к новой установке, процесс которой описан выше.

Описание настроек Админки:

1. Высота окна кричалки в пикселях. Тут все понятно. Указываем высоту в пикселях.
2. Интервал обновления окна кричалки. Здесь устанавливается интервал загрузки сообщений в кричалку. Оптимальное значение - 3000 миллисекунды. Т.е. Каждые три секунды будет обновляться окно с сообщениями. При каждом обновлении окна происходит чтение из базы. А это нагрузка на сервер. Поэтому не стоит устанавливать это значение меньше 2000-3000 мсек. Чтобы снизить нагрузку можно, наоборот, указать большее значение, например 5000 мсек. Т.е. обновление будет производиться каждые 5 секунд.
3. Сколько выводить послених сообщений кричалки. Здесь устанавливается лимит для запроса из БД. Т.е. выводиться будет то кол-во сообщений, которое Вы укажите. Можно выставить меньшее значение, это тоже снизит нагрузку на сервер.
4. Разрешать гостям оставлять сообщения в кричалке. Включение этого параметра позволит гостям сайта пользоваться кричалкой. Не рекомендуется включать при большой посещаемости сайта. См. скришнот № 4.
5. Интервал проверки окончания паузы для гостей. Этот параметр указывает, с какой интенсивностью проверять окончание таймаута для Гостя. Тут есть несколько не совсем приятных моментов. Увеличение этого значения снизит нагрузку на сервер, но при этом позволит гостям обойти ограничение. Если у Вас относительно большая посещаемость, то данный параметр можно оставить как есть, или же увеличить до 3000 мсек, но при этом есть смысл уменьшить сам таймаут, который описан в следующем пункте. Пример работы скриншот № 5.
6. Время ожидания гостем после отправки сообщения. Этот параметр устанавливает время, которое Гость будет ждать до отправки очередного сообщения. Также не рекомендуется устанавливать слишком высокое значение, так-как это увеличит нагрузку на сервер. В сочетании с предыдущим пунктом оптимальным будет значение до 60 секунд. Рекомендуемое 30. См. также скриншот № 5.
7. Префикс имени гостя. То, с чего бует начинаться никнейм гостя в кричалке. Гость может поменять сгенерированное имя на более осмысленное.
8. Путь до директории со смайлами. Путь до места, откуда модуль будет брать смайлы. По умолчанию в модуле используются стандартные смайлы InstantCMS.
Теперь подробнее о пунктах 4,5,6,7. В модуле реализован так называемый антифлуд. Который не позволяет гостям отправлять сообщания также часто, как это могут делать зарегистрированные пользователи. Признаюсь честно, реализация хоть и работающая, но достаточно кривоватая. Надеюсь, что мне удастся найти более другое решение.
Если отключить п. 4, то нагрузки, связанные с пунктами 5,6,7 также отключатся. Наверное повторюсь, но тем не менее, рекомендуется выключать кричалку для гостей на сайтах с большой посещаемостью.

Очистка базы по крону не реализована. Но, я думаю, админу сайта не составит особого труда зайти и почистить таблицу. В будущем этот процесс будет автоматизирован.

Вроде все описал. :)
Да. Модуль по прежнему бесплатный. Но тем не менее я буду рад любой финансовой благодарности по следующим реквизитам:
Webmoney WMID: 200447737040
Z219463200364, R359781226955

Яndex.Деньги: 41001903510475
Модуль Кричалка (Shoutbox). | АНОНС. Обновления кричалки.
HolyGun # 10 апреля 2011 в 01:06 +3
Посмотреть Кричалку в работе можно тут: http://o-bike.ru/
Гостям разрешено отправлять сообщения.
Сергей # 10 апреля 2011 в 01:58 0
Спасибо за модуль! нужная вещь.
Юрий # 10 апреля 2011 в 08:42 0
В качестве теста сообщаю, что нашел темку для доработки. Если ввести два и более разных смайла подряд, то отобразится такое же количество смайла, введенного самым первым.
На работу модуля это не влияет, вещь зачётная! Но в качестве доводки можно посмотреть?
HolyGun # 10 апреля 2011 в 09:52 +3
Вот фикс проблемы со смайлами. Вроде работает. Чтобы не перезаливать архив.
В файле /modules/mod_shoutbox/ajax/ajax.php находим этот код:
Код PHP:
	$reg_ex = "/:(.*?):/";
	if(preg_match($reg_ex, $text, $smile)) {
		$text = preg_replace($reg_ex, '<img src="'.$cfg['smiles_dir'].'/'.$smile[1].'.gif">', $text);
	}
и меняем его на этот:
Код PHP:
	$words = explode(" ", $text);
	
	foreach($words as $word) {
		$reg_ex = "/:(.*?):/";
		if(preg_match($reg_ex, $word, $smile)) {
			$t[] = preg_replace($reg_ex, '<img src="'.$cfg['smiles_dir'].'/'.$smile[1].'.gif">', $word);
		} else {
			$t[] = $word;
		}
	}
	$text = implode(" ", $t);
Юрий # 10 апреля 2011 в 09:54 0
Спасибо! Отлично!
0 # 10 апреля 2011 в 14:19 0
при этом варианте, смайлы просто пишутся..
HolyGun # 10 апреля 2011 в 14:35 0

Можешь попробовать тут: http://o-bike.ru/
0 # 10 апреля 2011 в 14:52 0
да у вас прекрасно работает..я поставил на место аякс стали отображаться.. ну это мелочи..а вообще не сдержусь) красиво сделали дизайн сайта своего) я еще удивлялся что вы на шаблоне сидите)
Юрий # 10 апреля 2011 в 10:02 0
Все работает!
qwest # 10 апреля 2011 в 01:22 0
Отличный модуль +2
Keep # 10 апреля 2011 в 03:08 0
Всё отлично+ но в IE кнопку отправления невидно.
Юрий # 10 апреля 2011 в 08:34 0
Вот это вещь! HolyGun , лови новый +
WALTERZ # 10 апреля 2011 в 08:40 0
Молодец! + однозначно
А будет ли реализация cron удаления старых сообщений?
Dimitrius # 10 апреля 2011 в 10:17 0
Супер!)
Славик # 10 апреля 2011 в 10:21 0
у меня чё то сообщения не добавляются
HolyGun # 10 апреля 2011 в 12:52 0
К сожалению здесь не обитают экстрасенсы и телепаты...
Поэтому немного конкретнее формулируй свою проблему...
Иван # 10 апреля 2011 в 10:59 0
Модуль супер, +1. В опере не отправляет смайлы, но в хроме и мозилле все ок !!!
HolyGun # 10 апреля 2011 в 11:10 +2
Вот фикс, чтобы смайлы в опере работали.
В файле /modules/mod_shoutbox/ajax/ajax.php находим эту строчку:
Код PHP:
$output .= "<img style=\"cursor:pointer;\" src=\"".$cfg['smiles_dir']."/".$file."\" border=\"0\" onclick=\"jQuery(function($){ins_smile('".$smile."');});\">";
и меняем на эту:
Код PHP:
$output .= "<img style=\"cursor:pointer;\" src=\"".$cfg['smiles_dir']."/".$file."\" border=\"0\" onclick=\"javascript:ins_smile('".$smile."');\">";
nikolas # 10 апреля 2011 в 12:04 +2
мне понравилось..вот ещё бы прикрутить к крону что бы старые сообщение удалялись...было бы супер
Fuze # 10 апреля 2011 в 12:31 +3
в phpmyadmin выполняем

Код PHP:
DELETE FROM cms_shoutbox WHERE DATE_SUB(NOW(), INTERVAL 5 DAY) > date;
сообщения старее 5-ти дней удалятся.
HolyGun # 10 апреля 2011 в 12:36 0
добавлять задачи в крон ЦМСный пока не умею... Вот научил бы кто нить? ;)
Fuze # 10 апреля 2011 в 15:33 +3
1. можно вручную в админке создать новую задачу и там посмотреть как и что при создании новой задачи.
2. можно выполнить метод класса cron
Вот пример:
Код PHP:
        cmsCron::registerJob('getStatusMovie', array(
                                        'interval' => 1,
                                        'component' => 'video',
                                        'model_method' => 'getStatusMovie',
                                        'comment' => 'Опрашивает rutube в поисках сконверченных роликов.',
                                        'custom_file' => '',
                                        'enabled' => 1,
                                        'class_name' => '',
                                        'class_method' => ''
                                  ));
0 # 10 апреля 2011 в 14:03 0
прекрасно сделано))) вот что я имел в виду  говоря, что вам надо еще что нить сделать кроме карты)))) Огромное спасибо! Прям в место встал модуль!
Сергей # 10 апреля 2011 в 14:14 +2
Простите пожалуйста! а вы в школе учились?
0 # 10 апреля 2011 в 14:26 0
вы мне пишете Сергей? можете написать в личку..думаю тут не стоит обсуждать кто где учился..
Thanatognozija # 10 апреля 2011 в 14:05 0
Классный модуль, ох... жаль, что статистика процессорной нагрузки показывает:
по файлам:
15.03 % - modules/mod_shoutbox/ajax/ajax.php
0.37 % -
0.04 % - index.php/videoteka
0.04 % - index.php/blog
0.04 % - videoteka/nauka-i-smert
0.04 % - index.php/stati/priroda-cheloveka/65-dokazatelstvo-bessmertija-dushi
0.02 % - stati/avtorskie-stati/starost-kak-obekt-socialnoi-raboty.html
0.02 % - components/comments/comments.php
0.01 % - index.php
0.01 % - search/tag/%F4%EE%F2%EE+%EF%F0%E8%E2%E8%E4%E5%ED%E8%E9
Тихонов # 10 апреля 2011 в 14:21 0
а у меня проц сильный ему пофиг
Dimitrius # 10 апреля 2011 в 15:21 0
Как вы проверили нагрузку?
Thanatognozija # 10 апреля 2011 в 15:29 0
Мне хостер сразу присылает сообщение о том, что докуплены ресурсы. я плачу за 7.5 нагрузки, все остальное, если перебор, то приходится доплачивать. Потом я захожу в админку хостера, и просматриваю статистику нагрузки по файлам. Вот... То есть, как только я включаю модуль, через час у меня уже снимают 10 грн. за докупленные ресурсы...
Dimitrius # 10 апреля 2011 в 15:53 0
Фига(
Thanatognozija # 10 апреля 2011 в 16:01 0
Это следует понимать так, что я придумал все? Мне очень нравится модуль, я уже разные сторонние скрипты пробовал, но этот самый лучший, я уже говорил, что поставил бы ему 1000 плюсов, но у меня такой факт. Неужели нельзя проверить нагрузку никак, что только у меня есть такая функция на хостинге... :(((
alexsey # 10 апреля 2011 в 16:35 0
сменить хостинг никак?
Thanatognozija # 10 апреля 2011 в 16:44 0
А какие перспективы будут в этом. Мне что нагрузку дадут больше? Я думаю, что больше 30% никто не дает, и цены тоже хорошие. Или Вы намекаете на то, что это увеличение нагрузки происходит по вине хостера?
0 # 10 апреля 2011 в 18:50 0
наверно он намекает..что есть другие условия..просто на месяц брать хостинг без замеров нагрузки))
Thanatognozija # 10 апреля 2011 в 18:57 0
:))) Я тоже так подумал. А еще лучше сервер выделенный взять специально для модуля. :))
Тихонов # 10 апреля 2011 в 14:13 0
плюсую спасиб!!! просто супер!!
mrDON # 10 апреля 2011 в 17:02 +1
+ определенно
Но действительно нагрузка есть, если много людей пишут, сервак тупо виснет.... надо поработать в направлении снижения нагрузки...
HolyGun # 10 апреля 2011 в 17:18 0
Действительно, проблема нагрузки имеет место быть. Мне у себя пришлось пока отключить кричалку.
Буду искать решение. Возможно, придется отказаться от возможности писать гостям...
Посмотрим, что можно сделать...
lezginka.ru # 10 апреля 2011 в 17:22 0
а почему в чате нет такой нагрузки а кричалке есть, чем их отличие ?
maxisoft # 10 апреля 2011 в 18:17 0
А это военная тайна, чтобы немцы не узнали!
lezginka.ru # 10 апреля 2011 в 20:56 0
maxisoft , выдай тайну, пока пытать не начал :)
maxisoft # 10 апреля 2011 в 21:45 +1
так кто обещал шашлык настоящий, вот жду ...
lezginka.ru # 10 апреля 2011 в 21:51 0
я молчу, а то дело так до ресторана дойдет :)
0 # 11 апреля 2011 в 00:04 0
Макси, мы бы с тобой посидели с шашлычком,  но ты ни в Иваново, ни в  Костанай  не приедешь, а я только в этих 2 местах живу.. так что никак..
imprint # 10 апреля 2011 в 18:25 0
я так понял...из за запросов через аджакс...мне тоже пришлось отказаться...нагруза до 47% я был огорчен....
ByMind # 10 апреля 2011 в 23:00 0
при открытии смайлов перед ними вот такая ситрочка:
Notice: Undefined variable: output in /home/bymind/bymind.ru/docs/modules/mod_shoutbox/ajax/ajax.php on line 187
ByMind # 10 апреля 2011 в 23:10 0
все, спасибо, не надо
error_reporting(0); вновь спасает положение
ByMind # 10 апреля 2011 в 23:12 0
раньше при нажатии на ник, открывался профиль пользователя
можно куда-нибудь прикрутить такую вещь сюда? кнопочку какую-нибудь или что-то вроде
например при нажатии на изображние рядом с ником
Thanatognozija # 11 апреля 2011 в 22:42 0
И все таки, модуль супер, за ним большое будущее, один вопрос - нагрузка. Почему ее нет в чате компонента... Так и остался этот вопрос тайной великой... :((((((
0 # 12 апреля 2011 в 01:19 0
Да..модуль нужный и сразу оживляет страницу входа..но отключил пока..нагрузка чувствуется..но без него сразу скучновато) Хулиган..вы наверно не зря исчезли..ваяете изменения))
HolyGun # 12 апреля 2011 в 13:37 +5
Не исчез. Я тут. Просто по уши в дебаге кода кричалки в поисках решений... Ну и плюс основная работа...
0 # 12 апреля 2011 в 12:12 0
Идёт загруски и ничего больше не работает......
◦ Ӎɑƙҫиӎ ◦ Ᵽɑɗиớӊớβ # 5 мая 2011 в 00:38 +1
отлично кричит кричалка))) респект разработчику!!!
Taurus # 3 июля 2011 в 00:25 +1
Помогите кричалку на отдельной странице на всю вывести, буду оч благодарен!
Евгений # 5 августа 2011 в 21:37 0
Извиняюсь спросить. Реально ли прицепить звуковое оповещение при выводе сообщения?
Malstein # 10 августа 2011 в 17:39 0
Спасибо супер!)))добавил к себе на сайт))Держи сибирь в курсе
sepraga # 27 августа 2011 в 07:41 0
Спасибо. Модуль установил все замечательно.
Только вот есть один казус. А именно - не могу удержать скролл при прокручивании области текста - он срывается и я даже не успеваю прочесть то, что было написано вверху.  Может быть у меня одного так...?
ph3no # 25 сентября 2011 в 22:10 0
У меня тоже такое воспроизводится, угу :)
SeoNick # 31 января 2012 в 10:27 0
Отличный модуль, еще бы была возможность очищать из админки таблицу и удалять сообщения спамные. Да и стоп лист слов, типа мата и урлов сайтов.
СПАСИБО разработчику!!! Буду ждать обновления!!!
Golden Eagle # 13 мая 2012 в 13:54 0
Столкнулся с проблемой... в кричалке время сообщений отображается не правильно. У кого нибудь есть идеи?