| Это плагин icq бота SteelBot. Помогите пожалуйста. Что нужно дописать чтобы все ответы на вопросы записывались файл. Например: Вопрос: Сколько вам лет? Ответ: 1. 12-15. В файл должно записаться Сколько вам лет? 1. 12-15 .
<?php
class plg_test {
static $curq = array(), // текущий вопрос (uin => question_id)
$q = array(array("Сколько вам лет?", "12-15", "15-18", "18", "num"), // вопросы array (Вопрос, варианты ответа, тип)
array("Место учебы", "Школа", "Вуз", "num"),
array("Дата рождения в формате чч\мм\гггг", "date")
);
function get_next()
{
$uin = SteelBot::GetSender();
$text = SteelBot::GetMsgText();
$curr = intval(self::$curq[$uin]);
if ($text == 'help') return;
if ($text == 'тест') {
SteelBot::msg(self::GetText($curr));
SteelBot::DropMsg();
return;
}
switch (self::$q[$curr][count(self::$q[$curr])-1]) {
case 'num': // ответом является номер варианта ответа
$answ = intval($text);
if ($answ > (count(self::$q[$curr])-2) || $answ < 1) {
SteelBot::msg(self::GetText($curr));
SteelBot::DropMsg();
return;
}
/* тут мы записываем данные в файл или еще че нить делаем */
SteelBot::DropMsg();
break;
case 'date':
if (!preg_match_all("/(\d{2})\\\(\d{2})\\\(\d{4})/iU", $text, $out)) {
SteelBot::msg(self::GetText($curr));
SteelBot::DropMsg();
return;
}
$d = $out[1][0]; // число
$m = $out[1][1]; // месяц
$y = $out[1][2]; // год
/* тут мы записываем данные в файл или еще че нить делаем */
SteelBot::DropMsg();
break;
default:
SteelBot::DropMsg();
return;
}
self::$curq[$uin]++;
$curr++;
if ($curr == count(self::$q))
SteelBot::Msg("Вы прошли тест!");
else
SteelBot::Msg(self::GetText($curr));
return;
}
function GetText($num) {
$text = self::$q[$num][0];
$q = self::$q[$num];
switch ($q[count($q)-1]) {
case 'num':
$text .= "\nВыберите вариант ответа:";
for ($i = 1; $i < (count($q)-1); $i++)
$text .= "\n$i. " . $q[$i];
return $text;
case 'date':
$text .= "\nВведите ответ в формате чч\мм\гггг";
return $text;
default:
return "";
}
}
}
SteelBot::RegisterEventHandler(EVENT_MSG_RECIEVED, array ('plg_test', 'get_next'));
SteelBot::RegisterCmd("тест",array("plg_test", "get_next"), 1,"тест - пройти тест"); | |