Проблема интеграции скрипта Bitrix24 в Moodle

Проблема интеграции скрипта Bitrix24 в Moodle

от D- Kayuda -
Количество ответов: 8

Добрый день.
Система Bitrix24 позволяет создавать формы заявок на заполнение и поддерживает интеграцию в Moodle. Существует следующий JS код, генерированный в Bitrix 24:

<th scope="col"><!--начало первой кнопки -->

<script id="bx24_form_button" data-skip-moving="true">

        (function(w,d,u,b){w['Bitrix24FormObject']=b;w[b] = w[b] || function(){arguments[0].ref=u;

                (w[b].forms=w[b].forms||[]).push(arguments[0])};

                if(w[b]['forms']) return;

                var s=d.createElement('script');s.async=1;s.src=u+'?'+(1*new Date());

                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);

        })(window,document,'https://264.bitrix24.ru/bitrix/js/crm/form_loader.js','b24form');

        b24form({"id":"18","lang":"ru","sec":"thgfn0","type":"button","click":""});

</script><button class="b24-web-form-popup-btn-18">Подать заявку от физического лица</button> <!--конец первой кнопки-->

</th>

<th scope="col">

<!--начало второй кнопки-->

<script id="bx24_form_button" data-skip-moving="true">

        (function(w,d,u,b){w['Bitrix24FormObject']=b;w[b] = w[b] || function(){arguments[0].ref=u;

                (w[b].forms=w[b].forms||[]).push(arguments[0])};

                if(w[b]['forms']) return;

                var s=d.createElement('script');s.async=1;s.src=u+'?'+(1*new Date());

                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);

        })(window,document,'https://264.bitrix24.ru/bitrix/js/crm/form_loader.js','b24form');

        b24form({"id":"16","lang":"ru","sec":"2de6da","type":"button","click":""});

</script><button class="b24-web-form-popup-btn-16">Подать заявку от юридического лица</button>

<!--конец второй кнопки-->

который вставляется в текстовую форму описания курса в режиме редактирования HTML-кода. 
После сохранения редакции настройки курса скрипт не срабатывает и страница отображает лишь содержимое <button>, при этом в режиме редактирования скрипт функционирует на отлично. Скриншот прилагаю.
Прошу помочь с решением данной проблемы.

Приложение 2018-07-18_14-02-31.png
В ответ на D- Kayuda

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от Vadim Tabunshchik -
Изображение пользователя Developers

А чего это у вас теги th без table? Они же вырежутся и кнопки будут в одну колонку.

Второе: даже в вашем сообщении видно, что ссылка на form_loader.js неправильная, в неё лишнее попадает: ','b24form'

Вот вам рабочий код:

<table border="0">
<tbody>
<tr>
<td>
<!--начало первой кнопки -->
<script type="text/javascript" data-skip-moving="true">
// <![CDATA[
(function(w,d,u,b){w['Bitrix24FormObject']=b;w[b] = w[b] || function(){arguments[0].ref=u;

                (w[b].forms=w[b].forms||[]).push(arguments[0])};

                if(w[b]['forms']) return;

                var s=d.createElement('script');s.async=1;s.src=u+'?'+(1*new Date());

                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);

        })(window,document,"https://264.bitrix24.ru/bitrix/js/crm/form_loader.js","b24form");

        b24form({"id":"18","lang":"ru","sec":"thgfn0","type":"button","click":""});
// ]]>
</script>
<p><button class="b24-web-form-popup-btn-18">Подать заявку от физического лица</button></p>
<!--конец первой кнопки-->
</td>
<td>
<!--начало второй кнопки-->
<script type="text/javascript" data-skip-moving="true">
// <![CDATA[
(function(w,d,u,b){w['Bitrix24FormObject']=b;w[b] = w[b] || function(){arguments[0].ref=u;

                (w[b].forms=w[b].forms||[]).push(arguments[0])};

                if(w[b]['forms']) return;

                var s=d.createElement('script');s.async=1;s.src=u+'?'+(1*new Date());

                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);

        })(window,document,"https://264.bitrix24.ru/bitrix/js/crm/form_loader.js","b24form");

        b24form({"id":"16","lang":"ru","sec":"2de6da","type":"button","click":""});
// ]]>
</script>
<p><button class="b24-web-form-popup-btn-16">Подать заявку от юридического лица</button></p>
<p>
<!--конец второй кнопки--></p>
</td>
</tr>
</tbody>
</table>

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

И будет вам счастье:

10

image001

image002

В ответ на Vadim Tabunshchik

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от D- Kayuda -

Спасибо за правки.
Код был заменён. Фильтры отключены, но это так и не помогло.
Завтра со свежей головой ещё раз пробегу по всем пунктам и обязательно отпишу здесь.

В ответ на D- Kayuda

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от Vadim Tabunshchik -
Изображение пользователя Developers
Код был заменён. Фильтры отключены, но это так и не помогло.

Код куда вставляете? Ресурс, блок?

Вот смотрите: https://moodle.pstu.edu/mod/page/view.php?id=11471 Можете сравнить исходный код с тем, что получается у вас.

В ответ на Vadim Tabunshchik

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от D- Kayuda -

В разделе "Описание курса" (Мои курсы/Курс#/Редактировать настройки/Описание/Описание курса). Скрин редактора текстового, HTML и раздел фильтров прилагаю

Приложение 2018-07-19_08-49-12.png
В ответ на Vadim Tabunshchik

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от D- Kayuda -

Что-то убивает скрипт после нажатия кнопки "Сохранить и показать" в разделе "Редактировать настройки". Скрин просмотра кода прилагаю. 

Приложение 2018-07-19_08-59-12.png
В ответ на D- Kayuda

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от Vadim Tabunshchik -
Изображение пользователя Developers
Что-то убивает скрипт…

У меня ничего не убивается улыбаюсь

Скрипт на месте, кнопка на месте, форма вызывается, на счёт обработки формы - не проверял:

image001
image002

Тут вот что нужно знать: внедрение форм и сторонних скриптов в Мудл - это всегда шаманские пляски с бубном.

Тем более, вы выбрали не очень удачное место для этой формы - блок «Описание курса». Отключая тут фильтры, вы их отключаете для всего курса. А вдруг где-то будет нужен какой-то фильтр? Включите одно - сломаете другое.

Что можно попробовать:

  1. Смените редактор на TinyMCE, проверьте в нем.
  2. Попробуйте разместить форму в отдельном HTML-блоке.
  3. Создайте веб-страницу (не в Мудл), скачайте скрипт form_loader.js, загрузите это всё во вложенные файлы блока и в самом блоке создайте ссылку на веб-страницу. Форма будет открываться в новом окне, скрипт подгрузится, будет не так красиво, но работать должно.

ЗЫ: а версия Мудл какая? Если 3.5.1, посмотрите не включен ли параметр forceclean (это новая фича) в Администрирование ► Разработка ► Экспериментальные возможности ► Экспериментальные настройки

В ответ на Vadim Tabunshchik

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от D- Kayuda -

В отдельных HTML-блоках скрипт и кнопки устанавливаются адекватно и работают, но по ТЗ эти кнопки должны быть именно в описании курса, где эта проблема и наблюдается..в самом курсе и его блоках всё ок, а в описании курса - не работают. Магия..)

В ответ на D- Kayuda

Re: Проблема интеграции скрипта Bitrix24 в Moodle

от Vadim Tabunshchik -
Изображение пользователя Developers
по ТЗ эти кнопки должны быть именно в описании курса

Вот мне интересно, что за специалисты пишут эти ТЗ? Они хоть малейшее представление имеют о том, что такое Мудл? И объяснять бесполезно улыбаюсь

Сделайте HTML-блок с названием «Описание курса» и разместите вместо стандартного улыбаюсь))

ЗЫ: а тему оформления стандартную используете? Или по ТЗ что-то спец-но изготавливали? улыбаюсь)