Итак, исходная задача — перенести блок «Вопрос-Ответ» на платформу Битрикс с имеющимися данными.
Для работы с таким типом данных я выбрал компонент «Веб-Формы», наиболее подходящий, с моей точки зрения, для реализации задачи.
Так же, дабы не изобретать велосипеда, решил погуглить и как результат — статья о создании системы «Вопрос-Ответ» на «Веб-Формах» в 6-ти частях — 100% попадание. Как хорошо, что есть на свете интернет 🙂
Поискал ещё в маркете готовое бесплатное решение — но не нашел, хотя говорят они есть и много.
Сделал всё по инструкции и … о чудо — заработало с первого раза 🙂
Далее сваял небольшой парсер нужного мне материала, далее вроде как всё просто — пихаем его в Битрикс средствами API.
Но, тут всё же нашлось пару неприятных моментов:
1. Обращаю внимание на массив значений ответов — form_text_1, form_text_2, form_textarea_3 — названия переменных строятся из места положения на форме и типе даннах.
2. Форму и статус меняем уже после создания результата CFormResult::Add
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
// ID веб-формы $FORM_ID = 1; // массив значений ответов $arValues = array ( «form_text_1» => $ar[‘user_name’], «form_text_2» => $ar[‘user_mail’], «form_textarea_3» => $ar[‘quest’], ); // создадим новый результат if ($RESULT_ID = CFormResult::Add($FORM_ID, $arValues)) { echo «Результат #».$RESULT_ID.» успешно создан»; //Обновляем поле наш ответ у результата веб-формы с id=RESULT_ID $FIELD_SID = «our_answer»; // символьный идентификатор вопроса CFormResult::SetField($RESULT_ID, $FIELD_SID, $ar[‘answer’]); //обновляем статус веб формы на ОТВЕТ $STATUS_ID = $QA[«ID_STATUS_A»]; // ID статуса «Опубликовано» CFormResult::SetStatus($RESULT_ID, $STATUS_ID); } else { global $strError; echo $strError; } |
3. Для приведения в порядок даты создания ‘DATE_CREATE’, к сожалению API не помог и пришлось напрямую «долбить» в БД, приведу кусочек кода
1 2 3 |
...... $query = «UPDATE `b_form_result` SET `DATE_CREATE` = ‘».$f[‘year’].«-«.$f[‘month’].«-«.$f[‘day’].» 12:00:00′ WHERE `b_form_result`.`ID` =».$f[‘resid’].«;» ...... |
Собственно, всё.
Надеюсь статейка кому-то да сгодиться.
Один комментарий на «“Битрикс — конвертация Веб Форм”»
Довольно узкопрофильная задача. Но Bitrix довольно таки популярен для коммерческих сайтов и многие переходят на него. А раздел «Вопрос-ответ» — хорошее решение для общения с посетителями:-)