Хак Компонента iChat (от Maxisoft)

+46
2.23K
Приветствую

Компонент Чат устанавливает для себя настройки для аякса по умолчанию, которые влияют не только на этот компонент, но и вообще на все скрипты, использующие аякс в своей работе. Из-за этих настроек одновременно с чатом не работает "Система переписки" и некоторые другие доработки.

Еще один момент — в чате отображаются все BB коды, а некоторые из них просто рушат чат если их случайно отправить.

В архиве два файла — chat.js (нужно закинуть в /components/chat/js) — исправлены настройки аякса.
и frontend.php (закинуть в components/chat/frontend.php) — убраны некоторые критические bb кнопки (если что нужно убрать — можете сами открыть и просто удалить лишние).

Обновление 23.07.2012: frontend.php убираю из обновления по причине того, что его обновление не у всех работает одинаково.

Скачать тут.
Перед заменой обязательно сделайте копии своих файлов.
+1
Максим Шкутин Максим Шкутин 12 лет назад #
Прикольно ++++++
0
Алексей Гаврилов Алексей Гаврилов 12 лет назад #
Чет я не нашел разницы...
0
CROSS ツ CROSS ツ 12 лет назад #
В чём проверяли?
+1
Алхимик Алхимик 12 лет назад #
SJen убрал кнопки бб-кодов "спойлер" и "вставить код", из-за которых чат вылетал в белый экран. пользователи нечаянно тыкали на эти кнопки и приходилось лазить в базу, чтобы удалить сообщение. только тогда чат и начинал работать. так же на главной из-за чата не работала система переписки от SJen, теперь она работает) наконец-то нашёлся кто-то исправить этот чат, спасибо)
0
Алхимик Алхимик 12 лет назад #
в комментах можно прочитать о проблемах: http://instantcms.ru/catalog/item131.html
+3
SJen SJen 12 лет назад #
разница только в том, что я поправил работу с аяксом (чтобы чат не вызывал конфликтов с другими разработками)
и в том, что я вынес во фронтент кнопки bb кодов для того, чтобы можно было очень просто отредактировать что показывать, а что нет.

Функционально это остался все тот же компонент, только менее конфликтный)
0
Алхимик Алхимик 12 лет назад #
это был ужас а не чат, теперь более менее можно пользоваться) спасибо!
0
st.Puh st.Puh 12 лет назад #
меняю закинуть в components/chat/frontend.php на ваш и вообще вв кнопки перестают работать все
0
SJen SJen 12 лет назад #
надо смотреть почему, но если все так плохо - не меняйте frontend, может я сделал не совсем универсально(например на инстанте 1.8 я не проверял совсем, только на 1.9). Или можете сами по аналогии с моим вариантом сделать - надо посмотреть в коде как у вас отображаются рабочие бб коды и копировать их в файл frontend.

А сhat.js обновите - из-за него проблем не будет.
0
st.Puh st.Puh 12 лет назад #
я сhat.js закинул,у меня в файле frontend идет так
Код PHP:
<div class="usr_msg_bbcodebox">
        <?php echo cmsPage :: getBBCodeToolbar('message', false); ?>
    </div>
а вы у себя изменили ето на вот ето
Код PHP:
<div class="usr_msg_bbcodebox">
        <a title="Жирный" href="javascript:addTag('message', '[b]', '[/b]')" class="usr_bb_button">
                <img border="0" alt="Жирный" src="/includes/bbcode/images/b.png">
             </a>
             <a title="Курсив" href="javascript:addTag('message', '[i]', '[/i]')" class="usr_bb_button">
                <img border="0" alt="Курсив" src="/includes/bbcode/images/i.png">
             </a>
             <a title="Подчеркнутый" href="javascript:addTag('message', '[u]', '[/u]')" class="usr_bb_button">
                <img border="0" alt="Подчеркнутый" src="/includes/bbcode/images/u.png">
             </a>
             <a title="Зачеркнутый" href="javascript:addTag('message', '[s]', '[/s]')" class="usr_bb_button">
                <img border="0" alt="Зачеркнутый" src="/includes/bbcode/images/s.png">
             </a>
             <a title="По левому краю" href="javascript:addTag('message', '[align=left]', '[/align]')" class="usr_bb_button">
                <img border="0" alt="По левому краю" src="/includes/bbcode/images/align_left.png">
             </a>
             <a title="По центру" href="javascript:addTag('message', '[align=center]', '[/align]')" class="usr_bb_button">
                <img border="0" alt="По центру" src="/includes/bbcode/images/align_center.png">
             </a>
             <a title="По правому краю" href="javascript:addTag('message', '[align=right]', '[/align]')" class="usr_bb_button">
                <img border="0" alt="По правому краю" src="/includes/bbcode/images/align_right.png">
             </a>
             <a title="Большой заголовок" href="javascript:addTag('message', '[h1]', '[/h1]')" class="usr_bb_button">
                <img border="0" alt="Большой заголовок" src="/includes/bbcode/images/h1.png">
             </a>
             <a title="Средний заголовок" href="javascript:addTag('message', '[h2]', '[/h2]')" class="usr_bb_button">
                <img border="0" alt="Средний заголовок" src="/includes/bbcode/images/h2.png">
             </a>
             <a title="Маленький заголовок" href="javascript:addTag('message', '[h3]', '[/h3]')" class="usr_bb_button">
                <img border="0" alt="Маленький заголовок" src="/includes/bbcode/images/h3.png">
             </a>
             <a title="Цитата" href="javascript:addTagQuote('message')" class="usr_bb_button">
                <img border="0" alt="Цитата" src="/includes/bbcode/images/quote.png">
             </a>
             <a title="Вставить ссылку" href="javascript:addTagUrl('message')" class="usr_bb_button">
                <img border="0" alt="Вставить ссылку" src="/includes/bbcode/images/url.png">
             </a>
             <a title="Вставить смайл" onclick="$('#smilespanel').slideToggle('slow')" href="javascript:void(0)" class="usr_bb_button">
                <img border="0" alt="Вставить смайл" src="/includes/bbcode/images/smiles.png">
             </a><a title="Вставить видео" href="javascript:addTagVideo('message')" class="usr_bb_button">
                    <img border="0" alt="Вставить видео" src="/includes/bbcode/images/video.png">
                 </a>
                 <a title="Вставить mp3" href="javascript:addTagAudio('message')" class="usr_bb_button">
                    <img border="0" alt="Вставить mp3" src="/includes/bbcode/images/audio.png">
                 </a>
                 <a title="Вставить картинку из Сети" href="javascript:addTagImage('message')" class="usr_bb_button">
                    <img border="0" alt="Вставить картинку из Сети" src="/includes/bbcode/images/image_link.png">
                 </a><a title="Загрузить и вставить фото" href="javascript:addImage('message')" class="usr_bb_button">
						<img border="0" alt="Загрузить и вставить фото" src="/includes/bbcode/images/image.png">
					 </a>
					 <div style="display:none" id="imginsert" class="usr_bb_button">
						<strong>Загрузить фото:</strong> <input type="file" name="attach_img" id="attach_img">
						 <input type="button" onclick="loadImage('message', '7939e47e238f7dacef670aa858d882fd', 'forum')" value="Вставить" name="goinsert">
					 </div>
					 <div style="display:none" id="imgloading" class="usr_bb_button">
						Загрузка изображения...
					 </div>    </div>
+1
SJen SJen 12 лет назад #
да, все верно
а заменил я потому, что конструкция
Код PHP:
cmsPage :: getBBCodeToolbar('message', false);
добавляет нехорошие бб коды, которые рушат чат. И ничего с этим не сделаешь (не хотелось ради чата влезать в код движка). Поэтому самый простой вариант был - просто вынести все бб кнопки в файл фронтенд, избавиться от вызова процедуры getBBCodeToolbar.
0
st.Puh st.Puh 12 лет назад #
а почему у меня с вашей вставкой несрабатывают всеже кнопки вв у меня 1.9 версия в свой файл вставляю ваш кусок кода и неработает
0
SJen SJen 12 лет назад #
надо проверить чем он отличается от "Вашего" куска кода, рабочего. Надо оставить старые файлы и открыть чат. И посмотреть как там выглядит код bb кодов. Чем отличается.

И почему он работает, а новый вариант не хочет работать - видимо разница все-таки есть.
0
st.Puh st.Puh 12 лет назад #
Чат стоит тот на который есть ссылка в этой теме выше, даже вчера презакачал и переустановил.свой файл frontend.php сравниваю с вашим на отличии програмой WinMerge v2.12.4 она каких либо других отличий кроме тех что я здесь написал в файлах ненаходит
0
SJen SJen 12 лет назад #
да дело не в самом чате - он то одинаковый.
И разницу надо поискать не в моем файле и файле из чата - с ними все понятно и просто (вызов функции заменен на список кнопок).
Надо посмотреть на рабочем сайте с рабочими бб кодами - как они там прописаны? - вот в этом и корень проблемы, может что-то отличается от моего варианта, из-за чего они и перестают работать.

Или кидайте просто в личку сайт, я сам открою и проверю (делов на 2 минуты:) )
0
Алхимик Алхимик 12 лет назад #
чат использовал бб-коды установленные в instantcms, а не свои.
0
ALreD ALreD 12 лет назад #
Да, у меня тоже не работают кнопки... Просто заменил на Ваш файл...
0
Александр Александр 12 лет назад #
Скриншотик бы, а то ставил разные чаты и не поймешь какой это
+1
SJen SJen 12 лет назад #
это единственный чат, сделанный Максисофтом.
Да и тут же всего-лишь хак, исправление двух файлов. Хотите увидеть скриншот двух файлов?))
0
Алхимик Алхимик 12 лет назад #
ещё этот чат не понимает символы в логине и выводит вместо этого &#9619;&#9618;&#9617; Vikky&#9786;Mikky &#9617;&#9618;&#9619; вот что: &#9619;&#9618;&#9617; Vikky&#9786;Mikky &#9617;&#9618;&#9619;
0
Алхимик Алхимик 12 лет назад #
0
SeoNick SeoNick 12 лет назад #
Подскажите, и с этим хаком и без него выскакивает ошибка: {"response":"Good work","to":"","privat":false,"nickname":"ADMIN","message":"","time":"16:54:24","lasttime":3620,"bgcolor":"rgb(0, 0, 0)","display":"","uid":"1"}

Раньше все нормально работало. :(
+1
SJen SJen 12 лет назад #
это же не мой компонент, я по нему ничего не смогу сказать. Глюки есть, поддержки уже нет (насколько я знаю). Хак в основном исправляет косяк с аяксом - это главное, другие баги он не затрагивает.
0
SeoNick SeoNick 12 лет назад #
Может подскажите компонент другого чата?
0
SeoNick SeoNick 12 лет назад #
А сам код где взять? Вроде чат неплохой.
0
bondar bondar 12 лет назад #
купиить)) он его продает вроде
0
Camfrog Camfrog 12 лет назад #
Где?
0
ALreD ALreD 12 лет назад #
Значит так... Отписываю результаты трудов...
У меня, как и у некоторых отписавшихся, после замены файла frontend СОВСЕМ! перестали работать кнопки... Почему это происходит у нас но не происходит у автора модификации - понять невозможно! ПОтому, после пары часов экспериментов, решил проблему следующим образом... МОжет, это и не элегантное решение, но оно вполне работоспособное!
1. Вернул назад "родной" файл frontend.php
2. Открыл файл \core\classes\page.class.php, где описана процедура getBBCodeToolbar
3. Не думаем плохого! Я не мешаю этой процедуре существовать в других разделах сайта!!! )))
4. Продублировал часть кода, ответсвенный за эту процедуру и присвоил ему уникальное имя - getBBCodeToolbar9 (ну "9" - первое что пришло в голову! Можно любое иное...)
5. Вычистил в этой части кода ненужные кнопки - спойлер в частности - но с ним и многие иные в чате не нужные по сути...
6. Вернулся в frontend.php и вместо процедуры cmsPage :: getBBCodeToolbar('message', false); вписал новую (отредактированную) процедуру - cmsPage :: getBBCodeToolbar9('message', false);

ЧТо мы получили в результате? Мы избавиилсь от спорных модификаций файла frontend.php, получили полную работоспособность чата с удаленными функциями - но который работает по правильному алгоритму - но с отдельной процедурой вызова панели... Буду тестировать дальше - но пока, часа 2 уже - полет нормальный!
Всем успехов )
0
SJen SJen 12 лет назад #
обновил пост, убрал свой фронтенд. Мысль правильная, я думаю полет и будет нормальным. Я же вместо дублирования процедуры просто вставил код, который она возвращала (у меня) - при этом убрав лишние кнопки. Но видимо мой вариант сработал "как надо" не у всех.
0
ALreD ALreD 12 лет назад #
да я смотрел... Либо моих знаний недостаточно что бы разобраться, какие коды она возвращает (а я ну совсем не программист!) либо не у всех все одинаково - что странно... В любом случае - если Ваш метод у кого то работает - отлично. У кого нет - может помочь моя методика) Свобода выбора, ептить)))
0
SJen SJen 12 лет назад #
ALreD:
Либо моих знаний недостаточно что бы разобраться, какие коды она возвращает
Чтобы это узнать, достаточно в браузере посмотреть исходный код страницы(в фаерфоксе Инструменты->Веб-разработка->Исходных код страницы). В данном случае ничего программировать не нужно)
0
Saw Saw 12 лет назад #
Помогло, спасибо
0
Константин Г. Константин Г. 12 лет назад #
Здрасти. А можете мне помочь с тем что у меня сильно чат срезается внизу и когда статус открываю или цвет-окошко со статусами вылизит за низ страницы Скринчик там все я стрелкой показал что именно если не поняли.
0
Вадим Вадим 12 лет назад #
Тоже была такая проблема, в css вроде исправлял какой-то размер, точно не вспомню, давно это было.

Еще от автора

Обновление компонента "Мне нравится"
Приветствую. Закончил версию с исправлением ошибок и багов, всем пользователям обновление выслано на электронку.
Обновление компонента  "Каталог дополнений в админку"
Приветствую. Обновление самого популярного аддона из официального каталога дополнений.
Обновленный парсер Яндекс.Карт
Приветствую Изменения довольно значительны, поэтому имеет смысл оформить их отдельным постом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.