Шаромов Денис: Интеграция тикетов и открытых линий

На последней конференции обсуждали с коллегами, как внедрять открытые линии в компании, когда есть уже сложившиеся механизмы работы, в частности, модуль техподдержки. Сами мы готовимся к полному переходу поддержки на открытые линии, но пока работают два канала: открытые линии и модуль техподдержки. Расскажу, как подружить эти две системы.

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

Подробнее...

Категории : Новости Битрикс
Автор :
Теги : новости

Роберт Басыров: Обновление документации в сентябре 2017

День добрый!
В этом месяце самый большой "выхлоп" по документации API D7. Кроме того, в шаблонах курсов появилась возможность добавлять сложность урока и ограничения по версиям. Это позволит ориентироваться насколько сложно освоение данного функционала и есть ли он в вашей редакции.

Подробнее...

Категории : Новости Битрикс
Автор :
Теги : новости

Роберт Басыров: Обновление документации в августе 2017

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

Подробнее...

Категории : Новости Битрикс
Автор :
Теги : новости

Дмитрий Медведев: Повышение минимальной версии PHP до 5.6

С 1 января 2018 года минимальные требования наших продуктов повышаются до PHP 5.6. Это значит, что сайты и порталы с устаревшими версиями перестанут получать обновления до тех пор, пока не обновят PHP до версий 5.6, 7.0 или 7.1. В ближайшее время в системе обновлений всех сайтов появится соответствующее предупреждение.

Подробнее...

Категории : Новости Битрикс
Автор :
Теги : новости

Роберт Басыров: Обновление документации в июле 2017

Работа над документацией по функционалу, связанному с Федеральными законами - основное в этом месяце. Попутно дорабатывались документации по АПИ и 7-ой версии БитриксВМ. Подробнее - под катом.

Подробнее...

Категории : Новости Битрикс
Автор :
Теги : новости

Юрий Волошин: Приключения с переходом от виртуальной машины 4.х и 5.х на новую 7.х

st-04.jpg
1C-Bitrix выпускает окружение (виртуальную машину) для установки своих продуктов. Оптимизированное для работы с продуктами компании, несложное в установке. Продукт можно использовать как виртуальную машину, так и установить на чистый сервер с установленным CentOS.

Я как раз отношусь к типу клиентов, для которого компания выпускает данный продукт. Я не особо силен в настройке серверов, но в тоже время у меня есть проекты, которые живут на серверах, эти проекты на продуктах 1С-Битрикс, и я использую "виртуальное окружение».

У меня два сервера, один на окружение 4.х и один на окружение 5.х – переход я буду делать достаточно нетривиальный, я не буду обновлять или пытаться перейти на новую версию продукта, я поставлю все с нуля и перенесу для примера один проект.

Делать все будем по шагам, поехали…

Первый шаг: арендуем хостинг, ставим на него чистый CentOS 7.3 – не буду подробно описывать выбор хостинга (будет расценено как реклама), будем считать, что я арендовал недорогой выделенный сервер, установил на него чистый CentOS 7.3 и могу приступить к установки продукта 1С-Битрикс.

Второй шаг: На первом ролике мы установим нашу "виртуальную машину на чистый сервер»

В вашем браузере отключен JavaScript

Распишем кратко происходящее в ролике:

1. Входим на сервер по "SSH» как "root» (администратор), командой "ssh root@домен_или_IP_вашего_сервера»
2. Устанавливаем сам скрипт, для этого выполним: "wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh && chmod +x bitrix-env.sh && ./bitrix-env.sh»
3. На первое сообщение ставим "Y»
4. Командой "reboot» перезагружаем сервер.
5. Повторно входим на сервер как пользователь "root»
6. Заново вводим команду: "wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh && chmod +x bitrix-env.sh && ./bitrix-env.sh»
7. Устанавливаем заодно "MC» (текстовая оболочка), ставим командой: "yum install mc»
8. Устанавливаем "unzip» (пригодится), ставим командой: "yum install unzip»
9. Ждем когда все обновится и заходим в "mc» проверить

Окружение установлено, начинаем несложные настройки.

Третий шаг: Первый вход, начальные настройки

В вашем браузере отключен JavaScript

Распишем кратко происходящее в ролике:

1. Перезагружаем сервер командой "reboot».
2. Входим на сервер по "SSH» как "root» (администратор), командой "ssh root@домен_или_IP_вашего_сервера»
3. При входе вас попросят задать пароль для пользователя "bitrix», этим пользователем мы в основном и будем работать, переключаясь на пользователя "root» только когда требуются административные полномочия
4. Попадаем в меню машины. В первую очередь нужно создать "pool», не будем вдаваться что это такое, если требуется можно почитать документацию, нам важно его просто создать. Выбираем "1». Я согласился оставить название как мне предложили.
5. Возвращаемся в меню, оно стало полным, с машиной можно начинать работать.
6. Нам нужно в первую очередь создать все необходимое, для переноса сайта.
7. Заходим в пункт меню "6» - где мы и создадим наш сайт.
8. Выбираем пункт "1», запускается мастер создания сайта.
9. На первом шаге нужно указать домен вашего сайта, я переношу сайт http://sys-knowledge.com и указываю "sys-knowledge.com»
10. На втором шаге у вас спрашивают какой тип вы создаете. Подробно это расписано в документации. В нашем случае это самостоятельный сайт, со своим ядром, поэтому я выбираю "kernel»
11. Указываем кодировку вашего сайта, в моем случае это "UTF-8»
12. Соглашаемся с установкой заданий на крон, ставим "Y»
13. Я хочу расширенные настройки создания поэтому ставлю "Y» на этапе "Do you want to specify them?»
14. Директория хранения сайта меня устраивает, я жму просто "Ввод»
15. Задаю свое название базы данных, такое название было на предыдущем сервере, и чтобы не менять его в двух файлах далее, я его повторяю
16. Задаю своего пользователя, который будет иметь доступ к базе данных. Пользователь использовался ранее и я его оставляю.
17. Указываем пароль, два раза.
18. Запускается задание на выполнение, о чем нам сообщают, и буквально через 3-5 секунд можно смотреть, что у нас получилось.
19. Для этого я выхожу из скрипта и захожу в "MC»
20. Переходим в директорию: "/home/bitrix/ext_www/» и видим директорию нашего сайта "sys-knowledge.com».

Четвертый шаг: Мы подготовили на сервере все необходимое, теперь нам нужно запаковать наш сайт на старом сервере и выгрузить базу данных, перенести все это через "sftp» на наш новый сервер, загрузить базу и положить наш сайт в подготовленную директорию.

Опишем как мы будем это делать.

1. Заходим на старый сервер под пользователем "root».
2. Выгружаем базу данных нашего сайта в файл, для этого выполняем команду: "mysqldump -u имя_пользователя -p имя_базы > имя_базы.sql». Вы должны знать пользователя с доступом к этой базе данных, вы должны знать название базы данных.
3. Теперь нужно выйти из пользователя "root» и войти под пользователем "bitrix».
4. Заходим в директорию где располагается наш сайт, и архивируем все ее содержимое командой: "zip -r название_файла.zip ./».
5. Заходим на сервер по "sftp» с провами пользователя "bitrix» и забираем эти два файла, файл "zip» и файл с расширением "sql».
6. Загружаем их на новый сервер, под правами пользователя "bitrix»

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

Пятый шаг: еще немного и сайт будет работать. Импортируем базу данных, распаковываем сам сайт, вносим изменения для нового MySQL.

В вашем браузере отключен JavaScript

Распишем кратко происходящее в ролике:

1. Входим на сервер по "SSH» как "root» (администратор), командой "ssh root@домен_или_IP_вашего_сервера»
2. Командой "mysql -u пользователь_базы -p база_куда_грузим < файл_дампа.sql» импортируем нашу базу на сервер, вводим пароль от пользователя с правами на эту базу данных.
3. На экране я показал еще одну команду "SHOW DATABASES;» с помощью нее мы показываем список всех ваших баз, не забудьте войти в "MySQL»
4. База загружена, разрываем соединение командой "exit»
5. Входим на сервер по "SSH» как "bitrix», командой "ssh bitrix@домен_или_IP_вашего_сервера»
6. Копируем файл "zip» нашего упакованного сайта в директорию где будем ее распаковывать и где мы создали свой сайт, через мастер на "Третьем шаге»
7. Распаковываем наш архив командой "unzip *.zip»
8. Удаляем архив после распаковки.
9. Ура осталось совсем немного

Осталось сменить в вашем домене IP адрес вашего старого сервера на новый. Я управляю доменами на "pdd яндекса», и для меня это пара минут. Должно пройти немного времени, чтобы домен открывался, по новому IP адресу вашего нового сервера.

Пытаемся открыть сайт, о ужас он не открывается, просто белый экран или выводятся ошибки. Дрожь проходит, успокаиваемся, не чего страшного J Нам необходимо сделать небольшие изменения в двух файлах.

Шестой шаг: Изменения в двух файлах продукта, для работы с новым MySQL

Сайт не работает, но это не страшно, нам нужно изменить всего пару строк в двух файлах и все станет хорошо.

Первый файл:

Подключаемся к серверу как пользователь "bitrix»

"…/bitrix/php_interace/dbconn.php» в него нужно добавить строку "define("BX_USE_MYSQLI", true);»



второй файл:

"…/bitrix/.settings.php» в нем нужно изменить строку: "className' => 'BitrixMainDBMysqlConnection» на "className' => 'BitrixMainDBMysqliConnection»

st-05.jpg

Пробуем запустить сайт, ура все работает! Наслаждаемся новым PHP и MySQL.

st-06.jpg



С удовольствием отвечу на ваши вопросы в комментариях, не стесняйтесь писать.

.
Подробнее...

Категории : Новости Битрикс
Автор :
Теги : новости

Формы, персональные данные и закон ФЗ-152

create.png
Добрый день, коллеги!

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

Каждая форма, которая собирает, к примеру, имя, фамилию, email или телефон, должна запрашивать согласие пользователя на обработку персональных данных.

Мы в обновлении главного модуля 17.0.9 выпустили набор инструментов, который поможет вам соответствовать закону ФЗ-152 о персональных данных.
Начну с того, что в административном разделе в меню появился новый пункт:
Настройки -> Настройки продукта -> Соглашения



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

Мы рассмотрим как включить поддержку соглашений в ваших компонентах на примере компонента подписки на рассылку sender.subscribe.


1. Выбор.

Сделаем в параметрах компонента выбор соглашения для вывода.
Для этого в файле параметров вашего компонента .parameters.php достаточно объявить параметр "USER_CONSENT" => array() и появится раздел с параметрами настройки:
====code====
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentParameters = array(
    "GROUPS" => array(
    ),
    "PARAMETERS" => array(
     "AJAX_MODE" => array(),
     "USER_CONSENT" => array(),
    )
); 
=============
Теперь в настройках компонента появились вот такие настройки:

parametry komponenta.png



2. Вывод в форме.

Для вывода нужно использовать компонент main.userconsent.request.
Он выводит чекбокс с подписью, по нажатию на которую выводится окно с текстом соглашения.
Окно с текстом адаптивное и уже сделано и под мобильные устройства.

vyvod.png

Также, компонент умеет сохранять полученное согласие.
Само согласие будет в списке, показываемым в по клику в пункте "Полученные согласия" в контекстом меню соглашения на списке.

Компонент main.userconsent.request нужно подключить в шаблоне вашего компонента перед кнопкой отправки формы.
Есть два вида форм:
- один стандартная get/post отправка формы с событием submit;
- отправка через ajax и иные механизмы, реализованные в js, то есть без события submit у формы.
Для них нужно по разному использовать компонент.

1) Простая форма с событием submit.

Подключаем компонент main.userconsent.request перед кнопкой отправки формы
====code====
<fo rm method="POST">
    <input name="EMAIL" placeholder="Email">
    <input name="PHONE" placeholder="Телефон">
    <input name="NAME" placeholder="Имя">
    <br>
    <?if ($arParams['USER_CONSENT'] == 'Y'):?>
     <?$APPLICATION->IncludeComponent(
      "bitrix:main.userconsent.request",
      "",
      array(
          "ID" => $arParams["USER_CONSENT_ID"],
          "IS_CHECKED" => $arParams["USER_CONSENT_IS_CHECKED"],
          "AUTO_SAVE" => "Y",
          "IS_LOADED" => $arParams["USER_CONSENT_IS_LOADED"],
          "REPLACE" => array(
           'button_caption' => 'Подписаться!',
           'fields' => array('Email', 'Телефон', 'Имя')
          ),
      )
     );?>
    <?endif;?>
    <input type="submit" name="subscribe" value="Подписаться!">
</form> 
=============
Указанные в примере параметры $arParams появятся в шаблоне вашего компонента при наличии
в .parameters.php блока "USER_CONSENT" => array()

В параметре REPLACE передается
- button_caption, название кнопки отправки формы;
- fields, массив названий полей, которые попадут в текст соглашения.


2) Форма без события submit(ajax и пр).

В компонент нужно передать в параметре SUBMIT_EVENT_NAME название события, при котором появится окно запроса согласия.
Далее, нужно добавить обработчик события принятия соглашения.
Если обработчик поймает событие - значит, согласие получено и можно отправлять форму/данные или выполнять какое-то действие.
====code====
<div id="my_container">
    <input type="text" placeholder="Электронный адрес" name="EMAIL">
    <input type="submit" id="fire_event" value="Отправить">
    <br>
    <?if ($arParams['USER_CONSENT'] == 'Y'):?>
        <?$APPLICATION->IncludeComponent(
            "bitrix:main.userconsent.request",
            "",
            array(
                'ID' => $arParams["USER_CONSENT_ID"],
                "IS_CHECKED" => $arParams["USER_CONSENT_IS_CHECKED"],
                "IS_LOADED" => "Y",
                "AUTO_SAVE" => "N",
                'SUBMIT_EVENT_NAME' => 'my-event-name',
                'REPLACE' => array(
                    'button_caption' => 'Отправить',
                    'fields' => array('Электронный адрес')
                ),
            )
        );?>
    <?endif;?>
</div>
    
<sc ript type="text/javascript">
BX.ready(function () {

    var submitBtn = BX('fire_event');
    BX.bind(submitBtn, 'click', function(){
        BX.onCustomEvent('my-event-name', []);
    });

    if (!BX.UserConsent)
    {
        return;
    }
    var control = BX.UserConsent.load(BX('my_container'));
    if (!control)
    {
        return;
    }
    
    BX.addCustomEvent(
        control,
        BX.UserConsent.events.save,
        function (data) {
            console.log('js event:', 'save', data);
            // успешно!
            // отправляем ajax 
            // или другие действия
        }
    );
    
});
</sc ript>
=============

3. Сохранение согласия.

В параметрах компонента есть параметр AUTO_SAVE.
Если его значение равно Y, то согласие автоматически сохраняется компонентом.

Если вам нужно сохранить согласие самим, то передайте значение N.
А для ручного добавления согласия вызовите следующий код:
====code====
   BitrixMainUserConsentConsent::addByContext( 
       $arParams["USER_CONSENT_ID"]
   );
=============

Теперь у вас есть инструмент, с помощью которого вы можете быстро привести свои компоненты в соответствие закону, а также помочь соответствовать вашим клиентам.

Есть еще то, что не описал:
- добавление своего источника данных;
- при просмотре согласий вывод связи со своей сущностью;
- кейс использования в виде ссылок;
- дополнительные компоненты выбора и просмотра.

Если вам эта тема интересна - пишите в комментариях, добавим в статью доп информацию.


.
Подробнее...

Категории : Новости Битрикс
Автор : bi3ks
Теги : новости
1 2
Страница 1 из 2