Подскажите, можно ли как-то привести список курсов в теме Moove к нормальному виду?
Moodle 3.7.2
При просмотре списка курсов в категориях (например - адрес_сайта/course/index.php?categoryid=1) дублируются название курса, иконки вида доступа к курсу, криво отображается кнопка входа на курс.
Размер изображений изменила (отображались на весь экран), а остальные настройки не пойму, где изменять - выделила их на изображении рамочками:
И то же самое при записи на курс:
2. В личном кабинете (адрес_сайта/my/) отображается два курса в строку, что визуально не очень красиво. Можно ли сделать три курса? Ну или хотя бы уменьшить масштаб отображения, как это сделано, например, в теме Boost?
3. И еще один вопрос, может быть кто-то подскажет: можно ли как-то вывести имя пользователя в верхней части сайта? :
Тоже используем эту тему из-за её большущего преимущества - задвигающаяся правая панель.
Все перечисленные проблемы, кроме последней, решаются изменением css - спрячьте все дублирующие надписи (display:none), измените ширину карточек курса (например, так: .card-deck .card{flex-basis:calc(25% - 30px);}).
Вывести имя пользователя рядом с аватаркой можно с помощью JavaScript. Наши преподаватели попросили ещё вывести "хлебные крошки", начиная с названия курса, в "шапку" (иначе при прокрученной странице не видно, в каком курсе находишься) - тоже решается через JS.
Да, задвигающаяся панель - это большой плюс, да и в целом тема удобная.
Изменение ширины карточки курса спасло ситуацию.
А вот с дублирующимися надписями пока не разобралась - уже пробовала их спрятать таким способом, но или ничего не происходит, или прячутся сразу обе, видимо, запуталась я где-то в параметрах.
За идею вывода "хлебных крошек" отдельное спасибо. Думаю, так будет удобнее.
.card-title {
display: none;
}
1. на сервере в папке moodle создаю папку, например, _mycode, и в неё добавляю файл my.js;
2. в Moodle иду в Администрирование - Внешний вид - Дополнительный HTML, в поле "Перед закрывающим тегом BODY" вставляю текст:
<script src="https://ido.tsuab.ru/_mydata/my.js"> </script>В файле my.js пишу:
/* Вывести ФИО рядом с аватаркой */Имя пользователя берём из атрибута title аватара пользователя (img.userpicture). Перед аватаром есть элемент span.usertext - в него и добавляем ФИО пользователя. Но так как в некоторых случаях в этот элемент система выводит какой-то текст, то если этот текст есть, выводим его в скобках после фамилии (5-я строчка кода, если не считать строки с комментарием).
let userName = $(".avatar.current img.userpicture").attr("title");
if(userName) if(userName.indexOf('Изображение пользователя',0) > -1 )userName = userName.slice(25);
if(userName){
let userText = $(".usertext").text();
if(userText != "") userText = "(" + userText + ") "
$(".usertext").text(userName.replace("Изображение пользователя","") + " " + userText);
}
я сделала всё по вашему описанию.
что-то ничего не поменялось.
например написать в файл 2 строчки:
.card-deck .card{flex-basis:calc(25% - 30px);}
.card-title {display: none;}
как дальше его применить?
Проще отредактировать файл темы, там всего то одну строку подправить и (если захочется) закомментировать блок кода.
$usertextcontents = '';
Стало:
$usertextcontents = $opts->metadata['userfullname'].' ';
/**
$userinfo = new stdClass();
$userinfo->itemtype = 'text';
$userinfo->title = $user->firstname . ' ' . $user->lastname;
$userinfo->url = new moodle_url('/user/profile.php', array('id' => $user->id));
$userinfo->pix = 'i/user';
array_unshift($opts->navitems, $userinfo);
*/
В итоге получаем:
Что касается изменения стилей: опять же, зачем использовать какой-то my.css, если все стили (.card-title {display: none;} и др.) можно прописать прямо в настройках темы: «Завершающий код SCSS» theme_moove | scss.
CSS-стили я раньше тоже добавляла в настройках темы, но css у меня очень большой, а окошко в настройках маленькое, синтаксической подсветки нет - опять в отдельном файле удобнее
naska novichok, Вы попробуйте вариант Вадима, может, он Вам больше подойдёт. Ну а с моим вариантом если захотите разобраться, напишите - подскажу, где смотреть ошибки, разберёмся.
Вывести имя пользователя рядом с аватаркой можно с помощью JavaScript. Наши преподаватели попросили ещё вывести "хлебные крошки", начиная с названия курса, в "шапку"
Не поделитесь кодом? очень нужно
/* Вывести ФИО рядом с аватаркой */
let userName = $(".action-menu-trigger .dropdown-menu i.icon").attr("title");
if(userName){
let userText = $(".usertext").text();
if(userText != "") userText = "(" + userText + ") ";
$(".usertext").text(userName.replace("Изображение пользователя","") + " " + userText);
}
/* "крошки" в курсе в шапку */
let bc=$("#page-navbar");
if(bc){
let bct = bc.clone();
let cm = $("nav.navbar ul.custom-menus");
cm.after(bct);
bct.addClass("page-navbar-top");
let lis = $("li",bct);
for(let i=0;i<lis.length;i++){
let a = $("a",lis[i]);
if( a.attr("title") != undefined){
break;
}else{
lis[i].remove();
}
}//for
}
А куда и как вставить?)
Версия Moodle 4.0.4+