Аня про Геткурс. Верстка, скрипты и решения
2.12K subscribers
107 photos
23 videos
1 file
20 links
Нужна интеграция, скрипты или верстка на Геткурсе? Пишите — @araviw

В этом канале публикую советы по верстке на Геткурсе, обзоры собственных решений и скриптов, решение "логических" задачек на платформе

🔥Разработчик года🔥 GetTechAwards'2022-2023
Download Telegram
Друзья, а поговорите со мной на такую тему как статусы дз в ГК. 🤗

Вот все мы знаем привычный список статусов

user-state-reached Нет задания, урок доступен
user-state-has_mission Есть задание, урок доступен
user-state-answered Ответ ожидает проверки
user-state-accomplished Ответ принят
user-state-need_accomplish Необходимо выполнить задание (стоп-урок или важное задание)
user-state-not_reached Недоступен
user-state-not_reached first-unreached Первый недоступный

Но нет статуса, когда урок был на проверке, его отклонили, и его нужно сделать заново. Фактически с точки зрения системы - это снова статус "с заданием". Но ведь академически если - это уже пересдача.

Мне вот такого статуса не хватает иногда именно с точки зрения ученика, когда идет верстка учебного кабинета. Кажется, что ученикам было бы удобнее, если бы он был.

А в ваших школах он нужен? Писать скрипт или не писать? 🧐
Или может еще какой-то статус нужен?
Рубрика "простые хитрости"

🔥 Размер логотипа в аккаунте 🔥

Я как-то давно у себя в Инсте писала изощренные варианты того, как можно увеличить логотип в аккаунте

Так вот, ловите мини-код, который решает эту задачу

.logo-link img {
content: url("https://upload.wikimedia.org/wikipedia/commons/2/2f/Chupa-Chups.png");
}

Нюансы
1. изображение лучше использовать прозрачное
2. вставлять изображение нужно в том размере, в каком хотите использовать
или добавляйте параметр width
3. картинку лучше залить в файловое хранилище
4. сам код вставляйте в "Настройки аккаунта" (обязательно оберните <style></style>) или туда же, но через темы

И конечно, картинку чупы нужно заменить 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы еще не развесили гирлянду, то можно это сделать за пару минуток (разматывать не придется, вешаем на сайт)

Очень популярное в сети решение, которое впервые появилось у Яндекса, но кучу лет назад.
Немного адаптировала под Геткурс.

Две версии раскраски - голубая (что на гифке) и стандартная, красная

Метод установки очень простой - приложенные файлы ставите в блоке "Настройка аккаунта" и сохраняете. Применится минут через 10.
Скрипт создаст блок, в который будет добавлены шарики.
По умолчанию стили убирают логотип и немного двигают контент вниз, чтобы ни у админа, ни у ученика не было наезжания на контент в начале страницы.

На связанных с аккаунтом страницах лендинга тоже появятся шарики кстати


<!-- Голубая гирлянда -->
<link href="https://fs.getcourse.ru/fileservice/file/download/a/2739/sc/82/h/e6ff282bc561b4231ba40804d2461d46.css" rel="stylesheet">
<script src="https://fs.getcourse.ru/fileservice/file/download/a/2739/sc/18/h/331742c2ab18e7901205d7053410aeaa.js"></script>


<!-- Красная гирлянда -->
<link href="https://fs.getcourse.ru/fileservice/file/download/a/2739/sc/220/h/63c3a75907ae272214efaa02cbf20af5.css" rel="stylesheet">
<script src="https://fs.getcourse.ru/fileservice/file/download/a/2739/sc/18/h/331742c2ab18e7901205d7053410aeaa.js"></script>

Чтобы поставить только на одну страницу с тренингами - ставьте эту разметку в блок html

апд
если есть проблема с входящими
то добавьте

<style>
.resp-screen.resp-full-window.full-window-size {
z-index: 10; }
</style>
Вот такие вот две вариации на тему оформления.

Пошевелите шарики, если чувствуете, что вам нужно успокоиться 😂
Решение по быстрому выбору тренинга для копирования урока

Возникла у меня тут необходимость скопировать урок в другой тренинг. И знаете... то самое чувство, когда прям не понимаешь зачем так сделали, как сделали 🙊

Если у вас несколько уровней вложенности, да еще и названия курсов могут повторяться на этих уровнях, то найти нужный тренинг для копирования - весьма сложно. А если еще нужно сделать это быстро, то задача становится "бесячей". Потому что неудобно и не быстро.

Поэтому - вот, ловите

$("#Lesson_training_id > option").each(function(){
$("#training-form").append(
$("<div class='copy-list'/>").attr({"value":$(this).attr("value")})
.css("cursor","pointer")
.text($(this).text()+ ' (id ' + $(this).attr("value")+')')
.click(function(){
$("#Lesson_training_id").val($(this).attr("value"));
})
)
});

Мини-скрипт, который создает кликабельный список всего вашего дерева тренингов. Так же выводит id тренинга (если вам удобнее ориентироваться на него). Клик на дереве приводит к выбору данного тренинга в системном поле.

Скрипт лучше выполнять сразу в консоли браузера или в приложении типа "User JavaScript and CSS". Я в него не зашивала ни проверку страницы, ни запуск из настроек аккаунта/темы, тк это очень локальное решение.

зы Сам ГК пообещал изменить логику работы системного поля. Но сроков не назвал.

зыы а может еще и прокрутку к кнопке добавить? (нажатие кнопки точно нет, а то вдруг выбор был неверный - еще удалять созданный урок придется)
This media is not supported in your browser
VIEW IN TELEGRAM
Логика (и видео обзор) решения по облегченному выбору тренинга для копирования (скрипт в соседнем посте)
📚И когда целого мира списка статусов мало и хочется еще 🥹

Основной список статусов может принимать значения, которые показывают текущий статус дз, но нет статуса, когда дз было выполнено учеником, но отклонено куратором 🚫

Поэтому...
Вашему вниманию представляется - статус "дз отклонено" 🎉

Скрипт проходит по урокам с заданиями и проверяет наличие отклоненного дз. Если есть - добавляет статус к такому уроку. Дальше уже стилизация по желанию и наличию макета 🔥

В схематичной сборке от самого ГК это может выглядеть так (см скрин выше)

Где же сам скрипт? В клубе :) Заходите, забирайте, ставьте, радуйте клиентов :)

И да! В чатиуме тоже работает
🔥🔥🔥Похоже в бета-тестировании выкатили новую плюшку.

Появился блок со временем, на котором пользователь остановился при просмотре видео.

В самой разметке внутри тренинга пока изменений нет. Может и не будет.

Скоро ждите в аккаунтах, где нет бета-режима
🔥 Быстрый доступ к управлению восстановления блоков в уроке

Скрипт создает допссылку, которая обеспечивает переход к "зарытому" функционалу

👉🏼 Предыстория тут

Сам скрипт можно положить в настройки аккаунта или связанную с ними тему.

$(function() {
if (window.userInfo.isAdmin && window.location.href.indexOf("/teach/control/lesson/view") > -1 && ($('.page-header .btn-group').length > 0) ) {
var url_lesson = window.location.href;
var lesson_id = url_lesson.match(/(?<=id=)\d+/); //получить id урока
var recovery_link = '<li class="recovery"><a href="/pl/teach/control/lesson/blocks?id='+lesson_id+'" target="_blank"><span class="glyphicon glyphicon-refresh"></span> Восстановление блоков</a></li>';
$(recovery_link).insertBefore('.page-actions .dropdown-menu .divider');
}
});


По аналогии можно делать кнопку восстановления боков на лендах ГК

Кому пригодиться? Всем, кто занимается правкой уроков. Потому что случайное удаление блока теперь можно быстро исправить. Без слез, нервов и траты времени 👌
This media is not supported in your browser
VIEW IN TELEGRAM
Кого нынче удивишь кастомизированным Геткурсом?

Да никого пожалуй. Чего только не делают с главной страницей, тренингами и меню. Вот и тут - паспорт ученика (в старой версии оформления) и менюшка.

Хотя, стоп 😂 Давайте я вас удивлю. Как насчет горизонтальной меню-волны? Такая менюшка есть пока только у меня 🌟

Прикольно реагирует на ховер, включает в себя проверку активного раздела нахождения ученика, гибко настраивается по нужным иконкам и ссылкам. И да, отменяет существование для ученика лефтбара.

Новшевство! 🔥🔥🔥

(хотя как идея скоро разойдется по просторам ГК 🤣)
#простые_хитрости

Поговорим про псевдоэлементы. Если вам сейчас вспомнились ::after и ::before, то вы на верном пути :)) Хотя сам список намного больше - вот еще парочка частых примеров ::placeholder (для полей) ::marker (для списков).

Но поговорим про первые два. По сути они добавляются к элементу в начале и в конце, создавая дополнительное содержимое. Или даже замещая текущее (пример с логотипом).

Сейчас у меня не стоит задачи рассказать вам как можно вообще использовать псевдоэлементы в работе на ГК. Хочу показать несколько вещей, которые вам точно пригодятся:

1️⃣ пробелы

чтобы создать пробел между шрифтовой иконкой и текстом необходимо написать \00a0

content: "\f2b9 \00a0 Текстовка";

2️⃣ шрифтовую иконку и текст со специфическим шрифтом можно ставить в один псевдоэлемент, используя "пересечение" шрифтов в описании стиля

font-family: "FontAwesome", "Comfortaa", cursive;

3️⃣ помимо "пробела" можно брать еще \A, который в сочетании с white-space: pre; даст перенос текста и даже имитацию маркированного списка

4️⃣ прекрасно работают спецсимволы HTML (см пример)



.f-text p:after {
white-space: pre;
content: '\273f Какой сегодня чудесный день! \A А завтра будет еще лучше! \2764\2764\2764 \A\00BF Понять и простить ГК \00BF \A \f2b9 Кто здесь \21BA';
font-family: "FontAwesome", "Comfortaa", cursive;
display: block;
}


К чему это я? К созданию дополнительного текстового содержимого на сайте. Но не стоит увлекаться, ведь создание через js даст намного больше возможностей работы с этим текстовым элементом в дальнейшем. Особенно, если вам еще нужно работать с цветовой разметкой внутри таких компонентов

и да!

5️⃣ иcпользование data для поддержки контента

<p class="test_text" data-text="Интересно"></p>

.test_text:after {
content: attr(data-text);
}

зы в оформлении на ГК очень часто используют псевдоэлементы, когда речь идет о модификации контента. Последний пример - просто мастхев, когда делают динамические прогресс-бары
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Вы должны это увидеть! 🔥

Вчера появилось решение, которое уверена, что скоро перейдет в "Сделайте мне так же!" 😏

Но... Обо всем по порядку.

Решение изменения динамической цены это просто маст-хев, если вы любите играть на нервах окружающих 🫢

Смысл его прост - или покупай сейчас или через пару минут, но уже дороже. Потому что цена подрастает каждую секунду немножко.

Обсуждаемый прототип сделан на Тильде с помощью прямой ссылки на оплату, куда просто вбивается значение из таймера стоимости. В результате в урле можно подправить значение переменной и оплатить столько, сколько хочется (но это уже совсем другая и грустная история...)

А как быть, если у вас не Продамус на Тильде, а Геткурс? Там тоже есть "дырка" в моменте оформления заказа, поэтому просто "количеством рублевых позиций" делать нельзя 😤

Да и количество в размере нескольких тысяч будет выглядеть странно в чеке.

Но это все можно обойти (не без сложностей🤪, тк у ГК формирование заказа происходит в моменте и на это не повлиять). И еще важно получить нужную стоимость заказа без возможности ее понижения со стороны клиента 😎

Цена решения - 10тр. Настраивается под каждый аккаунт индивидуально, исходя из ваших цен, тк есть нюансы
Please open Telegram to view this post
VIEW IN TELEGRAM
Если бы у меня был такой код, то я бы...
... проблем при верстке не знал бы 😂

Что мы тут имеем (кроме симпатяги-котика)?

Казалось бы - обычный блок для ГК, где есть обложка и контент с формой. И чего это Аня заговорила об этом?

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

А это означает, что у нас на подложке будет "логотип+заголовок+форма" либо ничего 😔

Можно пойти по пути объединения двух колонок через стили, но это.... такое себе.

Давайте я покажу вам как можно решить эту задачку с помощью пары строчек кода.

Порядок действий:

1️⃣ Создаем блок

У меня это "Обычная форма", на которую установлена обложка и смещен сам контейнер по линейке на 6/12
Этому блоку я задаю класс for_header

2️⃣ Стилизуем форму

Здесь делаете что хотите и как хотите. У меня задан фон контейнера, скругления и цвет самой кнопки в стилях формы.
Иконки - это псевдоэлементы для полей.

3️⃣ Создаем новый блок, который будет генерировать "верхний контент".

В моем случае - это обычный блок с заголовком и картинкой. Стили для этих элементов можно положить в отдельный css блок или в стили того блока, что с формой.
И присваиваю класс
header_block

4️⃣ Пишем js

$(document).ready(function(){
$('.for_header .modal-block-content').prepend($('.header_block .builder'));
$('.header_block').remove();
});

Суть скрипта в том, чтобы получить значение builder из блока header_block и подставить его к форме (for_header .modal-block-content). Затем удалить "оболочку" от того, где был перемещаемый контент.

😉 Чтобы перемещаемый контент не мелькал в моменте загрузки страницы, можно использовать дополнительно на шаге 3 класс view-collapsed - он скроет контент от пользователя, но оставит в режиме редактирования

✈️ это решение можно использовать почти всегда, когда хочется объединить разрозненный контент
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот так 😂

Ибо каждый знает, что технарь - это немного робот и немного полубог 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Так, а теперь о бесчеловечности от самого ГК

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

——
апд
——
коллеги пишут, что такое поведение свойственно и урокам и заказам 🤓

Поэтому - сделали правку, обновили страницу, продолжили работу. Перешли на новую страницу (где потенциально должны быть изменения) - обновите ее через ctrl f5 🥵
Please open Telegram to view this post
VIEW IN TELEGRAM