.
Место для Вашей рекламы
19 Февраль 2013

Битрикс — конвертация Веб Форм

Итак, исходная задача — перенести блок «Вопрос-Ответ» на платформу Битрикс с имеющимися данными.
Для работы с таким типом данных я выбрал компонент «Веб-Формы», наиболее подходящий, с моей точки зрения, для реализации задачи.
Так же, дабы не изобретать велосипеда, решил погуглить и как результат — статья о создании системы «Вопрос-Ответ» на «Веб-Формах» в 6-ти частях — 100% попадание. Как хорошо, что есть на свете интернет 🙂
Поискал ещё в маркете готовое бесплатное решение — но не нашел, хотя говорят они есть и много.

Сделал всё по инструкции и … о чудо — заработало с первого раза 🙂

Далее сваял небольшой парсер нужного мне материала, далее вроде как всё просто — пихаем его в Битрикс средствами API.
Но, тут всё же нашлось пару неприятных моментов:

1. Обращаю внимание на массив значений ответов — form_text_1, form_text_2, form_textarea_3 — названия переменных строятся из места положения на форме и типе даннах.
2. Форму и статус меняем уже после создания результата CFormResult::Add

		// 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 не помог и пришлось напрямую «долбить» в БД, приведу кусочек кода

   ......
   $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 | Комментарии (1)

15 Февраль 2013

FreeBSD — серверная автоматизация SFTP

Итак, задача — на сервере под управлением FreeBSD сваять скриптик, который регулярно «ходит» по SFTP и «забирает» определенный файлик.
Поначалу задача показалась мне очень простой — пишем сценарий, скармливаем его sftp клиенту и вуаля.
На деле всё сильно осложнилось:
1. Сервер не принимал аутентификацию по ключам (себе то я сгенерировал, а вот закинуть ключ на сервер — облом), поэтому коннект осуществлялся только с вводом пароля
2. Передача пароля клиенту через конвеер либо перенаправлением ввода не срабатывал — ТОЛЬКО ручной ввод с клавиатуры

Далее гугл и статейка Автоматизация sftp
Установка expect и проба скрипта так же не увенчалась успехом, но и несколько часов мучения с перлом тоже — NET::SFTP ни в какую не хотел вставать на серваке.

После чего у меня возникла идея автоматического монтирования sftp — снова гугл и решение — sshfs !

Но опять же sshfs требует ручного ввода пароля — по идее раз замонтировал и работай, но аптайм сервера всё же не 100% и при перезагрузке монтировать нужно автоматом…
Снова затык!

Попровал объединить первый метод expect и sshfs, который и привёл к положительному результату после поисков в виде скриптика:

#!/usr/local/bin/expect
spawn -ignore HUP /usr/local/bin/sshfs root@192.168.1.1:/usr/ /mountpoint
expect "*assword*"
send "SuperPass\r"
expect "\n"

Кидаем его в автозапуск — то есть сюды /usr/local/etc/rc.d
Чтоб запускался последним – имя делам начиная с Z

ЧТД

рубрики: NIX, Администрирование | Комментарии (0)

8 Февраль 2013

Компьютер и безопасность

Сегодня довелось побывать на почте с целью отправки писем — меня как админа, позабавили плакаты на стене «Компьютер и безопасность» — обязательно распечатаю и на стену в кабинете! 🙂
Собственно, сабж в студию:


Компьютер и безопасность — плакат 1

Читать полностью »

рубрики: Юмор | 8 комментариев

Яндекс.Метрика