[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Тестирование
akimbaev
Суть проблемы такова: Препод дал задание чуток поправить систему тестирования, точнее системы генерации тестов. Он был написан его студентом года два назад. Я php пока начинающий, так что один не могу справиться с поставленным вопросом! Система работает таким образом: Сначала препод заносит вопросы и ответы в бд. а потом из бд экспортирует в html файл!!! Ести файл export.run.php и test.tpl.htm. Как я понял 1 файл берет данные из бд и заносит их во второй. Так вот нужно чтоб он заносил данные не во второй файл а в третий). который называется test.htm...Если ктолибо знает об ответе..помогите)))
Все три файла вложил...



Спустя 26 минут, 34 секунды (17.04.2010 - 21:33) vinnie написал(а):
Ага, за тебя решат, а потом препод погладит тебя по головке за это, да?))))))))))))))))))))))))

Спустя 1 минута, 23 секунды (17.04.2010 - 21:34) akimbaev написал(а):
Почему сразу по головке))) Нет ребят. Я не говорю чтоб вот мол решите и неииппет, я прошу помощи у тех кто более опытен в этих делах! Ну а если тебе помочь в лом, то это уже твое дело...

Спустя 4 минуты, 25 секунд (17.04.2010 - 21:39) moskitos80 написал(а):
У тебя первый файл использует ооп: некие методы неких классов. Без единой строчки комментариев сложно что либо сказать с уверенностью - я не Вольф Мессинг, второй файл - на JS, и использует теги разметки некого шаблонизатора: {...}. В итоге моё мнение: если у тебя третий файл содержит эти теги в нужных местах, то в первом просто перепиши:
$tpl->loadTemplatefile("test.tpl.htm", true, true);

на
$tpl->loadTemplatefile("test.htm", true, true);

по идее должно работать...

Спустя 5 минут, 44 секунды (17.04.2010 - 21:44) akimbaev написал(а):
Цитата (moskitos80 @ 17.04.2010 - 18:39)
по идее должно работать...


moskitos80 Спасибо за то что пытаешся помочь))

Но увы не работает!

"если у тебя третий файл содержит эти теги в нужных местах"

не содержит теги) во втором вопросы вообще берутся из массива которые хранятся в самом файле, а как сделать чтоб первый файл скидывал вопросы из бд в эти массивы третьего файла?

Спустя 33 минуты, 44 секунды (17.04.2010 - 22:18) moskitos80 написал(а):
Не понимаю... Я просматриваю второй файл и не нахожу массива с ответами... Зато отлично вижу тэги шаблонизатора:
"{counter}.{question_value}" и {ansc})<input type="radio" name="q{counter}">{answer_value}"

А так же в первом отлично наблюдается:
$tpl->loadTemplatefile("test.tpl.htm", true, true);

Это строка я почти уверен: шаблонизатору передаётся фал для парсинга и вместо тегов подставятся определённые значения...

Спустя 13 минут, 14 секунд (17.04.2010 - 22:31) akimbaev написал(а):
test.tpl это файл в который перекидывает данные export.run.php, a нужно чтоб он перекидывал в tesp.htm-- а в нем в конце перечислены массивы с вопросами,ответами и правильными ответами.

Спустя 2 минуты, 14 секунд (17.04.2010 - 22:33) akimbaev написал(а):
//массивы вопросов и ответов
var questions=new Array(
"Какое из сокращенных терминов означает интернет-провайдера?",
"Магистральная сеть провайдера называется...",
"Сети провайдеров объединяются в ...",
"Какова скорость передачи информации по линии стандарта Т1?",
"Технология создания связи между абонентом и точкой присутствия провайдера назвается ...",
"Какова максимальная скорость телефонных модемов?",
"Технология передачи информации без ущерба голосовой телефонной связи",
"Какова скорость нисходящего потока и восходящего потока информации по ADSL?",
"Что такое Интернет?",
"Какому уровню относится протокол IP?",
"Какому уровню относится протокол TCP?",
"Сплиттер это...",
"Как называется технология использования выделенной телефонной линии?",
"ADSL-модем разбивает исходный диапазон частот на...",
"Что такое сервисы Интернета?");
var answers=
new Array(new Array ("РОР", "ISDN", "ISP"),
new Array("трафиком", "бекбоуном", "модемным пулом"),
new Array("точках NAP", "точках ISP", "точках backbone"),
new Array("44,74Мбит/сек", "100Мбит/сек", "1,544Мбит/сек"),
new Array("Протокол передачи гипертекста", "Последней милей", "Общий шлюзовый интерфейс"),
new Array("56 Кбит/сек", "33600 бит/сек", "111000 бит/сек"),
new Array("GET", "POP3", "DSL"),
new Array("1 Мбит/сек и 8 Мбит/сек", "8 Мбит/сек и 1 Мбит/сек", "8 Мбит/сек и 8 Мбит/сек"),
new Array("Это объединение сетей всего мира, в котором все компьютеры взаимодействуют на протоколе TCP/IP, а также основанные на нем и доступные для использования службы", "Это сеть из несколько компьютеров, связанных друг с другом каким-либо способом", "Это сеть, которая покрывает целый город"),
new Array("Сеансовый уровень", "Канальный уровень", "Сетевой уровень"),
new Array("Сеансовый уровень", "Транспортный уровень", "Сетевой уровень"),
new Array("Частотный разделитель", "Модем", "Антенна"),
new Array("DSL", "ADSL", "ISDN"),
new Array("4000 мегагерцовые полосы", "4000 герцовые полосы", "4000 килогерцовые полосы"),
new Array("Типы услуг, поддерживаемые стандартными протоколами Интернета", "Программа, обеспечивающая предоставление услуг Интернета", "Средства коммуникации между пользователями Интернета") );
var correct_answers=new Array(3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1);

Спустя 21 минута, 4 секунды (17.04.2010 - 22:55) moskitos80 написал(а):
Тогда так - я правильно понял - ты хочешь правильные ответы из массивов заменить ответами из базы?

Спустя 3 минуты, 1 секунда (17.04.2010 - 22:58) akimbaev написал(а):
Да) и чтоб сами вопросы заменялись из базы и варианты ответов тоже) Ну чтоб export.run.php парсил файл test.htm

Спустя 38 минут, 28 секунд (17.04.2010 - 23:36) moskitos80 написал(а):
Тогда нужно знать внешний интерфейс шаблонизатора - класса: HTML_Template_IT. Какие данные и куда - он принимает, и какие, откуда - у него взять можно. Т.е. привязать взятые из базы данные, к определённым тегам шаблонизатора. Задать ему в кач-ве шаблона нужный файл.
А потом в файле, где инициируются массивы с правильными ответами - тегами шаблонизатора прописать эти ответы в массивах, но это, имхо, получается извращение...

Спустя 5 минут, 52 секунды (17.04.2010 - 23:42) akimbaev написал(а):
Если честно, то я тебя трудно понимаю)))

А нельзя просто посмотреть из файла export.run.php какие данные он вводит в test.tpl.htm и куда их вводит, а потом эти все данные перекинуть в массивы файла
test.htm??? Ну например в массив var questions=new Array

и то что получится извращение это не важно, главное чтоб работало)))

Спустя 2 минуты, 1 секунда (17.04.2010 - 23:44) akimbaev написал(а):
Цитата (akimbaev @ 17.04.2010 - 20:42)
Тогда нужно знать внешний интерфейс шаблонизатора - класса: HTML_Template_IT



А как можно узнать этот интерфейс?

Спустя 6 минут, 44 секунды (17.04.2010 - 23:51) moskitos80 написал(а):
Ну, вообще можно посмотреть в файле, где описывается сам класс, возможно там есть комментарии...

Спустя 4 минуты, 45 секунд (17.04.2010 - 23:55) akimbaev написал(а):
Цитата (moskitos80 @ 17.04.2010 - 20:51)
А нельзя просто посмотреть из файла export.run.php какие данные он вводит в test.tpl.htm и куда их вводит, а потом эти все данные перекинуть в массивы файла
test.htm??? Ну например в массив var questions=new Array



А вот так сделать нельзя?

Спустя 1 минута, 51 секунда (17.04.2010 - 23:57) akimbaev написал(а):
Чтоб вот это все:

{
$tpl = new HTML_Template_IT("tpl/");
$tpl->loadTemplatefile("test.tpl.htm", true, true);
$res='';

$var_quess = $table->getAllFetchsById('variant_question', 'var_id', $var_id, 'ques_id');

foreach ($var_quess as $i => $var_ques)
{
$anss = $table->getAllFetchsById('answer', 'ques_id', $var_ques['ques_id'], 'number');
$ques = $table->getFetchById('question', 'ques_id', $var_ques['ques_id']);
$var = $table->getFetchById('variant', 'var_id', $var_ques['var_id']);

foreach ($anss as $j => $ans)
{
$tpl->setCurrentBlock('answer');
$tpl->setVariable("counter", $i+1);
$tpl->setVariable("ansc", $j+1);
$tpl->setVariable("answer_value", $ans['value']);
$tpl->parseCurrentBlock('answer');
if ($ans['is_correct']=='1') $res.=$j+1;
}
$tpl->setCurrentBlock("question");
$tpl->setVariable("counter", $i+1);
$tpl->setVariable("question_value", $ques['value']);
$tpl->parseCurrentBlock("question");
}
$tpl->setVariable('res',$res);
$tpl->setVariable('questionNum', count($var_quess));
if ($var_quess) $zipfile -> addFile($tpl->get(), utf8_encode($var['name']).' '.$var['var_id'].'.html');
}


Выводил не сюда из файла test.tpl.htm:

<!-- BEGIN question -->
<LI><FONT size="+1"> Вопрос {counter}.{question_value}<BR>
<!-- BEGIN answer -->
{ansc})<input type="radio" name="q{counter}">{answer_value}<br>
<!-- END answer -->
<br>
</font>
<!-- END question -->


А в массивы файла test.htm????

Спустя 54 минуты, 54 секунды (18.04.2010 - 00:52) moskitos80 написал(а):
Теоретически думаю можно...

Спустя 7 часов, 42 минуты, 4 секунды (18.04.2010 - 08:34) akimbaev написал(а):
Цитата (moskitos80 @ 17.04.2010 - 21:52)
Теоретически думаю можно...


А можешь подсказать..приблизительно как это все будет выглядеть?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.