Цитата | ||
---|---|---|
shs777 пишет:
|
спасибо
30.08.2013 12:20:51
Пишу следующие строки в bitrixswap.js
Идём в битрикс Добавляем в кнопку поле для количества писем
Работает на ура А значит так можно производить обмен всей информации между сервисами. Я продолжу описывать свои действия по как можно чаще. для наглядности скрины |
|||||||
|
30.08.2013 11:41:22
Итак у нас есть канал обмена данных между двумя системами в одно окне браузера это функция postMessage()
Кратко о работе функции, пример для тех кто не знаком с ней: Функция может отправлять строку в фрейм и из фрейма. Отправка в фрейм:
Итак вернёмся к нашему кериву. Хотим мы значит видеть на кнопке количество непрочитанных сообщений. Моем руки и лезем в код керио, в файлик index2.html что бы не потеряться я добавил туда комменты, а между ними вставил ссылки на библиотеку jq и мой скрипт интеграции.
дальше открываем сам керио в браузере и (я это делал с помощью инструментов разработчика Chrome) ищем нужную нам информацию Находим её в диве имеющем класс mailMsgCount Это очень хорошо, что в этом диве только число, вот везение, осталось только взять и отправить в родительский фрейм на кнопку. ![]() .... |
|||||||
|
30.08.2013 11:07:15
День первый.
Добавил в header.php шаблона КП загрузку библиотеки jquery
что бы фрейм принимал размеры окна и плавно появлялся при вызове его. так.... И вот у нас уже есть керио в битриксе, вроде бы чего еще хотеть. Давайте для начала захотим видеть на кнопке количество не прочитанных писем. Ого вот тут начинается самое интересное. Для тех кто не знает что такое Same Origin Policy
![]() Однако есть решение ![]() Обмен между фреймом и родительским документом JS предлагает вести с помощью некой функции postMessage(); Важные моменты: - стандарт HTML5 - работает в браузерах Firefox 3.5, Opera 10, Safari 4.0/Chrome 3.0+, Internet Explorer 8.0, соответственно и выше. Мне подойдет Оперу я отрицаю, а в офисе стоит FF и IE последних версий, сам использую Хром. 8) |
|||||||||||
|
30.08.2013 10:39:45
Задача:
Добавить почтовый веб-интерфейс Kerio в КП, да не просто добавить а интегрировать, и производить обмен информацией между системами. Решение: Решения я изначально видел два: Первое, долгое и тернистое, НО в конечном итоге качественное и гибкое. Интерфейс керио выполнен на PHP, загружаясь в браузер он обменивается с сервером по API используя Аякс, запросы выполняются в json'e. С первого взгляда всё просто пишем в битриксе интерфейс используем уже готовый API для получения полноценного интерфейса Керио WebMail. Но, во первых, для тех кто не видел код керио: Кусок любого кода Kerio в студию! ![]()
![]() PHP код выглядит так же, с зашифрованными названиями функций и переменных. Увиденная картина уже вызывает отвращение к первому варианту, ведь это всё предстоит понять. А теперь решение... Второе, быстрое и незамысловатое, по пути которого я и пошел, НО меня не покидают смутные сомнения, не приду ли я в тупик. ![]() В этом решении нам поможет библиотека jquery и естественно iframe. Дальше буду описывать свои действия по мере выполнения, возможно кому-нибудь поможет это, так как я не нашел похожих тем, которые помогли бы мне, и надеюсь на адекватную критику и советы. Поехали... 8) |
|||
|