Показаны сообщения с ярлыком Essential Theme. Показать все сообщения
Показаны сообщения с ярлыком Essential Theme. Показать все сообщения

пятница, 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}

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