суббота, 29 октября 2016 г.

Подсчёт среднего балла по категориям

Иногда при подведении итогов работы в курсе Moodle требуется подсчитать средний балл за определённые задания. Например, в курсе 4 недели, нужен средний балл за текущие три.

Скачиваем оценки в фоpмате Excel и производим следующие вычисления:


вторник, 25 октября 2016 г.

Moodle, средний балл и Excel

В продолжение темы о подсчёте среднего значения в Excel обратимся к подсчёту среднего балла за выполнение некоторого количества заданий в Moodle.

В курсе Moodle несколько иной подход к подсчёту среднего балла, так как учащиеся должны выполнить все задания до определённого срока. Если же некоторые задания не выполнены вовремя, отметка за невыполненные задания всё равно учитывается, но она, к сожалению, равна нулю.

В таком случае, экспортировав ведомость с оценками из Moodle в формате Excel, разрешим редактирование документа и произведём подсчёт среднего балла следующим образом:


PS: Скринкаст записан в пробной версии программы Fast Stone Capture.

понедельник, 24 октября 2016 г.

Считаем отметки за четверть

Друзья мои, конец четверти не за горами. Тут можно крикнуть троекратное ура, но давайте сначала подведём итоги четверти.

Вы за калькулятор сразу и считать?


Не спешите. 43 секунды видео и вы вооружены прекрасным инструментом для подсчёта среднего балла - Excel.

Учителю иностранного языка, который выставляет четвертную как среднее арифметическое, наш маленький урок особенно пригодится.

Вам понадобится:
1) классный журнал
2) компьютер
3) программа Excel
4) два помощника из учащихся: первый диктует вам отметки из журнала, второй проверяет правильность ввода отметок в таблицу.

Минут 5, не более, вам понадобится для того, чтобы создать таблицу Excel с отметками группы и чуть больше времени, если у вас целый класс.

Далее действуем, как на видео:



Это ещё 1-2 минуты. Получаем в итоге:



Профит!

пятница, 7 октября 2016 г.

Помедленнее, пожалуйста!

Мы записУем!

Не понимаем с коллегой логики: почему в Moodle ссылка на Банк вопросов в боковой колонке не раскрывает подменю, а сразу отсылает в Банк вопросов. Поправили, сделали, как удобнее.

После обновления версии Moodle я и не заметила, что моя правка слетела. Обнаружила только после обновления темы Essential. И, как оказалось, нигде мы необходимую правку не зафиксировали! А блог зачем? Чтобы записУвать!

Хорошо, что у коллеги правка сохранилась.

Собственно, что нужно сделать? Найти в корне сайта папку lib, в ней файл questionlib.php. Строчка примерно 1421 (на картинке ниже я в ней null уже приписала, потом вспомнила, что скрин нужно сделать.).



Исправляем часть кода в строке с номером около 1421:
new moodle_url('/question/edit.php', $params) на null.

Полная строчка:
$questionnode = $navigationnode->add(get_string('questionbank', 'question'),null, navigation_node::TYPE_CONTAINER, null, 'questionbank');



Ещё одна штуковина вчера меня озадачила. Вот она, после обновления:
Решение нашла в интернете, на форуме автора темы. Автор советует прописать в css темы следующее:

.categoryicons .course_category_tree .subcategories {
flex-wrap: wrap;}

Прописала. Значки категорий вернулись на место.

пятница, 15 июля 2016 г.

Выравниваем блоки значков категорий курсов в Essential Moodle Theme

Если Ваш Moodle-сайт оформляется темой Essential, то Вы могли наверняка заметить, что блоки значков категорий у Вас разной высоты, если название категории достаточно длинное и состоит из нескольких слов. Однако, хотелось бы видеть эти блоки одинаковой высоты. Что делать? Ответ один: править код темы!

Отключаем значок загрузки при клике на категорию.
Открываем файл core_course_renderer.php в папке classes темы.
Находим coursecat_include_js() и комментируем весь блок if:

//  if (intval($CFG->version) >= 2013111800) {
            // Make sure JS file to expand category content is included.
       //     $this->coursecat_include_js();
       // }

Для чего это сделано? Для того, чтобы значок загрузки не мешал выравниванию блоков. Иначе будет возникать ошибка JSON. И также теперь обращений к серверу меньше )

Добавляем файл скрипта, выравнивающего блоки
В этом же файле добавим ещё одну строку в функции public function __construct(moodle_page $page, $target):
после
$theme = theme_config::load('essential');
вставим строчку
print "<script type='text/javascript' src='/theme/essential/javascript/hei.js'></script>";

Таким образом мы подключим к блокам категорий курсов скрипт, позволяющий выравнивать блоки. Скрипт напишем позже.
Вся функция будет выглядеть вот так:

public function __construct(moodle_page $page, $target) {
        parent::__construct($page, $target);
        static $theme;
        if (empty($theme)) {
            $theme = theme_config::load('essential');
            print "<script type='text/javascript' src='/theme/essential/javascript/hei.js'></script>";
        }
        $this->enablecategoryicon = (!empty($theme->settings->enablecategoryicon)) ? $theme->settings->enablecategoryicon : false;
    }

Обратите внимание на название файла скрипта: hei.js и его расположение: /theme/essential/javascript/

Создаём скрипт hei.js
window.onload = function() {
setTimeout(function() {
var subcatDivs = document.getElementsByClassName("categoryname");
var maxHCat = 0;
for (var cat_h = 0; cat_h < subcatDivs.length; ++cat_h) {
if (maxHCat < subcatDivs[cat_h].clientHeight) {
maxHCat = subcatDivs[cat_h].clientHeight;
}
}
for (var cat_h = 0; cat_h < subcatDivs.length; ++cat_h) {
subcatDivs[cat_h].style.height = maxHCat + "px";
}
}, 100);
}


Задержка в скрипте нужна, чтобы после загрузки страницы было время для расчёта высоты блоков. Сохраняем данный файл в /theme/essential/javascript/.

Костыли хака
Во время использования хака заметил следующее: изменяется размер некоторых полей ввода. Необходимо их поправить. Файл essential.css в папке style. К сожалению, структура файла минимизирована, поэтому нам нужно будет выполнять поиск в файле (не привязываясь к строкам).
Ищем login_password. Добавляем в строку (выделено полужирным): login_password,.block_login input#login_username{width:95%; height:30px}
Ищем coursesearchbox. Добавляем в строку: coursesearchbox label{display:inline}#coursesearchbox{height:30px}
Ищем adminsearchquery. Добавляем в строку: #adminsearchquery{max-width:92%; height:30px}

Замечание: при обновлении темы Вам придётся повторять те же операции с файлами вновь и вновь.

среда, 13 июля 2016 г.

Выпрямляем ссылки на облачных сервисах

Часто может случиться ситуация, когда заказанный Вами хостинг удовлетворяет всем Вашим требованиям, кроме одного: Ваш проект разросся до масштабов Солнечной системы и на нём постоянно не хватает места или оно ограниченно тарифным планом, и постоянно не хватает средств на увеличение объёма диска хостинга. Что делать в таком случае? Искать спонсора для своего проекта или решать проблему нехватки места самостоятельно?

Если Вас не устраивает первый спонсорский вариант, то перейдём ко второму. Не секрет, что многие уважаемые компании, предоставляющие услуги электронной почты, предоставляют так же так называемые "облачные" сервисы, одним из которых является сервис удалённого диска.

Зарегистрировавшись на таком сервисе, Вы можете не беспокоиться из-за отсутствия на Вашем хостинге места до определённого момента. Зато необходимо побеспокоиться, как совместить Ваш хостинг с Вашим же удалённым диском... Ниже пойдёт речь о выпрямлении ссылок к файлам на облачном диске.

Google Drive
Загрузив файл на GoogleDrive, Вы можете его сделать доступным для всех, кто имеет ссылку на него или разрешить читать/редактировать файл определённому кругу людей. Понятно, для того, чтобы совмещать хостинг с "облаком", нам необходимо открыть доступ к файлу по ссылке. Однако, в таком виде нельзя использовать ссылку для хостинга (если Вы хотите использовать, например, картинку для фона), она не будет прямой (откроется в системе GoogleDrive). Как быть?
Изучаем ссылку, которая автоматически генерируется системой... Например, получили такую ссылку:
https://drive.google.com/open?id=0B_DJFjdH0anuVzZaRXVRbkVkOVk

Копируем код ссылки (после id=), вот он: 0B_DJFjdH0anuVzZaRXVRbkVkOVk

Для использования на хостинге используем прямую ссылку к файлу в виде
https://drive.google.com/uc?export=download&confirm=no_antivirus&id=0B_DJFjdH0anuVzZaRXVRbkVkOVk

Теперь ссылка на файл прямая.
Вот её результат:

DropBox
Аналогично GoogleDrive, загружаем файл в свой DropBox, жмём кнопку "Поделиться", в открывшемся всплывающем окне создаём ссылку на файл и копируем её в буфер обмена.
Получим, например, такую:
https://www.dropbox.com/s/31csv7gzllp1mpe/cover_1453235345-630x315.jpg?dl=0

Немного изменим полученную ссылку:
https://dl.dropbox.com/s/31csv7gzllp1mpe/cover_1453235345-630x315.jpg?dl=1

Это и есть наша прямая ссылка на файл.
А вот и файл по этой ссылке:

OZ.by - не только книжный магазин

пятница, 8 июля 2016 г.

О кодировке в Moodle

Как-то моя коллега обратилась за помощью: разобраться, почему созданный в текстовом редакторе тест не импортируется в Moodle. Синтаксис вопросов множественного выбора с одним вариантом ответа правильный, а Moodle в ходе импорта выдаёт ошибку записи в базу данных, импортируя при этом 2 вопроса из 20.

Начали разбираться, в чём причина. Первое, о чём подумали – о кодировке файла; второе – о кодировке базы данных сервера. Показательно, что Moodle всё же импортировал 2 первых вопроса. Поэтому вариант №2 отпал сам собой – если бы была ошибка в кодировке БД, то тест не импортировался бы полностью.

Рассмотрим первый вариант.
Открываю присланный мне файл в Блокноте – ошибок не вижу. Пытаюсь импортировать в своём Moodle на своём сервере – та же самая проблема. Два первых вопроса импортируются, остальные не хотят! Что делать? Снова лезть в файл и искать ошибки. И вскоре они были найдены. Итак, ниже описание проблемы и её решение.

Пришлось немного повозиться, чтобы понять, что присланные файлы не соответствуют кодировке БД сервера. Присланные файлы были в кодировке ANSI (Windows, чтобы было понятнее), а БД сервера – в кодировке UTF-8. Что это значит? А это значит, что в файлах используется разный набор символов (кодировка UTF-8 богаче набором символов, но многие коды ANSI не соответствуют кодам UTF-8). Как это определить? Можно пытаться на глаз, а можно воспользоваться расширенным блокнотом Notepad++, чем я и не замедлил воспользоваться.
При загрузке файла в Notepad++ и смене кодировки на UTF-8 нечитаемые символы сразу проявляются, это видно на изображении ниже:


Набор этих символов отсутствует в кодировке UTF-8 и они заменяются на последовательности типа x92 и т. п. (выделены на чёрном фоне).

Наша задача заменить все такие символы. В нашем случае, это троеточие в системе ANSI (обратите внимание на то, что три точки в ANSI могут быть стандартными точками, а могут быть и отдельным символом, укороченным троеточием (увидеть это можно, если в Word напечатать три точки подряд. Программа автоматически преобразует три точки в символ троеточия)). Его нужно заменить на троеточие в UTF-8, то есть просто поставить три точки (...) в блокноте Notepad++.
И ещё один код соответствует символу апострофа с неверным наклоном (апостроф в UTF-8 - прямой). Заменяем его на '.
Для замены символов в Notepad++ переходим обратно на систему кодировки ANSI и жмём комбинацию клавиш Ctrl+H (стандартная комбинация клавиш поиска и замены) или вызываем команды меню Поиск – Замена…. Копируем первый символ для замены, затем вставляем заменяемые символы. Жмём «Заменить всё». То же самое производим со вторым (и, если надо, последующими) символами.


Ну вот вроде бы и всё, что нужно знать администратору Moodle для исправления ошибок импорта.