Внимание ошибка в коде!

Внимание ошибка в коде!

от Vadim Bazilevich -
Количество ответов: 15
При запуске тестирования системы Отчеты->Тестирование получил следующее:
testquestiontype.php

Notice: Undefined variable: CFG in /var/www/htdocs/nmc/question/type/shortanswer/simpletest/testquestiontype.php on line 15

Notice: Trying to get property of non-object in /var/www/htdocs/nmc/question/type/shortanswer/simpletest/testquestiontype.php on line 15

Warning: require_once(/question/type/questiontype.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/htdocs/nmc/question/type/shortanswer/simpletest/testquestiontype.php on line 15

Fatal error: require_once() [function.require]: Failed opening required '/question/type/questiontype.php' (include_path='.:/usr/lib/php') in /var/www/htdocs/nmc/question/type/shortanswer/simpletest/testquestiontype.php on line 15
Исправлено добавлением перед указанной строкой global $CFG;
Версия Moodle 1.8.3
P.S.
Появился новый simpletest, а то как-то нехорошо использовать на стабильной ветке Moodle альфа-версию сторонней програмы улыбаюсь
http://downloads.sourceforge.net/simpletest/simpletest_1.0.1beta2.tar.gz?modtime=1184642239&big_mirror=0
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
Вадим,
Вы можете использовать bagtracker, чтобы проинформировать разработчиков об ошибке.
В ответ на Alex Djachenko

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
Column count doesn't match value count at row 1

INSERT INTO mdl_question ( CATEGORY, NAME, QUESTIONTEXT, QUESTIONTEXTFORMAT, IMAGE, GENERALFEEDBACK, DEFAULTGRADE, PENALTY, QTYPE, STAMP ) VALUES ( 100, 'З якого моменту починається кримінально-процесуальне провадження у кримінальній справі?', 'З якого моменту починається кримінально-процесуальне провадження у кримінальній справі?', 0, '', '', 1, 0,1, 'multichoice', 'nmc2.teacher.univd+071121062145+LyiZQ8' )
  • line 1425 of lib/dmllib.php: call to debugging()
  • line 248 of question/format.php: call to insert_record()
  • line 180 of question/import.php: call to qformat_default->importprocess()
вот такая ошибка при импортировании файла тестов в формате GIFT
теперь странное - был установлен Moodle (апгрейдом с 1.7.1 до 1.8.3) на другой машине туда же был перенесен дапм с проблемной машины все работает как часы
Подробнее о системах:
проблемная
Apache 1.3.31
PHP 5.2.4 + eAccelerator
Mysql 5.0.45
Slackware - 10.0.0

Рабочая
Apache 1.3.37
PHP 4.4.4
Mysql 5.0.24a
Slackware - 11.0
еще одна странность - при установке на проблемную машину чистого 1.8.3 и попытке импортирования фала тестов получил вышеуказанную ошибку

Пока идея только одна - проблема с PHP хочу откатиться на версию с рабочей машины. как сделаю отпишусь о результатах

В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
отключение eAccelerator ничего не дало
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
Да забыл еще одну сопутствующую проблемку, которая возникла при обновлени php до 5 версии - страрая система 1,5 стала выдавать список вопросов на тестирование в следующем виде
заголовок (сам вопрос кракозябры - походу двойная перекодировка)
ответы - нормальная кодировка (база cp1251)
после отката к php 4.4.4 проблемка в старой системе исчезла - отображать стала и вопросы и ответы нормально, проблемы с 1,8 остались прежние
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
Проблема локализована - нужна помощь
Проблема в следующем в файле moodle/question/format.php
$question->penalty = 0.1;
так вот не совсем понятно по какой причине это значение интерпритируется как 0,1 в результате дополнительное неучтенное значение в массиве question moodle пытается вставить в базу итоге поллучаем ошибку которая была описана ранее.
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
Вадим, запость, пожалуйста, структуру таблицы mdl_question с сервера, выдающего такую ошибку.
В ответ на Alex Djachenko

Re: Внимание ошибка в коде!

от Vadim Bazilevich -

Database NMC2 - table mdl_question running on localhost


Structure
Browse
SQL
Select
Insert
Export
Operations
Options
Empty
Drop

The quiz questions themselves


Field Type Attributes Null Default Extra Action

id int(10)
Yes NULL auto_increment






category int(10)
Yes 0







parent int(10) UNSIGNED Yes 0







name varchar(255)
Yes








questiontext text
Yes








questiontextformat tinyint(2)
Yes 0







image varchar(255)
Yes








generalfeedback text
Yes








defaultgrade int(10) UNSIGNED Yes 1







penalty float
Yes 0.1







qtype varchar(20)
Yes








length int(10) UNSIGNED Yes 1







stamp varchar(255)
Yes








version varchar(255)
Yes








hidden int(1) UNSIGNED Yes 0






arrow_ltr.gif With selected: Or
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
Проблема с полем penalty: в MySQL разделителем целой и дробной части является точка, а в твоем файле - запятая и по какой-то причине это поле не собрано в кавычки. Таким образом, MySQL опознает это значение как два, разделенных запятыми.
Это ошибка при составлении файла + ошибка самого Moodle (не экранируется спецсимвол). Наверное, нужно отправить багрепорт разработчикам.
В ответ на Alex Djachenko

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
Алекс, не все так просто.. Дело в том, что в моем файле нет и намека на штрафные очки (penalty). Эта переменная почему-то объявляется в файле /moodle/question/format.php.
$question->penalty = 0.1;
И теперь она почему-то стала постоянной величеной, хотя раньше мне помнится эту величину можно было указывать произвольно. Но не в этом дело, я подозреваю, что это каким-то образом связано с установкой системного окружения сервера, а точнее указанием локализации. Только этим сейчас и отличаются мои сервера дома и на работе. На днях (после окончания массового тестирования наших гениев) проверю и отпишусь. Во всяком общая тенденция появления ошибок при парсинге внешних файлов связана именно с кириллицей (точнее с кириллической локализацией, если так можно выразиться) или я не прав?
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
Ты прав - настройки локали влияют на отображение дробных чисел.
В ответ на Alex Djachenko

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
Хотя в версии 1.5.х такой жесткой зависимости не было
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
Логично - на то она и ошибка, чтобы появляться сама-собой улыбаюсь
Мы ее локализовали, осталось только написать багрепорт разработчикам, со всеми подробностями, чтоб они могли ее исправить улыбаюсь
В ответ на Alex Djachenko

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
Немного осободился и сообщаю, как обещал, об исправлении ранее указанной ошибки. Ошибка была из разряда "сам дурак". В версии Moodle-1.5 была (у меня) проблема с указанием локализации через веб-интерфейс и для корректного отображения месяцев в календаре мне пришлось в файл конфигурации Moodle добавить строчку с функцией set_locale(). В версии 1.8 это привело к двойной перекодировке. Результат - проблемы с загрузкой файлов тестов. Указанную проблему решил удалением ранее добавленной сточки с функцией set_locale().
В ответ на Vadim Bazilevich

Re: Внимание ошибка в коде!

от Vadim Bazilevich -
С прошедшими Новогодними и Рожденственскими праздниками!!!!
Желаю Всем здоровья, радости, удачи исполнения Ваших сокровенных желаний!!!!
В продолжении начатой ветки форума....
Версия Moodle-1.8.3 при создании форума на главной странице и добавления туда новой темы. Получил отображение следующей ошибки "Error: Could not insert a new entry to the Moodle log". Хотя в логах работы системы действия прользователя сохраняются. Прочитав посты на эту тему на портале Moodle.org запустил скрипт крона (и наконец-то добавил его в crontab улыбаюсь ). К сожалению это не помогло. Судя по всему это не критичная ошибка, но хотелось бы чтобы и ее не было улыбаюсь