Итак, исходная задача – перенести блок “Вопрос-Ответ” на платформу Битрикс с имеющимися данными.
Для работы с таким типом данных я выбрал компонент “Веб-Формы”, наиболее подходящий, с моей точки зрения, для реализации задачи.
Так же, дабы не изобретать велосипеда, решил погуглить и как результат – статья о создании системы “Вопрос-Ответ” на “Веб-Формах” в 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 довольно таки популярен для коммерческих сайтов и многие переходят на него. А раздел “Вопрос-ответ” – хорошее решение для общения с посетителями:-)