Макс и компоненты | Getcourse components
494 subscribers
19 photos
5 videos
4 files
13 links
Оформление, коды и решения для Getcourse
Download Telegram
Статус уроков «‎Задание не принято» в списке уроков на геткурс

Как это сделать?

1. Добавить класс для уроков с отклоненным ответом на задание.
Это можно сделать с помощью js-кода, который сделает запрос в уроки, определит те из них, в которых задание не принято и добавит таким урокам класс, например mission_rejected

2. Оформить уроки с помощью css-стилей
В стилях прописать обращение к нашему новому добавленному классу для непринятых уроков

Коды на странице со списком уроков

JS-код в блок "Javascript"

// СКРИПТ ДЛЯ СТАТУСА УРОКА "ОТКЛОНЕН"
$(function () {

if (window.location.href.indexOf("/teach/control/stream/view/id") == -1) return;

// Название класса, который будет добавлен к урокам с отклоненным заданием
const missionRejectedClass = "mission_rejected";


const lessons = $(".lesson-list li.user-state-has_mission, .lesson-list li.user-state-need_accomplish").not(`.${missionRejectedClass}`);
if (!lessons.length) return;

lessons.each((_, lesson) => {
const lessonId = $(lesson).attr("data-lesson-id");
const lessonUrl = `/pl/teach/control/lesson/webview?id=${lessonId}&mode=mission`;

$.getJSON(lessonUrl, data => {
const pageHtml = $("<div/>").html(data.data.html);
if (pageHtml.find(".lt-lesson-mission-block .answer-status-label span").hasClass("glyphicon-ban-circle")) {
$(lesson).addClass(missionRejectedClass);
}
});
});
});

*Этот js-код добавит класс mission_rejected для непринятых уроков.


Простой пример CSS:

/* СТИЛИ ДЛЯ СТАТУСА УРОКА "ОТКЛОНЕН" */
li.mission_rejected .item-a {
position: relative;
}

li.mission_rejected .item-a::before {
content: "\f071 \00a0 Задание не принято";
display: block;
position: absolute;
top: 10px;
right: 10px;
font-family: "FontAwesome", "proxima-nova", sans-serif;
color: #e74c3c;
z-index: 5;
}

@media (max-width: 767px) {
li.mission_rejected .item-a::before {
top: 2px;
font-size: 12px;
}
}

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




Для того чтобы выполнить коды для всех уроков в аккаунте можно прописать в поле Счетчики и прочие скрипты для BODY


<style>
/* СТИЛИ ДЛЯ СТАТУСА УРОКА "ОТКЛОНЕН" */
.lesson-list li.mission_rejected .item-a {
position: relative;
}

.lesson-list li.mission_rejected .item-a::before {
content: "\f071 \00a0 Задание не принято";
display: block;
position: absolute;
top: 10px;
right: 10px;
font-family: "FontAwesome", "proxima-nova", sans-serif;
color: #e74c3c;
z-index: 5;
}

@media (max-width: 767px) {
.lesson-list li.mission_rejected .item-a::before {
top: 2px;
font-size: 12px;
}
}
</style>


<script>

// СКРИПТ ДЛЯ СТАТУСА УРОКА "ОТКЛОНЕН"
$(function () {

if (window.location.href.indexOf("/teach/control/stream/view/id") == -1) return;

// Название класса, который будет добавлен к урокам с отклоненным заданием
const missionRejectedClass = "mission_rejected";


const lessons = $(".lesson-list li.user-state-has_mission, .lesson-list li.user-state-need_accomplish").not(`.${missionRejectedClass}`);
if (!lessons.length) return;

lessons.each((_, lesson) => {
const lessonId = $(lesson).attr("data-lesson-id");
const lessonUrl = `/pl/teach/control/lesson/webview?id=${lessonId}&mode=mission`;

$.getJSON(lessonUrl, data => {
const pageHtml = $("<div/>").html(data.data.html);
if (pageHtml.find(".lt-lesson-mission-block .answer-status-label span").hasClass("glyphicon-ban-circle")) {
$(lesson).addClass(missionRejectedClass);
}
});
});
});

</script>

* Прежде чем перенести на аккаунт рекомендую сначала протестировать на одном списке уроков
* Коды для аккаунта более удобнее хранить и подключать с помощью тем
🔥21
😇 JS скрипт для файлового хранилища Getcourse

Написал скриптец чтобы работать с файловым хранилищем геткурса было не так больно

Постоянно им пользуюсь, либо устанавливаю в настройки аккаунта либо локально в браузере выполняю(с помощью расширения хрома), мне так гораздо комфортнее и быстрее работать с файлами

Написал инструкцию и выложил код тут:

https://teletype.in/@aston_max/getcourse-file-storadge-script
❤‍🔥20🔥115💯2
Как заменить текст в блоке продления покупки

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

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

Написал для этого js-код, а самому блоку добавил стилизации.

Коды выложил тут:
https://teletype.in/@aston_max/edit-product-block-on-getcourse
🔥323🙏2
Блок "Аккордеон" на Getcourse

Аккордеон-блок на геткурсе можно применить для описания популярных вопросов и ответов, мини-инструкций и т.п.

Часто подобный блок можно встретить на продающих страницах, в нем описывают популярные возражения, вопросы, сомнения и закрывают их в раскрывающейся при клике панели.

Получился довольно простой и универсальный блок в использовании
Инструкция тут:
https://teletype.in/@aston_max/getcourse-accordeon-block

В комментариях к посту скину готовые экспорты чтобы можно было быстро скопировать-вставить😊
🔥391
🛠 Фиксим баг с кнопкой просмотра в редакторе "Настроить вид"

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

Проблемку решает скрипт, который преобразует элемент кнопки в элемент ссылки(визуально все остается без изменений), чтобы при нажатии открывался просмотр страницы. Это исправляет баг + для меня удобно нажимать на колесико мыши для открытия страницы в новой вкладке

JS-код:

// Скрипт для кнопки просмотра в редакторе "Настроить вид"
if (window.userInfo.isAdmin &&
(window.location.pathname.includes("editMode/1") || window.location.search.includes("editMode=1"))) {
$(function () {

const btnView = $('.panel-body .btn-preview');

if (btnView.length == 0) return;

const url = window.location.href.replace("/editMode/1", "").replace("editMode=1", "editMode=0");

const linkElem = `<a href="${url}" class='btn btn-preview btn-xs btn-default'>${btnView.html()}</a>`;

btnView.replaceWith(linkElem);

});
}

Для применения кода на всем аккаунте его нужно вставлять в настройки аккаунта в поле "Счетчики и прочие скрипты для BODY"

Рекомендую вставлять код в тему во вкладку JS, а саму тему подключать в поле BODY

Если вставлять не через тему, то этот код нужно просто обернуть в
тег script, после вставки сохранить
<script>
ТУТ_JS_КОД
</script>

Если нет доступа к настройкам аккаунта для вставки кода, скрипт можно выполнять локально в своем браузере с помощью расширения. Например для хрома - User JavaScript and CSS
🔥253👍2❤‍🔥1🐳1
ну а что еще отвечать когда не знаешь что там и как код установили 😁
😁23❤‍🔥1
Макс и компоненты | Getcourse components
Video
Кнопка навигации «Прокрутить наверх». Код для getcourse

Показываем кнопку при определенном значении прокрутки страницы. При нажатии на эту кнопку происходит плавный скролл до начала страницы.

https://teletype.in/@aston_max/button-scroll-top
🔥28👍2
В настройки акка

<script>
if (window.location.pathname.indexOf("/pl/tasks/mission/process") !== -1) {
$(document).ready(function () {
$('#testing > div').before(`
<style>

#testing {
height: auto !important;
}

.testing_header {
position: relative;
margin: -20px -20px 20px -20px;
border-radius: 3px 3px 0 0;
display: block;
height: 40px;
background-color: #428bca;
cursor:move;
}

.testing_header > a.close-btn {
position: absolute;
right: 5px;
top: 5px;
}
</style>
<div class='testing_header'>
<a href="javascript:void(0)" class="btn btn-sm btn-default close-btn">Закрыть</a>
</div>
`);

setTimeout(() => {
$('#testing')
.draggable({ handle: '.testing_header', cancel: '.btn' });

$('.testing_header > a.close-btn').on('click', () => {
$('.standard-page-actions > .btn-testing').click();
})

}, 600);
});
}
</script>
🔥9👍1
Максим Калмыков
типо такого?
Делился когда то прикольной штукой для процессов в геткурсе, пусть тут тоже будет )

Код вставлять в настройки аккаунта в BODY
12🔥1
🛠 Как убрать лишний отступ допполя в геткурс форме

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

Как вариант, это можно поправить так:

1. В настройках допполя задать ему класс hide_label

2. Прописать css код в стилях блока формы или в отдельном css блоке

.hide_label label.field-label {
display: none;
}


Готово 😊
🔥31👍1
Как выровнять кнопки в блоке тарифов на геткурс ?

Ответ: с помощью css-кода

Речь идет о блоках в конструкторе гк, их обычно используют для тарифов:
- Блок: Картинка - подзаголовок - заголовок - текст - кнопка
- Блок: Несколько предложений

Чтобы сделать магию выравнивания кнопок на одном уровне можно добавить такой css-код:

.lt-tsr-content {
display: flex;
flex-direction: column;
height: 100%;
}

.lt-tsr-content .button {
margin: auto 0 0 0;
}


*код можно добавить в стили блока или в отдельный css-блок
*в мобильной версии все будет хорошо с отступом кнопки

Готово 🤝
🔥30👍3❤‍🔥2🎉1
🛠 Длинные ссылки, которые ломают страницу на маленьких экранах

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

Варианты как это исправить:

1. Помещать ссылки в кнопки

2. Встраивать ссылки в часть текста

3. С помощью CSS-кода включить перенос неразрывного текста для ссылок

body a {
word-wrap: break-word;
white-space: normal;
overflow-wrap: anywhere;
}


Починили 😊
🔥305
⭐️ Оформить модуль, в котором уроки недоступны + вывести дату выхода первого урока. JS код для списка тренингов в getcourse

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

Коды:
https://teletype.in/@aston_max/getcourse-modules-1
🔥223
📍Как скрыть метод оплаты на странице оплаты заказа в геткурс по условию минимальной стоимости заказа. На примере Тинькофф Кредит

Для этого понадобится js код, который нужно будет прописать в блоке javascript в редакторе страницы оплаты

Что делаем в коде:
1. Устанавливаем числовое значение минимальной суммы для выполнения кода
2. Получаем числовое значение цены из блока "Итого к оплате"
3. Прописываем условие: если установленная сумма больше чем "Итого к оплате" - выполнить код

т.е. на странице будет выполнен скрипт (например скрытие определенного метода оплаты), если сумма к оплате меньше чем мы установили в коде

Пример js-кода для скрытия Тинькофф Кредит если сумма меньше чем 10000 (можно поменять в коде):

$(function() {
// Минимальная стоимость заказа для выполнения скрипта
const minPrice = 10000;

// Получаем стоимость заказа
const offerPrice = Number.parseInt($('.deal-finish-price-title > b').eq(0).text().replaceAll(' ', '').replace('руб.', ''));

// Если стоимость заказа меньше чем minPrice
if (offerPrice < minPrice) {

// Скрываем тинькофф-кредит
$('#tinkoffcredit').hide();

// Скрыть заголовок "Кредит/рассрочка:"
$('.credit-title').hide();

// ...
}
})


🔥2552❤‍🔥1
📍Как автоматически записать данные в поле анкеты на геткурс. На примере записи даты заполнения анкеты

Написал инструкцию о том, как записать автоматически дату заполнения анкеты в скрытое поле анкеты с помощью js кода.
т.е. в момент захода пользователя на страницу с анкетой, за него заполнится скрытое, заранее созданное и добавленное поле "Дата заполнения анкеты"
Это позволит фильтровать анкеты по датам заполнения.

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


Расписал последовательность тут

https://teletype.in/@aston_max/getcourse-put-data-to-survey-input

протестируйте 😊
🔥21👍5